在linux环境下,如果你不懂得bash,那么其他的东西也就不要学了。之前讲过linux的核心是内核,我们用户必须通过某个东西来与内核进行交互,这样才能操作linux。这个东西就是shell。shell其实就是个用户界面,这里我们主要介绍最常用的bash shell。他是linux预设的shell。
1. 首先介绍几个指令:
history:命令修改能力,可以列出使用过的指令,最多可达1000个。
tab键:命令与档案补全能力,之前有介绍过。
alias:命令别名设定功能,alias lm =‘ls -al’最常用
shell scripts:程序化脚本
wildcard:通配符,例如X*就表示以X开头的档案
type:类型指令,例如type name就会显示该name是外部指令还是bash内建的指令
echo:变量的取用,除了常用的echo $PATH,还有echo $HOME等
2. 变量也是一个很重要的内容,与c语言中变量的定义类似,在给变量赋值时等号两边不能直接接空格符,另外还有双引号和单引号的区别,举例来说:
var="lang is $LANG",则echo $var显示lang is en_US
var=‘lang is $LANG’,则echo $var显示lang is $LANG
3. 若要将变量在其他子程序中执行,就用export来使变量变成环境变量,即export PATH
如果要取消变量,就用unset,即unset myname
4. env指令可以观察环境变量及其内容
5. set指令可以观察所有变量,包括环境变量和自定义变量
6. 之前提到过history指令,下面举一个例子:
history 3就是列出最新的三个指令,可以看见是history,history和history3,前面的号码是编号,如果操作!1019就是执行history这条指令,!!就是执行上一条指令,即history 3,!al就会执行al开头的指令。
history -w就会将历史记录写入~/.bash_history中。
7. 好了下面正式介绍下bash。我们知道用户登陆linux时,有时会让你输密码和用户名,这种模式称为login shell,即获得bash需要完整的登陆流程,而不用输直接进入就是non_login shell咯。
其实login shell登录时会读取两个配置文件:
1)/etc/profile:这是系统整体的设定,最好不要修改
2)~/.bash_profile:属于用户的个人设定
8. source指令读入环境配置文件,可以将配置文件的内容读到目前的shell环境中,用法为source filename
9. 之前讲过通配符,我觉得比较重要的有以下几个:1)ll -d /etc/cron*显示cron开头的文件2)ll -d /etc/?????显示?????的文件3)ll -d /etc/*[0-9]*显示含有数字的文件名4)ll -d /etc/[^a-z]*显示开头字母非小写字母的文件
10. /dev/null是垃圾黑洞装置,如果想将一些无用的文件删除,只要将其放入/null中即可,而且是不可恢复的,例如find /home -name .bahsrc 2>/dev/null就是将bashrc删除
之前介绍过截取,就是|,例如ls -al /etc | less的意思就是先用ls显示输出后的内容,然后利用less功能来翻页处理。