Linux中管道及相关配套命令

1.echo命令
用途:在屏幕上显示一段文字或指定内容。
格式:echo [-n] 字符串
-n\没有换行符
-e\加一些功能
echo_detail.txt文档 知道即可,不用记住,用时查找即可
在这里插入图片描述
linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法

echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。
该命令的一般格式为: echo [ -n ] “字符串”
其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。但是为了减少以后编写脚本的出错机率,统一加上引号。

功能说明:显示文字。
语   法:echo [-ne][字符串]或 echo [–help][–version]
补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
参数:
-n 不要在最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般
文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
–help 显示帮助
–version 显示版本信息

echo显示带颜色,需要使用参数-e
格式如下:
echo -e “\033[字背景颜色;文字颜色m字符串\033[0m”
例如:
echo -e “\033[41;37m TonyZhang \033[0m”
其中41的位置代表底色, 37的位置是代表字的颜色
注:
1、字背景颜色和文字颜色之间是英文的“""”
2、文字颜色后面有个m
3、字符串前后可以没有空格,如果有的话,输出也是同样有空格
下面看几个例子:
echo -e “\033[30m 黑色字 \033[0m”
echo -e “\033[31m 红色字 \033[0m”
echo -e “\033[32m 绿色字 \033[0m”
echo -e “\033[33m 黄色字 \033[0m”
echo -e “\033[34m 蓝色字 \033[0m”
echo -e “\033[35m 紫色字 \033[0m”
echo -e “\033[36m 天蓝字 \033[0m”
echo -e “\033[37m 白色字 \033[0m”
echo -e “\033[40;37m 黑底白字 \033[0m”
echo -e “\033[41;37m 红底白字 \033[0m”
echo -e “\033[42;37m 绿底白字 \033[0m”
echo -e “\033[43;37m 黄底白字 \033[0m”
echo -e “\033[44;37m 蓝底白字 \033[0m”
echo -e “\033[45;37m 紫底白字 \033[0m”
echo -e “\033[46;37m 天蓝底白字 \033[0m”
echo -e “\033[47;30m 白底黑字 \033[0m”
控制选项说明 :
\33[0m 关闭所有属性
\33[1m 设置高亮度
\33[4m 下划线
\33[5m 闪烁
\33[7m 反显
\33[8m 消隐
\33[30m – \33[37m 设置前景色
\33[40m – \33[47m 设置背景色
\33[nA 光标上移n行
\33[nB 光标下移n行
\33[nC 光标右移n行
\33[nD 光标左移n行
\33[y;xH设置光标位置
\33[2J 清屏
\33[K 清除从光标到行尾的内容
\33[s 保存光标位置
\33[u 恢复光标位置
\33[?25l 隐藏光标
\33[?25h 显示光标

2.grep数据提取程序
用途:在文件中查找并显示包含指定字符串的行
格式:grep [选项]… 模式 目标文件
-i:查找时忽略大小写(Linux系统区分大小写,敏感的)
-v:反转查找,输出与模式不相符的行
-w:按整字查找(abc123是一个字,字母数字下划线都是一个字,其他不是)
-n:显示符合模式要求的行号
-r:递归搜索所有文件
模式
^….:以什么开头
……$:以什么结尾
例如:
a.grep “abc” a.txt
b.Grep “.*” a.txt
c.grep “^a” a.txt
d.

3.管道操作符号“|”
3.1连接左右两个命令,将左侧的命令的标准输出,作为右侧命令的标准输入
格式:cmd1 | cmd2 [… | cmdn]
head -5 /etc/passwd | tail -1
3.2用grep 过滤输出
ls –l /etc | grep pass
3.3管道和标准错误
find /etc –name “p*” | grep passwd
find /etc –name “p*” | grep passwd > /tmp/aa
find /etc –name “p*” | grep passwd 2> /tmp/aa
find /etc –name “p*” | grep passwd &> /tmp/aa
find /etc –name “p*” 2>/dev/null | grep passwd\错误的屏蔽了
使用管道的前提
a.左边的命令要有标准输出
b.右边的命令要支持标准输入
注意:
a.cat aa bb\显示aa,bb文件内容
b.;无条件连接两个命令
下列哪些命令可以同时显示出aa和bb两个文件的内容
A.cat aa | cat bb
B.cat aa ; bb
C.cat aa ; cat > bb
D.cat < aa ; echo bb
E.cat aa bb | cat
F.cat aa bb > abc
G.cat < aa ; cat < bb
H.cat aa bb > /dev/stdout
I.cat aa bb > /dev/stderr
E.G.H.I
4.xargs(一般配合管道使用 )
用途:1.将参数列表转换成小块分段传递给其他命令,分批转换
2.读入stdin的数据转换为参数添加到命令行中,让一些不支持管道的命令可以使用管道
例如:
a.
在这里插入图片描述
b.Find . -name “a*” | xargs ls -l
5.seq
用途:打印出一串有序的数字
格式:seq [选项] 数字范围
-s:指定分隔符,默认分隔符为换行
-w:指定同等宽度
例如:
1.Seq 10
2.Seq 5 10
3.Seq 5 2 10
4.seq 10 5
5.seq 10 -1 5
6.seq -s “+” 100
7.seq -s “+” 100 | bc
8.seq -s “*” 100 | bc
在这里插入图片描述
6.tr命令
字符转换工具
不能直接对文件操作
1.使用tr转换字符
tr SET1 SET2 \前后数量要一致
用SET2中的字符替换掉SET1中同一位置的字符
例如:
a.echo 123456 | tr 345 abc
b…tr 123 abc < aa\不会改变aa文件内容
c.tr ‘[a-z]’ ‘[A-Z]’ < /etc/hosts
2.使用tr删除字符
tr -d SET
删除与SET相同的字符
例如:
a.echo 123456 | tr -d 345
b… tr -d '[0-9]’ < /etc/hosts
c…echo “Tom, I hear a pig!” | tr -d ‘[a-z]’
3.使用tr压缩字符
tr -s SET
将连续相同的字符压缩成一个字符
例如:
a.echo 112233444555666 | tr -s 345
b.tr -s SET1 SET2 \先替换为SET2再压缩
例如:
a.echo 112233444555666 | tr -s 345 abc
b.echo 112233444555666 | tr 345 abc | tr -s abc
7.sort命令:排序
默认按每行的第一个字符排序
-n:按整数进行排序
-r:递减排序
例如:
a.sort 文件
b.Sort -n 文件
c.Sort -r 文件
d.Sort -r -n 文件
指定排序键
指定按哪一列数据进行排序
-k:指定哪一列为排序键,要有分隔符
例如:
a.cat tt | sort -n -k4
指定字段分隔符
-t:指定字段分割符(默认是空格)
例如:
1.sort -t: -n -k3 /etc/passwd
2.sort -t: -n -k3 /etc/passwd | column -t -s “:”

8.uniq命令(行)
删除经过排序后的数据的重复记录
通常和sort连用
例如:sort -n tt | uniq
数据的实例统计
-c:显示文件中每行连续出现的次数
例如:cat tt | uniq -c
-u:只显示不重复的行
例如:cat tt | uniq –u
-d:只显示重复的行
例如:cat tt | uniq -d
9.cut命令:从文本文件或者文本流中提取文本列
cut -选项 提取范围 文本文件
常见选项
-c:从指定提取范围中提取字符
-f:从指定提取范围中提取字段
-b:字节(一个字母一个字节,中文有的2,有的3个字节)
提取范围
n:第n项
n-:第n项到行尾
-m:行首到第m项
n,m:第n项和第m项
n-m:第n项到第m项

cut -c命令
ls -l | cut -c 10
who | cut -c 20-40
cut -c -10 /etc/passwd

cut -f命令
-d:指定分隔符默认是Tab
cut -d “:” -f 1,7 /etc/passwd
who | cut -d ’ ’ -f1,6

练习
1.只显示/etc/fstab文件的第三行 head -3 /etc/fstab | tail -1
2.将/etc/fstab文件的第6行,保存到/tmp/a.txt head -6 /etc/fstab | tail -1 > /tmp/a.txt
3.将/etc/fstab文件的第2和3行,追加保存到/tmp/a.txt head -3 /etc/fstab | tail -2 >> /tmp/a.txt
4.只显示/etc/fstab文件的第三列 cut -c 3 /etc/fstab
5.用du -a只显示/boot目录下对象的占用空间,并按由小到大排序 du -a /boot | sort
6.获取所有用户名(/etc/passwd中的第一列,以:分隔) cut -d “:” -f 1 /etc/passwd
7.获取主机IP ifconfig |grep “inet addr”
8.设置密码时,自动输入用户密码 echo 12345|passwd --stdin用户名

10.wc(字数统计)命令
格式:wc [选项]… 目标文件…
-l:统计行数
-w:统计字数 (字母数字下划线的那个字)(前后都是空白的一组字符)
-c:统计字符数(可见和不可见的字符)
例如:
1.wc install.log
2.wc -l install.log
在这里插入图片描述
11.diff命令
比较两个文件之间的差异
输出结果为两个文件的不同之处
例如:
1.diff a.txt b.txt \只显示不同,没结果说明两个一样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值