一、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. fastdfs下载文件自定义文件名称

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

  2. C++ STL之栈stack和queue的使⽤

    写在最前面,本文摘录于柳神笔记: (1)栈 stack 在头⽂件 #include 中,是数据结构⾥⾯的栈-以下是常⽤⽤法: (2)队列 queue 在头⽂件 #include 中,是数据结构⾥⾯的队 ...

  3. Mac下MyEclipse安装及破解

    一.安装MyEclipse 去 官网下载MyEclipse ,我这里下载的是最新版MyEclipse 2017 CI 5,安装之后不要立即打开,不然会导致后面破解失败. 二.破解 1.下载破解文件,亲 ...

  4. Android Studio如何更新support repository

    转自: http://blog.csdn.net/sinat_29696083/article/details/70256377 刚进新公司,熟悉新业务中.老大叫我看看关于ConstraintLayo ...

  5. Python笔记⑤爬虫

    爬虫的前奏 # 爬虫前奏 # 明确目的 # 找到数据对应的网页 # 分析网页的结果找到数据所在的标签位置 # 模拟HTTP请求,向服务器发送这个请求,获取到服务器返回给我们的HTML # 用正则表达式 ...

  6. 面试问题之——给你图片的url,你能知道它所占的字节空间吗?

    从一个需求说起 这标题起得有点标题党,实际情况是我最近在做一个公司内部工具时,遇到了这么一个需求,给定一个静态资源站点上某张图片的url(比如https://a.xxxcdn.com/demo.jpg ...

  7. 每个 JavaScript 开发者都该懂的 Unicode

    英文原文标题:what-every-javascript-developer-should-know-about-unicode (译者注:本文含有Unicode辅助平面的特殊字符,部分浏览器可能无法 ...

  8. Redis数据库在windows系统下的安装及使用

    1.下载 Redis官方是不支持windows的,但是Microsoft Open Tech group 在 GitHub上开发了一个Win64的版本,下载地址:https://github.com/ ...

  9. 后台框架 FastAdmin V1.0.0.20200228 发布,为疫情防控作贡献

    后台框架 FastAdmin V1.0.0.20200228 发布,为疫情防控作贡献 https://www.oschina.net/news/113694/fastadmin-1-20200228- ...

  10. git——解决每次拉取、提交代码时都需要输入用户名和密码

    在开发中我们经常需要通过 git 对代码进行拉取和提交,频繁地输入用户名和密码会带来很大的麻烦,下面就介绍一下解决git每次拉取.提交代码时都需要输入用户名和密码的方法. 很简单,只要两步骤就能实现: ...