在shell脚本中可以使用任意unix命令,不过实际上最为常用的一般都是那些文件和文字操作相关的命令。下面介绍一些常用命令的语法和功能:
-
echo "some text"
- 在屏幕上输出信息
-
ls
- 文件列表
-
wc –l file或 wc -w file 或wc -c file
- 分别计算文件的行数(line)、单词数(word)和字符数(character),file为待计算的文件名
-
cp sourcefile destfile
- 文件拷贝,sourcefile为源文件路径,destfile为目的文件夹路径
-
mv oldname newname
- 重命名文件或移动文件
-
rm file
- 删除文件
-
grep 'pattern' file
- 在文件内搜索字符串或和正则表达式匹配的字符串
-
cut -b column file
- 将指定范围内的文件内容输出到标准输出设备(屏幕)上。比如:输出每行第5至9个字符 cut -b5-9 file.txt,注意不要和cat命令混淆,这是两个完全不同的命令
-
cat file.txt
- 输出文件内容到标准输出设备(屏幕)上
-
file somefile
- 取得文件somefile的文件类型
-
read var
- 提示用户输入,并将输入内容赋值给变量var
-
sort file.txt
- 对file.txt文件所有行进行排序
-
uniq
- 只输出文件中内容不一致的行,如: sort file.txt | uniq
-
expr
- 进行数学运算,如要进行2+3的运算,命令为: expr 2 + 3
-
find
- 搜索文件,如根据文件名搜索:find . -name filename -print
-
tee
- 将数据输出到标准输出设备(屏幕) 和文件,比如:somecommand | tee outfile
-
basename file
- 返回不包含路径的文件名,如: basename /bin/tux 会返回 tux
-
dirname file
- 返回文件所在路径,如:dirname /bin/tux 会返回 /bin
-
head file
- 打印文本文件开头几行
-
tail file
- 打印文本文件末尾几行
-
sed
- 是一个基本的查找替换程序。可以从标准输入(如命令管道)读入文本,并将结果输出到标准输出(屏幕);该命令采用正则表达式进行搜索。 不要和 shell中的通配符相混淆。比如将 ubuntu 替换为 Ubuntu :cat text.file | sed 's/ubuntu/Ubuntu/' > newtext.file
-
awk
- 用来提取文本文件中的字段。缺省的字段分割符是空格,可以使用 -F 指定其它分割符。cat file.txt | awk -F, '{print $1 "," $3 "," $5 }',这里我们使用 , 作为字段分割符,同时打印第一和第三个字段。如果该文件内容为 Adam Bor, 34, IndiaKerry Miller, 22, USA,则上述命令的输出为:Adam Bor, IndiaKerry Miller, USA