启动

Session

用户每次使用Shell,都要开启一个Session(对话)。

Session有两种类型:登录Shell和非登录Shell。它们的区别有两点,一是“登录Shell”会提示用户输入用户名和密码,二是它们的初始化脚本不同。

登录Shell的初始化脚本如下。

  • /etc/profile:所有用户的全局配置脚本。
  • /etc/profile.d目录里面所有.sh文件
  • ~/.bash_profile:用户的个人配置脚本。
  • ~/.bash_login:如果~/.bash_profile没找到,则尝试读取这个脚本。
  • ~/.profile:如果~/.bash_profile~/.bash_login都没找到,则尝试读取这个脚本。

发行版更新的时候,会更新/etc里面的文件,比如/etc/profile,因此不要直接修改这个文件。如果想修改所有用户的登陆环境,就在/etc/profile.d目录里面新建.sh脚本。

非登录Shell的初始化脚本如下。

  • /etc/bash.bashrc
  • ~/.bashrc

对用户来说,~/.bashrc通常是最重要的脚本。非登录Shell默认会执行它,而登录Shell也会通过调用执行它。

下面是一个典型的.bash_profile文件。

# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH

上面代码中,只要.bashrc存在,就会执行它。

bash命令的--login参数,会强制执行登陆shell会执行的脚本;--noprofile参数告诉Bash跳过这些profile脚本。--norc参数禁止在互动Shell执行~/.bashrc脚步;--rcfile参数指定一个配置,代替.bashrc

$ echo VAR1=var1>testrc
$ echo $VAR1

$ bash --rcfile testrc
$ echo $VAR1
var1

启动选项

为了方便 Debug,有时在启动 Bash 的时候,可以加上启动选项。

-n不运行脚本,只检查是否有语法错误。

-v参数在输出每一行语句运行结果前,会先输出该行语句。

-x参数在每一个命令处理完以后,先输出该命令,再进行下一个命令的处理。

$ bash -n scriptname
$ bash -v scriptname
$ bash -x scriptname

键盘绑定

可以用"\C-t":"pwd\n"将 Ctrl-t 绑定为运行pwd命令。

全局的键盘绑定文件默认为/etc/inputrc,你可以创造自己的键盘绑定在主目录的.inputrc文件。如果你定义这个文件,需要在其中加入下面这行,保证全局绑定不会被遗漏。

$include /etc/inputrc

source

source命令用于执行一个脚本,通常用于重新加载一个配置文件。

$ source .bashrc

source有一个简写形式,可以使用一个点(.)来表示。

$ . .bashrc

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「IT平头哥联盟」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

results matching ""

    No results matching ""