Linux就该这么学 5 | 管道符、重定向和环境变量



1. 重定向

重定向技术的 5 种模式

  • 标准覆盖输出重定向
  • 标准追加输出重定向
  • 错误覆盖输出重定向
  • 错误追加输出重定向
  • 输入重定向
重定向 缩写 文件描述符 描述
标准输入重定向 STDIN 0 默认从键盘输入,也可从其他文件或命令中输入
标准输出重定向 STDOUT 1 默认输出到屏幕
错误输出重定向 STDERR 2 默认输出到屏幕

提示:

  • 对于重定向中的标准输出模式,可以省略文件描述符 1 不写
  • 对于重定向中的错误输出模式,文件描述符 2是必须要写的

输入重定向

符号 作用
命令 < 文件 将文件作为命令的标准输入
命令 << 分界符 从标准输入中读入,直到遇见分界符才停止
命令 <文件1> <文件2> 将文件 1 作为命令的标准输入并将标准输出到文件 2

输出重定向

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

命令 &>> 文件
将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

如:

  1. 通过标准输出重定向将 man bash 命令原本要输出到屏幕的信息
    写入到文件 readme.txt 中,然后显示 readme.txt 文件中的内容
    man bash > readme.txt
    cat readme.txt

  2. 通过覆盖写入模式向 readme.txt 文件写入一行数据(该文件
    中包含上一个实验的 man 命令信息),然后再通过追加写入模式向文件再写入一次数据
    echo "HelloWorld\!" > readme.txt
    echo "Hi" >> readme.txt

2. 管道命令符

把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入
命令 A | 命令 B
命令 A | 命令 B | 命令 C|...

如:

  1. 找出被限制登录用户个数
    grep "/sbin/nologin" /etc/passwd | wc -l

  2. 翻页的形式查看/etc 目录中的文件列表及属性信息
    ls -l /etc/ | more

  3. 在修改用户密码时,通常都需要输入两次密码以进行确认,这在编写自动化脚本时将成为一个非常致命的缺陷。通过把管道符和 passwd 命令的--stdin 参数相结合,我们可以用一条命令来完成密码重置操作(不过会在history看到,不安全)
    echo "123456" | passwd --stdin root

3. 命令行的通配符

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

  • 星号(*)代表匹配零个或多个字符
  • 问号(?)代表匹配单个字符,
  • 中括号内加上数字[0-9]代表匹配 0~9 之间的单个数字的字符
  • 中括号内加上字母[abc]则是代表匹配 a、 b、 c 三个字符中的任意一个字符

如:

ls -alh /dev/sda*

ls -alh /dev/sda?

ls -alh /dev/sda[0-9]

ls -alh /dev/sda[137]

4. 常用的转义字符

转义字符 说明
反斜杠 \ 使反斜杠后面的一个变量变为单纯的字符串
单引号 '' 转义其中所有的变量为单纯的字符串
双引号 "" 保留其中的变量属性,不进行转义处理
反引号 `` 把其中的命令执行后返回结果

如:

PRICE=5
echo "Price is $PRICE"

echo "Price is $$PRICE"

提示:

  • 美元符号与变量提取符号合并后的$$作用是显示当前程序的进程 ID

echo "Price is \$$PRICE"

5. 重要的环境变量

  • Linux 系统中一切都是文件
  • 变量是计算机系统用于保存可变值的数据类型
  • 在 Linux 系统中,变量名称一般都是大写的,这是一种约定俗成的规范
  • 可以直接通过变量名称来提取到对应的变量值 echo [变量名]
  • Linux系统中的环境变量是用来定义系统运行环境的一些参数
  • PATH 变量的作用是设定解释器搜索所执行的命令的路径

问题:

  • 为什么不能将当前目录(.)添加到 PATH 中呢? ”
    原因是尽管可以将当前目录(.)添加到 PATH 变量中,从而在某些情况下可以让用户免去输入命令所在路径的麻烦。但是,如果黑客在比较常用的公共目录/tmp 中存放了一个与 ls 或 cd 命令同名的木马文件,而用户又恰巧在公共目录中执行了这些命令,那么就极有可能中招了

Linux 系统中最重要的 10 个环境变量

变量名称 作用
HOME 用户的主目录(即家目录)
SHELL 用户在使用的 Shell 解释器名称
HISTSIZE 输出的历史命令记录条数
HISTFILESIZE 保存的历史命令记录条数
MAIL 邮件保存路径
LANG 系统语言、语系名称
RANDOM 生成一个随机数字
PS1 Bash 解释器的提示符
PATH 定义解释器搜索用户执行命令的路径
EDITOR 用户默认的文本编辑器

变量是由固定的变量名与用户或系统设置的变量值两部分组成的

完全可以自行创建变量,来满足工作需求。例如设置一个名称为WORKDIR 的变量,方便用户更轻松地进入一个层次较深的目录
mkdir /home/workdir
WORKDIR=/home/workdir

提示:

  • 这样的变量不具有全局性,作用范围也有限,默认情况下不能被其他用户使用,export 命令将其提升为全局变量
  • export WORKDIR

更新中.....


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容