管道符、重定向与环境变量

发布于2020-08-20   654 次阅读


本文最后更新于2022年6月1日,已超过 1 年没更新!内容可能已失效,请自行测试。

输入输出重定向

输入输出重定向

  • 标准输入重定向:默认从键盘输入,也可从其他文件或命
    令中输入
  • 标准输出重定向:默认输出到屏幕
  • 错误输出重定向:默认输出到屏幕
符号作用
命令 < 文件将文件作为命令的标准输入
命令 << 分界符从标准输入中读入,直到遇见分界符才停止
命令 < 文件1 > 文件2将文件1作为命令的标准输入并将标准输出到文件2
输入重定向中用到的符号及其作用
符号作用
命令 > 文件将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 >> 文件 2>

命令 &>> 文件
将标准输出与错误输出共同写入到文件中(追加到原有内容的
后面)
输出重定向中用到的符号及其作用
通过标准输出重定向将man bash命令原本要输出到屏幕的信息
写入到文件readme.txt中,然后显示readme.txt文件中的内容
man bash >readme.txt
cat readme.txt
通过覆盖写入模式向 readme.txt 文件写入一行数据
echo "Welcome to YEYUFAN.CN" > readme.txt
echo "Linux Learning" >>readme.txt
查看当前目录中某个文件的信息,这里以 readme.txt文件为例。因为这个文件是真实存在的
ls -l readme.txt > ~/readme.txt
如果文件不存在,则错误输出信息直接输出到了屏幕上
把命令的报错信息写入到文件
ls -l redddadme.txt 2> ~/readme.txt 
使用输入重定向把 readme.txt文件导入给wc -l命令,统计一
下文件中的内容行数,字节数
wc -l < readme.txt 
wc -c < readme.txt

管道命令符

管道命令符执行格式为“命令 A | 命令 B”,

作用:把前一个命令原本要输出到屏幕的数据当作是后一个命令的标准输入

把搜索命令的输出值传递给统计命令
grep "/sbin/nologin" /etc/passwd | wc -l 

命令行的通配符

通配符就是通用的匹配信息的符号

匹配所有在/dev 目录中且以 vda 开头的文件
ls -l /dev/vda*
只想查看文件名为 vda 开头,但是后面还紧跟其他某一个字符的文件的相关信息
ls -l /dev/vda?
使用[0-9]来匹配0~9 之间的单个数字,也可以用[135]这样的方式仅匹配这三个指定
数字中的一个
ls -l /dev/vda[0-9] 
ls -l /dev/sda[135]

常用的转义字符

4 个最常用的转义字符

  • 反斜杠(\):使反斜杠后面的一个变量变为单纯
  • 单引号('') :转义其中所有的变量为单纯的字符
  • 双引号("):保留其中的变量属性,不进行转
  • 反引号(``):把其中的命令执行后返回结果。
先定义一个名为 PRICE 的变量并赋值为 5,然后输出以双引号括起来的字符串与变
量信息
PRICE=5
echo "Price is $PRICE"
输出“Price is $5
echo "Price is \$$PRICE" 
需要某个命令的输出值
echo `uname -a` > readme.txt

重要的环境变量

在 Linux 系统中,变量名称一般都是大写的,这是一种约定俗成的规范

变量名称作用
HOME用户的主目录(即家目录)
SHELL用户在使用的Shell解释器名称
HISTSIZE输出的历史命令记录条数
HISTFILESIZE保存的历史命令记录条数
MAIL邮件保存路径
LANG系统语言、语系名称
RANDOM生成一个随机数字
PS1Bash解释器的提示符
PATH定义解释器搜索用户执行命令的路径
EDITOR用户默认的文本编辑器
Linux系统中最重要的10个环境变量
  • 把 ls 命令的正常输出信息追加写入到 error.txt文件中的命令是什么?
    • :ls >> error.txt
  • 请简单概述管道符的作用
    • 把左面命令的输出值作为右面命令的输入值以便进一步处理信息
  • Bash 解释器的通配符中,星号(*)代表几个字符?
    • 零个或多个
  • PATH 变量的作用是什么?
    • 设定解释器搜索所执行的命令的路径
  • 使用什么命令可以把名为 LINUX 的一般变量转换成全局变量?
    • export LINUX

=

一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。