如何切换linux系统5到3,Linux系统 shell基础(三)

一、shell中的特殊符号

号:通配符,可以匹配零个或任意多个字符

? 号:单配符,

#号:注释符,该符号后跟的命令或参数不会执行

\号:加注在特殊符号前使其失去指令意义

|管道符:把一条命令的结果传递给另外一条命令,注意后一条命令不是什么命令都可以,一般是针对文档的命令。例如less、more、head、tail、grep、sed、awk等等。

$ :变量前缀,!¥

; 多条命令写到一行时用;分割

~ 用户家目录替代符,root的家目录,正则中表示匹配符

& 放在命令末尾表示把命令放到后台

把正确和错误的结果都输出到一个文件

用在shell中表示或者

表示如果命令1失败则执行命令2,若命令1成功则不执行命令2,命令1、2之间只有一条命令会执行

&&表示如果命令1失败,则命令终止,所有命令都不会执行,若命令1成功则命令2才会执行,命令1、2要么都执行,要么都不执行。

示例

1、II与&&特殊符号含义示例

c623807fa5fc7060d79f3053f9b4b400.png

本例中只有当ls test2成功后才会执行 touch test2命令。因为test2不存在,所以前一条命令不成功,后面一条命令就不会执行

那么我们换成 ls test2 || touch test2看看

93931a2ae41044a2287bc3b37beb4870.png

本例中,因为前面一条命令 ls test2失败了,于是第2条命令就被执行了

二、和管道符相关的命令

(一)cut命令

分隔符

cut命令用来显示行中的指定部分,删除文件中指定字符串。

命令写法:cut -d “分割标记” -f 第几段至第几段 cut -c n(第几个字符)

选项:

-c:仅显示行中指定范围的字符;

-d:指定字段的分隔符,默认的字段分隔符为“TAB”;

-f:显示指定字段的内容;

用法举例:

1、命令:cat /etc/passwd |head -2 |cut -d ":" -f 1

图中标记1:选项-d用来制定分割符号,passwd文件中用的是“;”号,于是我们就输入-d “;”让程序认出文本中的分段,为-f 选项提供分段依据

图中标记2:选项-f是选择第几段到第几段,竖排的叫段,相当于excel的选取单列。

图中的命令含义就是显示passwd文件中的前2行文字的第1段,分段符是分号“;”

bc632595e3d3bae958aef9b9649c40e3.png

2、命令:cat /etc/passwd |head -2 |cut -c 4

611bc09544e348d77745e7c4b069cbd0.png

(二)sort命令

sort命令对文件中的某一字段进行排序,默认按ASCII码顺序,但受环境变量LC_ALL影响,默认情况下该变量值为空,并将排序结果标准输出(相当于把排序结果cat到屏幕上)。sort命令既可以从特定的文件,也可以从stdin中获取输入。关于sort命令的排序标准,参见Linux sort命令的几个细节问题这篇文章(转载至:http://blog.csdn.net/zenghui08/article/details/7938975 )

命令写法

选项:

-t:指定排序时所用的栏位分隔字符;

-n:依照数值的大小排序,采用该选项时,字母或者符号开头的文字会被认为数值是0而排在前面;

-r:以相反的顺序来排序;

-u:表示去重复

-kn1,n2:表示由n1区间排序到n2区间,可以只写-kn1,即对n2字段排序。

用法举例:

1、对文件passwd前5行进行排序

命令:head -n 5 /etc/passwd | sort

93068416c1cc01b7af62b1679f6588a7.png

默认情况是root在第一行的。这里adm这个到第一行了。

2、对文件test1按数字排序

62d223981786ff99075a6e9908e4e145.png

注意符号和字母的行因为等于0所以排在前面

3、对passwd文件前三行按照第三列数字大小排序并输出结果。

head -n 3 /etc/passwd | sort -t “:” -k3 -n

c9531494567cf9f077d632f49b6968fa.png

(三)wc命令

wc命令用于统计文档的行数、字符数或词数。

选项:

-l :统计行数

-m:统计字符数

-w:统计词数

用法举例

我先新建一个测试文档,他的内容是下面这个

528d2e9ef28389c4adfca71932e79088.png

1、wc -l 统计行数

c16523442dfb082a980cd9d92d29bb02.png

2、wc -m统计字符数(注意末尾那个$表示换行的意思)

87ad192e81465103274a72e56902ac9d.png

3、wc -w统计词数

a76bd97f5a94d9f69634b45111384c36.png

看来应该是把只要是两个分隔符之间的东西就认为是一个word。这个word不是语言学上的word。

(四)uniq命令

uniq命令是用来去重的,他去的是两个连续行之间的重,那么你第一行和第三行内容重复的话,uniq是不去的,所以我们一般把这个命令和sort一起用,先排序再去重。注意结果是输出到屏幕中,不会去修改原始文件,除非你用重定向把原始文件内容修改掉。

选项:

-c 统计某一内容重复次数

用法举例:

1、排序1.txt 并去重显示,同时显示某一字符串重复次数。

e274c5ba4ae2f4814a529abf8cdfd9b6.png

(五)tee命令

tee命令用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin。tee - read from standard input and write to standard output and files,简单的说就是把数据重定向到给定文件和屏幕上。该命令一般跟在|管道符之后。

选项:

-a 追加,像>>追加重定向。

用法举例:

echo "i am learning linux" | tee 2.txt

3d74a0373e1d7bd3883732582f65f6f6.png

(六)tr命令

tr命令用于替换字符,从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出。

用法:tr [选项]... SET1 [SET2]

选项:

-d 删除某个字符,后面跟要删除的字符

-s删除重复的字符,注意是连续相同的字符

用法举例:

1、替换文字中的小写字母为大写字母

echo "HELLOWORLD" | tr '[A-Z]' '[a-z]'

e956d185520a1604ad47518eca632e7c.png

2、替换某个字符

cat 1.txt | tr '1' '@'

ffd8b6393f522fa445b1465bd81951ea.png

(七)split命令

split命令可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等。实际工作中比如你碰到一个10G的日志文件,这时你不做切割基本无法查看他,所以我们需要split他来查阅。

用法:split [选项]... [输入 [前缀]]

选项

-b 指定分割后每个文件大小,可以写成10KB、1.44MB等等

-l 指定多少行为一个分割文件

用法举例:

1、把一个文件拆成1000字节一个文件,并以test为前缀

split -b 1000 a.txt test

e2a2a4aac56c64908fe6b2f2e47572c4.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值