第11章 shell
Shell两大家族:Bourne shell家族(Bourne Shell、bash、FreeBSD、Korn Shell、Pdksh、Zsh)和C-Shell家族(C-Shell、Tcsh)。
临时改变shell只需要直接在命令行输入shell名称运行shell,按^D可终止,回到最初shell;查看/etc/shells文件可知道系统安装了哪些shell。
改变登录shell使用chsh(change shell),其语法为:chsh [-s shell] [userid]
其中userid是希望改变shell的用户标识,shell是新登录shell的路径名。改变登录shell时,修改的是/etc/shell文件,因此要等下一次登录系统时才能生效。
第12章 使用shell:变量和选项
环境变量是全局变量(严格上讲不完全是全局的,子进程对环境变量的修改不会传递到父进程),shell变量是局部变量,要局部变量同时变为环境变量使用export命令。
查看环境变量用命令env或printenv,查看shell变量用set命令。
第13章 使用shell:命令和定制
使用反斜线引用单个字符,使用单引号引用(强引用)一串字符,使用双引号引用(弱引用)一串字符但保留$(美元)、`(反引号)和\(反斜线)的特殊含义。
Bash和Tcsh允许使用特殊码来增强shell提示,其中Bash使用\作为转义字符,Tcsh使用%作为转义字符,例如,Bash中部分特殊码如下:
\w(工作目录)、\h(主机名)、\u(用户标识)、\@(时间:AM/PM表示法) 。
可以将命令封装在反引号中,嵌入其他命令中,例如: echo "The time and date are `date` "。
Bash可以使用^R(重新调用),例如,调用最近的一条ls命令,可以按下^R,然后键入ls。
unalias移除别名,加反斜杠使用原始命令而不使用别名,如\ls使用原始ls。
fc命令可以显示历史命令,并可以修改命令并重新执行,例如:fc -s ls=rm 将上一条命令的ls修改为rm然后执行。
表示法cd \!* 指在原始命令行上键入的任何参数。