鸟哥的Linux私房菜 第十一章 认识与学习 BASH
Bash Shell的操作环境
路径与指令搜寻顺序:
1 以绝对/相对路径执行指令
2 由alias找到该指令来执行
3 由bash内建的指令来执行
4 透过$PATH这个变数的顺序搜寻到的第一个指令来执行
type -a ls可以查询指令搜寻的顺序
bash的环境设定档
两种环境:
1 login shell :取得bash时需要完整的登入流程,就称为login shell
2 non-login shell:取得bash界面的方法不需要重复登入的举动,
1 以x window登入linux后,再以X的图形化界面启动终端机,没有输入账号和密码,这个环境就是non-login shell
2 在原本bash环境下再次下达bash这个指令,也没有输入账号密码,第二个bash也是non-login shell
login shell 会读取两个设定档
1 /etc/profile:这是系统整体的设定,最好不要修改这个档案
2 ~/.bash_profile或~/.bash_login或~/.profile:属于使用者个人设定
如果你将自己的偏好设定写入上述的档案后,通常都是得登出再登入后,该设定才会生效。
利用 source 或小数点 (.) 都可以将设定档的内容读进来目前的 shell 环境中
non-login shell会读取的设定档:
~/.bashrc
其他相关设定档:
/etc/man.config:规范了使用man的时候,man page的路径到哪里去寻找
~/.bash_history:历史命令的记录
~/.bash_logout:当等出bash后,系统再执行什么动作
资料流重导向
资料流重导向就是将某个指令执行后应该要出现在屏幕上的资料,传输到其他的地方:
标准输入 (stdin) :代码为 0 ,使用 < 或 << ;
标准输出 (stdout):代码为 1 ,使用 > 或 >> ;
标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ;
在标准输出和标准错误输出时,>代表覆盖,>>该表累加
/dev/null 垃圾桶黑洞装置与特殊写法:可以丢弃任何导向这个装置的信息
> list 2>&1 或者 &> list:正确和错误资料都写入一个档案
在标准输入中,<代表,原本需要由键盘输入的资料,改由档案内容来取代,<<代表输入之后的字母,本次输入就结束了
命令执行的判断依据: ; , &&, ||
cmd ; cmd 可以一次执行多个指令
cmd1 && cmd2 cmd1正确,则执行cmd2;cmd1错误,不执行cmd2
cmd1 || cmd2 cmd1正确,不执行cmd2;cmd1错误,执行cmd2
管线命令
"|" 仅能处理经由前面一个指令传来的正确资讯
管线命令仅会处理standard output,对于standard error output会予以忽略
管线命令必须要能够接受来自前一个指令的资料成为standard input继续处理才行
cut:将一段讯息的某一段给他‘切’出来
cut -d'分隔字元' -f fields
cut -c 字元区间
选项与参数: -d :后面接分隔字元。与 -f 一起使用;
-f :依据 -d 的分隔字元将一段讯息分割成为数段,用 -f 取出第几段的意思;
-c :以字元 (characters) 的单位取出固定字元区间;
例子:
echo $PATH | cut -d ':' -f 5
export | cut -c 12-
grep:分析一行讯息, 若当中有我们所需要的资讯,就将该行拿出来
grep [-acinv] [--color=auto] '搜寻字串' filename
选项与参数:
-a :将 binary 档案以 text 档案的方式搜寻资料
-c :计算找到 '搜寻字串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字串' 内容的那一行!
--color=auto :可以将找到的关键字部分加上颜色的显示喔!
例子:
last | grep 'root'
排序命令: sort, wc, uniq
sort [-fbMnrtuk] [file or stdin]
选项与参数:
-f :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b :忽略最前面的空白字元部分;
-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n :使用‘纯数字’进行排序(预设是以文字型态来排序的);
-r :反向排序;
-u :就是 uniq ,相同的资料中,仅出现一行代表;
-t :分隔符号,预设是用 [tab] 键来分隔;
-k :以那个区间 (field) 来进行排序的意思
uniq [-ic]
选项与参数:
-i :忽略大小写字元的不同;
-c :进行计数
wc [-lwm]
选项与参数:
-l :仅列出行;
-w :仅列出多少字(英文单字);
-m :多少字元;
双向重导向: tee
tee 会同时将资料流分送到档案去与荧幕

浙公网安备 33010602011771号