`
lewis122
  • 浏览: 231655 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics