• 【shell编程基础0】bash shell编程的基本配置


    前面一篇“shell编程之变量篇”主要讲述下shell编程的变量的基本知识:设置变量的方式,自定义变量和环境变量的差别,变量的替换、删除、测试等。

    这一篇主要是讲述在bash shell下的一些基本配置:别名,命令执行,配置文件的读取,可以自定义修改的配置文件。

    • 别名设置

    别名设置方式:alias      

    alias cl='clear'

    如上所示的形式

    如果希望每次启动shell都能使用这些别名的话,修改自己用户目录下的"~/.bashrc"配置文件,如下图,在文件中找一个适当的位置写入就可以了。

    # some more ls aliases
    alias ll='ls -alF'
    alias la='ls -A'
    alias l='ls -CF'
    
    # add by user
    alias cl='clear'
    alias lm='ls -al | more'
    #alias rm='rm -i'
    #alias cp='cp -i'
    #alias mv='mv -i'
    alias hi='history'

    写完之后使用source命令应用

    # source ~/.bashrc

    • 历史命令
    history 
    n 列出最近的几条历史命令
    -c 消除历史命令
    -a 将新增的历史命令写入到file中,没有指明的话就是默认在 ~/.bash_history

    历史命令最有用的一点就是可以查看历史命令,并且根据他的编号来执行历史命令。具体如下

    #使用
    #执行第numer条命令
    $ !number   #number是 指历史命令的第几条
    
    #执行上一条命令
    $ !!             #两个感叹号就是执行上一条命令

    • 命令的寻找顺序

    由之前学习的知识可以知道我们的命令存在形式很多种:绝对路径下的命令,相对路径下的命令,别名指向的命令,还有bash的内建命令,那么对于同一个命令,当这几种都冲突的时候,他的优先级是怎样的。

    按照序号顺序的优先级:

    1. 以相对路径和绝对路径执行的命令优先
    2. 由alias找到的别名优先
    3. bash内置的命令
    4. 通过PATH变量寻找的命令

    • bash的一些配置文件

    这里有两个很好玩的配置文件,是tty1-tty6的开机启动的配置文件。

    /etc/issue       bash登录界面显示信息

    /etc/motd       bash登录之后的显示信息

    这两个文件的作用不在图形界面的shell中显示,需要打开tty登录。

    这里可以看下我的配置登录界面的效果图:

    图就是我在/etc/issue中修改的显示信息。

    1. 接下来说说一些其他的配置文件

    说之前我们分一下login-shell与non-login-shell的差别。

    简单的说差别就在于login-shell是在tty1-tty6中登录的bash shell,non-login-shell就是图形界面登录的bash shell

    login-shell读取的文件:

    1. /etc/profile       系统全局的设置文件

    2. ~/.bashrc或者~/.profile               用户自定义的设置文件

    /etc/profile是一个全局的设置,一般不需要更改

    总结:login-shell的读取配置文件流程

    图中的 ~/.bash_profile  在ubuntu中是没有的,这个文件是调用~/.bashrc文件的,主要是为了兼容老用户的习惯,ubuntu中可能是删除了这个文件

    ~/.bashrc  文件login-shell 和non-login-shell都会读取

    2.还有一些其他常用的配置文件

    • PATH变量在   /etc/environment 文件中
    • /etc/profile.d/*.sh    该文件夹下的脚本文件主要用于设置bash的操作接口和字体颜色,语系,别名
    • /etc/manpath.config    寻找man page的路径
    • ~/.bash_history        历史命令文件
    • ~/.bash_logout         用户注销之后再帮我完成什么动作,在这里配置
  • 相关阅读:
    Linux yum命令重装mysql
    Java多线程编程<一>
    Java内存区域与内存溢出异常
    实现一个线程安全的Queue队列
    Java 原始数据类型转换
    对象-关系映射ORM(Object Relational Mapping)(转)
    2进制,16进制,BCD,ascii,序列化对象相互转换
    Apache MINA 框架之默认session管理类实现
    Struts.properties(转)
    vue常用插件-数字滚动效果vue-count-to
  • 原文地址:https://www.cnblogs.com/panhao/p/5315223.html
Copyright © 2020-2023  润新知