Shell语法:
系统变量
$0这个程序的执行名字
$n这个程序的第n个参数值,n=1...9
$*这个程序的所有参数
$#这个程序的参数个数
$$这个程序的PID
$!执行上一个背景指令的PID
$?上一个指令的返回值
数据或程序控制使用的特殊字符
>(file) 输出重定向到文件
>>(file) 输出重定向到文件,内容加到已存在的文件尾部
<(file) 输入重定向到文件
; 命令分隔符
| 管道符,把一条命令的输出重定向为另一命令的输入
& 放在命令之后强迫命令在后台执行
`` 命令替换,重定向一条命令的输出为另一命令的参数
表 1.6. 特殊字符 | |
字符 | 含意 |
~ | home目录 |
` | 命令替代符(archaic) |
# | 注释 |
$ | 变量表达式 |
& | 后台任务 |
* | 字串通配符 |
( | 子shell的开始 |
) | 子shell的结束 |
\ | 引用下一字符 |
| | 管道符 |
[ | 字符集通配符的开始 |
] | 字符集通配符的开始 |
{ | 命令的开始括号 |
} | 命令的结束括号 |
; | Shell 命令分隔符 |
' | Strong quote强引用 |
<"> | Weak quote弱引用 |
< | 输入重定向 |
> | 输出重定向 |
/ | 路径目录分隔符 |
? | 单个字符的通配符 |
! | 逻辑管道符“非” |
文件比较运算符
运算符 描述 示例
-e filename 如果filename存在,则为真 [-e /var/log/syslog]
-d filename 如果filename为目录,则为真 [-d /tmp/mydir]
-f filename 如果filename为常规文件,则为真 [-f /usr/bin/grep ]
-L filename 如果filename为符号链接,则为真 [-L /usr/bin/grep ]
-r filename 如果filename可读,则为真 [ -r /var/log/syslog ]
-w ilename 如果filename 可写,则为真 [ -w /var/mytmp.txt ]
-x filename 如果filename可执行,则为真 [-L /usr/bin/grep ]
group用户组的管理
groupadd 选项 用户组
可以使用的选项有:
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同
# groupadd group1
此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。
例2:
# groupadd -g 101 group2
此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。
groupdel 用户组
删除用户组
groupmod 选项 用户组
常用的选项有:
-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n 新用户组 将用户组的名字改为新名字
例1:
# groupmod -g 102 group2
此命令将组group2的组标识号修改为102。
例2:
# groupmod -g 10000 -n group3 group2
此命令将组group2的标识号改为10000,组名修改为group3。
newgrp用户组间切换
tar命令
格式: tar 选项 文件目录列表
功能: 对文件目录进行打包备份
选项:
-c 建立新的归档文件
-r 向归档文件末尾追加文件
-x 从归档文件中解出文件
-O 将文件解开到标准输出
-v 处理过程中输出相关信息
-f 对普通文件操作
-z 调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩
-Z 调用compress来压缩归档文件,与-x联用时调用compress完成解压缩
实例: tar -zvxf *.taz
实例1: 目的:用tar打包一个目录下的文件
命令:#tar -cvf /mnt/lgx/a1.doc
结果:产生一个以.tar为扩展名的打包文件
实例2: 目的:用tar解开打包文件
命令:#tar -xvf /mnt/lgx/a1.doc.tar
附加说明:在通常情况下,tar打包与gzip(压缩)经常联合使用,效果更好。方法是:
首先用tar打包,如:#tar -cvf /mnt/lgx/a1.doc (产生a1.doc.tar文件)
然后用gzip压缩a1.doc.tar文件,如:#gzip /mnt/lgx/a1.doc.tar (产生a1.doc.tar.gz文件)
实例3: 目的:解压a1.doc.tar.gz文件
方法1:
#gzip -dc /mnt/lgx/a1.doc.tar.gz (产生a1.doc.tar文件)
#tar -xvf /mnt/lgx/a1.doc.tar (产生a1.doc文件)
这两次命令也可使用管道功能,把两个命令合二为一:
#gzip -dc /mnt/lgx/a1.doc.tar.gz | tar -xvf
方法2:使用tar提供的自动调用gzip解压缩功能
#tar -xzvf /mnt/lgx/a1.doc.tar.gz
经过tar打包后,也可用compress命令压缩(注:gzip比compress压缩更加有效),产生一个以.tar.Z的文件,在解包时,可先用“uncompress 文件名”格式解压,然后用“tar -xvf 文件名”解包。也可直接调用“tar -Zxvf 文件名”解包。
Locate命令
使用权限:所有使用者
使用方式: locate [-q] [-d ] [--database=]
locate [-r ] [--regexp=]
locate [-qv] [-o ] [--output=]
locate [-e ] [-f ] <[-l ] [-c]
<[-U ] [-u]>
locate [-Vh] [--version] [--help]
说明:
locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的资料库,之后当寻找时就只需查询这个资料库,而不必实际深入档案系统之中了。
在一般的 distribution 之中,资料库的建立都被放在 contab 中自动执行。一般使用者在使用时只要用
# locate your_file_name
的型式就可以了。 参数:
-u
-U
建立资料库,-u 会由根目录开始,-U 则可以指定开始的位置。
-e
将
排除在寻找的范围之外。
-l
如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的权限资料。
-f
将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案放在资料库中。