本文主要命令: tee, which,grep,find,whereis, locate
内核利用文件描述符访问文件,文件描述符是非负整数,打开和新建文件时都会返回一个文件描述符,读写文件也需要文件描述符来指定待读写的文件。
linux下一切皆文件。
STDIN :标准输入, 0
STDOUT : 标准输出, 1
STDERR :标准错误输出 2
1. 输出重定向
标准输出:
ls /home > a.txt #等同于 ls /home 1>a.txt
标准错误输出:
ls /homee 2>a.txt
标准错误输出一起重定向到标准输出:
ls /home /homee 2>&1 a.txt
标准输出一起重定向到标准错误输出:
ls /home /homee 1>&2 a.txt
混合输出:
ls /home /homee &> a.txt
2. 输入重定向
输入重定向: 计算文件行数
wc -l << /etc/passwd
另一种输入重定向:
cat > a.txt <<EOF (标识符,自定义)
>abc
>def
>EOF
3. 追加文件内容
重定向会将目标文件的内容清空,需要往目标文件内追加内容则使用>> :
echo "abcdef" >> a.txt
4. 管道
前一个命令的标准输出作为下一个命令的标准输入。
计算文件行数:
cat /etc/passwd | wc -l
tee即可重定向到文件同时会输出显示:
echo "abcdef" | tee a.txt
5. which
显示命令的绝对的执路径。
which shutdown
6. whereis
显示信息比which多,不但包含命令的绝对的执行路径,同时包含其他信息。
whereis shutdown
7. grep
过滤文件信息。
-v 翻转
-i 忽视大小写
^# 以#开头
#$ 以#结尾
^$ 空行
--color 对关键字加色
包含root的行
grep "root" /etc/passwd --color
不包含root的行
grep -v "root" /etc/passwd
包含写root和小写root的行:
grep -i "root" /etc/passwd --color
#以o开头的行
grep "^o" /etc/passwd --color
以o结尾的行
grep "o$" /etc/passwd --color
非空行
grep -v "^$" /etc/passwd --color