(九)Bash shell
说Bash之前,先说一下shell,在运行C程序时,windows有一个黑色的窗口,那就是shell,简单来说就是用户可以通过shell操作内核,内核可以调控硬件,而bash就是一个shell。
至于现在有这么多图形环境为什么还要学shell,咳咳,技多不压身,主要是因为图形的工具是集成的,并不是一个完整的一个程序,有一些功能只有shell才能完成,更多原因是Linux发行版都有bash shell。
Linux里面不只bash shell,更多的shell请查看/etc/shells,这是个文件
1 | [manu@study ~]$ cat /etc/shells |
用户登陆时,系统会给一个默认的shell,具体是哪个shell,查看/etc/passwd文件
bash shell的功能
1.记录历史命令
使用命令时,可以发现使用上下键可以得到以前输入的命令,而这个命令的记录就在~/.bash_history文件里,当然记录命令有好有坏,它可以查询以前的指令,但当被黑客入侵时,翻找命令就会找到以前的重要信息
2.命令文件补全功能
可以补全命令、参数、文件等,可以少打很多字,确保正确
使用首字母和两下tab就可以得到关于字母的所有指令
3.命令别名
当某命令很长,而我们又常用时,就可以给他取一个“小名”,比如
1 | alias ll='ls -l' |
这样ll
就代表ls -l
4.任务管理、前台、后台控制(job control foreground background)
5.程序化脚本(shell scripts)
类似windows上的批处理功能
6.通配符(wildcard)
就像*可以代表任意字符一样
bash简单操作
查看指令是否为bash的内置指令
当man cd时,实际跳转的事bash的页面,所以cd就是bash的内置指令,可以使用type来观察某指令是bash的还是其他的指令
语法
1 | type [-] command |
命令的执行与编辑
前面说过\
可以将太长的指令转到下一行来输入,这个\
就是转义字符,顾名思义就是将它原本的意思转变成别的意思,在这里就是将enter
键原本的意思(执行)转变成下一行输入的意思,要特别注意一点,/
必须和enter
紧贴着,因为\
只转紧跟着的下一个字符
(九)Bash shell