65.shell特殊符号与和cut,sort,wc,uniq,tee,tr,split命令

简介:

liunx的特殊符号

  • 代表字母或者数字 多个 
    ? 任意一个字符
    "#" 注释
    \ 脱义字符
    | 管道符

1.* 代表任意个任意字符或者数字

[root@localhost /]# ls *.txt
1.txt
[root@localhost /]#

2.?任意一个字符

[root@localhost /]# ls ?.txt
1.txt
[root@localhost /]#

3.注释

[root@localhost /]# #11111
[root@localhost /]# 
PS:意思就代表着说明

4、\脱义

[root@localhost /]# ls .txt
1.txt
[root@localhost /]# ls *.txt
ls: 无法访问
.txt: 没有那个文件或目录
[root@localhost /]#

5.管道符

[root@localhost /]# cat /etc/passwd|grep root
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost /]#

cut命令

命令类型

文件管理

命令描述

用来截取某一个字段来显示出来

命令语法

cut 【参数】

参数

-d, --delimiter=分界符 使用指定分界符代替制表符作为区域分界
-c, --characters=列表 只选中指定的这些字符
-f :指定某一段

案例:查看/etc/passwd文件 以:为分割符 显示 第一段

[root@localhost /]# cat /etc/passwd|head |cut -d ":" -f 1
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
[root@localhost /]#

sort命令

命令描述

此命令就是用来针对文档进行排序的

命令语法

sort [参数] [文件]

参数

-t 分割符:和cut -d 一样
-n :使用纯数字排序
-r :方向排序
-u :去重复
-k :-kn1,n2 :由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序

案例一:不加任何参数,会用ASCII码值进行比较,最后将他们按升序输出。

[root@localhost /]# 
[root@localhost /]# head /etc/passwd|sort 
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@localhost /]#

WC命令

命令描述

用于统计

命令语法

wc [参数]

参数

-l:统计行数
-m:统计字符数
-w:统计词数

案例

[root@localhost /]# cat /etc/passwd |wc -l -m -w
19 29 883
[root@localhost /]# cat /etc/passwd |wc
19 29 883
[root@localhost /]#

PS:其实不需要加参数的

unip命令

命令描述

用来删除重复的行

命令语法

xxxxx|unip
参数
-c 统计重复的行数

案例

[root@localhost ~]# uniq testb.txt
111
222
111
333
[root@localhost ~]# sort testb.txt |uniq
111
222
333
[root@localhost ~]# sort testb.txt |uniq -c
2 111
1 222
1 333

tee命令

tee后面跟文件名,其作用类似于重定向>,比重定向多一个功能,把文件写入后面所跟的文件时并显示在屏幕上,通常用于管道符 |后。

案例

#echo “aaaaaaaaaaaaaaa” |tee testb.txt
aaaaaaaaaaaaaaa
#cat testb.txt
aaaaaaaaaaaaaaa

命令tr

tr用于替换字符,常用来处理文档中出现的特殊符号,如DOS文档中出现的符号 ^M 。
选项:

参数

-d 表示删除某个字符,后面跟要删除的字符。
-s 表示删除重复的字符。
把小写字母变成大写字母,如tr’[a-z]’’[A-Z]’:

案例

#head –n2 /etc/passwd |tr’[a-z]’’[A-Z]’
ROOT:X:O:O:ROOT:/ROOT:/BIN/BASH
BIN:X:11:BIN:/BIN:/SBIN/NOLOGIN
还可以替换一个字符:
#grep ‘root’ /etc/passwd |tr ‘r’ ‘R’ 
Root:x:o:o:Root:/Root:/bin/bash
opeRatoR:x:11:0:opeRatoR:/Root:/sbin/nologin

命令split

命令描述

split用于切割文档,常用的选项为-b和-l。

参数

-b 表示依据大小来分割文档,单位为byte
-l 表示依据行数来分割文档

案例

#split –b 500 passwd
#ls
passwd xaa xab xac xad xae

shell一些其他特殊符号

1、特殊符号$

$可以用作变量前面的标识符,还可以和!结合使用。

#cd ..
#ls testb.txt
testb.txt
#ls !$ 
ls testb.txt
testb.txt
!$表示上条命令的最后一个变量,本例中上条命令最后是testb.txt,那么在当前命令下输入!$则表示testb.txt。

2、特殊符号;

在一行命令中运行两个或两个以上的命令,需要在命令之间加符号;。

#mkdir testb.txt ; touch test1.txt ; touch test2.txt ; ls –d test* 创建目录、创建文件、列出目录

3、特殊符号~

符号~代表用户的家目录,root用户的家目录是/root,普通用户的家目录是/home/username。

4、特殊符号&

把一条命令放到后台执行,则需要加上符号&,它通常用于命令运行时间较长的情况。比如,可以用在sleep后,如下所示:

#sleep 30 &
[1]3008
#jobs
[1]+ 运行中 sleep 30 &

5、重定向符号>、>>、2>和2>>

和>>分别表示取代和追加的意思。当我们运行一个命令报错时,报错信息会输出到当前屏幕。如果想重定向到一个文本,则要用重定向符号2>或者2>>,它们分别表示错误重定向和错误追加重定向。
#ls aaaa
ls:无法访问aaaa:没有那个文件或目录
#ls aaaa 2> /tmp/error
#cat /tmp/error
ls:无法访问aaaa:没有那个文件或目录
#ls aaaa 2>> /tmp/error
#cat /tmp/error
ls:无法访问aaaa:没有那个文件或目录
ls:无法访问aaaa:没有那个文件或目录

6、中括号[ ]

中括号内为字符组合,代表字符组合中的任意一个,还可以表示一个范围(1-3,a-z)。

#cd /tmp/10
#ls –d test*
test1.txt test2.txt testb.txt testdir
#ls –d test[1-3].txt
test1.txt test2.txt
#ls –d test[12b].txt
test1.txt test2.txt testb.txt
#ls –d test[1-9].txt
test1.txt test2.txt 
#ls –d test[1-9a-z].txt
test1.txt test2.txt testb.txt

7、特殊符号&& ||

在上面刚刚提到了分号,用于多条命令间的分隔符。另外还有两个可以用于多条命令中间的特殊符号,那就是 “&&” 和 “||” 下面把这几种情况全列出:

command1 ; command2
command1 && command2
command1 || command2
使用 ”;” 时,不管command1是否执行成功都会执行command2;
使用 “&&” 时,只有command1执行成功后,command2才会执行,否则command2不执行;
使用 “||” 时,command1执行成功后command2 不执行,否则去执行command2,总之command1和command2总有一条命令会执行。

本文转自 闪电王 51CTO博客,原文链接:http://blog.51cto.com/sdwaqw/2060908



相关文章
|
数据采集 Shell Linux
【Shell 命令集合 文档编辑】Linux 字符转换或删除 tr 命令使用指南
【Shell 命令集合 文档编辑】Linux 字符转换或删除 tr 命令使用指南
568 0
|
搜索推荐 算法 Java
sort-06-shell sort 希尔排序算法详解
这是一个关于排序算法的系列文章摘要。文章汇总了各种排序算法,包括冒泡排序、快速排序、选择排序、堆排序、插入排序、希尔排序、归并排序、计数排序、桶排序以及大文件外部排序。特别地,希尔排序是一种改进的插入排序,通过使用不同的步长对元素进行分组排序,以提高效率。算法最终以较小的步长进行排序,接近线性时间复杂度。文章还提供了Java代码实现,并举例说明了希尔排序的过程。所有内容可在开源项目[https://github.com/houbb/sort](https://github.com/houbb/sort)中找到。
|
搜索推荐 算法 Shell
【Shell 命令集合 文档编辑 】Linux 排序命令 sort命令使用指南
【Shell 命令集合 文档编辑 】Linux 排序命令 sort命令使用指南
487 0
|
7月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
653 10
|
7月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
675 3
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
10月前
|
Shell
Shell脚本循环控制:shift、continue、break、exit指令
使用这些命令可以让你的Shell脚本像有生命一样动起来。正确使用它们,你的脚本就能像一场精心编排的舞蹈剧目,既有旋律的起伏,也有节奏的跳跃,最终以一场惊艳的表演结束。每一个动作、每一个转折点,都准确、优雅地完成所需要表达的逻辑。如此,你的脚本不只是冰冷的代码,它透过终端的界面,跳着有节奏的舞蹈,走进观众——使用者的心中。
360 60
|
7月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。
|
9月前
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
1099 1