shell
用户输入的命令等是如何被操作系统内核所听懂呢?靠shell(bash,shell的一种),也就是shell是跟内核打交道的。当输入ll时候,环境变量通过PATH去找ls命令的路径,解释给内核听。如果没有PATH,shell就不知道去找这个命令执行的地方(可以理解为程序安装目录),这个这个PATH=/bin!也就是linux默认的一些程序执行的位置。
当按下ll的时候,shell执行.bashrc找到下面这几行,哦知道了原来ll代表ls -alF,这时候shell就会找到bin目录下去执行ls命令。
#~/.bashrc
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
source 与 export的到底是啥?
使用source执行脚本是在父进程中执行,父进程中使用export的话,子进程就会使用,能影响子shell.
.bash_profile和.bashrc的区别:
- /etc/profile:
此文件为系统的所有用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.
- /etc/bashrc:
为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
- ~/.bash_profile:
每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
- ~/.bashrc:
该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取. 使用这些环境变量,只需要修改其个人用户主目录下的.bashrc文件就可以了。
- ~/.bash_logout:
当每次退出系统(退出bash shell)时,执行该文件.