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,则现在为4755(rwsr-xr-x)
(2)如果某一个文件在执行时,执行者可以暂时变成用户组的身份,则具有特殊权限set group id
假设原权限值为0755,则现在为2755(rwxr-sr-x)
(3)如果某个目录下的文件只有文件拥有者可以删除,则具有特殊权限sticky bit
假设原权限值为0755,则现在为1755(rwxr-xr-t)
3、通配符
*:代表任意的字符串,可以是空字符串
?:代表一个字符,但不可以为空
eg:sj??x*.odt 表示前两个字符为sj后边是任意的两个字符,然后跟一个x,再后是任意字符串或为空,后缀名为.odt的所有文件
4、转义字符 \
以下符号均为bash的特殊字符,如要显示这些字符需加上转义字符\
‘ “ * ? \ ~ ` ! # $ & ( ) { } < > [ ] | ; /
此外,\也是续行符号。
5、字符集合
字符集合就是[]中所列的字符范围中的某一个字符,其长度为1.
[xyz] :x或y或z
由于-字符代表字符集合的范围,因此,如果要把-也纳入集合的一份子,请把-放在集合的开头或结尾,如:
[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目录下,分别建立s、j、x 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)。文件代码分别为0、1、2