为了工作需求,好好补补自己的Linux基础,鸟哥的书确实不错。
- Shell
子进程仅会继承父进程的环境(全局)变量,而不会继承自定义(局部)变量。 所以需要用到export 变量
才可以。
数组读取需要:echo ${var[1]}
- "&&"的结合性高于"||",如下
ls /tmp/abc || echo "not exist" && echo "exit"
的结果是:
“如果/tmp/abc存在, 那么执行后面的(echo "not exist" && echo "exit")”,则会同时输出"exist"与"not exist" - 管道命令仅会处理standard output, 对于standard error output予以忽略
且管道后的命令必须可以接收前一个命令的结果。 - tee双向重定向:既输出文件,又输出到命令行
-
^
符号在[]
的内部与外部不一样,在内部:反向选择,在外部:行首字符是后面。 - sed:删除2~5行:
nl passwd | sed '2,5d'
截取5~7行:nl passwd | sed -n '2,5p'
(-n :安静模式)
替换:sed 's/原字符/新字符/g'
- awk:
awk '条件类型1{动作1} 条件类型2{动作2} ...' filename
例如:last -n 5 | awk '{print $1 "\t lines: " NR "\t columns: " NF}'
:
(NR: 目前awk处理的“第几行”的数据; NF: 每一行($0)拥有的字段总数;FS: 目前的分割字符,默认是空格键)