文章目录
1 打开实验环境
rht-vmctl start workstation
rht-vmctl view workstation
rht-vmctl reset workstation
2 输入输出
普通用户操作此实验
2.1 stdin标准输入流
输入是指系统外接向系统中传递的信息
系统外接向系统中传递数据的方式为键盘、鼠标、输入命令。
2.2 stdout标准正确输出
在命令顺利执行完成后产生的字符串
stdout在linux中的输出编号为1
1 省略不写也可以
定向正确到westos.out,其余依旧放到字符设备。
[candy@localhost Desktop]$ find /etc/ -name passwd > westos.out
find: ‘/etc/pki/CA/private’: Permission denied
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/selinux/targeted/active’: Permission denied
find: ‘/etc/selinux/final’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/ipsec.d’: Permission denied
find: ‘/etc/redhat-access-insights’: Permission denied
find: ‘/etc/audisp’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/vmware-tools/GuestProxyData/trusted’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
2.3 stderr标准错误输出
定向错误
在命令失败执行完成后产生的字符串
stderr在linux中的输出编号为2
[candy@localhost Desktop]$ find /etc/ -name passwd 2> westos.err
/etc/passwd
/etc/pam.d/passwd
2.4 定向所有 &>
[candy@localhost Desktop]$ find /etc/ -name passwd &> westos.all
[candy@localhost Desktop]$ cat westos.all
find: ‘/etc/pki/CA/private’: Permission denied
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
/etc/passwd
find: ‘/etc/selinux/targeted/active’: Permission denied
find: ‘/etc/selinux/final’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
/etc/pam.d/passwd
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/ipsec.d’: Permission denied
find: ‘/etc/redhat-access-insights’: Permission denied
find: ‘/etc/audisp’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/vmware-tools/GuestProxyData/trusted’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
2.5 清空文件
file
[candy@localhost Desktop]$ > westos.all
[candy@localhost Desktop]$ cat westos.all
3 字符设备
字符设备是指在I/O传输过程中以字符为单位进行传输的设备,比如键盘,打印机等
字符设备是内存中开启的虚拟设备并真实存在
[candy@localhost root]$ file /dev/pts/0
/dev/pts/0: character special
输入输出都经过dev/pts/0 ,输出经过/dev/pts/1(正确)或2(错误)输出 ,
但1,2也最终都经过0,如果不想让它定义到/dev/pts/下需要输入输出重定向
4 追加
4.1 追加正确输出
[candy@localhost Desktop]$ cat hh
hh
[candy@localhost Desktop]$ find /etc/ -name passwd >> hh
[candy@localhost Desktop]$ cat hh
hh
/etc/passwd
/etc/pam.d/passwd
4.2 追加错误输出
[candy@localhost Desktop]$ cat hh
hh
[candy@localhost Desktop]$ find /etc/ -name passwd 2>> hh
/etc/passwd
/etc/pam.d/passwd
[candy@localhost Desktop]$ cat hh
hh
find: ‘/etc/pki/CA/private’: Permission denied
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/selinux/targeted/active’: Permission denied
find: ‘/etc/selinux/final’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/ipsec.d’: Permission denied
find: ‘/etc/redhat-access-insights’: Permission denied
find: ‘/etc/audisp’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/vmware-tools/GuestProxyData/trusted’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
4.3 追加全部输出
[candy@localhost Desktop]$ find /etc/ -name passwd &>> hh
5 管道
把输出变成后一条命令的输入
管道符默认只能通过正确的
若想通过所有的把错误的转换为正确的,即在管道符前加2>&1
[candy@localhost Desktop]$ find /etc/ -name passwd | wc -l
find: ‘/etc/pki/CA/private’: Permission denied
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/selinux/targeted/active’: Permission denied
find: ‘/etc/selinux/final’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/ipsec.d’: Permission denied
find: ‘/etc/redhat-access-insights’: Permission denied
find: ‘/etc/audisp’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/vmware-tools/GuestProxyData/trusted’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
2
[candy@localhost Desktop]$ find /etc/ -name passwd 2>&1 | wc -l
22
若想保存到file再统计行数:
[candy@localhost Desktop]$ find /etc/ -name passwd 2>&1 | tee file | wc -l
22
6 输入重定向即多行录入(root)
6.1 多行录入
因为password执行时需要输入密码,可以用多行录入解决
切换用户:
gnome-session-quit
[root@localhost Desktop]# cat passwd.sh
date
passwd << EOF
haha
haha
EOF
[root@localhost Desktop]# bash passwd.sh
Sat Apr 4 01:32:34 CST 2020
Changing password for user root.
New password: BAD PASSWORD: The password is shorter than 8 characters
Retype new password: passwd: all authentication tokens updated successfully.
[root@localhost Desktop]# sh passwd.sh
6.2 单行/一次输入重定向
[root@localhost Desktop]# cat passwd.sh
date
passwd << EOF
haha
haha
EOF
[root@localhost Desktop]# tr 'a-z' 'A-Z' < passwd.sh
DATE
PASSWD << EOF
HAHA
HAHA
EOF
7 Linux如何获得帮助
[root@localhost Desktop]# whatis passwd
passwd (1) - update user's authentication tokens
sslpasswd (1ssl) - compute password hashes
passwd (5) - password file
[root@localhost Desktop]# passwd --help
Usage: passwd [OPTION...] <accountName>
注:[] 可加可不加 ... 可加多个 <> 必须加
[root@localhost Desktop]# which passwd
/usr/bin/passwd
也可用:
man 1 passwd
若想看/etc/passwd此配置文件的帮助
[root@localhost Desktop]# man 5 passwd
man level target
man 命令本身
level man级别
target man的对象
|
|
lever | 功能 |
---|---|
1 | 命令 |
2 | 系统调用规则 |
– | – |
3 | 函数调用 |
4 | 系统特殊文件 |
5 | 系统配置文件 |
6 | 游戏 |
7 | 特殊包 |
8 | 系统管理命令 |
9 | 内核规则 |