Linux shell编程02 shell程序的执行 及文件权限
第一个shell脚本
1. shell编程的方式
交互式shell编程
非交互式shell编程:执行的语句存放到一个文件
shell脚本:可以任意文件名,建议扩展名为sh
2. shell脚本的语法(algol语法:basic|pascl)
字word:字面值(word),标示字(name),保留字
使用空格tab键 分隔
语句statement:
使用;与newline键(回车)等分隔
块block:
多种:流程控制块/函数块
元字符:容易歧义字符
| ; & ( ) 空格 < > { } * 回车
实验:使用语句的多种形式
1. 分号分隔语句:
命令行输入:ls ; echo “hello”
两个命令都被执行
2.||分隔语句
ls || date
|| 分隔语句两个语句中任意一个语句执行成功就返回
3.&&分隔语句
ls && date
&&分隔语句两个语句其中一个执行失败就终止
4.| 分隔语句:管道
5. & 必须加在语句的最后:后天运行
6. <newline> 必须在语句最后
实验:使用块
(语句列表)
(ls ; date) 或者
(
ls
date
)
{语句列表;}
{ ls;date; } 或者
{
ls;
date;
}
shell的执行:
1. 条件
没有语法错误
文件要具备执行权限
chmod +x *.sh 或 chmod u+x *.sh
或绝对模式: chmod 07777 *.sh
补充:
文件权限 d(文件类型) rwx rwx rwx
u g o
文件类型(7种):
- 普通文件
d 目录文件
c 字符设备文件
b 块设备文件 /dev/sda1
l 符号链接文件(软连接)
p 管道文件 mkfifo p.pipe
s socket文件
特殊权限:
粘附位:禁止有读写权限的其他用户删除文件
例子:
p.pipe文件
prw-r—r-- …………….p.pipe
chmod 01777 p.pipe
prwxrwxrwt …………p.pipe 其他用户的最后一的执行权限x变为t 设置了粘附位
chmod 01000 p.pipe
p--------T…………..p.pipe 其他用户权限最后一位变为T
如果其他用户权限的执行权限位为t 表示设置了粘附位和有执行权限。如果其他权限的执行权限位为T 表示只设置粘附位,没有执行权限
用户设置位:其他用户在执行拥有者的执行文件时,其他用户临时拥有拥有者的所有权限。
chmod 04000 设置用户设置为
p—S------……………p.pipe S表示用户权限没有执行权限,s表示设置了用户设置位,用户也有执行权限
用户设置位作用:设置了用户设置位后,即使有读写权限也不能删除文件
比如: passwd就是通过用户设置位允许任何执行者访问/etc/shadow
组设置位
chmod 02000 设置组设置位
p-----S---………….p.pipe 同理用户设置位
first01.sh
ls
date
chmod +x first01.sh
./first01.sh
执行shell脚本的方式
1. 方式1:
./shell文件:使用当前shell执行解释程序
2. 方式2:
shell程序 ./shell文件
3. 在shell脚本中指定执行shell程序的解释程序
shell程序中 #为注释
在第一行使用:
#!/bin/bash 解释shell程序的程序
问题:程序行与代码行中#!那个优先
结论:命令行优先指定shell程序
命令行没有,则代码中指定优先
都没有,采用命令行的默认shell程序
Linux shell编程02 shell程序的执行 及文件权限的更多相关文章
- linux进程编程:子进程创建及执行函数简介
linux进程编程:子进程创建及执行函数简介 子进程创建及执行函数有三个: (1)fork();(2)exec();(3)system(); 下面分别做详细介绍.(1)fork() 函数定 ...
- 【Shell编程】Shell程序设计
1.Shell简介 作为Linux灵感来源的Unix系统最初是没有图形化界面的,所有的任务都是通过命令行来实现的.因此,Unix的命令行系统得到了很大的发展,逐步成为一个功能强大的系统. Sh ...
- (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹
原文 (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) Windows Shell 编程,即 Windows ...
- 在WINDOWS任务计划程序下执行PHP文件 PHP定时功能的实现
最近需要做一个定时任务功能,从网站找了很多相关的代码,windows实现方法综合起来大概就两种, 一.使用PHP ignore_user_abort 函数 即使关掉浏览器也能正常运行:(个人感觉PHP ...
- Linux下安装配置Jmeter5.1,并执行jmx文件
Windows下的jmeter是GUI模式,可查看操作,但是GUI对性能的干扰比较大,所有一般压测会在Linux上运行. 下面是Linux下安装配置Jmeter5.1,并执行jmx文件的步骤, 一.安 ...
- Nginx禁止目录执行php文件权限
location ~ /dir/.*.(php|php5)?$ { deny all; } 禁止dir目录执行php文件权限 .csharpcode, .csharpcode pre { font-s ...
- shell编程01—shell基础
01.学习shell编程需要的知识储备 1.vi.vim编辑器的命令,vimrc设置 2.命令基础,100多个命令 3.基础.高端的网络服务,nfs,rsync,inotify,lanmp,sersy ...
- Linux操作系统中/sbin/init程序的执行过程
当init启动后,它通过执行各种启动事务来继续引导进程(检查并监视文件系统,启动后台程序daemons,等等),直至完成用户所有操作环境的设置工作.这里主要涉及4个程序:init.getty(aget ...
- linux系统编程----统计一个目录下的普通文件个数
主要是为了统计linux系统下一个指定目录下面的普通文件个数,运用目录操作的一些函数,配合递归调用来实现该功能. 首先介绍一下函数原型: 打开一个空目录 DIR ...
随机推荐
- Spring 小示例
通过一个简单的示例来初步理解Spring框架 1.创建java工程,导入相应Spring包,放在lib文件夹中 2.接口 IHelloMessage package com.jike.spring. ...
- C++关键字之const
C++的const关键字一直让我很乱,这里把const关键字在程序中常用的三个地方分别总结出来: 1. 通过指针或引用访问普通变量 2. 通过对象调用成员函数,通过成员函数访问成员变量 3. 通 ...
- QiniuUpload- 一个方便用七牛做图床然后插入markdown的小工具
最近一段时间有用markdown做笔记,其他都好,但是markdown插入图片挺麻烦的,特别是想截图之后直接插入的时候.需要首先把图片保存了,然后还要上传到一个地方生成链接才能插入.如果有个工具可以直 ...
- c# 鼠标操作
1#region 3using System; 4using System.Runtime.InteropServices; 6#endregion 8namespace Windows.Forms. ...
- css设置滚动条颜色与样式以及如何去掉与隐藏滚动条
我们大家在浏览网页的时偶尔会看到很漂亮的各种颜色样式的滚动条,这就是通过css代码控制来实现的,于是本人搜集整理一番,这里和大家分享一下使用CSS设置滚动条颜色以及如何去掉滚动条的方法,需要的朋友可以 ...
- PixelFormat 枚举
成员名称 说明 Alpha 像素数据包含没有进行过自左乘的 alpha 值. Canonical 默认像素格式,每像素 32 位. 此格式指定 24 位颜色深度和一个 8 位 alpha 通道. Do ...
- (转)union和union all的区别
Union因为要进行重复值扫描,所以效率低.如果合并没有刻意要删除重复行,那么就使用Union All 两个要联合的SQL语句 字段个数必须一样,而且字段类型要“相容”(一致): 如果我们需要将两个s ...
- WCF+AJAX最佳实践
本文是基于Frank Xu的一个webcast上的串并总结,图片等都截至视频,谨致谢. 路线图 什么是WCF Windows Communication Foundation是MS为构建面向服务的应用 ...
- Oracle11g R2学习系列 之九 PL/SQL语言
这是个重头戏,如果精通了PL/SQL,毫不夸张的说明精通了Oracle了.PL/SQL由以下三个部分组成(Definition,Manipulation,Control): DDL:数据定义语言,Cr ...
- 16-js-缓冲运动
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...