Linux关于bash的二三事(2)

来源:互联网 发布:博雅软件2017 编辑:程序博客网 时间:2024/04/30 03:53

bash shell的操作环境

路径与命令查找顺序

       执行一个命令时,命令运行的顺序为:
1. 以相对/绝对路径执行命令;
2. 由alias找到该命令执行;
3. 由bash内置的命令来执行;
4. 通过$PATH这个变量的顺序找到第一个命令来执行。

登录与欢迎信息

       登录界面中的提示信息在/etc/issue文件中,这个文件中的内容与$PS1变量相似,通过反斜杠作为变量调用,各代码意义如下表所示:
图3
       如果希望用户登录之后取得一些信息,可以将信息加入/etc/motd中去。

环境配置文件

       系统中有一些环境配置文件,在bash启动时直接读取这些文件,规划好bash的操作环境。
       在了解配置文件前,需要区分login shell和non-login shell,这两个shell所读取的配置文件并不相同。取得bash时需要完整的登录流程的就成为login shell。取得bash接口的防范不需要重复登录的举动,这样的bash环境就成为non-login shell。
- /etc/profile
       这个文件可以利用用户的UID来决定很多重要的变量数据,也是每个用户登录取得bash时一定会读取的配置文件。这个文件设置的主要变量有 :PATH,MAIL,USER,HOSTNAME,HISTSIZE。
- /etc/inputrc
       此文件内容为bash的热键、[tab]有没有声音等的数据。
- /etc/profile.d/*.sh
       这个目录下的一系列文件规定了bash操作接口的颜色、语系、ll与ls命令的命令别名、vi的命令别名、which的命令别名等。
- /etc/sysconfig/i18n
       bash默认何种语系的重要配置文件。
- ~/.bash_profile
       个人偏好设置文件,除了此文件之外还有~/.bash_login和~/.profile,这三个文件只会读取一个。
- ~/.bashrc
       只有non-login shell会读取的配置文件。
- /etc/man.config
       这个文件规定了执行man的时候该去哪里查看数据的路径设置。
- ~/.bash_histroy
       这个文件与历史命令有关。
- ~/.bash_logout
       当注销bash后系统进行的操作。

通配符和特殊符号

       通配符可以方便bash处理数据,常用的通配符如下表所示:
图4
       bash环境中的特殊符号如下表所示:
图5
图6

终端机的环境设置

       可以使用stty命令查看当前的按键内容。

stty [-a]参数:-a:将目前所有的stty参数列出来

       几个重要的按键值得意义如下:
- eof:代表结束输入
- erase:向后删除字符
- intr:发送中断信号给目前正在运行的程序
- kill:删除目前命令行上所有文字
- quit:发送quit信号给目前正在运行的程序
- start:在某个进程停止后,重新启动它的输出
- stop:停止目前屏幕的输出
- susp:发送终端停止的信号给正在运行的程序
       利用set来设置终端机的变量值。

set [-uvCHhmBx]参数:-u:默认不启用,启用后,当使用未设置变量时,会显示错误信息-v:默认不启用,启用后,在讯息被输出后,会先显示信息的原始内容-x:默认不启用,启用后,在命令被执行前,会显示命令内容-h:默认启用,与历史命令有关-H:默认启用,与历史命令有关-m:默认启用,与工作管理有关-B:默认启用,与[]的作用有关-C:默认不启用,使用>等时,则若文件存在时,该文件不会被覆盖

       bash默认的组合键如下表所示:
图7

数据流重定向

什么是数据流重定向

       数据流重定向可以将standard output(简称stdout)与standard error output(简称stderr)分别传送到其他的文件或设备中去,分别传送使用的特殊字符如下表示:
1. 标准输入(stdin):代码为0,使用<或<<;
2. 标准输出(stdout):代码为1,使用>或>>;
3. 标准错误输出(stderr):代码为2,使用2>或2>>。
       <和<<的区别是:<以覆盖的方式工作,而<<以累加的方式工作,同理>和>>也是如此。如果要将错误信息忽略掉而不显示 或存储,可以重定向到/dev/null中。需要将两条信息写入同一个文件时,可以使用“&”符号。

命令执行的判断依据:;,&&,||

  • cmd;cmd
           两条指令按顺序执行,两条命令没有相关性。
  • &&和||
           两个连接符的意义如下表所示:
    图8
0 0
原创粉丝点击