Unix与Linux系统shell命令

Unix系统中有不同的shell家族,而在Linux中接触到的只是其中的一部分,通过对Unix家族的了解,有助于对操作系统来龙去脉有个了解。
了解技术渊源,或许能激发有趣和有价值的想法。或者给出一种感觉,原来这样啊。 了解历史可以明白'为什么会如此'的习惯。

SHELL家族

01.查看系统安装了哪些shell       
    cat /etc/shells
02.查看当前shell    
    echo $SHELL
    或者
    ls -al /bin/sh
03.查看变量
    env         env | less
    printenv 
    set   
    同时出现在set和env的变量既是环境变量也是shell变量
04.Shell历史
  Bourne shell家族
    bash sh   ksh
        Mashey  shell
       Thompson shell
        Korn    Shell  -> ksh
        Bourn   Shell    -> sh
        FreeBSD shell   -> sh
        Z shell         -> zsh
        bash  Linux默认的shell Bourne-again shell
      特性:shell变量和环境变量都采用大写
        希望某个变量为环境变量的时候 需要使用export 
        销毁变量 unset
        shell选项设置
        命令提示符 root #  简单提示符 $
  C-Shell家族
        C-shell 适用于编写C语言
        Tcsh
        特性--环境变量采用大写,shell变量采用小写
             环境变量通过setenv创建 shell变量有set创建
        命令提示符 root #  简单提示符 %或者使用大于号提示 >
    05.临时和永久改变shell方法,目前使用默认的shell
        临时切换
        切换默认
    Dash Shell 比 Bash Shell 小的多,符合POSIX标准。
        Debian和Ubuntu中,/bin/sh默认已经指向dash,这是一个不同于bash的shell,
        它主要是为了执行脚本而出现,而不是交互,它速度更快
        dash(theDebian Almquist Shell)

shell命令

01.元字符  引用 和转义
 使用一对双引号,保留 $  `  \  三个符号的特殊含义  $ 参数替换  ` 命令替换
 使用一对单引号--strong quote
 转义\  所有的都是用转义字符,可读性差
    例如:
    ##含有特殊变量的文本替换成对应的日期
    sed  's/$example_version_yesterday/'$example_version_yesterday'/g'  /opt/coderevariable.txt
    sed  "s/\$example_version_yesterday/$example_version_yesterday/g"  /opt/coderevariable.txt
 特殊字符
    \w
02.Shell搜索路径
内部命令和外部命令  type 区分
    type  time                      内部
       man builtin | grep time      查看说明
       help time
       help -s time                 查看使用语法

    type  date      外部
            查看外部搜索路径 echo  $PATH
            /usr/local/sbin: /usr/local/bin:  
            /sbin:  /bin:
            /usr/sbin:  /usr/bin:
            /root/bin
03.Shell命令
history
    重用,而不是重新键入,调取历史命令,对命令进行修改,然后执行
    临时修改history的大小 set savelist=100
    永久修改 - export HISTSIZT=100
fc -l  fix command 修复命令
    fc -s pattern=replacement number
使用rm之前先ls 列举文件,然后使用修复命令  fc -c ls=rm
自动补全 completion
    tab 键一次
    tab 键两次

别名  
    alias
    临时挂起别名    \ls
    unlias
04.SHELL命令
初始化文件
登陆文件 .bash_profile  或者 .bash_login
环境文件 .bashrc
    .profile
注销文件
.bash_logout

点文件 --隐藏文件,通常被程序默默使用的配置文件

附录-参考

<Unix & Linux大学教程>

blogroll

social