Shell学习札记(三)
系统提示信息
Bash shell的登录信息提示在【/etc/issue】和【/etc/motd】中配置。
【/etc/issue】文件可以修改系统提示信息,例如系统版本、时间等
【/etc/motd】文件可以修改用户登陆时候的提示信息,例如欢迎信息等。
- 【\d】本地端的时间的日期
- 【\l】显示第几个终端接口
- 【\m】显示硬件等级
- 【\n】显示主机的网络名称
- 【\r】操作系统的版本
- 【\t24】小时时间格式显示时间
- 【\s】操作系统名称
- 【\v】操作系统的版本
修改/etc/issue文件影响第一行
修改/etc/motd文件影响第二行
系统设定值
Bash shell系统设定值在【/etc/profile】和【/etc/bashrc】中进行设置。而个人设定值在【~/.bash_profile】和【~/.bashrc】中设置。
- 【/etc/profile】文件中设置了几个重要的环境变量。例如PATH、MAIL、LOGNAME、HOSTNAME、INPUTRC等。同时这个文件也规划出【/etc/profile.d】。
- 【/etc/bashrc】文件在规划umask的功能,也同时规划出提示符“PS1”的内容。
- 【/etc/man.config】文件规范了使用man的时候man page的路径到那里寻找。
个人设定值
Bash shell个人设定值在【~/.bash_profile】和【~/.bashrc】中设置。
- 【~/.bash_profile】文件中定义了个人化的路径(PATH)与环境变量的文件名称。
- 【~/.bashrc】文件中设置个人化变量。例如命令的别名设置、路径的重新定义等。
- 【~/.bash_logout】文件中指定了在注销shell的时候,BASH会为你做的事情。
- 【source】命令可以将设定在文件中的内容读取一次。
在上面的4个文件中分别加上标示。
login as: root root@192.168.14.21's password: Server refused to set environment variables Last login: Thu Aug 16 22:13:38 2012 this is /etc/profile this is /etc/bashrc this is ~/.bashrc this is ~/.bash_profile [root@jianshi-21 ~]#
用户登录系统时配置文件的加载顺序:
1 /etc/profile
2 /etc/bashrc
3 ~/.bashrc
4 ~/.bash_profile
[root@jianshi-21 ~]# source .bashrc this is /etc/bashrc this is ~/.bashrc [root@jianshi-21 ~]#
[root@jianshi-21 ~]# . .bashrc this is /etc/bashrc this is ~/.bashrc [root@jianshi-21 ~]#
终端环境设置
终端的环境设置使用【stty】命令,通过stty命令可以直接修改和查询终端驱动程序的设置。stty命令的使用比较简单,可以不带参数执行。
【stty -a】命令将当前所有的stty参数全部显示出来。
- intr 给正在运行的程序发送中断信号。
- quit 给正在运行的程序发送推出信号。
- erase 向前删除字符
- kill 删除命令行上的文字
- eof 文件结束、输入结束
- start 重启暂停的输入
- stop 停止当前的输入
- susp 给正在运行的程序发送一个终端停止信号
- rpint 输入命令的时候提示使用过的
- werase 删除命令行的最后一个字
[root@jianshi-21 ~]# stty -a speed 38400 baud; rows 24; columns 80; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke [root@jianshi-21 ~]#
有时候运行一些程序,需要修改终端的设置。对于用户而言,这些修改往往是不可见的,因为程序在退出后,会将终端设置为原有的情况。但是,如果出现程序崩溃或被kill命令杀死的情况,有可能来不及将终端设置为原有的参数。这时,终端就有可能出现异常的情况,有可能不能正常处理换行字符,或不能恰当地显示输入的字符,甚至可能不能正确执行命令。
使用cat命令或more命令去显示一个二进制文件也有可能会造成终端的混乱。下图为所示为使用了cat命令显示一个名为a.out的二进制文件的情况。显示完文件内容后,出现了终端的混乱。这时,所有输入和输出字符都无法正常显示。出现这种情况的原因是由于很多的二进制文件都包含有特殊的字符,这些字符会导致终端混乱这一问题的出现。
在这种情况下,可以使用reset命令将终端恢复到正确的状态。
修改del向后删除,backspace向前删除
Sty erase ^? Stty erase ^H