>[success] # Linux 输入和输出
1. `linux `中标准的**输入设备默认指的是键盘**,**标准的输出设备默认指的是显示器**
* **输入重定向**:指的是重新指定设备来代替键盘作为新的输入设备;
* **输出重定向**:指的是重新指定设备来代替显示器作为新的输出设备。
2. 举个例子输入`cat a.txt` 将**a.txt 文件内容输出到屏幕上**,使用**重定向**的形式将它输出的内容展示的位置改变不在是屏幕上而是其他位置
| 设备 | 设备文件名 | 文件描述符 | 类型 |
| --- | --- | --- | --- |
| 键盘 | /dev/stdin | 0 | 标准输入 |
| 显示器 | /dev/stdout | 1 | 标准输出 |
| 显示器 | /dev/stderr | 2 | 标准错误输出 |
>[success] # 重定向
1. **重定向** -- 将数据转到其他地方,重定向模式分为三种`输出`、`输入`、`标准错误输出`
* **标准输入 (stdin)**: 代码为`0`,使用 `< `或 `<<`
* **标准输出 (stdout)**: 代码为`1`,使用 `>` 或 `>>`;
* **标准错误输出(stderr)**: 代码为`2`,使用 `2>` 或 `2>>`
2. 举个例子例如`echo aaa`意思是将 **aaa 这个字符打印到终端显示**,配合重向,`echo aaa >aaa.txt` 将原本要打印到控制台的内容重定向到`aaa.txt` 也就是将**aaa 写入到文件中** 或者 `cat aa.txt > bb.txt `则表示将**aa.txt 内容写入到bb.txt中**
* `>`-- 输出重定向到一个文件或设备 覆盖原来的文件,将左侧命令的结果,覆盖写入到符号右侧指定的文件中
* `>>` -- 输出重定向到一个文件或设备 追加原来的文件,将左侧命令的结果,追加写入到符号右侧指定的文件中
3. `echo 123 1>bb.txt` 将原本输入控制台上的123 写入到 bb.txt 文件,注意了 `1` 是输入正确的结果输出写入到 `bb.txt` 文件内。当然`1`正确可以省略,但 是如果想将错误写入需要用 `2` 来标记
| 类型 | 符号 | 作用 |
| --- | --- | --- |
| 标准输出重定向 | 命令 > 文件 | 以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中 |
| 标准输出重定向 | 命令 >> 文件 | 以追加的方式,把命令的正确输出输出到指定的文件或设备当中 |
| 错误输出重定向 | 命令>文件 | 以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中 |
| 错误输出重定向 | 命令>>文件 | 以追加的方式,把命令的错误输出输出到指定的文件或设备当中 |
| 正确输出和错误输出同时保存 | 命令>文件 2>&1 | 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中 |
| 正确输出和错误输出同时保存 | 命令>文件 2>>&1 | 以追加的方式,把正确输出和错误输出都保存到同一个文件当中 |
| 正确输出和错误输出同时保存 | 命令&>文件 | 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中 |
| 正确输出和错误输出同时保存 | 命令&>>文件 | 以追加的方式,把正确输出和错误输出都保存到同一个文件当中 |
| 正确输出和错误输出同时保存 | 命令>>文件1 2>文件2 | 以覆盖的方式,正确的输出追加到文件1中,把错误输出追加到文件2中 |
[更多使用效果链接](https://www.linuxprobe.com/linux-eof-diy.html)
>[danger] ##### 快速创建文件
创建文件除了`touch `也可以使用**重定向符合例如 `> aa.txt `创建aa.txt 文件**
>[danger] ##### 参考
[链接](https://www.cnblogs.com/afeige/p/10897103.html)
[链接](http://lnmp.ailinux.net/xargs)
- 安装-VMware 虚拟机
- 远程连接
- Windows -- wsl
- Linux -- 认识 Linux 和操作系统
- Linux -- Linux 和 windows 对比
- Linux -- 命令提示符
- Linux -- 文件目录
- Linux -- 文件类型
- Linux -- 绝对和相对路径
- Linux -- 常用快捷键
- Linux -- 三种帮助命令
- 帮助命令 -- man
- 帮助命令 -- help
- 帮助命令 -- info
- Linux -- 指令
- alias -- 设置别名
- history -- 查看历史命令
- cd -- 更改目录(切换文件夹)
- pwd -- 打印目录
- ls -- 列出文件内容
- mkdir -- 创建文件夹
- rmdir -- 删除一个空的目录
- touch -- 创建普通文件/修改时间
- cp -- 复制粘贴
- mv -- 移动和重名
- rm -- 删除
- cat/tac -- 查看纯文本文件
- more/less -- 分页读取信息
- head -- 从文本开头查看
- tail -- 从文本结尾查看
- cut -- 提取片段
- sort -- 排序
- uniq -- 去重
- wc -- 统计文件的行数、单词、字节数
- tr -- 替换、缩减或删除字符
- find -- 文件查找
- grep -- 文件当中匹配字符
- 管道 -- |
- locate -- 第三方文件查找
- whereis -- 查找二进制/源代码文件 路径
- which -- 查找环境变量
- 压缩和解压
- ln -- 链接
- wget -- 下载指定的url资源
- 重定向 -- << /< />/> >
- 逻辑控制 -- &&
- echo -- 输出指定内容
- date/cal -- 查看日期和日历
- Linux -- 进程管理
- Linux-- ps 指令
- vi/vim - 文本编辑器
- 更多
- Linux-- 开关机命令
- Liunx -- 退出登录
- Linux-- 查看登录用户信息
- Linux -- 环境变量
- Linux -- 用户
- Linux -- 文件管理
- 文件权限设置 -- chmod
- 更改文件的拥有者 -- chown
- 默认权限 -- umask
- Linux -- 用户
- 新建/删除用户 -- useradd/userdel
- 修改用户属性 -- usermod/chage
- 新建/删除用户组 -- groupadd/groupdel
- 用户切换 -- su/sudo
- 用户/用户组的配置文件
- 用户家目录被删除解决
- last、 lastlog命令查看用户详细的登录信息
- Linux -- shell
- Linux -- 管道符号
- shell -- 执行
- shell -- 变量
- shell -- 字符串
- shell -- 数组
- Shell -- declare 设置变量属性
- shell -- 数学计算
- shell -- 变量作用域
- shell -- 位置参数变量
- shell -- read
- shell - if 语句
- shell -- test
- shell -- case
- Linux -- 循环
- Linux -- 软件包管理