1. 脚本三种执行方式
① chmod +x .sh ./.sh
② bash .sh sh .sh
③ source .sh
2. 第一行的内容指定了shell脚本解释器的路径,而且这个指定路径只能放在文件的第一行.
3. 单行注释 #
多行注释: << ! !
4. 用户帐号 /etc/passwd
用户密码 /etc/shadow
5. 命令
(1)ls
-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加"/"
-R 若目录下有文件,则以下之文件亦皆依序列出
(2) cd
命令用于切换当前工作目录至 dirName(目录参数)。
另外,“回车”"~" 也表示为 home 目录的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录,“-”切换到上次工作目录
(3)touch
如果指定的文件不存在,则将创建一个新的空白文件
(4)mkdir 创建子目录
-p 确保目录名称存在,不存在的就建一个。
(5)rm 删除一个文件或目录
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
(6)rmdir 删除空目录
-p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
(7)su 用户 切换用户
(8)tar 命令用于备份文件
tar-czvf test.tar.gz a.c //压缩 a.c文件为test.tar.gz
tar-tzvf test.tar.gz //列出压缩文件内容
tar-xzvf test.tar.gz a.c //解压文件
-c或--create 建立新的备份文件。
-z或--gzip或--ungzip 通过gzip指令处理备份文件。
-v或--verbose 显示指令执行过程。
-f<备份文件>或--file=<备份文件> 指定备份文件。
-t或--list 列出备份文件的内容。
-x或--extract或--get 从备份文件中还原文件。
(9)grep
grep test *file //查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行
grep -r update /etc/acpi //以递归的方式查找符合条件的文件
grep -v test *test*//反向查找。前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。查找文件名中包含test 的文件中不包含test 的行
· -a 或 --text : 不要忽略二进制的数据。
· -A<显示行数> 或--after-context=<显示行数> :除了显示符合范本样式的那一列之外,并显示该行之后的内容。
· -b 或--byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
· -B<显示行数> 或--before-context=<显示行数> :除了显示符合样式的那一行之外,并显示该行之前的内容。
· -c 或 --count : 计算符合样式的列数。
· -C<显示行数> 或--context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
· -d <动作> 或--directories=<动作> :当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
· -e<范本样式> 或--regexp=<范本样式> :指定字符串做为查找文件内容的样式。
· -E 或--extended-regexp :将样式为延伸的普通表示法来使用。
· -f<规则文件> 或--file=<规则文件> :指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
· -F 或--fixed-regexp : 将样式视为固定字符串的列表。
· -G 或--basic-regexp : 将样式视为普通的表示法来使用。
· -h 或--no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
· -H 或--with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
· -i 或--ignore-case : 忽略字符大小写的差别。
· -l 或--file-with-matches :列出文件内容符合指定的样式的文件名称。
· -L 或--files-without-match :列出文件内容不符合指定的样式的文件名称。
· -n 或--line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
· -q 或 --quiet或--silent : 不显示任何信息。
· -r 或--recursive : 此参数的效果和指定"-drecurse"参数相同。
· -s 或--no-messages : 不显示错误信息。
· -v 或--revert-match : 显示不包含匹配文本的所有行。
· -V 或 --version : 显示版本信息。
· -w 或--word-regexp : 只显示全字符合的列。
· -x--line-regexp : 只显示全列符合的列。
· -y : 此参数的效果和指定"-i"参数相同。
(10)sed
http://www.runoob.com/linux/linux-comm-sed.html
(11)awk
http://www.runoob.com/linux/linux-comm-awk.html
(12)sort
http://www.runoob.com/linux/linux-comm-sort.html
(13)wc
http://www.runoob.com/linux/linux-comm-wc.html
(14)uniq
http://www.runoob.com/linux/linux-comm-uniq.html
(15)kill 终止后台进程
ctrl+c 终止前台进程
bg 前台转后台
fg 后台转前台
(16)cp
http://www.runoob.com/linux/linux-comm-cp.html
(17)mv
http://www.runoob.com/linux/linux-comm-mv.html
(18)重定向
http://www.runoob.com/linux/linux-shell-io-redirections.html
管道(连接两个进程)
(19)tab键 联想
5. vi的三种模式
http://www.runoob.com/linux/linux-vim.html
6. $?前面的变量 $0脚本名 $1,$2,$3….$n 第n个位置参数
$# 参数数量 $* 传递所有前面的参数组成的字符串
7. *、?、+ 在正则表达式中代表什么?
8. 文件类型 -f 普通
-d 目录
文件存在与否:
9. 循环 for \while
if –else then fi case
10. 环境变量 echo $PATH
PWD
USER当前登录用户 LOG_NAME登录名
11. home
12. 动态显示进程 top
静态 ps
13. Linux命令提示符 # 超级用户 $非超级用户
14. { 前后的空格