bash的操作环境

路径与命令查找顺序

一个命令可能会有多个版本,在多个地方存在,具体应该执行哪一个

比如:ls,pip,特别是当系统中有多个python版本的时候,对应pip有多个版本,每次执行的是哪个版本

1.若是相对路径或者绝对路径的命令则直接执行

2.由alias找到该命令来执行

3.由bash内置的builtin命令来执行

4.通过$PATH这个变量的顺序查找到的第一个命令执行

bash的登录与欢迎信息

/etc/isssue

用来存储bash的登录信息,使用其特有的表示码

还有一个文件 /etc/issue.net  这是用来给远程登录显示的画面

/etc/motd

用来存储用户登录之后才会显示的一些信息

bash的环境配置文件

login shell与non-login shell

login shell取得bash时需要完整的登录流程就称为login shell  如:tty1-tty6登录的终端

non-login shell就是不需要重复登录的操作就可以启用bash  如:i)窗口界面打开的终端,ii)bash环境下再次执行bash命令打开的bash子进程

login shell包括/etc/profile系统的整体设置~/.bash_pfofile或~/.bash_login或~/.profile属于用户个人设置,需要自己添加数据

/etc/profile

这里设置的时所有用户的整体环境,其中包含PATH、MAIL、USER、HOSTNAME、HISTSIZE等

除了设置这些变量,还要调用外部的配置文件:/etc/profile.d/*.sh(这一系列包括bash操作界面的颜色,语系,ll和ls的命令别名,vi的命令别名,which的命令别名等),/etc/locale.conf,/usr/share/bash-completion/completions/*(命令和文件名补齐、选项/参数补齐功能)

总之,整体环境的配置文件只有/etc/profile,但是这个文件还会调用其他的配置文件。

bash在读完了整体环境设置的/etc/profile之后会读取用户的个人配置文件,个人配置文件主要为以下三个

~/.bash_profile

~/.bash_login

~/.profile

这三个是按照顺序读取的,当前面存在的时候后面的就不会被读取,最终只会读取一个


在我的主机中,~/.bash_profile与~/.bash-login都不存在,

只有~/.profile

可以看到~/.profile这个脚本会调用$HOME/.bashrc这个脚本


~/.bahs_profile会调用~/.bashrc在最终调用的配置文件为/etc/bashrc

通常需要注销再登录才能使配置生效,使用source  配置文件名 来避免注销再登录。

当多个环境时,可以其中多种环境配置文件,分别souce激活即可。

如Ananconda下python的虚拟环境配置,激活和关闭命令:source activate work

source deactivate work

~/.bashrc

这是non-login shell时,bash配置文件仅会读取~/.bashrc,自己使用的alias rm='rm -i'就是添加在这里。

其他配置文件

/etc/man_db.conf   

规定了使用man的时候,man page的路径到哪里去寻找

~/.bash_history   

存储历史命令,可以存储多少条命令则与HISTSIZE有关

~/.bash_logout 

记录了当注销bash后,系统再做什么操作后才离开

终端的环境设置

stty

set


参考:鸟哥的Linux私房菜(第四版)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值