小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
\e[1;31m设为红色,\e[0m颜色重置。只需将31替换成想要的颜色码就可以了
要打印彩色背景对应的代码:
重置=0,黑色=40,红色=41,绿色=42,***=43,蓝色=44,洋红=45.青色=46,白色=47
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 运行的,用户不一定登录,只要以该用户身份运行命令行就会读取该文件。