linux命令类型及执行顺序

Posted zangfans

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux命令类型及执行顺序相关的知识,希望对你有一定的参考价值。

一 为什么要使用命令行

??当初级Linux用户面对缺乏图形界面的Linux时很多人都会抱怨:为何要死守命令行?为什么不采用人机互交好、更简单的图形界面呢?事实上,图形界面在某些任务方面确实高效而且简单,但是在某些任务面前,图形界面就望尘莫及了。例如批量的安装与批量的文件处理。

??Linux是一款文本式驱动的操作系统,有点就是在于可以进行命令界面操作。相比图形界面来说,命令界面可以节省大量的物理内存空间并且可以避免在图形界面下出现的密密麻麻的列表;同时在命令界面可以完成相当复杂的运算。当然我们也可以把图形界面理解成命令行的图形运算外壳。


二 Linux命令行的重要作用

??相比图形界面,Linux命令行才是Linux系统的真正核心,利用命令行可以对系统进行各种配置,要熟练并成功管理Linux操作系统就必须对Linux命令行有深入的了解。Linux下的命令行有助于初学者了解系统的运行情况和计算机的各种设备。比如:中央处理器、内存、磁盘驱动、各种输入和输出设备以及用户文件,都是在Linux系统管理命令下运行的。可以说Linux命令行对整个系统的运行以及设备与文件之间的协调都具有核心的作用。

? 虽然近些年个人计算机的潮流已经从命令行转向了图形界面方向,用户也热衷于图形界面的应用,但是在服务器应用与高级别使用上Linux命令行依然是核心应用。这取决于在字符界面下的操作具有更好的稳定性与安全性。

??综上所述,不论是Linux的初学者还是一个正宗的Linux老鸟,Linux命令行都是必不可少的系统管理利器。需要记住的是命令行不是单纯的一段命令,它是一种工具,它也需要安装。


三 命令分类

Linux命令分为两类,具体为内部命令和外部命令

  •  内部命令:指shell内部集成的命令,此类命令无需人为安装,开机后自动运行在内存中,命令help查看所有内部命令的详情,如cd、type、echo、time、true等。
  •  外部命令:指通过外部介质安装的命令工具包,如通过yum、rpm等方式安装,具体安装路径在$PATH下。

?注:所有的内部命令在外部命令中都有存在,只是为了提高优先级而在shell中集成一部分

  •  命令查看: type查看命令分类,内部命令显示 shell相关信息,外部命令则显示$PATH路径 [[email protected] ~]# type time
    time is a shell keyword
    [[email protected] ~]# type date
    date is /bin/date

四 命令执行顺序

单命令执行顺序

alias->shell>hash>PATH

多命令执行顺序

??Linux多命令顺序执行连接符(; || && |) 当我们需要一次执行多个命令的时候,命令之间需要用连接符连接,不同的连接符有不同的效果。下面我们总结一下,加以区分。

(1)  ; 

分号,没有任何逻辑关系的连接符。当多个命令用分号连接时,各命令之间的执行成功与否彼此没有任何影响,都会一条一条执行下去。

(2) ||

逻辑或,当用此连接符连接多个命令时,前面的命令执行成功,则后面的命令不会执行。前面的命令执行失败,后面的命令才会执行。

(3) &&

逻辑与,当用此连接符连接多个命令时,前面的命令执行成功,才会执行后面的命令,前面的命令执行失败,后面的命令不会执行,与 || 正好相反。

(4) |

管道符,当用此连接符连接多个命令时,前面命令执行的正确输出,会交给后面的命令继续处理。若前面的命令执行失败,则会报错,若后面的命令无法处理前面命令的输出,也会报错。

例 ls | grep *.txt

五 内部命令与外部命令的产生和区别

  1. CentOs7 的shell是bash;在Linux使用时有一些命令的使用频率较高,若是总是从硬盘数据中读取比较浪费时间且占用资源。所以bash把这些使用频率高的命令集成到shell 当中,加快调用,称为内建命令。
  2. 所以内建命令在就是为了加快外部命令调用而在shell中的备份。即每个内建命令都在外部命令(硬盘上)存在的有。

?二者区别:内部命令在系统启动时就调入内存,是常驻内存的,所以执行效率高。

外部命令是系统的软件功能,用户需要时才从硬盘中读入内存。

六 命令优先级

alias>shell内建>hash>外部路径




以上是关于linux命令类型及执行顺序的主要内容,如果未能解决你的问题,请参考以下文章

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

谢烟客---------Linux之bash脚本编程---if补充和for循环

linux中批处理文件顺序执行命令的输入

Linux常用命令

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

20155201 李卓雯 《网络对抗技术》实验一 逆向及Bof基础