一、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  前边命令成功才会执行后边命令

Linux centos7 shell特殊符号、cut命令、sort_wc_uniq命令、tee_tr_split命令、shell特殊符号的更多相关文章

  1. shell特殊符号及cut、sort_wc_uniq、tee_tr_split命令 使用介绍

    第6周第2次课(4月24日) 课程内容: 8.10 shell特殊符号cut命令8.11 sort_wc_uniq命令8.12 tee_tr_split命令8.13 shell特殊符号下 扩展1. s ...

  2. shell特殊符号cut命令 sort_wc_uniq命令 tee_tr_split命令 shell特殊符号

    shell特殊符号cut命令 特殊符号 *  通配符,任意个任意字符 ? 任意一个字符 # 注释字符 \  脱义字符 c=\$a\$b echo  $c | 管道符 cat  1.txt |less ...

  3. Linux centos7 shell 介绍、 命令历史、命令补全和别名、通配符、输入输出重定向

    一.shell介绍 shell脚本是日常Linux系统管理工作中必不可少的,不会shell,就不是一个合格管理员. shell是系统跟计算机硬件交互使用的中间介质,一个系统工具.实际上在shell和计 ...

  4. 【Linux命令】文本文件编辑命令10个(cat、more、less、head、tail、tr、wc、stat、cut、diff)

    目录 cat查看文档 more可分页查看文档 less相比较more功能更强大 head查看文档的前N行 tail查看文档的后N行或试试刷新查看 tr替换文本字符 wc统计文本行数 stat查看文档存 ...

  5. linux shell 管道命令(pipe)使用及与shell重定向区别

    管道命令操作符是:”|”,它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandarderror 信息没有直接处理能力.然后,传递给下一个命令 ...

  6. LInux之Shell工具:Cut、Sed、Awk、Sort

    一. cut cut的工作就是"剪",具体的说就是在文件中负责剪切数据用的.cut 命令从文件的每一行剪切字节.字符和字段并将这些字节.字符和字段输出. 1.基本用法 cut [选 ...

  7. Linux命令行–基本的bash shell命令

    启动shell: /etc/passwd:包含系统用户账户列表以及每个用户的基本配置信息 每个条目有七个字段,每个字段用冒号隔开 用户名 用户密码 用户的系统UID 用户的系统GID 用户的全名 用户 ...

  8. Shell 命令--文件创建、搜索命令--总结自《Linux Shell 脚本攻略》

    (一)文件创建命令 1.touch命令 比如:touch abc命令在本地文件夹中创建了一个名为abc的空文件 2.cp命令 cp命令同意我们把一个文件的内容拷贝到同名或不同名的文件里,复制得到的文件 ...

  9. linux shell 和linux 命令的区别?windows shell 和 windows 命令呢?

    shell翻译成壳的意思,它是包裹在linux内核外层的,一个可通过一系列的linux命令对操作系统发出相关指令的人机界面. shell可以通过其条件语句和循环语句等,把一系列linux命令结合在一起 ...

  10. 《Linux命令行与shell脚本编程大全》- 读书笔记3 - 理解shell

    当用户登录终端的时候,通常会启动一个默认的交互式shell.系统究竟启动哪个shell,这取决于用户配置.一般这个shell都是/bin/shell.默认的系统shell(/bin/sh)用于系统sh ...

随机推荐

  1. PyQt5中Web操作与多线程定时器

    1.装载外部网页页面'''用web浏览器控件QWebEngineView控件显示网页PyQt5和Web的交互技术 同时使用python和Web开发程序,混合开发 Python+JavaScript+H ...

  2. fastdfs下载文件自定义文件名称

    fdfs 存储节点storage安装nginx,修改nginx配置文件 location /group1/M00/ { root /fdfs/storage/data; if ($arg_attnam ...

  3. GO面向接口

    Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口. 实例 实例 /* 定义接口 */ type interface_name ...

  4. 2016-2017学年第三次测试赛 习题E 林喵喵算术

    时间限制: 1 Sec  内存限制: 128 MB 提交: 70  解决: 25 提交统计讨论版 题目描述 给你两个八进制数,你需要在八进制计数法的情况下计算a-b. 如果结果为负数,你应该使用负号代 ...

  5. SQL Server 消息队列,处理程序错误

    SQL Server 消息队列,处理程序错误存储过程书写错误,会导致消息处理队列停用,此时只需将错误修正,再将队列处理状态启用即可. ALTER QUEUE OrdBomPurQty_ReivceQu ...

  6. SOAP1.1 VS SOAP1.2

    SOAP提升: 目前WebService的协议主要有SOAP1.1和1.2.两者的命名空间不同. 见下页对比 SOAP1.1版本与SOAP1.2版本在头信息上存在差异.SOAP1.1存在SOAPAct ...

  7. nginx 的提升多个小文件访问的性能模块

    阿里开源的第三方模块下载地址:https://github.com/alibaba/nginx-http-concat 下载模块 git clone https://github.com/alibab ...

  8. 在spring boot中使用jasypt对配置文件中的敏感字符串加密

    在spring boot的配置文件application.property(application.yml)文件中常常配置一些密码类的字符,如果用明文则很容易被盗用,可以使用jasypt在配置密码的地 ...

  9. 「SP10628 COT - Count on a tree」

    主席树的综合运用题. 前置芝士 可持久化线段树:其实就是主席树了. LCA:最近公共祖先,本题需要在\(\log_2N\)及以内的时间复杂度内解决这个问题. 具体做法 主席树维护每个点到根节点这一条链 ...

  10. 「Luogu P5494 【模板】线段树分裂」

    (因为没有认证,所以这道题就由Froggy上传) 线段树分裂用到的地方确实并不多,luogu上以前也没有这道模板题,所以就出了一道,实在是想不出怎么出模板了,所以这道题可能可以用一些其他的算法水过去. ...