天天看点

1.6 Linux命令行使用

        Linux 命令行包括内部命令和程序。内部命令包含在 Shell 内部,而程序是存放在文件系统中某个目录下的可执行文件。Shell 首先检查命令是否是内部命令,如果不是,再检查是否是某个单独程序,然后由系统调用该命令传给 Linux 内核,如果两者都不是就会报错。

1.6.1 命令语法格式

        用户进入命令行界面时,可以看到一个 Shell 提示符(管理员为 #,普通用户为$),提示符标识命令行的开始,用户可以在它后面输入任何命令及其选项和参数。

1.6 Linux命令行使用

       输入命令必须遵循一定的语法规则,命令行中输入的第 1项必须是一个命令的名称,从第2项开始是命令的选项  Option 或者参数 Arguments ,各项之间由空格或者 TAB 制表符隔开

提示符 命令 选型 参数
           

       有的命令不带任何选项和参数。Linux 命令行严格区分大小写,命令、选项和参数都是如此。

    (1)选项。选项是包括一个或多个字母的代码,前面有一个“ - ”连字符,主要用于改变命令执行动作的类型。例如,如果没有任何选项,ls 命令只能列出当前目录中所有文件和目录的名称;而使用带 -l 选项的 Is 命令将列出文件和目录列表的详细信息。使用一个命令的多个选项时,可以简化输入。例如,将命令 ls -l -a 简写为 ls-la。

1.6 Linux命令行使用

       对于由多个字符组成的选项(长选项格式 ),前面必须使用 “ - ” 符号,如Is--directory。

       有些选项既可以使用短选项格式,又可使用长选项格式,例如 ls -a 与ls -all 意义相同。

(2)参数。参数通常是命令的操作对象,多数命令可使用参数。例如,不带参数的 ls 命令只能列出当前目录下的文件和目录,而使用参数可列出指定目录或文件中的文件和目录。例如:

1.6 Linux命令行使用

1.6.2 命令行基本用法

1.编辑修改命令行

      命令行实际上是一个可编辑的文本缓冲区,在按回车前,可以对输入的内容进行编缉。在命令行输入过程中, 使用快建健 <Ctrl+D> 来结束键盘输入。

2.调用历史命令

        用户执行过的命令保存在一个命令缓存区中,称为命令历史表。默认情况下,bash可以存储1000个历史命令。用户可以查看和调用,以提高命令行使用效率。按上、下箭头,便可以在命令行上逐次显示已经执行过的各条命令,用户可以修改并执行这出命令。如果命令非常多,可使用 history 命今列出最近用过的所有命令,显示结果中为历史命令加上数字编号,如果要执行其中某—条命令,可输入“!编号〞来执行该编号的历史命令。

1.6 Linux命令行使用

3. 自动补全命令

       bash 具有命令自动补全功能,当用户输入了命令、文件名的一部分时,按<Tab>键就可将剩余部分补全;如果不能补全,再按一次<Tab>键就可获取与已输入部分匹配的命令或文件名列表,供用户从中选择。这个功能可以减少不必要的输入错误,非常实用。

4.—行多条命令和命令行续行

在一个命令行中可以使用多个命令,用分号 “;”将各个命令隔开。例如:ls -l;pwd

也可在几个命令行中输入一个命令,用反斜杠 “”将个命令行持续到下一行。例如:

ls -l -a \
-h
           
1.6 Linux命令行使用

5.强制中断命令运行

         在执行命令的过程中,可使用组合键<Ctrl>+<C>强制中断当前运行的命令或程序。例如,当屏幕上产生大量输出,或者等待时间太长,或者进入不熟悉的环境,就可立即中断命令运行。

6.获得联机帮助

      Linux 命令非常多,许多命令有各种选项和参数,在具体使用时要善于利用相关的帮助信息。Linux系统安装有联机手册 ( Man Pages ),为用户提供命令和配置文件的详细介绍,是用户的重要参考资料。使用命令 man 显示联机手册,基本用法如下:

man[选项] 命令名或配置文件名
           

       运行该命令显示相应的联机手册,它提供基本的交互控制功能,如翻页查看,输入命令 q 即可退出 man 命令。对于 Linux命令,也可使用选项--help 来获取某命令的帮助信息,如要查看 cat 命令的帮助信息,可执行命令

cat --help
           

1.6.3 命令行输入与输出

       与DOS 类似,Shell 程序通常自动打开 3个标准文档:标准输入文档 (stdin)、标准输出文档

(stdout)和标准错误输出文档(stderr)。其中stdin 一般对应终端键盘,stdout 和 stderr 对应终端屏

幕。进程从 stdin 获取输入内容,将执行结果信息输出到 stdout ,如果有错误信息,同时输出到 stderr。多数情况下使用标准输入输出作为命令的输入输出,但有时可能要改变标准输入输出,这就涉及重定向和管道。

1.输入重定向

       输入重定向主要用于改变命令的输入源,让输入不要来自键盘,而来自指定文件。基本用法:

命令 < 文件名
           

2.输出重定向

        输出重定向主要用于改变命令的输出,让标准输出不要显示在屏幕上,而写入指定文件中。基本用法

命令 >文件名
           

       例如,Is 命令在屏幕上列出文件列表,不能保存列表信息。要将结果保存到指定的文件,就可使用输出重定向,下列命令将当前目录中的文件列表信息写到所指定的文件中。

1s > /home/mytest.lst
           

       如果写入己有文件,则将该文件重写(覆盖)。要避免重写破坏原有数据,可选择追加功能,将  > 改为>>,下列命令将当前目录中的文件列表信息追加到指定文件的末尾。

1s >> /home/mytest.lst
           

     以上是对标准输出来讲的,至于标准错误输出的重定向,只需要换一种符号,将>改为2>;将>>改为2>>。将标准输出和标准错误输出重定向到司一文件,则使用符号&>。

3. 管道

管道用于将一个命令的输出作为另一个命令的输入,使用符号 “|”来连接命令。可以将多个命令依

此连接起来,前一个命令的输出作为后一个命令的输入。基本用法:

命令1 | 命令2 ……| 命令N
           

       在Linux 命令行中,管道操作非常实用。例如,以下命令将 ls 命令的输出结果提交给 grep 命令进行搜索,

ls | grep "ab"
           

16.4 Shell 脚本

       Shell 脚本是指使用 Shell 所提供的语句所编写的命令文件,又称Shell程序。它可以包含任意从键盘输入的 Linux 命令。Shell 脚本最基本的功能就是汇集一些在命令行输入的连续指令,将它们写入脚本中,然后直接执行脚本来启动一连串的命令行指令,如用脚本定义防火墙规则或者执行批处理任务。如果经常用到相同执行顺序的操作命令,就可以将这些命令写成脚本文件,以后要进行同样的操作时,只要在命令行输入该脚本文件名即可。

      执行 Shell 脚本最常用的方法是把脚本权限设置为为可执行,然后在提示符下直接执行。 直接编辑生成的脚本没有可执行权限,需要利用命令 chmod 把它设置为具有执行权限。例如:

chmod +x test1
           

        这样就可以像执行 Linux 命令一样来执行脚本文件。执行 Shell脚本的方式与执行一般的可执行文件方法相似。Shell 接收用户输入的命令(脚本名),并进行分析。如果文件被标记记为可执行的,但不是被编泽过的程序,Shell 就认为它是一个脚本,并读取其中的内容,加以解释执行。

Shell 本身就是一种解释型的程序设计语言,编写 Shell 脚本的过程就是 Shell 编程。