Bash shell操作环境

一.路径的命令与查找顺序

如果一个命令被执行,命令的运行的顺序可以这样看

  1. 以相对/绝对路径运行命令,例如『 /bin/ls 』或『 ./ls 』;

  2. 由 alias 找到该命令来运行;

  3. 由 bash 内建的 (builtin) 命令来运行;

  4. 透过 $PATH 这个变量的顺序搜寻到的第一个命令来运行。

如果想要了解命令的查找的顺序,可以通过【type -a 命令】查询到

二.bash的环境配置文件

linux系统有一些环境配置文件的存在,让bash在启动时直接读取这些配置文件,以规划好bash的操作环境啦!而这些配置文件又可以分为全局系统的配置文件以及用户个人偏好配置文件。要注意的是,命令别名(alias)、自定义的变量啦,在注销bash后就会失效,所以你想要保留你的设定,就得要将这些设定写入配置文件才行。

首先需要知道login shell和non-login shell

  • login shell:取得 bash 时需要完整的登入流程的,就称为 login shell。

  • non-login shell:取得 bash 的方法不需要重复登入的操作

这两个取得 bash 的情况中,读取的配置文件数据并不一样。

1.login-shell读取的配置文件

login-shell只会读取两个配置文件:/etc/profile(整体配置),【~/.bash_profile 或 ~/.bash_login 或 ~/.profile】三者中的一个(个人配置)

 

/etc/profile

这是系统整体的设定,你最好不要修改这个文件。

这个配置文件可以利用使用者的标识符(UID)来决定很多重要的变量数据,这也是每个使用者登入取得bash时一定会读取的配置文件!所以如果你想要帮所有使用者设定整体环境,那就是改这里

/etc/profile 可不止会做这些事而已,他还会去调用外部的配置文件,例如CentOS 7.x 默认的情况下,

底下这些数据会依序的被呼叫进来:

 

文件

作用

/etc/profile.d/*.sh

如果你需要帮所有使用者设定一些共享的命令别名时, 可以在这个目录底下自行建立扩展名为 .sh 的文件,并将所需要的数据写入即可

/etc/locale.conf

这个文件是由/etc/profile.d/lang.sh调用的!这也是我们决定bash预设使用何种语系的重要配置文件!

/usr/share/bash-completion/completions/*

tab命令具有命令补齐、文件名补齐之外,还可以进行指令的选项/参数补齐功能!就是从这个目录里面找到相对应的指令来处理的!

这个目录底下的内容是由/etc/profile.d/bash_completion.sh 这个文件载入的

~/.bash_profile

属于使用者个人配置,你要改自己的数据,就写入这里

bash 在读完了整体环境设定的 /etc/profile 并藉此呼叫其他配置文件后,接下来则是会读取使用者的个人配置文件。 在 login shell 的 bash 环境中,所读取的个人偏好配置文件其实主要有三个,依序分别是:

  1.  ~/.bash_profile

  2.  ~/.bash_login

  3.  ~/.profile

其实 bash 的 login shell 设定只会读取上面三个文件的其中一个, 而读取的顺序则是依照上面的顺序。

最后,我们来看看整个login shell 的读取流程:

实线的的方向是主线流程,虚线的方向则是被调用的配置文件!从上面我们也可以清楚的知道,在CentOS 的 login shell 环境下,最终被读取的配置文件是『~/.bashrc 』这个文件!所以,你当然可以将自己的偏好设定写入该文件即可。

2.non-login shell读取的配置文件

当你取得 non-login shell时,该bash 配置文件仅会读取 ~/.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是CentOS特有的(其实是Red Hat系统特有的),其他不同的版本的Linux可能会放置在不同的文件名。

3.source或.:读入环境配置文件

如果你将自己的偏好设置写入上述的文件后,通常都是得注销再登入后,该设定才会生效。那么,能不能直接读取配置文件而不注销登入呢? 可以的!那就得要利用 source 这个指令了!

source 配置文件

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值