鸟哥的linux私房菜学习笔记《二十二》bash shell的操作环境

  1. 命令执行的是顺序:
    可以通过“type -a 命令”来查询执行顺序

    以相对/绝对路径执行
    由alias找到该命令来执行
    由bash内置的(builtin)命令来执行
    通过$PATH这个变量的顺序找到的第一个命令来执行
    
    # 查询ls执行顺序:
    
    [root@CentOS ~]# type -a ls
    ls is aliased to `ls --color=auto'
    ls is /bin/ls
    
    # 查询入门执行顺序:
    
    [root@CentOS ~]# type -a rm
    rm is /bin/rm
    [root@CentOS ~]# 
  2. bash的登录与欢迎信息

    [root@CentOS ~]# cat /etc/issue
    CentOS release 6.5 (Final)
    Kernel \r on an \m
    

    这里写图片描述

    ```
    # 想要显示界面:
    CentOS release5.3 (Final) (terminal: tty3)
    Date: 2017-03-05 17:29:19
    Kernel: 2.6.18-128.e15 on an i686
    Welcome!
    
    # 将/etc/issue设置为:
    CentOS release5.3 (Final) (terminal: \1)
    Date: \d \t
    Kernel: \r on an \m
    Welcome!
    ```
    

    /etc/issue.net:提供telnet这个远程登录程序用的

    # 如果想让用户登录后获取一些信息,可以加入到/etc/motd里面
    [root@CentOS ~]# vim /etc/motd
    Hello,everyone,
    We will shutdown the system at 2017/06/06.

  3. bash的环境配置文件
    命令别名、自定义变量在注销shell后会失效,写在配置文件可以一直有效
    login shell:通过密码登录的shell(文字界面登录的系统)
    non-login shell:通过Xwindows打开的shell或者子shell

    login shell 一般会读取两个配置文件:
    1. /etc/profile:系统整体的配置
    2. ~/.bash_profile或者~/.bash_login或者~/.profile:用户个人配置

    这里写图片描述
    实现是主线流程,虚线是调用,CentOS默认login shell读取~/.bashrc这个文件,可以将自己偏好写入

    ```
    # /etc/profile:
    PATH:会依据UID决定PATH变量要不要显示sbin的系统命令目录
    MAIL:依据账号设置好用户的mailbox到/var/spool/mail账号名
    USER:根据用户的账号设置此项
    HOSTNAME:依据主机名设置此项
    HISTORY:命令记录条数
    ```
    
    ```
    # /etc/inputrc
    内容为bash的热键,[TAB]有没有声音等数据
    ```
    
    ```
    # /etc/profile.d/*sh
    只用用户具有r权限就可以执行目录内所有*.sh文件
    这个目录规定了bash操作接口的颜色,语言,ll与ls命令别名,vi的别名,which的别名等
    ```
    
    ```
    # /etc/susconfig/i18n
    语言设置
    ```
    bash的login shell情况下所读取的整体环境配置文件就是/etc/profile,然后/etc/profile调用其他文件执行
    
    ```
    #~/.bash_profile(login shell才会读)(以下三选一执行,那个存在读哪个)
    ~/.bash_profile
    ~/.bash_login
    ~/.profile
    ```
    
  4. source:读入环境配置文件

    
    # 读入环境配置文件(两种都可以)
    
    [root@CentOS ~]# source ~/.bashrc
    [root@CentOS ~]# . ~/.bashrc 
    
    
    # ~/.bashrc(non-login shell会读)
    
    [root@CentOS ~]# cat ~/.bashrc
    
    # .bashrc
    
    
    # User specific aliases and functions
    
    alias rm='rm -i'
    alias cp='cp -i'
    alias mv='mv -i'
    
    
    # Source global definitions
    
    if [ -f /etc/bashrc ]; then
        . /etc/bashrc
    fi
    
    
    # /etc/bashrc定义了如下内容:
    
    依据不同的UID规定的umask的值
    依据不同的UID规定提示符(就是PS1变量)
    调用/etc/profile.d/*.sh的设置

    由于~/.bashrc会调用/etc/bashrc及/etc/profile.d/*/sh,所以万一自己删除了~/.bashrc,那么也不会影响bash的使用,想要调回来,可以复制/etc/skel/.bashrc到主目录,再修改一下想要的内容,bingyongsource去调一下~/.bashrc,那么就回来了。

    
    # /etc/man.config
    
    规定了man的时候去哪里找man page
    man时找不到命令路径时可以手动添加到这个文件
    
    # ~/.bash_history
    
    历史命令就记录在这里
    
    # ~/.bash_logout
    
    记录注销bash后系统帮我做完什么操作再离开
  5. stty:终端机的设置
    在登录终端机时,会自动取得一些终端机的输入环境的设置
    1 . stty(setting tty):设置终端
    参数:
    -a:将目前所有的stty参数列出来

    [root@CentOS ~]# stty -a
    speed 38400 baud; rows 36; columns 88; line = 0;
    intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>;
    swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;
    flush = ^O; min = 1; time = 0;

    ^代表Ctrl按键
    几个重要的意义:
    这里写图片描述

    
    # 设置Ctrl+h作为退格键
    
    [root@CentOS ~]# stty erase ^h

    2 . set设置整个命令输出/输入的环境:
    参数:
    -u:启用后,当使用未设置的变量会显示错误信息
    -v:启动后,在讯息被输出前,会先显示信息的原始内容
    -x:启用后,命令被执行前,会显示命令内容(前面有+符号)
    -h:与历史命令有关
    -H:与历史命令有关
    -m:与工作管理有关
    -B:与[]有关
    -C:使用>等时,则若文件存在时,该文件不会被覆盖

    [root@CentOS ~]# echo $-
    himBH
    [root@CentOS ~]# set -u
    [root@CentOS ~]# set -x
    ++ printf '\033]0;%s@%s:%s\007' kevin CentOS '~'
    [root@CentOS ~]# echo $HOME
    + echo /root
    /root
    ++ printf '\033]0;%s@%s:%s\007' kevin CentOS '~'
    [root@CentOS ~]# 
    

    3 . 其他按键功能
    在/etc/inputrc里面
    这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值