十四. bash shell的操作环境
2016-06-01 10:46
393 查看
1. 路径与命令的查找顺序:当我们在终端输入一个命令时,如#ls 那么在系统中命令运行的顺序的优先级如下:
(1)是以相对 / 绝对路径执行命令,如:#/bin/ls 或则 #ls
(2)由alias 找到该命令来执行
(3)由bash内建的 (builtin) 指令来执行;
(4)透过 $PATH 这个变量的顺序搜寻到的第一个指令来执行。
(5)如下面的一个例子:
![](http://img.blog.csdn.net/20160601103812823?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2. bash 的登录与欢迎信息: /etc/issue, /etc/motd 这两个文件里面可以查看和修改。
3. bash的环境配置文件:
(1)在系统上有一些环境配置文件,每次我们启动bash时就会自动读取这些配置文件,以规划好bash的操作环境,所以每次我们进入bash终端就可以获取一堆变量。
(2)系统上的这一些环境配置文件分为全体系统配置文件和用户个人偏好配置文件。
(3)我们在bash终端中定义的自定义变量,命令别名在我们注销bash(或则重启系统)之后就会失效,只有将这些设置写入配置文件才能永久保存下来。
4. login shell与non-login shell 的区别
(1)这两者重点在于有没有登录login 。
(2)login shell :取得bash时需要完整的登录流程,就称为login shell。例如:当我们由tty1~tty6登录,需要输入用户名和密码,此时取得的bash就称为 login shell 。
(3)non-login shell :取得bash接口的方法不需要重复登录的举动。例如:我们以X windows(图形桌面)登录Linux后,再以X windows的图形界面启动终端机,此时的终端机并没有需要再次输入账号和密码,那个bash环境就属于non-login shell 。再如:我们在原本的bash环境中再次执行bash命令,同样没有要求输入账号密码,那第二个bash(子进程)也是non-login shell 。
(4)login shell与non-login shell 这两者读取的配置文件数据并不一样。
5. login shell 只会读取两个配置文件:
1. /etc/profile: 这是系统整体的设定,你最好不要修改这个档案;
2. ~/.bash_profile 或 ~/. bash_login 或 ~/. profile: 属于使用者个人设定, 你要改自己的数据,就写入这里!
(1)bash 的 login shell 情况下所读取的整体环境设定档其实只有 /etc/profile, 但是 /etc/profile 还会呼叫出其它的设定档, 所以让我们的 bash 操作接口变的非常的友善!bash 在读完了整体环境设定的 /etc/profile 并藉此呼叫其它设定档后, 接下来则是会读取使用者的个人设定档。 在 login shell 的 bash 环境中, 所读取的个人偏好设定档其实主要有三个, 依序分别是:
1. ~/. bash_profile
2. ~/. bash_login
3. ~/. profile
其实 bash 的 login shell 设定只会读取上面三个档案的其中一个, 而读取的顺序则是依照上面的顺序。 也就是说, 如果 ~/. bash_profile 存在, 那么其它两个档案不论有无存在, 都不会被读取。 如果 ~/. bash_profile 不存在才会去读取 ~/. bash_login, 而前两者都不存在才会读取 ~/. profile 的意思。
(2)整个 login shell 的读取流程:实线的的方向是主线流程, 虚线的方向则是被呼叫的设定档! 从上面我们也可以清楚的知道, 在 CentOS 的login shell 环境下,
最终被读取的设定档是『 ~/. bashrc 』 这个档案。 所以,一般情况我们都是将自己的偏好设定写入 ~/. bashrc这个文件,然后source
该文件。比如PATH环境变量的修改。
![](http://img.blog.csdn.net/20160601104421809?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
6. non-login shell 只会读取一个文件:~/. bashrc 这个文件。不同的用户登录,这个文件的内容都不一样。
7. 其他相关的配置文件:
(1)/etc/man.config 规范了使用 man
的时候, man page 的路径到哪里去寻找
(2)~/. bash_history 记录我们的历史命令。
(3)~/. bash_logout 记录了『当我注销 bash 后, 系统再帮我做完什么动作后才离开』
8. 终端机的环境设定: stty, set
(1)stty 查看和设定终端机的输入按键代表意义命令:
# stty [-a]
选项与参数:
-a : 将目前所有的 stty 参数列出来;
(2)set命令:设置自己的终端机设置值
9. 通配符与特殊符号:
![](http://img.blog.csdn.net/20160601104600561?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(1)是以相对 / 绝对路径执行命令,如:#/bin/ls 或则 #ls
(2)由alias 找到该命令来执行
(3)由bash内建的 (builtin) 指令来执行;
(4)透过 $PATH 这个变量的顺序搜寻到的第一个指令来执行。
(5)如下面的一个例子:
2. bash 的登录与欢迎信息: /etc/issue, /etc/motd 这两个文件里面可以查看和修改。
3. bash的环境配置文件:
(1)在系统上有一些环境配置文件,每次我们启动bash时就会自动读取这些配置文件,以规划好bash的操作环境,所以每次我们进入bash终端就可以获取一堆变量。
(2)系统上的这一些环境配置文件分为全体系统配置文件和用户个人偏好配置文件。
(3)我们在bash终端中定义的自定义变量,命令别名在我们注销bash(或则重启系统)之后就会失效,只有将这些设置写入配置文件才能永久保存下来。
4. login shell与non-login shell 的区别
(1)这两者重点在于有没有登录login 。
(2)login shell :取得bash时需要完整的登录流程,就称为login shell。例如:当我们由tty1~tty6登录,需要输入用户名和密码,此时取得的bash就称为 login shell 。
(3)non-login shell :取得bash接口的方法不需要重复登录的举动。例如:我们以X windows(图形桌面)登录Linux后,再以X windows的图形界面启动终端机,此时的终端机并没有需要再次输入账号和密码,那个bash环境就属于non-login shell 。再如:我们在原本的bash环境中再次执行bash命令,同样没有要求输入账号密码,那第二个bash(子进程)也是non-login shell 。
(4)login shell与non-login shell 这两者读取的配置文件数据并不一样。
5. login shell 只会读取两个配置文件:
1. /etc/profile: 这是系统整体的设定,你最好不要修改这个档案;
2. ~/.bash_profile 或 ~/. bash_login 或 ~/. profile: 属于使用者个人设定, 你要改自己的数据,就写入这里!
(1)bash 的 login shell 情况下所读取的整体环境设定档其实只有 /etc/profile, 但是 /etc/profile 还会呼叫出其它的设定档, 所以让我们的 bash 操作接口变的非常的友善!bash 在读完了整体环境设定的 /etc/profile 并藉此呼叫其它设定档后, 接下来则是会读取使用者的个人设定档。 在 login shell 的 bash 环境中, 所读取的个人偏好设定档其实主要有三个, 依序分别是:
1. ~/. bash_profile
2. ~/. bash_login
3. ~/. profile
其实 bash 的 login shell 设定只会读取上面三个档案的其中一个, 而读取的顺序则是依照上面的顺序。 也就是说, 如果 ~/. bash_profile 存在, 那么其它两个档案不论有无存在, 都不会被读取。 如果 ~/. bash_profile 不存在才会去读取 ~/. bash_login, 而前两者都不存在才会读取 ~/. profile 的意思。
(2)整个 login shell 的读取流程:实线的的方向是主线流程, 虚线的方向则是被呼叫的设定档! 从上面我们也可以清楚的知道, 在 CentOS 的login shell 环境下,
最终被读取的设定档是『 ~/. bashrc 』 这个档案。 所以,一般情况我们都是将自己的偏好设定写入 ~/. bashrc这个文件,然后source
该文件。比如PATH环境变量的修改。
6. non-login shell 只会读取一个文件:~/. bashrc 这个文件。不同的用户登录,这个文件的内容都不一样。
7. 其他相关的配置文件:
(1)/etc/man.config 规范了使用 man
的时候, man page 的路径到哪里去寻找
(2)~/. bash_history 记录我们的历史命令。
(3)~/. bash_logout 记录了『当我注销 bash 后, 系统再帮我做完什么动作后才离开』
8. 终端机的环境设定: stty, set
(1)stty 查看和设定终端机的输入按键代表意义命令:
# stty [-a]
选项与参数:
-a : 将目前所有的 stty 参数列出来;
(2)set命令:设置自己的终端机设置值
9. 通配符与特殊符号:
相关文章推荐
- 在linux shell脚本中root切换到普通用户执行脚本或命令
- 重新启动gnome-shell
- 十三. shell变量键盘读取,数组与声明:read, array, declare
- shell awk统计重复个数
- Shell小知识date和seq
- 十一. shell的变量功能之变量的显示与设置,取消:echo,unset
- 十. Linux中bash shell的使用
- 2 cat 命令
- Powershell 通过BING 搜索
- 一天一个shell命令 文本操作系列-comm命令用法
- bash shell 启动方式
- shell之tr
- Win7下常用shell命令解析
- Win7下常用shell命令解析
- shell中$(( ))与$( )还有${ }的区别
- [Shell学习笔记]字符串操作
- 根据提供的文件名文本,查找指定目录下的该文件,找到后复制到指定文件夹--bash
- Powershell
- xshell项目服务器命令
- Linux shell function study