linux 管道 重定向 环境变量


linux 管道 重定向 环境变量

输入输出重定向

简单来讲,输入重定向就是将文件导入到命令中。输出重定向即将原本要输出到屏幕上的信息输出到指定文件中。

  • 标准输入重定向 STDIN 文件描述符为 0 默认从键盘输入
  • 标准输出重定向 STDOUT 文件描述符为 1 默认输出到屏幕
  • 错误输出重定向 STDERR 文件描述符为 2 默认输出到屏幕

STDIO

输入重定向中的符号及其作用

符号 作用
命令 < 文件 将文件作为命令的标准输入
命令 << 分界符 从标准输入中读取 知道遇见分界符
命令 < 文件1 > 文件2 将文件1作为命令的标准输入并将标准输出到文件2中

STDOUT

输入重定向中的符号及其作用

符号 作用
命令 > 文件 将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件 将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件 将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件 将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 >> 文件 2>&1 或 命令 &>> 文件 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

管道

命令1 | 命令2

简单来讲即将前一个命令本来要输出到屏幕上的数据当作下一条命令的输入。如果使用重定向将标准输出重定向到文件中则不行。比如:

1
2
3
4
5
6
7
8
9
10
11
root@vultr:~/dd# ls
1 a file
root@vultr:~/dd# ls | wc -l
3
root@vultr:~/dd# ls >> res |wc -l
0
root@vultr:~/dd# cat res
1
a
file
res

通配字符

1
2
3
4
# * 零个或者多个任意字符
# ? 单个任意字符
# [0-9] 一个数字 或者指明数字 [123]
# [a-z] 一个字符 或者指明字符 [e]

转义字符

  • 反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串。
  • 单引号(’’):转义其中所有的变量为单纯的字符串。
  • 双引号(””):保留其中的变量属性,不进行转义处理。
  • 反引号(``):把其中的命令执行后返回结果。
1
echo `uname -a`

vim 的使用

vim的三种模式:

  1. 命令模式:控制光标的移动,对文本进行复制粘贴删除查找等工作
  2. 输入模式:正常文本的输入
  3. 末行模式:保存或者退出文档,以及设置编辑环境

命令模式的命令

命令 作用
dd 剪切光标所在行
5dd 剪切光标所在的5行
yy 复制光标所在行
5yy 复制光标所在的5行
n 显示搜索命令定位到的下一个字符串
N 显示搜索命令定位到的上一个字符串
u 撤销上一步的操作
p 粘贴

末行模式的命令

命令 作用
w 保存
q 退出
q! 强制退出不保存
wq! 强制退出并保存
set nu 显示行号
set nonu 不显示行号
命令 执行这个命令
行号 跳转到该行
s/one/two 将当前光标所在行的第一个 one 替换成 two
s/one/two/g 将当前光标所在行的所有 one 替换成 two
%s/one/two/g 将全文中的所有 one 替换成 two
?字符串 在文本中从下至上搜索该字符串
/字符串 在文本中从上至下搜索该字符串

文章作者: 崔文耀
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 崔文耀 !
  目录