Bash Shell的操作环境

  1. 路径与命令查找顺序
    可以通过type -a 变量名 来查看变量名
    如果一个系统中有多个ls命令,那么ls命令执行顺序为
     1.以相对/绝对路径执行命令,例如"/bin/ls"或"./ls"
     2.由alias找到该命令来执行
     3.由bash内置的(builtin)命令来执行
     4.通过$PATH这个变量的顺序找到第一个命令来执行
    举例子:设置echo的别名为echo -n,然后再查看echo执行的顺序

    [root@www~]#alias echo='echo -n'
    [root@www~]#type -a echo
    echo is aliased to '-echo n'
    echo is shell builtin
    echo is /bin/echo
    
  2. bash的登录与欢迎信息:/etc/issue,/etc/motd

    issue内的各代码的意义
    \d 本地端时间日期
    \l 显示第几个终端接口
    \m 显示主机的网络名称
    \m 显示硬件的等级
    \n 显示主机的网络名称
    \o 显示domain name
    \r 操作系统的版本
    \t 显示本地端时间的时间
    \s 操作系统的名称
    \v 操作系统的版本

    可以修改/etc/issue这个文件来修改bash的登录与欢迎信息。
    /etc/issue.net这个文件是提供给telnet这个远程登录程序使用的,当我们使用telnet连接主机,主机的登陆界面,就会显示/etc/issue.net。
    /etc/motd里面的信息是你想要让用户登录后取得的一些信息,例如你想要让大家都知道的信息,那么可以将信息加入/etc/motd里面去。

  3. 终端机的环境设置:ssty,set
    查阅目前一些按键的内容,可以使用命令ssty。ssty也可以帮助设置终端机的输入按键代表的意义。

    [root@www~]# ssty [-a]
    参数:
    -a:将目前所有的ssty参数列出来
    
    参数 含义
    eof End of life代表输入结束
    erase 向后删除字符
    intr 送出一个interrupt的信号给目前正在运行的程序
    kill 删除在目前命令行上的所有文字
    quit 送出一个quit信号给目前正在运行的进程
    start 在某个进程停止后,重新启动它的输出
    stop 停止目前屏幕的输出
    susp 送出一个terminal stop的信号给正在运行的进程

    bash还有自己的一些终端设置值,利用set来设置,之前提到一些变量,可以利用set来显示,其实set还可以帮我们设置整个命令输出/输入的环境。

    参数 含义
    -u 默认不启用,若启用后,当使用未设置变量时,会显示错误信息
    -v 默认不启用,若启用后,在讯息被输出前,会先显示信息的原始内容
    -x 默认不启用,若启用后,在命令被执行前,会显示命令内容
    -h 默认启用,与历史命令有关
    -H 默认启用,与历史命令有关
    -m 默认启用,与工作管理有关
    -B 默认启用,与刮号[]的作用有关
    -C 默认不启用,使用>等时,则若文件存在时,该文件不会被覆盖
    组合按键 含义
    Ctrl+C 终止目前的命令
    Ctrl+D 输入结束,例如邮件结束的时候
    Ctrl+M 就是Enter
    Ctrl+S 暂停屏幕输出
    Ctrl+Q 恢复屏幕输出
    Ctrl+U 在提示符下,将整行命令删除
    Ctrl+Z 暂停目前的命令
  4. 通配符与特殊符号

    符号 意义
    * 代表0到无穷多个任意符
    ? 代表一定有一个任意字符
    [] 同样代表一定有一个在中括号内的字符,例如[abcd]代表一定有a,b,c,d中任意一个
    [-] 若减号在中括号中,代表在编码顺序内的所有字符,[0-9]代表有0到9中任意一个字符
    [^] 若中括号内第一个字符为指数符号,那代表原向选择,例如[^abc]就代表没有a,b,c
    [root@www~]#LANG=C    <===由于与编码有关,先设置语系
    [root@www~]# ll -d /etc/cron*     <====找出/etc/下面以cron开头的文件
    [root@www~]# ll -d /etc/?????   <===找出/etc/下面五个字母的文件名
    [root@www~]# ll -d /etc/*[0-9]*    <===找出/etc/下面含有数字的文件名
    [root@www~]# ll -d /etc/[^a-z]*    <===找出不是小写字母开头的文件名
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章