一、基础知识的了解
1、Linux的标准输入和输出
linux标准输入设备指的是键盘,标准输出设备指的是显示器,标准错误输出指的是显示器。
设备 设备名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/stdout 1 标准输出
显示器 /dev/stderr 2 标准错误输出
2、Linux 文件描述符
文件描述符可以理解为 Linux 系统为文件分配的一个数字,范围是 0-3 ,用户也可以自定义文件描述符,但是自定文件描述符不在这里的讨论范围
一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件:
标准输入文件(stdin):stdin的文件描述符为0。
标准输出文件(stdout):stdout 的文件描述符为1。
标准错误文件(stderr):stderr的文件描述符为2。
3、什么是输入重定向
输入重定向:是指不使用系统提供的标准输入端口,而进行重新的指定。换言之,输入重定向就是不使用标准输入端口输入文件,而是使用指定的文件作为标准输入设备。(重定向简单理解就是使用 “<”符来修改标准输入设备)
比如,默认情况下,cat命令会接受默认标准输入设备键盘的输入,并显示到控制台,但是可以通过“<”符号修改标准输入设备,指定文件作为标准输入设备,那么cat命令将指定的文件作为输入设备,并将文件中的内容读取并显示到控制台。
输入重定向
类型 符号(语法) 功能
标准输入 命令<文件1 命令把文件1的内容作为标准输入设备
标识符限定输入 命令<<
标识符 命令把标准输入中读入内容,直到遇到“标识符”分解符为止
输入输出重定向(同时使用) 命令< 文件1 >文件2 命令把文件1的内容作为标准输入,把文件2作为标准输出。
#cat /etc/passwd 它是以键盘作为标准输入设备,并将文件内容显示到控制台
语法1: # cat < /etc/passwd 而输入重定向,cat < /etc/passwd ,它是将passwd文件指定为输入设备,并将内容显示到控制台。
二、输入输出命令符号
1. > 标准正确重定向输出
2. 2> 标准错误重定向输出
3. &> 标准输出 所有重定向输出
eg:
** 注意:这个项目试验必须在普通用户下运行**
命令:find /etc/ -name passwd ##在/etc/目录下找到passwd
实验代码部分:
[student@workstation Desktop]$ find /etc/ -name passwd
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/dhcp’: Permission denied
/etc/pam.d/passwd
/etc/passwd
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/sssd’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
输出的保存方法
find /etc/ -name passwd >westos.out ##正确定向输出保存在westos.out
find /etc/ -name passwd 2> westos.err ##错误定向输出保存在 westos.err
find /etc/ -name passwd &> westos.all ##所有定向输出保存在westos.all
三、定向输出的追加
注意:
追加内容不会覆盖源文件的内容,追加内容会直接加在源文件的后边
步骤
1 、[student@workstation Desktop]$ echo hello westos > westos ##生成一个有内容的文件
2、[student@workstation Desktop]$ cat westos ## 查看文件
hello westos
3、追加的三类
正确的追加给 westos
[student@workstation Desktop]$ find /etc/ -name passwd >> westos
错误的追加给 westos
[student@workstation Desktop]$ find /etc/ -name passwd 2>> westos
正确的&错误的同时追加给 westos
[student@workstation Desktop]$ find /etc/ -name passwd &>> westos
四、管道
**实验操作步骤:**
文件的统计
[student@workstation Desktop]$ ls /bin | wc -l 统计/bin 有多少文件
[student@workstation Desktop]$ find /etc/ -name passwd | wc -l 默认只有正确文件以通过管道
[student@workstation Desktop]$ find /etc/ -name passwd 2>&1 | wc -l 将错误的输出定向到正确输出的位置
[student@workstation Desktop]$ find /etc/ -name passwd 2>&1 |tee file | wc -l 复制文件到file 在统计
五、输入重定向
**注意:输入重定向需要在超级用户下进行操作**
[root@workstation Desktop]# ecoh westos WESTOS >westos ## 建立一个内容为 westos WESTOS 的文件夹
tr 'a-z' 'A-Z' < westos ## 单行内容重定向
WESTOS WESTOS ## 重定向后显示的内容
vim westos.sh ## 建立一个文件
cat westos.sh ##查看文件内容
passwd <<EOF
wang
wang
EOF
cat westos.sh | tr 'a-z' 'A-Z' ##进行多行重定向输入并显示内容
PASSWD <<EOF
WANG
WANG
EOF
总结
输出在普通用户下进行;输入必须在超级用户下进行。
追加的内容不会覆盖原文件,会加在原文件的后边。
牢记所有的命令,需要多次的练习。
练习中出错需要学会如何去找错误的点,并能够自己解决错误