1、shutdown
数据同步写入磁盘: sync
shutdown -h 10 ‘I will shutdown after 10 mins’
-k : 不要真的关机, 只是发送警告讯息出去!
-r : 在将系统的服务停掉之后就重新开机( 常用)
-h : 将系统的服务停掉后, 立即关机。 ( 常用)
-c : 取消已经在进行的 shutdown 指令内容。
时间 : 指定系统关机的时间! 时间的范例下面会说明。 若没有这个项目, 则默认 1 分钟后自动进行。
sync; sync; sync; reboot 重新开机
poweroff
2、很多读者都会误会/usr为user的缩写, 其实usr是Unix Software Resource的缩写, 也就是“Unix操作系统软件资源”所放置的目录, 而不是使用者的数据
3、more
空白键 ( space) : 代表向下翻一页;
Enter : 代表向下翻“一行”;
/字串 : 代表在这个显示的内容当中, 向下搜寻“字串”这个关键字;
:f : 立刻显示出文件名以及目前显示的行数;
q : 代表立刻离开 more , 不再显示该文件内容。
b 或 [ctrl]-b : 代表往回翻页, 不过这动作只对文件有用, 对管线无用。
4、less
空白键 : 向下翻动一页;
[pagedown]: 向下翻动一页;
[pageup] : 向上翻动一页;
/字串 : 向下搜寻“字串”的功能;
?字串 : 向上搜寻“字串”的功能;
n : 重复前一个搜寻 ( 与 / 或 ? 有关! )
N : 反向的重复前一个搜寻 ( 与 / 或 ? 有关! )
g : 前进到这个数据的第一行去;
G : 前进到这个数据的最后一行去 ( 注意大小写) ;
q : 离开 less 这个程序;
5、head -n 5 取出前5行 head -n -100 最后100行不打印
6、tail -n 5 取出最后5行 tail -n +100 开始的99行不打印
7、gzip压缩
gzip -c readme.txt > readme.txt.gz (-c:将压缩的内容打印到屏幕,通过重定向保留原始文件)
gzip -t readme.txt (查看压缩是否有错误)
gzip -v readme.txt (显示压缩比)
gzip -数字 readme.txt (压缩等级设置 1 最快,压缩比差;9最慢,压缩比好,默认6)
gzip -d readme.txt.gz (解压缩)
cat/more/less 可以使用不同的方式来读取纯文本文件, 那个 zcat/zmore/zless 则可以对应于 cat/more/less 的方式来读取纯文本文件被压缩后的压缩文件!
bzip2: 比gzip多了 -k 参数,用于保存原始文件 ; readme.txt.bz2
(bzip2的压缩比gzip好,但是大文件,压缩时间长)
xz:比bzip2多了 -l 参数,列出压缩文件的相关信息。 readme.txt.xz
(xz的压缩比更好,但是压缩时间更长)
8、tar打包
tar -czvf 打包压缩后的文件名.tar.gz 打包压缩前的文件名
-c 只是列出文件名
-t 列出文件的详细信息(以上只能二选一)
-z gzip压缩方式 -j bzip2压缩 -J xz压缩 (只能三选一)
-v 显示正在处理的文件名
-f 将要压缩出的文件名(必须放在最后)
tar -xzvf 被打包压缩的文件名.tar.gz -C 解压缩后的文件名
-x 解压缩
-C 指定解压后的文件
9、cut 以行为单位进行切分
cut -d ‘切分字符’ -f 显示切出来的第几段 -c 切出第几个到第几个字符
例:
woshidamingxing,nizhidaoma,haha
cut -d ',' -f 2 nizhidaoma
cut -c 5-10 idamin
10、grep
grep [-acinv] [--color=auto] '搜寻字串' filename
选项与参数:
-a : 将 binary 文件以 text 文件的方式搜寻数据
-c : 计算找到 '搜寻字串' 的次数
-i : 忽略大小写的不同, 所以大小写视为相同
-n : 顺便输出行号
-v : 反向选择, 亦即显示出没有 '搜寻字串' 内容的那一行!
--color=auto : 可以将找到的关键字部分加上颜色的显示喔!
11、sort
sort [-fbMnrtuk] [file or stdin]
选项与参数:
-f : 忽略大小写的差异, 例如 A 与 a 视为编码相同;
-b : 忽略最前面的空白字符部分;
-M : 以月份的名字来排序, 例如 JAN, DEC 等等的排序方法;
-n : 使用“纯数字”进行排序( 默认是以文字体态来排序的) ;
-r : 反向排序;
-u : 就是 uniq , 相同的数据中, 仅出现一行代表;
-t : 分隔符号, 默认是用 [tab] 键来分隔;
-k : 以那个区间 ( field) 来进行排序的意思
12、正则表达式
基础正则表达式:
grep -A2 'good' regular_express.txt
显示regular_express.txt文件中带有good的行及其后面的2行 After
grep -B2 'good' regular_express.txt
显示regular_express.txt文件中带有good的行及其前面的2行 Befer
grep -n 'the' regular_express.txt
显示regular_express.txt文件中所有带the的行 -n指显示行号
grep -vn 'the' regular_express.txt
显示regular_express.txt文件中所有不带the的行 -n指显示行号 -v反选
grep -in 'the' regular_express.txt (默认区分大小写)
显示regular_express.txt文件中所有带the的行 -n指显示行号 -i 不区分大小写
grep -n 't[ae]st' regular_express.txt (中括号表示搜索集合字符)
显示regular_express.txt文件中带tast和test的行 -n指显示行号
[] 里面不论有几个字符, 他都仅代表某“一个”字符
grep -n '[^g]oo' regular_express.txt (中括号内的^表示非)
显示regular_express.txt文件中,oo前面不是g的行
grep -n '[^a-z]oo' regular_express.txt
显示regular_express.txt文件中,oo前面不是小写字母的行
grep -n '[0-9]' regular_express.txt
显示regular_express.txt文件中,带数字的行
grep -n '^the' regular_express.txt (中括号外的^表示行首)
显示regular_express.txt文件中,行首是the的行
grep -n '^[a-z]' regular_express.txt
显示regular_express.txt文件中,行首是小写字母的行
grep -n '^[^a-zA-Z]' regular_express.txt
显示regular_express.txt文件中,行首不是字母的行
grep -n '\.$' regular_express.txt ($表示行尾,放在后面)
显示regular_express.txt文件中,行尾是小数点的行
grep -n '^$' regular_express.txt
显示regular_express.txt文件中,空白行
grep -v '^$' regular_express.txt
显示regular_express.txt文件中,非空白行
grep -n 'g..d' regular_express.txt (点表示一定有一个任意字符)
显示regular_express.txt文件中,包含g和d中间有两个任意字符的行
grep -n 'ooo*' regular_express.txt (星号表示 有0个或多个 星号前面的字符)
显示regular_express.txt文件中,连续两个及以上个o的行
grep -n 'g*g' regular_express.txt
显示regular_express.txt文件中,所有带一个g的行(g前面有0个g代表g前面可以是任意字符)
grep -n 'o\{2\}' regular_express.txt
显示regular_express.txt文件中,带有连续两个o的行
grep -n 'go\{2,5\}g' regular_express.txt
显示regular_express.txt文件中,g和g之间带有连续两到5个o的行
grep -n 'go\{2,\}g' regular_express.txt
显示regular_express.txt文件中,g和g之间带有连续两个以上o的行
基础正则表达式的总结:
延伸正则表达式:
grep 默认仅支持基础正则表达式, 如果要使用延伸型正则表达式, 你可以使用 grep -E , 不过更建议直接使用 egrep !
13、sed
sed [-nefr] [动作]
选项与参数:
-n : 使用安静( silent) 模式。 在一般 sed 的用法中, 所有来自 STDIN 的数据一般都会被列出到屏幕上。
但如果加上 -n 参数后, 则只有经过 sed 特殊处理的那一行( 或者动作) 才会被列出来。
-e : 直接在命令行界面上进行 sed 的动作编辑;
-f : 直接将 sed 的动作写在一个文件内, -f filename 则可以执行 filename 内的 sed 动作;
-r : sed 的动作支持的是延伸型正则表达式的语法。 ( 默认是基础正则表达式语法)
-i : 直接修改读取的文件内容, 而不是由屏幕输出。
动作说明: [n1[,n2]]function
n1, n2 : 不见得会存在, 一般代表“选择进行动作的行数”, 举例来说, 如果我的动作
是需要在 10 到 20 行之间进行的, 则“ 10,20[动作行为] ”
function 有下面这些咚咚:
a : 新增, a 的后面可以接字串, 而这些字串会在新的一行出现( 目前的下一行) ~
c : 取代, c 的后面可以接字串, 这些字串可以取代 n1,n2 之间的行!
d : 删除, 因为是删除啊, 所以 d 后面通常不接任何咚咚;
i : 插入, i 的后面可以接字串, 而这些字串会在新的一行出现( 目前的上一行) ;
p : 打印, 亦即将某个选择的数据印出。 通常 p 会与参数 sed -n 一起运行~
s : 取代, 可以直接进行取代的工作哩! 通常这个 s 的动作可以搭配正则表达式!例如 1,20s/old/new/g 就是啦!
例子:
sed '2,5d' regular_express.txt
删除regular_express.txt文件中,2到5行
sed '2a drink tea' regular_express.txt
在regular_express.txt文件中第二行之后插入drink tea
sed '2a drink tea \nlike tea' regular_express.txt
在regular_express.txt文件中第二行之后插入两行drink tea和like tea
sed '2,5c No 2-5 number' regular_express.txt
将regular_express.txt文件中第二到五行替换为No 2-5 number
sed -n '5,7p' regular_express.txt
打印regular_express.txt中的5到7行,-n为安静模式,只显示操作的内容
sed 's/要被取代的字串/新的字串/g' regular_express.txt
替换regular_express.txt中所有的 要被取代的字串 -i 在原文件中操作
14、awk
相较于 sed 常常作用于一整个行的处理, awk 则比较倾向于一行当中分成数个“字段”来处理。 因此, awk 相当的适合处理小型的数据数据处理呢!
grep 更适合单纯的查找或匹配文本
sed 更适合编辑匹配到的文本
awk 更适合格式化文本,对文本进行较复杂格式处理
关于awk内建变量
解释一下变量:
变量:分为内置变量和自定义变量;输入分隔符FS和输出分隔符OFS都属于内置变量。
内置变量就是awk预定义好的、内置在awk内部的变量,而自定义变量就是用户定义的变量。
FS(Field Separator):输入字段分隔符, 默认为空白字符
OFS(Out of Field Separator):输出字段分隔符, 默认为空白字符
RS(Record Separator):输入记录分隔符(输入换行符), 指定输入时的换行符
ORS(Output Record Separate):输出记录分隔符(输出换行符),输出时用指定符号代替换行符
NF(Number for Field):当前行的字段的个数(即当前行被分割成了几列)
NR(Number of Record):行号,当前处理的文本行的行号。
FNR:各文件分别计数的行号
ARGC:命令行参数的个数
ARGV:数组,保存的是命令行所给定的各参数
自定义变量的方法
方法一:-v varname=value ,变量名区分字符大小写。
方法二:在program中直接定义。