shell特殊符号,cut、sort、wc、uniq、tee、tr、split命令

本文涉及的产品
转发路由器TR,750小时连接 100GB跨地域
简介:

*代表0个或多个任意字符

[root@localhost ~]# ls *txt

11.txt  1.txt  22.txt  2.txt  aa.txt  a.txt  


?只代表一个任意字符

不管是数字还是字母,只要是一个字符的都能匹配出来

[root@localhost ~]# ls ?.txt

1.txt  2.txt  a.txt  b.txt

[root@localhost ~]# ls ?txt

ls: 无法访问?txt: 没有那个文件或目录


注释符号#,这个符号后面的内容都会被忽略

[root@localhost ~]# a=123 #456

[root@localhost ~]# echo $a

123


脱义字符 \,这个字符会将后面的特殊符号(如*)还原为普通字符。

[root@localhost ~]# ls -ld test*

drwxr-xr-x. 2 root root 6 11月 17 14:06 test

[root@localhost ~]# ls -ld test\*

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


管道符 | ,它的作用是将前面命令的输出作为后面命令的输入。并不是所有命令都可以用在管道符中,常用命令:cat、less、head、tail、grep、cut、sort、wc、uniq、tr、split、sed、awk等。

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

1


cut命令

cut命令用来截取某一个字段。

格式为:cut -d‘分隔符 ’-[fc]n,n为数字。

-d:后面跟分隔符,分隔符要用单引号引起来。

-f:后面接的是第几个区块

-c:后面接的是第几个字符

(-c不需要和-f,-d需要-f)


[root@localhost ~]# head -5 /etc/passwd | cut -d ':' -f 1-4

root:x:0:0

bin:x:1:1

daemon:x:2:2

adm:x:3:4

lp:x:4:7

-d后的冒号为分隔符,-f 1-4表示截取1-4段


[root@localhost ~]# head -5 /etc/passwd | cut -c 1-4

root

bin:

daem

adm:

lp:x

-c后可以是1个数字,也可以是区间1-4,还可以是多个数字n1,n2,n3(用逗号隔开)。

[root@localhost ~]# head -5 /etc/passwd | cut -c 1,6,8

rx0

b::

dnx

a::

l47



sort命令

sort命令用作排序。

格式为:sort -[-t 分隔符] [-kn1,n2] [-nru] n1,n2为数字。

-t:后面跟分割字符,作用和cut -d一样。

-n:表示使用纯数字排序。

-r:表示反向排序。

-u:表示去除重复。

-kn1,n2:表示n1-n2区间排序,也可以只写-kn1。


如果sort不加任何选项,则凶首字符向后一次按ASCII码值进行比较,最后将它们按升序输出。

[root@localhost ~]# head -n 5 /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

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

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


-t选项后跟分隔符,-k选项后跟一个数字表示对第几个区域的字符串排序,-n选项则表示使用纯数字排序。

[root@localhost ~]# head -n 5 /etc/passwd | sort -t ':' -k 3 -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


-k选项后面跟数字n1,n2表示对n1和n2这个区域内的字符串排序,-r反向排序。

[root@localhost ~]# head -n 5 /etc/passwd | sort -t ':' -k 3,5 -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



wc命令

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

-l 统计行数

-w 统计词数

-m 统计字符数

wc后不跟任何参数直接跟文档则会把行数、词数、字符数依次输出。

[root@localhost ~]# wc /etc/passwd

 24   44 1128 /etc/passwd

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

24 /etc/passwd

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

44 /etc/passwd

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

1128 /etc/passwd



uniq命令

uniq命令用来删除重复行,常用选项-c,表示统计重复的行数,并把行数写在前面。

使用uniq前,必须要先给文件排序(sort),否则不管用。

855ac6ab2e1b7e8db6ad0f155bb02c2e.png


tee命令

tee命令后根文件名,起作用类似于输出重定向(>),它还能把写入后面所跟文件时,还显示在屏幕上。常用于管道符 | 后。

-a:向文件中重定向时使用追加模式

3e236bf86520261a3bba15cb3b8c4e62.png

使用-a参数。追加。

ad9ba12937b87690a89b473af8769537.png


tr命令

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

-d 表示删除某个字符。


[root@localhost ~]# echo "huangdalinux" | tr 'a' 'A'

huAngdAlinux  #将字符串中的a替换成A

[root@localhost ~]# echo "huangdalinux" | tr 'an' 'AN'

huANgdAliNux  #将字符串中的a和n替换成A和N

[root@localhost ~]# echo "huangdalinux" | tr 'a-z' 'A-Z'

HUANGDALINUX  #将字符串中的小写字母替换成大写字母


使用-d参数,删除字符串中的某个字符

[root@localhost ~]# echo "huangdalinux" | tr -d 'a'

hungdlinux

[root@localhost ~]# echo "huangdalinux" | tr -d 'a,u'

hngdlinx

s

plit命令

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

-b:表示依据大小来分割文档,默认单位为byte。

6036ba9d73824195df9e8c7bed891411.png

6f31d9ae1d8988b865fe011d9b6bc64f.png

spacer.gif

-l:表示依据行数来分割文档。

spacer.gif4df51084bee1ea5427abec3cdb16fe3b.png

指定目标文件名。

spacer.gif529a4e34f89593dd20803917b09f926a.png


特殊符号$,用作变量前面的标识符。


特殊符号;。如果想在一行中运行两个或两个以上的命令,需要再命令之间加符号;。


特殊符号~。表示用户的家目录,root用户为/root,普通用户为/home/用户名/


特殊符号&。可以把一条命令放在后台执行。接在命令后。


输出重定向>,输出重定向追加>>,错误重定向2>,错误重定向追加2>>, 正确和错误输出都重定向&>.正确和错误输出都重定向追加&>>


中括号[],中括号内为字符组合,代表字符组合中的任意一个,可以是一个范围。


特殊符号&&和||

command1;command2

使用;时,不管command1是否执行成功,都会执行command2。

command1&&command2

使用&&时,只有command1执行成功,才会执行command2。

command1||command2

使用||时,command1执行成功后则command2不执行,否则执行command2,即command1和command2中总有一条命令会执行。




本文转自 豆渣锅 51CTO博客,原文链接:http://blog.51cto.com/754599082/1982863
相关文章
|
30天前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
60 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
1月前
|
Shell 知识图谱
Shell printf 命令
10月更文挑战第3天
17 1
|
1月前
|
Shell PHP
Shell echo命令
10月更文挑战第3天
20 0
|
1月前
|
JSON Java Shell
Dockerfile中RUN、CMD、ENTRYPOINT、SHELL命令的区别
理解这些指令的差异和应用场景,有助于构建高效、灵活且易于管理的Docker镜像。在实际应用中,根据需要选择合适的指令,可以有效地控制镜像构建和容器运行的行为。
130 0
|
25天前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
68 1
|
11天前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
33 2
6种方法打造出色的Shell脚本
|
2天前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
12 2
|
16天前
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
40 6
|
12天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。