目录
Bash是shell的一种。
Shell 的作用
通过壳程序 (shell) 来跟核心沟通,如同鸡蛋的外壳一样,以让核心(kernel)达到我们所想要达到的工作。
shell的分类
由于早年的 Unix 年代,发展者众,所以由于 shell 依据发展者的不同就有许多的版本,例如常听到的 Bourne SHell (sh) 、在Sun 里头默认的 C SHell、 商业上常用的 K SHell、, 还有 TCSH 等等,每一种 Shell 都各有其特点。至于 Linux 使用的这一种版本就称为“ Bourne Again SHell (简称 bash) ”,这个Shell 是 Bourne Shell 的增强版本
基本使用
使用 bash shell 的时候只需要操作键盘。
ctrl + a = home
ctrl + e = end
变量相关
echo 配合 钱字号$ 读取变量
echo $variable 获取变量的值
echo $PATHvar=value 设置变量var的值为 value ,注意=前后不能有空格unset var 取消变量var的设置
比如 ~就代表当前用户的主文件夹
可以将自己频繁使用的路径设置为变量,这样在使用Linux时效率更高。
特殊符号
数据流重导向
通过 < > >> << 等符号将原本屏幕输出的内容 保存到文件中,或者从文件读取内容输出到屏幕。
1. 标准输入 (stdin) :代码为 0 ,使用 < 或 << ;
2. 标准输出 (stdout):代码为 1 ,使用 > 或 >> ;
3. 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ;
1> :以覆盖的方法将“正确的数据”输出到指定的文件或设备上;
1>>:以累加的方法将“正确的数据”输出到指定的文件或设备上;
2> :以覆盖的方法将“错误的数据”输出到指定的文件或设备上;
2>>:以累加的方法将“错误的数据”输出到指定的文件或设备上;
/dev/null 垃圾桶黑洞设备
在调用某些写好的库时,它本身里面会输出一些日志信息,只需要在后面连接上
> /dev/null 即可忽略
> /dev/null 可以将正确的数据(正常执行后的响应) 忽略
管线命令
管线命令“ | ”仅能处理经由前面一个指令传来的正确信息,也就是 standard output 的
信息,对于 stdandard error 并没有直接处理的能力。
所以在使用时需要注意:
管线命令仅会处理 standard output,对于 standard error output 会予以忽略
管线命令必须要能够接受来自前一个指令的数据成为 standard input 继续处理才行
所以less, more, head, tail都属于管线命令,而ls, cp, mv 等就不是管线命令。
文本分析/摘取命令
文本的摘取通常都是一行一行进行分析的。
cut
export会显示当前的环境变量,可以通过cut对export输出的规整的文本进行处理并输出。
cut -c start-end 以字符 为的单位取出固定字符区间 [start, end]
grep
支持的语法很多,可以用来搜索关键字。
type -a grep
grep 是 `grep --color=auto' 的别名
grep 是 /bin/grep
同样可以对export 的内容进行检索,找到其中包含"/usr/"的文本行