Linux:bash运算符及启动脚本

使用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 中的语言设置

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29056818/viewspace-768523/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29056818/viewspace-768523/

你可能感兴趣的:(Linux:bash运算符及启动脚本)