Linux管道命令
- Notes
- December 18, 2023
目录
- 管道命令:|
管道命令的作用:前一个命令的输出是后一个命令的输入
例如:统计目前有几个用户登录
[root@master ~]# who
root pts/0 2023-12-18 08:08 (192.168.152.130)
[root@master ~]# who | wc -l
1
查看/etc下面的文件和文件夹及其子文件夹、子文件的详细信息,并以可翻页的形式显示:
[root@master ~]# ls -Rl /etc | less
增加一个用户aaa,并查看/etc/passwd的内容,该文件存放了所有的系统用户、root用户、自定义用户。增加一个用户aaa,就可以看到该文件最后增加的相应的一行内容。用管道命令统计该文件的行数、字数、字符数。
[root@master ~]# adduser aaa
[root@master ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
…………
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
aaa:x:1000:1000::/home/aaa:/bin/bash
[root@master ~]# cat /etc/passwd | wc
30 59 1491
# (行数) (字数) (字符数)
查看是否存在用户aaa
[root@master ~]# cat /etc/passwd | grep aaa
aaa:x:1000:1000::/home/aaa:/bin/bash
命令rpm -qa可以查看目前安装了哪些应用程序。现在要用管道命令,检查是否安装了mysql数据库:
[root@master ~]# rpm -qa | grep mysql
mysql-community-server-5.7.18-1.el7.x86_64
mysql-community-common-5.7.18-1.el7.x86_64
mysql-community-libs-5.7.18-1.el7.x86_64
mysql-community-client-5.7.18-1.el7.x86_64
mysql-community-devel-5.7.18-1.el7.x86_64
查看mysql数据库中有多少个组件:
[root@master ~]# rpm -qa | grep mysql | wc -l
5
通过这个命令,说明了管道命令是可以级联的,从而实现更加复杂的功能。
- vi编辑器操作
(1)vi编辑器的启动和退出
用命令:vi+文件名:进入vi编辑器
按i键进入编辑模式,可以输入内容
按:wq保存退出,按:q!不保存退出
(2)vi编辑器的工作模式
编辑模式:进入vi编辑器以后的默认模式
插入模式:在编辑模式下,按i键,进入插入模式
命令模式:在编辑模式下,按:键,进入命令模式
(3)vi编辑器常用命令
:q! 不保存退出
:wq 保存退出
:?单词 查找文件中的某一个单词位置,查找定位后,按n键可以连续定位下一个单词。
:s/单词1/单词2/g 把文件中所有的单词1,替换成单词2
:d 删除当前行,或者在编辑模式状态下,在某一行上按dd,直接删除这一行
课堂练习:
- 在/opt下建立文件夹/opt/aaa
mkdir /opt/aaa
- 用vi编辑器建立文件/opt/aaa/a01.txt,并输入下面的内容
vi /opt/aaa/a01.txt
hello hadoop
hello spark
hello spark
hello hdfs
hello hdfs
hello hdfs
hello spark spark
保存并退出
用管道命令统计/opt/aaa/a01.txt,一共有几行
cat /opt/aaa/a01.txt | wc -l
- 用管道命令找到所有的含有hdfs单词的内容
grep "hdfs" /opt/aaa/a01.txt
- 用管道命令统计含有spark单词的行,一共有几行
grep "spark" /opt/aaa/a01.txt | wc -l
- 用管道命令统计spark单词有几个
grep -o "spark" /opt/aaa/a01.txt | wc -l
- 查看系统中是否安装了hbase软件包
rpm -qa | grep hbase
- 新建用户bbb,并查找/etc/passwd中是否存在该用户
useradd bbb
grep bbb /etc/passwd
在vi编辑器中,用?命令,查找hello单词
在vi编辑器中,用:s/单词1/单词2/g命令,将所有的hello,替换成hi
# 进入vi 使用如下命令
vi /opt/aaa/a01.txt
:%s/hello/hi/g
:wq
# 方法二
sed -i s/hello/hi/g /opt/aaa/a01.txt
- 用管道命令,统计包含hi的内容一共有多少行,并利用重定向命令将结果写入/opt/aaa/a02.txt
grep hi /opt/aaa/a01.txt | wc -l >> /opt/aaa/a02.txt