鸟哥的Linux私房菜10.4.*Bash Shell的操作环境学习总结

本文详细介绍了BashShell中的操作环境设置,包括路径与指令搜索顺序,bash的启动欢迎信息,环境配置文件(loginshell和non-loginshell的区别),source指令的应用,以及终端机的环境设置和特殊符号的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

10.4 Bash Shell(壳)的操作环境

        Linux系统启动的时候就会有一些配置信息展示给我们,在用户登录成功后,也会有一些系统告知信息弹出;此外,就像我们设置的环境变量,以及alias后给一些命令取的别名之类,能不能在登陆的时候就主动的帮我们设置好?其实这些都是一些配置文件配置的,又分为了系统配置以及个人个性配置,不同点就仅仅在于配置文件所放的位置不一样。

10.4.1 路径与指令搜索的顺序

        如果你要知道你所操作的命令行,例如你输入了ls,你想知道到底是哪个ls在发挥作用。有以下一个基础顺序:

  1.  以绝对路径或者相对路径执行命令 eg:‘/bin/ls’   or        ‘./ls’
  2. 用alias ls找到该命令来执行 (个人觉得这一个方式比较方便);
  3. 由bash内置的(builtin)指令来执行;
  4. 通过$PATH这个变量的顺序搜寻到的第一个指令来执行。

你会发现通常是先alias,再是builtin,最后是通过$PATH这个环境变量搜寻。

10.4.2 bash的进站与欢迎讯息

        进站也就是CentOs,Linux嘛,启动的时候,就会弹出来的信息;这个路径是在/etc/issue。

        欢迎讯息是在:/etc/motd,在登陆有显示的信息;(登录后要显示什么内容,改在里面就行了)

可以通过cat去查看里面的内容:(如下贴图表示issue内各代码定义)

10.4.3 bash的环境配置文件

        首先区别一下login shell 和non-login-shell的区别:

login shell:取得bash需要完整的登录流程,就成为login shell。

non-login shell:取得bash接口的方法不需要重复登录的举动,举例来说在原本bash基础上再bash了一次,不用输入账号密码,就是non-login shell。

因为他们两个取得bash的情况不一致,所以要区别一下。

login shell 其实只会读取这两个配置文件:

第一条/etc/profile里面的内容最好不要修改,除非你知道你在干嘛。

然后~/.bash_profile里面的内容,则是个人设置,要改个人的数据,就写入到里面去。

        /etc/profile还会调用外部的设置数据;在CentOs的默认情况下:会依序调用如下数据:

/etc/profil.d/*.sh;使用者能够具有r的权限,那么该文件就会被/etc/profile调用进来。如果你需要给所有的使用者定义一些特别的命令别名时,你就可以在这个目录下面自行创建扩展名为.sh的文件,并且把数据写入其中。

        我们再来看看个人偏好的配置文件 ~/.bash_profile(login shell才会读)

bash在读完了整体环境设置的/etc/profile并且调用过其他配置文件后,接下来就是读个人配置文件。在login shell的bash环境中,读取的个人配置文件其实主要有三个,分别是:

他们三个的关系是,如果第一个存在,那么读第一个,不会去读另外两个,如果第一个不存在,第二个存在,就读第二个,不读第三个;第三个同上。

整个login shell的配置文件读取流程:

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

source:读入环境配置文件的指令

在上面所诉的环境配置中,都必须是要登出登录,方能使配置生效,那有没有什么方法,可以不登录登出呢,那就是source。

(跟执行那个操作很像)可以直接将配置文件内容读到shell环境中。

~/.bashrc(non-login shell会读)

这种非登录情况,仅仅就只会去读取~/.bashrc中的内容。

其他配置文件会影响到使用bash操作的情况:
        /etc/man_db.conf:
        这个文件描述了使用man时,man去哪里找指令,去哪里查看数据的路径位置。

 那么什么时候要来修改这个文件呢? 如果你是以 tarball 的方式来安装你的数据, 那么你的 man page 可能会放置在 /usr/local/softpackage/man 里头, 那个 softpackage 是你的套件名称, 这个时候你就以手动的方式将该路径加到 /etc/man_db.conf 里头, 否则使用 man 的时候就会找不到相关的说明文档。

        ~/.bash_history
        ~/.bash_logout:

我是觉得这个还挺有用,你可以配置这个文件,让在登出bash的时候,系统帮你做完一些动作再离开。可以满足登出时去做一些操作。

10.4.4  终端机的环境设置:stty,set

你可以使用stty -a来查看目前一些按键实现功能的内容:

几个重要的代表:

如果你想要修改其他的按键实现什么功能你可以:

stty erase ^h

这样ctrl + h就可以实现以前的ctrl+d了。但是记得慎重修改。

下面给一个汇总:

10.4.5 万用字符与特殊符号

列出一些常用的万用字符:

  • *:代表“0个到无穷个”任意字符
  • ?:代表“一定有一个”任意字符
  • []:代表“一定有一个在括号内”。例如[abcd],代表一定有一个字符在abcd中任何一个。
  • [-]:代表“在编码顺序内的所有字符”。例如[0-9],代表一定有0-9其中的一个数字在
  • [^]:代表一定没有某个字符,例如[^abc],代表一定有一个字符只要是非abc,其他的都能接受。

下面列举写有趣的练习:

        

除了万用字符外,还有很多有趣的字符:

总结完毕!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值