(补充)关于Linux标准输入输出、重定向、管道的小练习

题目

  1. 将 /etc/passwd 文件中的内容转换为大写后保存至/tmp/passwd.out文件中
  2. 将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中
  3. 将 echo “This is my first time to use pipe” 内容输出到屏幕上,且保存到pipe_data.txt中
  4. 重定向
    a. 新建一个文件redirect.txt,并在其中写入20210804RHCSA,保存并退出
    b. 将cat redirect.txt 的输出结果重定向到 redirect1.txt中
    c. 将cat redirect.txt noexist.txt的标准输出重定向到redirect2.txt, 标准错误输出重定向到error1.txt
    d. 将cat redirect.txt noexist.txt的标准输出和错误输出都从定向到redirect3.txt中
  5. 编写管道和重定向指令,
    a. 只输出本机IP地址到指定文件 ip.txt (其他内容不要)
    b. 只输出当前计算机的普通用户名至user.txt文件 (其他内容不要)

操作步骤

根据提供的思路自行补全命令,命令详情在最后


1、将 /etc/passwd 文件中的内容转换为大写后保存至/tmp/passwd.out文件中

思路:利用 tr 命令将passwd文件内容进行输入重定向传入后再利用输出重定向传入对应文件,注意 tr 命令的参数使用方法


2、将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中

思路:利用管道机制,将“查看当前登录用户信息”命令 who 的输出内容拼接到由 tr 转换大小写后的文件中


3、将 echo “This is my first time to use pipe” 内容输出到屏幕上,且保存到pipe_data.txt中

思路:输出重定向


4a、新建一个文件redirect.txt,并在其中写入20210804RHCSA,保存并退出

思路:vi 编辑器写入(涉及 vi 编辑器内容知识,详情见主文章)

4b.将cat redirect.txt 的输出结果重定向到 redirect1.txt中

思路:输出重定向

4c.将cat redirect.txt noexist.txt的标准输出重定向到redirect2.txt, 标准错误输出重定向到error1.txt

思路:双重输出重定向

4d.将cat redirect.txt noexist.txt的标准输出和错误输出都从定向到redirect3.txt中

思路:双重输出重定向


5、编写管道和重定向指令
a. 只输出本机IP地址到指定文件 ip.txt (其他内容不要)

思路:

  • 利用正则表达式
  • 利用 grep 过滤、cut 裁剪命令组合实现

b. 只输出当前计算机的普通用户名至user.txt文件 (其他内容不要)

思路:


命令参考

1.
pepino@Pepino:~$ tr "a-z" "A-Z"< /etc/passwd  > /tmp/passwd.out
pepino@Pepino:~$ cat /tmp/passwd.out 	#验证文件内容

2.
pepino@Pepino:~$ who | tr "a-z" "A-Z" > /tmp/who.out
pepino@Pepino:~$ cat /tmp/who.out 		#验证文件内容

3.
pepino@Pepino:~$ echo "This is my first time to use pipe" > pipe_data.txt
pepino@Pepino:~$ cat pipe_data.txt 		#验证文件内容

4a.
pepino@Pepino:~$ vi redirect.txt
(按 “i” 进入编辑模式)
20210804RHCSA
("ESC"退出编辑模式)
(shift + zz保存并退出)

4b.
pepino@Pepino:~$ cat redirect.txt > redirect1.txt 
pepino@Pepino:~$ cat redirect1.txt 		#验证文件内容

4c.
pepino@Pepino:~$ cat redirect.txt noexist.txt  > redirect2.txt 2> error1.txt 
pepino@Pepino:~$ cat redirect2.txt 		#验证文件内容
20210804RHCAS
pepino@Pepino:~$ cat error1.txt 		#验证文件内容
cat: noexist.txt: 没有那个文件或目录

4d.
pepino@Pepino:~$ cat redirect.txt noexist.txt &> redirect3.txt
pepino@Pepino:~$ cat redirect3.txt 		#验证文件内容
20210804RHCAS
cat: noexist.txt: 没有那个文件或目录

5a.
利用正则表达式:
pepino@Pepino:~$ ip add | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' > ip.txt
pepino@Pepino:~$ cat ip.txt 
127.0.0.1
192.168.101.128
192.168.101.255

利用经典过滤:
pepino@Pepino:~$ ip add | grep -w 192 | cut -d" " -f 6 | cut -d/ -f 1 > ip.txt
# 先用原始 ip add 命令查看命令,管道接入 grep 过滤出含 192 的所在行,管道接入 cut 命令以 “空格” 为分隔符裁剪出第 6 个字段,同时又以 “/” 为分隔符裁剪出第一个字段,并将裁剪出来的内容传入文件 ip.txt 内
pepino@Pepino:~$ cat ip.txt		##验证文件内容
192.168.101.128

#更多方法见文末补充

5b.
pepino@Pepino:~$ grep /bin/sh < /etc/passwd | cut -d: -f1 > user.txt
#输入重定向传入 /etc/passwd 内容,利用 cut 命令以 “:” 为分隔符裁剪出第一个字段,并将裁剪出来的内容传入文件 user.txt 内
pepino@Pepino:~$ cat user.txt 		#如果没有输出就表示没有普通用户

补充:
Linux下文件的过滤和查找

linux输出某一字符串所在列的内容,linux查找字符串所在行,输出行号

命令行技巧:分割文件内容 | Linux 中国

Linux中IP地址筛选,Linux中过滤IP地址的9种方法

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PiB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值