linux常用基本命令

一世执手 提交于 2020-01-21 03:24:21

查看centos操作系统版本:cat /etc/centos-release

切换到当前用户主目录:cd

创建文件夹/a/b/c:mkdir -pv /a/b/c。如果/a/b/c的父目录不存在,即假如/a不存在或者/a/b不存在,则会自动创建不存在的父目录。p是parents的意思,v是verbose的意思,会打印出相信信息。

创建文件:touch a.txt。创建完就创建完了,不会进入编辑页面哦。

覆盖a.txt内容:echo 'abc' > a.txt

往a.txt追加内容:echo 'abc' >> a.txt

往a.txt追加多行内容:cat << eof >> a.txt

一个大于号和两个大于号的应用场景怎么记忆呢?可以这样记。一个大于号,大于号数少,数据量少,表示是覆盖。两个大于号,大于号多,数据量多,表示是追加。

查看a.txt内容:more a.txt,less a.txt,most a.txt。most命令得自己安装

awk: 一个文本分析工具。假设a.txt的内容是:

a aa aaa 1
b bb bbb 2
c cc ccc
d dd ddd 4
e ee eee 5

awk有很多内置变量可以使用:

NF:每行的字段个数。使用示例:awk '{print "字段数是"NF}' a.txt,打印如下:

字段数是4

字段数是4

字段数是3

字段数是4

字段数是4

如果想打印每一行的最后一列,则可以awk '{print $NF}' a.txt

打印如下:

1

2

ccc

4

5

每行的行号,如果读取多个文件,则行号一直累加。使用示例:awk '{print "行号是"NR}' a.txt。

FNR:每行的行号,读取多个文件时,行号不会累加,每个文件都是从1开始。使用示例:awk '{print "行号是"FNR}' a.txt b.txt。

FS:指定分隔符,去分隔文件中内容。分隔符默认是空格,如上面NF的例子其实就是用的默认的空格分隔符。现在把a.txt的数据换成:

a,aa,aaa,1
b,bb,bbb,2
c,cc,ccc
d,dd,ddd,4
e,ee,eee,5

如果想用逗号分隔每一行数据,则可以awk 'BEGIN{FS=","} {print $1, $2}' a.txt

会打印:

a aa

b bb

c cc

d dd

e ee 

注意,BEGIN必须大写,BEGIN是个关键字。$1就是分隔后数组的第一个元素,$2是第二个元素。这里起始索引不是0,是1,因为0还有别的用处。$0表示一行的全部数据,awk 'BEGIN{FS=","} {print $0}' a.txt,会打印如下:

a,aa,aaa,1

b,bb,bbb,2

c,cc,ccc

d,dd,ddd,4

e,ee,eee,5

OFS:指定分隔符,用以在输出时拼接。如上面,我们想输出a+aa+aaa这样的格式,则可以awk 'BEGIN{FS=",";OFS="+"} {print $1, $2, $3}' a.txt,打印如下:

a+aa+aaa

b+bb+bbb

c+cc+ccc

d+dd+ddd

e+ee+eee

底线。

grep的使用:

从a.txt文件中查找单词"book":grep 'book' a.txt

从a.txt文件中找到单词"book"及其上面3行:grep -B 3 'book' a.txt。B是before的意思

从a.txt文件中找到单词"book"及其下面3行:grep -A 3 'book' a.txt。A是after的意思

从a.txt文件中找到单词"book"及其上下3行:grep -C 3 'book' a.txt。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!