shell基础概念

1、文件

-     普通文件

d     目录

l     符号链接文件

b     磁盘设备文件

c     字符设备文件

s     套接字文件

p     连接文件

file命令:file 文件路径

[sjx@sjx test]$ file test.sh

test.sh: Bourne-Again shell script text executable

这标识test.sh是一个bash shell文本文件,具有可执行的特点

2、特殊文件权限

sst

set user id 4

set group id 2

sticky bit 1

(1)如果某一个文件在执行时,执行者可以拥有文件所有者的权限,则称具有特殊权限set user id

假设原权限值为0755,则现在为4755rwsr-xr-x

(2)如果某一个文件在执行时,执行者可以暂时变成用户组的身份,则具有特殊权限set group id

假设原权限值为0755,则现在为2755rwxr-sr-x

(3)如果某个目录下的文件只有文件拥有者可以删除,则具有特殊权限sticky bit

假设原权限值为0755,则现在为1755rwxr-xr-t

3、通配符

*:代表任意的字符串,可以是空字符串

?:代表一个字符,但不可以为空

egsj??x*.odt 表示前两个字符为sj后边是任意的两个字符,然后跟一个x,再后是任意字符串或为空,后缀名为.odt的所有文件

4、转义字符 \

以下符号均为bash的特殊字符,如要显示这些字符需加上转义字符\

‘ “ * ? \ ~ ` ! # $ & ( ) { } < > [ ] | ; /

此外,\也是续行符号。

5、字符集合

字符集合就是[]中所列的字符范围中的某一个字符,其长度为1.

[xyz] xyz

由于-字符代表字符集合的范围,因此,如果要把-也纳入集合的一份子,请把-放在集合的开头或结尾,如:

[a-z_-]:代表英文小写字母、下划线、-字符

!表示非

[!0-9]:不是数字

若!不是放在集合的第一个位置,就是去了“非”的意义。

[0-9!]:代表数字或感叹号

6、括号扩展

ls -la /usr/bin/{g,nc,s}ftp 便可以一次找出gftp,ncftp,sftp这三个文件。

echo s{a,b}jx 可以一下输出sajx,sbjx两个字符串

mkdir -p /mnt/{dir1,dir2,dir3}/{s,j,x} dir1,dir2,dir3目录下,分别建立sjx 3个子目录。

echo {1,2,3,4,5,6,7,8,9}\*{1,2,3,4,5,6,7,8,9} 输出九九乘法表

7、每一个shell scripts执行时(称为“进程”或“处理进程”),系统默认会开启3个标准文件:标准输入(stdin),标准输出(stdout),标准错误(stderr)。文件代码分别为012

你可能感兴趣的:(shell)