一、压缩和解压缩
-
“tar.gz”结尾的文件: tar
#将file1,file2文件打包到newfile.tar
tar -cf newfile.tar file1 file2
#将test.tar.gz文件解压并提取里边的文件
tar -xzvf test.tar.gz
-
“.zip”结尾的文件: zip
#将file1,file2进行压缩到newfile.zip内
zip newfile.zip file1 file2
#解压
unzip newfile.zip
-
“.gz”结尾的文件: gzip
#将file压缩为file.gz
gzip file
#解压
gunzip file.gz
-
“.bz2”结尾的文件: bzip2
#将file压缩为file.bz2并删除源文件
bzip2 file
#解压
bunzip2file.bz2
二、数据统计与处理
-
sort 将文本文件内容进行排序
参 数:
-n/-g 将文件按数值大小从小到大排序(默认按ascii码从小到大排序)
-k按第num列内容对文件排序(默认按第一列)
-r 反向排序
#对file文件按第一列内容ascii码值从小到大排序并输出。
sort file
#对file文件按第3列内容数值大小从小到大排序。
sort -n -k 3 file
#对file文件按数值大小反向排序,优先考虑第一列,再考虑第二列
sort -nr -k1,2 file
-
uniq 合并文件中相邻的相同的行
参 数:
-c 在每行第一列显示该行重复次数
-d 仅显示有重复的行
#合并相同的行,并统计每行重复次数,输出到屏幕
uniq -c file
#合并相同的行,并显示file中有重复出现的行,输出到outfile文件中
uniq -d file outfile
-
wc 统计文件中字节数
参 数:
-c 只统计字节数/Bytes数
-w 只统计字数(单词数)
-l 只统计行数
#显示文件file的字节数,字数,行数
wc file
#显示文件file的行数
wc -l file
-
grep 查找文件中符合条件的行
参 数:
-v 不匹配,显示文件中不匹配string的行
#查找文件中含有“world”的行
grep world file
#查找文件中不含有“world”的行
grep -v world file
-
awk 对特定的行中特定的列进行操作
参 数:
-F 指定列的分割符,可以使任意字符,默认按空白分割
#按“:”来分割并打印出第一列
awk -F “:” ‘{print $1}’
#对第一列大于100的行整行输出
awk ‘($1 > 100){print $0}’
#对第一列大于100的行输出第一列和第二列的结果并以“\t”分割。
awk ‘($1 > 100){print $1”\t”$2}’
#对第三列匹配“world”的行的第一列求和,全部处理完之后输出结果x的值
awk ‘($3~/world/){ x+= $1}END{print x}’
-
sed 文本处理并可对文件进行编辑
参 数:
-i 直接在原文件中修改(默认修改后屏幕输出,原文件不变)
#将file文件中的test字符替换为new_word
sed -i ‘s/test/new_word/’ file
#将file文件中匹配pattern字串的行进行替换操作
sed -i ‘/pattern/ s/test/new_word/’ file
#将文件file中的空白行删除(d)
sed -i ‘/^$/ d’ file
-
chmod 设置文件或目录权限
-R 对目录和目录下所有文件均设置权限
详细说明:文件权限分为是否可读(r)、是否可写(w)、是否可执行(x)3种,同时对应档案拥有者(u)、同 组成员(g)、其他成员(o)3种。mode分为符号模式和数值模式。
符号模式:[ugoa] [+-=] [rwx]
数值模式:用1/0表示,则111表示可读可写可执行,000表示不可读不可写不可执行,可读可写可执行 分别对应10进制的4,2,1,则5表示可读不可写可执行。
#对file 文件用户自身增加可执行权限,同组成员权限设置为可读可写,对其他成员移除rwx权限。
chmod u+xg=rx o-rwx file
#对file文件所有成员移除可写权限。
chmod a-w file
#对dirname目录及其下所有文件权限设置为用户自身可读可写可执行,同组成员可读可执行,其他成员无权限。
chmod -R 750 dirname
-
find 查找文件
#在当前目录及其子目录下查找文件名为file的文件
find./ -name file
#寻找文件名以a结尾的目录文件。
find ./ -name ‘*a’ -type d
-
du 显示目录或文件的大小
参 数:
-a 显示目录中个别文件大小
-s 只显示总计
-h 以“K” ,“M” ,“G”为单位显示
#显示当前目录的大小
du -sh ./
#显示dir目录下所有文件大小,不包括下一级目录
du -ah --max-depth=1 dir