PART3 Linux Shell 基础总结

                          PART3 Linux Shell 基础总结

1 Shell是什么

    Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

    Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

2 Shell分类

    Linux 的 Shell 种类众多,常见的有:

        Bourne Shell(/usr/bin/sh或/bin/sh)
        Bourne Again Shell(/bin/bash)
        C Shell(/usr/bin/csh)
        K Shell(/usr/bin/ksh)
        Shell for Root(/sbin/sh)
        ……

    本教程关注的是 Bash,也就是 Bourne Again Shell,由于易用和免费,Bash 在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell。

    在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash。

    #! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。

3 Shell脚本

    打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用 php 写 shell 脚本,扩展名就用 php 好了。

    输入一些代码,第一行一般是这样:

PART3 Linux Shell 基础总结

     #! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。

    echo 命令用于向窗口输出文本。

4 运行Shell脚本

PART3 Linux Shell 基础总结

5 echo命令

    用于字符串的输出。

(1)显示普通字符串

PART3 Linux Shell 基础总结

(2)显示转义字符

PART3 Linux Shell 基础总结

(3)显示变量

PART3 Linux Shell 基础总结

(4)显示换行

PART3 Linux Shell 基础总结

(5) 显示不换行

PART3 Linux Shell 基础总结

(6)显示结果定向至文件

PART3 Linux Shell 基础总结


(7)原样输出字符串,不进行转义或取变量(用单引号)

PART3 Linux Shell 基础总结

(8)显示命令执行结果

PART3 Linux Shell 基础总结

 

6 命令别名与快捷键

当你输入alias时,会显示所有的别名:

PART3 Linux Shell 基础总结

别名书写格式(alias 别名='原命令'):

PART3 Linux Shell 基础总结

如果别名不写入环境变量配置文件,那么每次启动时就会别名就会消失:

vi ~/.bashrc (写到这个文件里面就可以了,不用每次开机都需要修改);

PART3 Linux Shell 基础总结

常用快捷键:

ctrl + C    #强制终止当前命令

ctrl + Z    #把命令放入后台,无终止功能,仍会占用系统资源

ctrl + L    #清屏,等价于clear

ctrl + R    #在历史命令中搜索

ctrl + A    #光标移动到命令行首

ctrl + E    #光标移动到命令行尾

ctrl + U    #从光标所在位置删除到行首

7 历史命令与命令补全

(1)history命令

history  [选项]  [历史命令保存文件]
选项:

-c:清空历史命令(不建议清空)

-w:把缓存中的历史命令写入历史命令保存文件 ~/.bash_history

PART3 Linux Shell 基础总结

PS:单独输入命令history 会显示缓存中的历史命令,其比~/.bash_history中的命令多一些,因为~/.bash_history中仅保存上次登录正确注销后的命令,而history中显示的命令还包括重新登陆后新输入的命令。

历史命令默认会保存1000条,可以在环境变量配置文件/etc/profile中修改。

PART3 Linux Shell 基础总结

历史命令的调用:

PART3 Linux Shell 基础总结

(2)命令与文件补全

    在Linux命令行下,输入字符后,按两次Tab键,shell就会列出以这些字符打头的所有可用命令。如果只有一个命令匹配到,按一次Tab键就自动将这个命令补全。比如,想更改密码,但只记得这个命令前几个字母是pass。这时候,按Tab键,shell就自动输出 passwd 命令,非常方便。

    当然,除了命令补全,还有路径、文件名补全。这个在我们 cd 到特定目录时特别好用。

    命令补全实际上仍然是在PATH中查找。文件目前是在你输入的路径中查找。

PART3 Linux Shell 基础总结

 

PART3 Linux Shell 基础总结

8 输入输出重定向

    重定向指将输出至屏幕的内容改为输出至指定的文件中。

PART3 Linux Shell 基础总结

 

(1)标准输出重定向

    只能输出正确信息,错误信息不会输至文件中。

 

PART3 Linux Shell 基础总结

 

PART3 Linux Shell 基础总结

(2)标准错误输出重定向(仅输出错误信息)

PART3 Linux Shell 基础总结

 

PART3 Linux Shell 基础总结

(3)正确输出和错误输出同时保存

PART3 Linux Shell 基础总结

PS:常用:命令名  &> /dev/null    #将命令执行后的输出丢到黑洞中(相当于垃圾站),既不会显示至屏幕也不保存至文件。

(4) 输入重定向(使用较少)

PART3 Linux Shell 基础总结

以wc命令为例来说明输入重定向:

PART3 Linux Shell 基础总结

 

PART3 Linux Shell 基础总结

 

PART3 Linux Shell 基础总结

9 管道符

1. 多命令顺序执行

PART3 Linux Shell 基础总结

 

PART3 Linux Shell 基础总结

 

PART3 Linux Shell 基础总结

 

PART3 Linux Shell 基础总结

 

PART3 Linux Shell 基础总结

&& 和 || 组合可以判断命令是否正确,例如:ls  && echo yes  ||  echo no    #若ls命令正确,打印yes;否则打印no

PART3 Linux Shell 基础总结

2. 管道符

PART3 Linux Shell 基础总结

 

PART3 Linux Shell 基础总结

10 通配符

1. 通配符(主要用来匹配文件名和目录名)

PART3 Linux Shell 基础总结

 

PART3 Linux Shell 基础总结

2. Bash中其他特殊符号

PART3 Linux Shell 基础总结

(1)单引号和双引号

PART3 Linux Shell 基础总结

(2)反引号

PART3 Linux Shell 基础总结

(3)$()

PART3 Linux Shell 基础总结

(4)转义符

PART3 Linux Shell 基础总结