Basic
管道
管道, 有点类似于 文件的重定向.
文件的重定向是: 将前一个命令的stdout, 输入到, 文件里 即左侧是命令, 右侧是文件 echo "abc" > in.txt : 将abc 覆盖到 in.txt里
管道:是将 前一个命令 的stdout输出, 对接到, 下一个命令的 stdin输入 , 他的左右两侧, 都是命令
' 当前文件夹下, 有a.txt(内容是: content_a) 和 b.txt(内容是: content_b) '
ls ' 输出: a.txt b.txt '
ls | cat ' 输出: a.txt b.txt (即, cat接收了 stdin, 类似于: cat "a.txt b.txt") '
ls | xargs cat ' 输出: content_a content_b (xargs cat是: 将stdin, 变成参数!! 即: cat a.txt b.txt) '
find . -name '*.txt' ' 输出: ./a.txt ./dir/b.txt (作用是: 输出当前文件夹下 所有*.txt的相对路径 (包括子文件夹里的)'
xargs cat ' 将stdin, 变成 参数; (即, 将cat "a.txt" 变成 cat a.txt) '
wc -l ' 计算文本的总行数 '
find . -name '*.txt' | xargs cat | wc -l ' 计算所有*.txt 的内容的 总行数 '
即, 管道 可以支持串联 操作, 即从左到右, 将前一个的stdout, 变成, 后一个的stdin
环境变量
环境变量, 类似于全局变量, 所有进程都能访问到
env命令: 展示所有的 当前用户的 环境变量
PWD=/home/acs/test ' 我们使用PWD命令, 其实就是输出的这个变量的值 '
SHELL=/bin/bash
LOGNAME=acs ' 当前登录的 用户名 '
MOTD_SHOWN=pam
HOME=/home/acs
SSH_CLIENT=47.93.242.17 45434 22
set命令: 展示当前shell的 变量
输出某个环境的值: echo $PWD
|