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
⑤位置变量
位置变量:用来记录编写的脚本程序名和需要传递给脚本程序的参数的变量
⑥特殊形式的变量
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
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
相关文章推荐
- Ubuntu 默认壁纸历代记
- Ubuntu Remix Cinnamon 20.04 评测:Ubuntu 与 Cinnamon 的完美融合
- android wifi 无线调试
- 关于Ubuntu 11.10启动提示waiting for the network configuration的问题
- 在 Ubuntu 桌面中使用文件和文件夹
- ubuntu下chrome无法同步问题解决
- 运维入门
- 动态清空 nohup 输出文件
- install scrapy with pip and easy_install
- Ubuntu Linux使用体验
- 使用 GNOME 优化工具自定义 Linux 桌面的 10 种方法
- 以Ubuntu 9.04为例 将工作环境迁移到 Linux
- VirtualBox虚拟机XP与宿主机Ubuntu互访共享文件夹
- 从USB安装Ubuntu Server 10.04.3 图文详解
- Ubuntu 15.04 正式版发布下载
- Linux-Ubuntu 10.04安装Cadence-ic610 方法总结图解
- Ubuntu 12.04和Windows 7双系统安装图解
- 开机出现:grub rescue的修复方法
- Ubuntu连接Android真机调试
- 你应该选择 Ubuntu 还是 Fedora?