题目
- 将 /etc/passwd 文件中的内容转换为大写后保存至/tmp/passwd.out文件中
- 将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中
- 将 echo “This is my first time to use pipe” 内容输出到屏幕上,且保存到pipe_data.txt中
- 重定向
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中 - 编写管道和重定向指令,
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下文件的过滤和查找