第 四 十 天:环 境 变 量 的 简 介 与 操 作

小Q:其实人的一生也不太大富大贵,只要每晚可以安然入睡就挺好;


-------------------永久保存命令历史并加时间戳------------------------

编写脚本:

#!/bin/sh
grep HISTTIMEFORMAT /etc/bashrc || echo 'export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "' >>/etc/bashrc
for U in `grep -v shutdown /etc/passwd|awk -F: '$NF~/sh/&&$NF!~/no/{print $1}'`
do
    UHOME=`cat /etc/passwd|grep "^$U"|cut -d: -f6`
    [ ! -f $UHOME/.bash_history ] && touch $UHOME/.bash_history
    chattr +a $UHOME/.bash_history
done



--------------------------设置中文支持-------------------------------

方法一:    

修改/root/.bash_profile文件,增加export LANG=zh_CN.GB18030

对于其他用户,也必须相应修改该文件

使用该方法时putty能显示中文,但桌面系统是英文,而且所有的网页中文显示还是乱码


方法二:  

修改/etc/sysconfig/i18n文件

#LANG="en_US.UTF-8"
#SUPPORTED="en_US.UTF-8:en_US:en"
#SYSFONT="latarcyrheb-sun16"
改为
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"



----------------------------变量PS1的参数----------------------------


PS1(是数字1而不是字母l),每个版本bash的PS1变量内的特殊符号可能有些小的差异,你可以先man bash 一下。下面是FC4环境下默认的特殊符号所代表的意义:

\d :代表日期,格式为weekday month date,例如:"Mon Aug 1"

\H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux

\h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略

\t :显示时间为24小时格式,如:HH:MM:SS

\T :显示时间为12小时格式

\A :显示时间为24小时格式:HH:MM

\u :当前用户的账号名称

\v :BASH的版本信息

\w :完整的工作目录名称。家目录会以 ~代替

\W :利用basename取得工作目录名称,所以只会列出最后一个目录

\# :下达的第几个命令

\$ :提示字符,如果是root时,提示符为:#   ,普通用户则为:$


默认的PS1内容为: '[\u@\h \W]\$ ' ,所以默认的提示符就是: [root@localhost ~]# 。

但设置PS1的时候需要稍微处理一下

PS1="[\\u@\\h \\W]\\$ "  这样显示的结果才是正确的。


在PS1中设置字符序列颜色的格式为:\[\e[F;Bm\] 其中“F”为字体颜色,编号30~37;“B”为背景色,编号40~47。取消设置:\[\e[0m\]


每种字体颜色对应的代码:

重置=0,黑色=30,红色=31,绿色=32,***=33,蓝色=34,洋红=35.青色=36,白色=37

wKiom1YrcUWhgnMVAAA37VIhmoI365.jpg

\e[1;31m设为红色,\e[0m颜色重置。只需将31替换成想要的颜色码就可以了


要打印彩色背景对应的代码:

重置=0,黑色=40,红色=41,绿色=42,***=43,蓝色=44,洋红=45.青色=46,白色=47

wKioL1YrcXSTpZqQAABC_acaIZA925.jpg

B代码     意义

0      OFF

1      高亮显示    (常用)

4      underline            

7      反白显示

8      不可见


举例:

[root@wo]#PS1='${debian_chroot:+($debian_chroot)}\[\e[01;32m\]\u\[\e[00m\]@\[\e[01;31m\]$ip\[\e[00m\]:\[\e[01;34m\]\W\[\e[00m\]\$'



-------------------------环境变量配置文件-----------------------------

/etc/profile: 用来设置系统环境参数,比如$PATH. 这里面的环境变量是对系统内所有用户生效的。

/etc/bashrc:  这个文件设置系统bash shell相关的东西,对系统内所有用户生效。只要用户运行bash命令,那么这里面的东西就在起作用。

~/.bash_profile: 用来设置一些环境变量,功能和/etc/profile 类似,但是这个是针对用户来设定的,也就是说,你在/home/user1/.bash_profile 中设定了环境变量,那么这个环境变量只针对 user1 这个用户生效.

~/.bashrc: 作用类似于/etc/bashrc, 只是针对用户自己而言,不对其他用户生效。


另外/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.


~/.bash_profile 是交互式、login 方式进入 bash 运行的,意思是只有用户登录时才会生效。

~/.bashrc 是交互式 non-login 方式进入 bash 运行的,用户不一定登录,只要以该用户身份运行命令行就会读取该文件。





你可能感兴趣的:(linux)