1.输入输出
输入
Stdin[标准输入流]
• 输入是指系统外接向系统中传递的信息
系统外接想系统中传递数据的方式如下
• 键盘
• 鼠标
• 输入命令
输出
stdout[标准正确输出]
• 在命令顺利执行完成后产生的字符串
• stdout在Linux中的输出编号为1
stderr[标准错误输出]
• 在命令失败执行完成后产生的字符串
• stderr在Linux中的输出编号为2
字符设备
字符设备是指在I/O传输过程中以字符为单位进行传输的设备,例如键盘,打印机等
字符设备是内存中开启的虚拟设备并出真实存在
2. 重定向输出
重定向输出的方法
> | 只会输出正确的 |
---|---|
2> | 输出错误 |
&> | 输出所有 |
实验环境为普通用户环境
[student@workstation Desktop]$ find /etc/ -name passwd >westos.out ##将正确输出到westos.out中,错误的就输出到当前位置
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/dhcp’: Permission denied
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
[student@workstation Desktop]$ find /etc/ -name passwd 2>westos.err ##将错误输出到westos.err中,正确的就输出到当前位置
/etc/pam.d/passwd
/etc/passwd
[student@workstation Desktop]$ find /etc/ -name passwd &> westos.out ##将所有内容输出到westos.out
重定向会覆盖原文件内容
对于输入输出过程的具体描述:
命令行窗口 ---->输入命令 --->会进入内存中的/dev/pts0中---->回车--->cpu进行相关处理--->继续传输到/dev/pts0中--->回到命令行窗口进行显示
####################################################
date> /dev/pts/0 ###输出重定向
cat /dev/pts/0 ###会在这个界面查看到操作
两个操作hhhhhh,一直摁一直有
新建一个shell
ps
cd /proc
cd num ##切换到进程号
cd fd
ls -l ##可以查看到关于0 1 2的描述
0-->所有输入;1-->输出正确;2-->输出错误
3.追加
追加符号
符号 | 用途 |
---|---|
>> | 追加正确输出 |
2>> | 追加错误输出 |
&>> | 追加所有输出 |
[student@workstation Desktop]$ vim xiao ##建立一个文件,并且写如写进一定的内容
[student@workstation Desktop]$ find /etc/ -name passwd >> xiao ##追加passwd中正确的内容到xaio中
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/dhcp’: Permission denied
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 ##只会输出不正确的
[student@workstation Desktop]$ find /etc/ -name passwd 2>>xiao ##追加passwd中不正确的内容到xiao中
/etc/pam.d/passwd
/etc/passwd ##屏幕输出只有正确的
[student@workstation Desktop]$ find /etc/ -name passwd &>> xiao ##追加passwd中所有内容到xiao中,屏幕上不会再进行显示输出
[student@workstation Desktop]$ vim xiao ##再一次查看xiao文件,确保在操作正确
4.管道
管道定义:把输出变成后一条命令的输入
管道的相关符号
符号 | 用途 |
---|---|
l | 管道符 |
2>&1 | 将编号为1的输出转换为2 |
tee | 复制输出到指定位置 |
5.输入重定向
1.一次输入重定向
echo hhhhhh kkkkkk > westos ##向westos中写如内容
tr ‘a-z’ ‘A-Z’ < westos ##westos将自己的内容输入重定向到tr中,tr才可以执行自己的相关操作
2.多行录入
以下操作必须在root用户下进行
建立一个脚本文件
vim westos.sh
写入 passwd,退出保存
sh westos.sh ##执行操作,发现他在等待输入
继续vim编辑westos.sh
passwd << EOF ##多行录入开始
xiao
xiao
EOF ##当起始字符再次出现,录入结束
6.Linux中的帮助
whatis command ##产看命令用途
command --help ##查看命令的基本用法
[内容] ##在执行时候可加可不加
... ##加入内容的个数任意
< > ##在执行操作的时候必须加入
man level target ##man的命令的用法
man ##man命令本身
level ##man的级别
target ##man的对象
level:
1 ##命令
2 ##系统调用
3 ##函数调用
4 ##函数特殊文件
5 ##系统配置文件
6 ##游戏
7 ##特殊包
8 ##系统管理命令
9 ##内核规则
example
man passwd ##查看passwd命令用法
man 5 passwd ##查看/etc/passwd 文件
man -k passwd ##查看passwd在系统中有多少个级别的man