1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Linux centos7 shell特殊符号 cut命令 sort_wc_uniq命令 tee_tr_split命令 shell特殊符号...

Linux centos7 shell特殊符号 cut命令 sort_wc_uniq命令 tee_tr_split命令 shell特殊符号...

时间:2021-11-21 23:21:14

相关推荐

Linux centos7 shell特殊符号 cut命令 sort_wc_uniq命令 tee_tr_split命令 shell特殊符号...

一、shell特殊符号、cut命令

*任意字符

[root@davery ~]# ls /tmp/*.txt

/tmp/1.txt /tmp/2.txt /tmp/q.txt

[root@davery ~]#

?任意一个字符

[root@davery ~]# mkdir /tmp/test1

[root@davery ~]# touch /tmp/test1

[root@davery ~]# ls -d /tmp/test?

/tmp/test1

[root@davery ~]#

#注释字符

[root@davery ~]# sdx=233 #assa

[root@davery ~]# echo $sdx

233

[root@davery ~]#

\脱义字符

[root@davery ~]# ls -d test\*

ls: 无法访问test*: 没有那个文件或目录

[root@davery ~]#

|管道符,管道后边可用多种命令

[root@davery ~]# cat 1.txt |wc -l

cut用来截取一个字段,格式 cut -d '分隔字符' [-cf] n n代表数字

-d:后边跟分隔字符,分隔字符要用单引号括起来

-c:后边接第几个字符

-f:后边接第几个区块

[root@davery ~]#cat /etc/passwd |head 打印出文件

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

[root@davery ~]#

[root@davery ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1截取前2行第1个

root

bin

[root@davery ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1,2截取前2行第1、2个

root:x

bin:x

[root@davery ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1-3截取前2行第-到3个

root:x:0

bin:x:1

[root@davery ~]#

[root@davery ~]#cat /etc/passwd |head -2 |cut -c 4截取前2行指定第4个字符

t

:

[root@davery ~]#

二、sort、wc、uniq命令

sort排序命令,格式sort [-t 分隔符] [-kn1,n2] [-nru] n1、n2为数字。

-t 后边跟分隔符

-n表示用纯数字排序

-r表示反向排序

-u表示去重复

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

[root@davery ~]# sort /etc/passwd |head -2 |cut -c 4

:

:

[root@davery ~]# sort /etc/passwd

adm:x:3:4:adm:/var/adm:/sbin/nologin

bin:x:1:1:bin:/bin:/sbin/nologin

chrony:x:998:996::/var/lib/chrony:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

davery:x:1000:1003::/home/davery:/bin/bash

dbus:x:81:81:System message bus:/:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

halt:x:7:0:halt:/sbin:/sbin/halt

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

polkitd:x:999:997:User for polkitd:/:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

root:x:0:0:root:/root:/bin/bash

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

uaer1:x:1001:1004::/home/uaer1:/bin/bash

user2:x:1002:1005::/home/user2:/bin/bash

user3:x:1006:1006::/home/user3:/bin/bash

user4:x:1007:898::/home/user4:/bin/bash

user6:x:1008:898::/home/user6:/bin/bash

默认按照abcd...排序

[root@davery ~]# head /etc/passwd >> 0.txt

[root@davery ~]# sort 0.txt

adm:x:3:4:adm:/var/adm:/sbin/nologin

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

halt:x:7:0:halt:/sbin:/sbin/halt

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

root:x:0:0:root:/root:/bin/bash

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

sync:x:5:0:sync:/sbin:/bin/sync

[root@davery ~]#

[root@davery ~]#head -n5 /etc/passwd|sort从首字母符向后依次按照ASCII码值进行比较,最后按照升序排列

adm:x:3:4:adm:/var/adm:/sbin/nologin

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

root:x:0:0:root:/root:/bin/bash

[root@davery ~]#

[root@davery ~]#head -n5 /etc/passwd |sort -t: -k3 -n 第三个区块按照数字升序排列

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[root@davery ~]# ^C

[root@davery ~]#head -n5 /etc/passwd |sort -t: -k3 -n -r第三个区块按照数字反向排列

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

bin:x:1:1:bin:/bin:/sbin/nologin

root:x:0:0:root:/root:/bin/bash

[root@davery ~]#

[root@davery ~]# sort -n 0.txt从首字母符向后依次按照ASCII码值进行比较,最后按照升序排列

adm:x:3:4:adm:/var/adm:/sbin/nologin

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

halt:x:7:0:halt:/sbin:/sbin/halt

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

root:x:0:0:root:/root:/bin/bash

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

sync:x:5:0:sync:/sbin:/bin/sync

[root@davery ~]#

[root@davery ~]#sort -nr 0.txt 反向排序

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

halt:x:7:0:halt:/sbin:/sbin/halt

daemon:x:2:2:daemon:/sbin:/sbin/nologin

bin:x:1:1:bin:/bin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

wc命令

用于统计文档的行数、字符数或词数

-l统计行数

-m统计字符

-w统计词数

[root@davery ~]# wc -l /etc/passwd

25 /etc/passwd

[root@davery ~]# wc -m /etc/passwd

1092 /etc/passwd

[root@davery ~]# wc -w /etc/passwd

33 /etc/passwd

[root@davery ~]#

uniq命令,用来删除重复的行。

-c 统计重复的行数

[root@davery ~]# vi 0.txt

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

ioperator:x:11:0:operator:/root:/sbin/nologin

21213

123213

222

222

222

[root@davery ~]#

[root@davery ~]#uniq 0.txt 222重复的就被删除了

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

ioperator:x:11:0:operator:/root:/sbin/nologin

21213

123213

222

[root@davery ~]#

[root@davery ~]# sort 0.txt |uniq -c

1

1 123213

1 21213

3 222

1 adm:x:3:4:adm:/var/adm:/sbin/nologin

1 bin:x:1:1:bin:/bin:/sbin/nologin

1 daemon:x:2:2:daemon:/sbin:/sbin/nologin

1 halt:x:7:0:halt:/sbin:/sbin/halt

1 ioperator:x:11:0:operator:/root:/sbin/nologin

1 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

1 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

1 root:x:0:0:root:/root:/bin/bash

1 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

1 sync:x:5:0:sync:/sbin:/bin/sync

[root@davery ~]#

三、tee、tr、split命令

tee后边跟文件名,作用类似于重定向>,但它比重定向多一个功能,即把文件写入后面所跟的文件时,还会做显示。

[root@davery ~]#sort 0.txt |uniq -c |tee 2.txt 把前面的东西重定向到2.txt并显示出来

1

1 123213

1 21213

3 222

1 adm:x:3:4:adm:/var/adm:/sbin/nologin

1 bin:x:1:1:bin:/bin:/sbin/nologin

1 daemon:x:2:2:daemon:/sbin:/sbin/nologin

1 halt:x:7:0:halt:/sbin:/sbin/halt

1 ioperator:x:11:0:operator:/root:/sbin/nologin

1 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

1 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

1 root:x:0:0:root:/root:/bin/bash

1 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

1 sync:x:5:0:sync:/sbin:/bin/sync

[root@davery ~]# cat 2.txt

1

1 123213

1 21213

3 222

1 adm:x:3:4:adm:/var/adm:/sbin/nologin

1 bin:x:1:1:bin:/bin:/sbin/nologin

1 daemon:x:2:2:daemon:/sbin:/sbin/nologin

1 halt:x:7:0:halt:/sbin:/sbin/halt

1 ioperator:x:11:0:operator:/root:/sbin/nologin

1 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

1 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

1 root:x:0:0:root:/root:/bin/bash

1 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

1 sync:x:5:0:sync:/sbin:/bin/sync

[root@davery ~]#

tr命令,用于替换字符,常用来处理文档中出现的特殊符号,

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

-s 删除重复的字符

[root@davery ~]# echo "davery" |tr '[d]' '[D]'只跟换d为D

Davery

[root@davery ~]#

[root@davery ~]# echo "davery" |tr 'd' 'D'只跟换d为D

Davery

[root@davery ~]#

[root@davery ~]# echo "davery" |tr '[a-z]' '[A-Z]'全部换大写

DAVERY

[root@davery ~]#

[root@davery ~]# echo "davery" |tr '[a-z]' '[1]'

]1]]]]

[root@davery ~]# echo "davery" |tr '[a-z]' '1'变为数字1

111111

[root@davery ~]#

split命令

用于切割文件

-b表示根据大小来分隔文档,默认单位为byte,还有M k

-l根据行数来分隔文档

[root@davery ~]# find /etc/ -type f -name "*conf" -exec cat {} >> 0.txt \;

[root@davery ~]# ls

0.tx~ 0.txt.gz 1.txt 3.txt 5036 anaconda-ks.cfg.01 a.txt davery~ uear1

0.txt 0_txt.swp 2.txt 4913 5159 anaconda-ks.cfg.1 davery make user1

[root@davery ~]#

[root@davery ~]# du -sh 0.txt

212K 0.txt

[root@davery ~]#

0.tx~ 0.txt.gz 1.txt 3.txt 5036 anaconda-ks.cfg.01 a.txt davery~ test user1

0.txt 0_txt.swp 2.txt 4913 5159 anaconda-ks.cfg.1 davery make uear1

[root@davery ~]#split -b 1000 0.txt

[root@davery ~]# ls

0.tx~ a.txt xaf xar xbd xbp xcb xcn xcz xdl xdx xej xev xfh xft xgf xgr xhd xhp xib

0.txt davery xag xas xbe xbq xcc xco xda xdm xdy xek xew xfi xfu xgg xgs xhe xhq xic

0.txt.gz davery~ xah xat xbf xbr xcd xcp xdb xdn xdz xel xex xfj xfv xgh xgt xhf xhr xid

0_txt.swp make xai xau xbg xbs xce xcq xdc xdo xea xem xey xfk xfw xgi xgu xhg xhs xie

1.txt test xaj xav xbh xbt xcf xcr xdd xdp xeb xen xez xfl xfx xgj xgv xhh xht xif

2.txt uear1 xak xaw xbi xbu xcg xcs xde xdq xec xeo xfa xfm xfy xgk xgw xhi xhu xig

3.txt user1 xal xax xbj xbv xch xct xdf xdr xed xep xfb xfn xfz xgl xgx xhj xhv xih

4913 xaa xam xay xbk xbw xci xcu xdg xds xee xeq xfc xfo xga xgm xgy xhk xhw xii

5036 xab xan xaz xbl xbx xcj xcv xdh xdt xef xer xfd xfp xgb xgn xgz xhl xhx xij

5159 xac xao xba xbm xby xck xcw xdi xdu xeg xes xfe xfq xgc xgo xha xhm xhy

anaconda-ks.cfg.01 xad xap xbb xbn xbz xcl xcx xdj xdv xeh xet xff xfr xgd xgp xhb xhn xhz

anaconda-ks.cfg.1 xae xaq xbc xbo xca xcm xcy xdk xdw xei xeu xfg xfs xge xgq xhc xho xia

[root@davery ~]#

split -b 1000 0.txt abc 指定名字

四、shell特殊符号

$变量前面的标识符,结合!来使用

[root@davery ~]# ls 0.txt

0.txt

[root@davery ~]# !$

0.txt

;符号如果想在一行执行多个命令,则使用;分隔

[root@davery ~]# mkdir test1 ; touch 0.1txt ; touch 0.2txt ; touch 0.3txt

~ 表示用户家的目录,root用户的家目录/root,普通用户/home/username

[root@davery ~]# cd ~

[root@davery ~]# pwd

/root

[root@davery ~]# su davery

[davery@davery root]$ cd ~

[davery@davery ~]$ pwd

/home/davery

[davery@davery ~]$

&把命令放到后台执行需要加&

[root@davery /]# sleep 23 &

[1] 2606

[root@davery /]# jobs

[1]+ 运行中 sleep 23 &

[root@davery /]#

重定向符号

>取代 、>>追加 、2>错误重定向 、2>>错误重定向追加

[ ]代表字符组合中的任意一个[0-9],[a-z A-Z],[abc]

&&和||

[root@davery /]# ls 0.txt || wc -l 2.txt 表示或,两个命令其中一个能执行成就行

[root@davery /]# ls 0.txt && wc -l 2.txt 前边命令成功才会执行后边命令

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。