您的位置:首页 > 运维架构 > Shell

shell总结

2015-09-07 15:13 483 查看
1.命令补全-----Tab键
2.命令历史功能

       $ history [-c] [-n]

注:

         -c:清除当前shell里的全部history内容

         -n:列出前n条命令

     当要再次执行某条命令是,只要: $ ! 命令的序列号

     当要之执行最近一条指令可以: $ !!

3.命令别名功能

  $ alias 别名=“原命令”

注: 等号的两边没有空格

  取消别名:$ unalias 命令别名

4.变量

    ①定义变量

              局部: $  name=”ubuntu”   …………只在当前shell显示

              伪全局:$ export name=”ubuntu” …………可以在子shell中显示,所有用户都可以使用(但在子shell定义的变量无法在父shell中显示)

     注:等号两边不能有空格,变量名只能是字母,数字和下划线,并且不能是数字开头,用户自定义变量一般是小写,系统变量一般为大写。变量的值如果有空格则需要用单引号括起来。

     ②显示变量

                $ echo 变量名($name)

     ③  取消变量

                $ unset 变量名(name)

     

     ④环境变量

           查看所有的环境变量:$ env

     ⑤位置变量

                   位置变量:用来记录编写的脚本程序名和需要传递给脚本程序的参数的变量

变量写法
含义
                           $0
表示执行的程序名
                        $(1~9)
代表传给程序的参数,分别为$1到$9
                   ${大于9的数字}
含义同上,只是位置数大于9要用{}括起来
  

⑥特殊形式的变量

    

变量写法含义
        $# 代表位置变量的个数
         $* 代表所有的位置变量
        $@如果不加引号,作用和$*相同,加引号则表示每个位置变量的值
       $$表示当前shell的PID的值
        $?最近一个执行命令的退出值
  
   
  
  

5.命令的执行顺序
      如果一个命令执行成功后才能执行另一个命令,使用“&&”来完成;
      如果一个命令执行失败后才能执行另一个命令,使用“||”来完成;
      如果需要连续执行一组命令,使用“;”来完成。
例:
$ sudo mv /home/test  /home/ubuntu/bak  &&  rm -rf /home/test  …………将/home/test移动到/home/ubuntu/bak目录中,然后删除/home/test文件

$ sudo grep “user1” /etc/passwd || sudo useradd -d /home/user1 -m user1 …………系统中没有user1用户才会创建该用户

$ sudo mkdir /home/bak ; cd /home/bak ; sudo tar czvf passwd.tar.gz /etc/passw
4000
d  /etc/group……………先建目录再打开该目录最后压缩备份

6.I/O重定向
       标准输入的重定向可以使用“<”来完成,标准输出的重定向使用“>”来完成,标准错误输出的重定向使用“2>”来完成

 例:将/etc/passwd文件中的用户名以字母顺序进行排序,然后将排序的结果保存到/etc/userlist文件中:
 $ sudo sort /etc/passwd > /etc/userlist && cat /etc/userlist

注意:
      如果userlist不存在将会创建,如果已经存在,则将会覆盖原内容,要想不覆盖原来的内容,需要将“>”换成“>>”,双箭头会追加到最后

7.管道
    管道指的是将一个命令的输出作为另外一个命令的输入。管道符号“|”
例:
     $ cat /etc/passwd | wc -l

8.特殊字符
双引号:在shell中的双引号内的特殊字符保持原来的含义,不会被当作普通字符
单引号:在shell中的双引号内的特殊字符会失去原来的含义,即被当成普通字符来看待
$符号:在shell中,$的含义为取变量的值
\符号:转义字符,即如果一个特殊字符前加上“\”符号,那么此特殊符号被当作普通符号

例:
   $ name=ubuntu
   ①$ echo  “the name is $name”…………the name is ubuntu
   ②$ echo 'the name is $name' …………the name is $name
   ③$ echo “the name is  \$name”…………the name is $name
   ④$ echo 'the name is \$name'…………the name is \$name

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell ubuntu