BASH操作环境的一些笔记
2015-07-20 09:53
417 查看
首先,登陆的shell分为
login 与 non-login shell
login shell:取得 bash 时需要完整的登陆流程的,就称为 login shell。举例来说,你要由 tty1 ~ tty6 登陆,需要输入用户的账号与密码,此时取得的 bash 就称为『 login shell 』啰;
non-login shell:取得 bash 接口的方法不需要重复登陆的举动,举例来说,(1)你以 X window 登陆 Linux 后, 再以 X 的图形化接口启动终端机,此时那个终端接口并没有需要再次的输入账号与密码,那个 bash 的环境就称为 non-login shell了。(2)你在原本的 bash 环境下再次下达 bash 这个命令,同样的也没有输入账号密码, 那第二个 bash (子程序) 也是 non-login shell 。
login执行的脚本为
/etc/profile:这是系统整体的配置,你最好不要修改这个文件;
~/.bash_profile 或 ~/.bash_login 或 ~/.profile:属于使用者个人配置,你要改自己的数据,就写入这里!
图 4.3.1、login shell 的配置文件读取流程
non-login shell:
~/.bashrc (non-login shell 会读)
谈完了 login shell 后,那么 non-login shell 这种非登陆情况取得 bash 操作接口的环境配置文件又是什么? 当你取得 non-login shell 时,该 bash 配置文件仅会读取 ~/.bashrc 而已啦!那么默认的 ~/.bashrc 内容是如何?
特别注意一下,由于 root 的身份与一般使用者不同,鸟哥是以 root 的身份取得上述的数据, 如果是一般使用者的 ~/.bashrc 会有些许不同。看一下,你会发现在 root 的 ~/.bashrc 中其实已经规范了较为保险的命令别名了。 此外,咱们的 CentOS 5.x 还会主动的呼叫 /etc/bashrc 这个文件喔!为什么需要呼叫 /etc/bashrc 呢? 因为 /etc/bashrc 帮我们的 bash 定义出底下的数据:
依据不同的 UID 规范出 umask 的值;
依据不同的 UID 规范出提示字符 (就是 PS1 变量);
呼叫 /etc/profile.d/*.sh 的配置
你要注意的是,这个 /etc/bashrc 是 CentOS 特有的 (其实是 Red Hat 系统特有的),其他不同的 distributions 可能会放置在不同的档名就是了。由于这个 ~/.bashrc 会呼叫 /etc/bashrc 及 /etc/profile.d/*.sh , 所以,万一你没有 ~/.bashrc (可能自己不小心将他删除了),那么你会发现你的 bash 提示字符可能会变成这个样子:
不要太担心啦!这是正常的,因为你并没有呼叫 /etc/bashrc 来规范 PS1 变量啦!而且这样的情况也不会影响你的 bash 使用。 如果你想要将命令提示字符捉回来,那么可以复制 /etc/skel/.bashrc 到你的家目录,再修订一下你所想要的内容, 并使用 source 去呼叫 ~/.bashrc ,那你的命令提示字符就会回来啦!
login 与 non-login shell
login shell:取得 bash 时需要完整的登陆流程的,就称为 login shell。举例来说,你要由 tty1 ~ tty6 登陆,需要输入用户的账号与密码,此时取得的 bash 就称为『 login shell 』啰;
non-login shell:取得 bash 接口的方法不需要重复登陆的举动,举例来说,(1)你以 X window 登陆 Linux 后, 再以 X 的图形化接口启动终端机,此时那个终端接口并没有需要再次的输入账号与密码,那个 bash 的环境就称为 non-login shell了。(2)你在原本的 bash 环境下再次下达 bash 这个命令,同样的也没有输入账号密码, 那第二个 bash (子程序) 也是 non-login shell 。
login执行的脚本为
/etc/profile:这是系统整体的配置,你最好不要修改这个文件;
~/.bash_profile 或 ~/.bash_login 或 ~/.profile:属于使用者个人配置,你要改自己的数据,就写入这里!
图 4.3.1、login shell 的配置文件读取流程
non-login shell:
~/.bashrc (non-login shell 会读)
谈完了 login shell 后,那么 non-login shell 这种非登陆情况取得 bash 操作接口的环境配置文件又是什么? 当你取得 non-login shell 时,该 bash 配置文件仅会读取 ~/.bashrc 而已啦!那么默认的 ~/.bashrc 内容是如何?
[root@www ~]# cat ~/.bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' <==使用者的个人配置 alias cp='cp -i' alias mv='mv -i' # Source global definitions if [ -f /etc/bashrc ]; then <==整体的环境配置 . /etc/bashrc fi |
依据不同的 UID 规范出 umask 的值;
依据不同的 UID 规范出提示字符 (就是 PS1 变量);
呼叫 /etc/profile.d/*.sh 的配置
你要注意的是,这个 /etc/bashrc 是 CentOS 特有的 (其实是 Red Hat 系统特有的),其他不同的 distributions 可能会放置在不同的档名就是了。由于这个 ~/.bashrc 会呼叫 /etc/bashrc 及 /etc/profile.d/*.sh , 所以,万一你没有 ~/.bashrc (可能自己不小心将他删除了),那么你会发现你的 bash 提示字符可能会变成这个样子:
-bash-3.2$ |
相关文章推荐
- shell脚本-批量添加或删除用户
- 本地搭建Hadoop伪分布式环境之二:XShell连接Ubuntu
- Linux之认识和学习bash
- shell 中 seq的用法总结
- Linux shell 编程简单使用
- window7运行powershell
- 每日回顾Shell —cat,tail,head
- Shell编程中括号判断中赋值语句和判断语句
- Linux与Unix shell编程指南(完整高清版).pdf
- Linux与Unix shell编程指南(完整高清版).pdf
- shell 日期操作
- Shell脚本中实现字符串变量的去重功能
- shell脚本-添加用户(非交互式)
- Shell中while循环的done 后接一个重定向<
- shell中$0,$?,$!等的特殊用法
- SSH Secure Shell Client用pub key认证登录linux
- shell中获得当前的日期
- Eclipse中的File Explorer 打不开/data目录,通过adb shell出现error错误
- shell的基本使用及vi 编程
- bash之条件测试及if语句