使用bash命令历史
history 命令可查询历史操作命令
命令历史中的命令可以被调用
.bash _histroy 中的命令数目由HISTFILESIZE这个变量决定
history表存储在内存内.用户logout时会记录到用户主目录中.bash_history文件
set | grep HIS 查看历史命令的变量
vi .bash_histroy
exit
history -c 清空历史命令
ls .bash*
在 退出的时候 清空历史命令,使用 vi .bash_logout 将history -c 命令放入其中
# set |grep HIS
结果如下:
HISTCONTROL=ignoredups
HISTFILESIZE=1000
HISTSIZE=1000
vi /root/.bash_history
调用命令历史:
1.上下键
2.ctrl+r , 如: ctrl+r 命令
3. ! + 数字
注意: !$ 它表示前面命令行中的最后一项内容,!! 表示上一个命令
bash中的运算符
通配符 * ? [abc] {a,b,c}等
运算符 $ !
引号 "" '' ``
touch "a b" 产生一个文件, ""双引号屏蔽空格的特殊意义, 如rm "a b"
echo 'a b &USER' 单引号, 屏蔽其它特殊字符的意义
echo `DATE` 反引号, 里面是可执行的命令,回预先被执行
但是一个命令行中不能执行两个命令,所以使用反引号 touch log.`date+%m%d`
-
双引号“” 屏蔽空格的特殊作用,引号内的运算符仍然有效 echo "I am $USER" 结果:i am root , $取变量值的意义仍然有效
-
单引号‘’ 与双引号类似,但是引号内任何运算符都被当成普通的字符 echo "I am $USER" 结果:i am $USER
-
反引号·· 执行引用符是键盘左上角和~同一键,它引用命令的执行结果 echo `pwd` 结果:/home/root
!20 !! !$ $AAA * ? [abc] [^abc] {} & - # %1 ^ () ;
[1-9] 不加空格,表示文件名,这个位置是1或2或3.。。。
[ 1-9 ] 加上空格,就是判断语句,返回0,表示TRUE
[ -f /etc/passwd ]
&& 前面的结果为true的时候,执行,为false的时候,不执行
[ -f /etc/passwd ] && echo ok
[ -f /etc/passwdddd ] && echo ok
|| 前面的结果为true的时候,不执行,为false的时候,执行
[ -f /etc/passwd ] || echo ok
[ -f /etc/passwdddd ] || echo ok
[ -d /oracle ] && echo begin the install
vi /etc/rc.d/rc.sysinit 这个文件里都是判断文件是否存在
[ $USER = root ] && echo Hello root
-
算术运算符 $[] , 进行数学运算 ,echo $[2+3],运算过程是先进行数学计算,然后把结果赋给一个临时变量,最后显示这个临时变量
-
逸脱符 \,如 mkdir a\ b , 结果为 a b 为一个目录,如果不加逸脱符\,系统认为是建立两个目录a和b,加上逸脱符后,系统认为空格非间隔符,所以就建立一个目录 a b
-
逸脱符还可以用于表示一行未结束,如:echo $AAA \
-
分号; 用于在一行内分隔两个独立命令,如:pwd; ls
-
子shell激活 用小括号(),如(while true; do `date` > /tmp/time; sleep 1; done),相当于把一堆命令“打包”
-
逻辑运算符 && ||
-
&& 当前一条指令执行成功时在执行后一条指令
-
|| 当前一条指令执行失败时在执行后一条指令
定制bash:在bash中定制 命令历史,变量,umask,选项set -o, alias等
只在当前的shell中有效,再次打开将恢复成原来shell启动脚本中定义的样子
系统每次启动,都会执行一些文件,启动bash执行以下四个目录下的脚本:
/etc/profile 公共执行,针对每个USER
~/.bash_profile USER各自的执行,自己独特的
~/.bashrc USER各自的执行,自己独特的
/etc/bashrc 公共执行,针对每个USER
/etc/profile.d 会执行etc目录下的所有的.sh脚本
定制bash的时候执行顺序
etc下的是启动的时候执行,先执行/etc/profole,然后调用/etc/profile.d/*.sh所有文件,如language,然后调用主目录下的~/.bash_profile , ~/.bashrc,然后是/etc/bashrc, 最后退出,执行~/.bash_logout
shell分为登录shell和普通shell
-
登录shell是通过登录而得到的shell,可以通过login程序 su - 这种shell, 一般是用户的初始shell,它将会读取全部的shell启动脚本
-
普通shell是直接运行的,被其他shell打开的shell,比如直接运行bash,或运行su weixl ,没有-,将打开普通的shell,它将执行部分的脚本
echo $LANG
echo $LC_ALL
修改~/.bashrc 可以将语言修改为中文,这样的话,自己的用户启动的时候就是中文界面,加入
echo $LANG="zh_CN.UTF-8"
echo $LC_ALL="zh_CN.UTF-8"
英文: en_US.UTF-8
startx --:1
第二种办法修改自己的系统语言,修改vi /etc/sysconfig/i18n 中的语言设置