linux shell基础
标准输入输出
设备 | 设备文件名 | 文件描述符 | 类型 |
---|---|---|---|
键盘 | /dev/stdin | 0 | 标准输入 |
显示器 | /dev/sdtout | 1 | 标准输出 |
显示器 | /dev/sdterr | 2 | 标准错误输出 |
输入重定向 < , <<
正常输入 是通过键盘输入的,现在通过文件输入,这就叫输入重定向
使用wc命令来简述输出重定向 <
wc命令统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
利用wc指令我们可以计算文件的Byte数、字数或是列数,若不指定文件名称,或是所给予的文件名为“-”,则wc指令会从标准输入设备读取数据。wc同时也给出所指定文件的总统计数。
语法格式:wc [参数] [文件]
常用参数:
参数 | 作用 |
---|---|
-w | 统计字数,或–words:只显示字数。一个字被定义为由空白、跳格或换行字符分隔的字符串 |
-c | 统计字节数,或–bytes或–chars:只显示Bytes数 |
-l | 统计行数,或–lines:只显示列数 |
-m | 统计字符数 |
-L | 打印最长行的长度 |
[userwin@MiWiFi-R3L-srv temp]$ ll
-rw-rw-r--. 1 userwin userwin 194 11月 28 23:08 test.sh
[userwin@MiWiFi-R3L-srv temp]$ wc < test.sh
9 28 194
[userwin@MiWiFi-R3L-srv temp]$ wc -l < test.sh
9
[userwin@MiWiFi-R3L-srv temp]$ wc -L < test.sh
33
[userwin@MiWiFi-R3L-srv temp]$ wc -c < test.sh
194
[userwin@MiWiFi-R3L-srv temp]$ wc -m < test.sh
194
[userwin@MiWiFi-R3L-srv temp]$ cat test.sh
#!/bin/bash
source ./logFile.sh
log_debug "this is debug log..."
log_info "this is info log..."
log_warn "this is warn log..."
log_err "this is error log..."
log_always "this is always log.."
[userwin@MiWiFi-R3L-srv temp]$ cat test.sh |grep log
source ./logFile.sh
log_debug "this is debug log..."
log_info "this is info log..."
log_warn "this is warn log..."
log_err "this is error log..."
log_always "this is always log.."
[userwin@MiWiFi-R3L-srv temp]$ cat test.sh |grep log|wc -l
6 # test.sh 文件中“” 双引号内的log不做统计
输入重定向 <<
[userwin@MiWiFi-R3L-srv temp]$ wc << sxy #<< sxy开始标签 << 定义开始标签为 sxy 到下一个sxy结束
> asdf
> asdf
> asdfas
> asdfas
> asddf
> sxy # 从开始标签到> sxy 之间的内容为 wc 统计的内容
5 5 33
[userwin@MiWiFi-R3L-srv temp]$
输出重定向 > , >>
正常输出 会输出在显示器上,如果想将输出内容输出到其他文件中,这个过程就是输出重定向。
类型 | 符号 | 作用 |
---|---|---|
标准输出重定向 | 命令 > 文件 | 以覆盖的方式,把命令的正确输出 输出到指定的文件或设备当中 |
标准输出重定向 | 命令 >> 文件 | 以追加的方式,把命令的正确输出 输出到指定的文件或设备当中 |
标准错误输出重定向 | 错误命令 2>文件 | 以覆盖的方式,把命令的错误输出 输出到指定的文件或设备当中 |
标准错误输出重定向 | 错误命令 2>>文件 | 以追加的方式,把命令的错误输出 输出到指定的文件或设备当中 |
2>> :2和>之间不能有空格
类型 | 符号 | 作用 |
---|---|---|
正确输出和错误输出同时保存 | 命令 > 文件 2>&1 | 以覆盖的方式,把正确的输出和错误的输出都保存到同一个文件当中 |
正确输出和错误输出同时保存 | 命令 >> 文件 2>&1 | 以追加的方式,把正确的输出和错误的输出都保存到同一个文件当中 |
正确输出和错误输出同时保存 | 命令 &> 文件 | 以覆盖的方式,把正确的输出和错误的输出都保存到同一个文件当中 |
正确输出和错误输出同时保存 | 命令 &>> 文件 | 以追加的方式,把正确的输出和错误的输出都保存到同一个文件当中 |
正确输出和错误输出同时保存 | 命令>>文件1 2>>文件2 | 把正确的输出追加到文件1中;把错误的输出追加到文件2中 |
命令 > 文件 2>&1
解析:
2>&1:把错误输出保存到正确输出中
命令 > 文件:把正确输出和错误输出保存到文件中
linux不显示输出内容 &>/dev/null
ls &>/dev/null
将ls命令输出内容 输出到一个黑洞中,即输出到垃圾箱中,就是不显示任何输出内容的意思。