Linux:指令的本质

简介: Linux:指令的本质

博客大纲


指令的本质

在Linux中,用户可以使用不同的指令来进行各种操作,比如使用ls来查看文件,用mkdir来创建目录。

可是这些指令时如何执行的呢?

其实指令的本质就是一个可执行的程序,再本质一点,指令就是一个文件。

所有的指令都存储在/usr/bin这个目录中,我们尝试使用ls -F指令(显示文件的类型)来观察这个目录:

[root@iZf8zdrs09p97o9xxgii5hZ ~]# ls -F /usr/bin
[*                                   gpic@                   nl-cls-list*               sha224sum*
2to3-3@                              gprof*                  nl-fib-lookup*             sha256sum*
2to3-3.6*                            grep*                   nl-link-enslave*           sha384sum*
a2p*                                 groff*                  nl-link-ifindex2name*      sha512sum*
addr2line*                           grops*                  nl-link-list*              show-changed-rco*
alias*                               grotty*                 nl-link-name2ifindex*      showconsolefont*
applydeltarpm*                       groups*                 nl-link-release*           show-installed*
apropos@                             growpart*               nl-link-set*               showkey*
ar*                                  grub2-editenv*          nl-link-stats*             shred*
arch*                                grub2-file*             nl-list-caches*            shuf*
as*                                  grub2-fstest*           nl-list-sockets*           signver*
......
......
......
gpg2*                                nl*                     setpriv*                   zipinfo*
gpg-agent*                           nl-addr-add*            setsid*                    zipnote*
gpgconf*                             nl-addr-delete*         setterm*                   zipsplit*
gpg-connect-agent*                   nl-addr-list*           setup-nsssysinit@          zless*
gpg-error*                           nl-class-add*           setup-nsssysinit.sh*       zmore*
gpgparsemail*                        nl-class-delete*        setvtrgb*                  znew*
gpgsplit*                            nl-classid-lookup*      sftp*                      zsoelim@
gpgv@                                nl-class-list*          sg@
gpgv2*                               nl-cls-add*             sh@
gpg-zip*                             nl-cls-delete*          sha1sum*

由于其内容实在太多了,我们将中间部分省略掉了。但是从代码片中展示的内容可以看出,大部分文件都被表示了*,这个符号表示该文件是一个可执行的程序。也就是说:指令的本质是一个可执行的程序

我们再单独查阅几个常用的指令:

[root@iZf8zdrs09p97o9xxgii5hZ ~]# ls -F /usr/bin/ls
/usr/bin/ls*
[root@iZf8zdrs09p97o9xxgii5hZ ~]# ls -F /usr/bin/pwd
/usr/bin/pwd*
[root@iZf8zdrs09p97o9xxgii5hZ ~]# ls -F /usr/bin/man
/usr/bin/man*

可以看到,lspwd以及man这三个指令都是可执行的程序。

而当用户使用指令,其实就是在使用这个程序。

而可执行程序本质也是一个文件,我们通过路径的方式去访问这个文件试试:

[root@iZf8zdrs09p97o9xxgii5hZ ~]# /usr/bin/pwd
/root
[root@iZf8zdrs09p97o9xxgii5hZ ~]# /usr/bin/ls
111  csdn  csdn2

我们居然用访问文件的方式来实现了指令的功能。

指令对应的文件是可以删除的,而删除这个文件后,对应的指令就不能跑了。比如git相关的指令,gcc相关的指令,在某些Linux系统上,是需要额外下载的,因为操作系统中没有对应的文件,所以也就无法跑程序,执行这个指令。


which指令

这个指令可以输出一个指令对应的文件所处的绝对路径。

比如我们用which查阅一下pwd指令的路径:

[root@iZf8zdrs09p97o9xxgii5hZ ~]# which pwd
/usr/bin/pwd

此时操作系统就会输出对应的路径。

我们再用which查阅一下ls的路径:

[root@iZf8zdrs09p97o9xxgii5hZ ~]# which ls
alias ls='ls --color=auto'
  /usr/bin/ls

此时,操作系统不仅输出了ls的路径,还输出了一串alias ls='ls --color=auto',这是什么呢?

这个语句的作用是重命名,当用户认为某个指令太长了,就可以使用重命名,在输入重命名后的指令后,就会执行对应的指令。

比如此处就是将ls --color=auto重命名为lsls中的color选项,可以用于规定输出后的文件名的颜色,当--color=auto,就是输出后的文件名有颜色,--color=none就是没有颜色。而此处的重命名,也就是说,当用户使用ls这个指令时,默认同时执行--color=auto选项。


博客制作不易,还请留下一个免费的赞!

有问题欢迎指出,博主非常喜欢讨论问题!

相关文章
|
2月前
|
Linux
linux-du指令
`du`命令是Linux系统中查看磁盘使用情况的基本工具之一。通过灵活使用 `du`命令的各种选项,可以准确、高效地获取文件和目录的大小信息,有助于系统管理员进行磁盘空间管理。无论是查找大文件、分析目录结构还是排除特定类型的文件,`du`命令都提供了丰富的功能和灵活的配置。理解和掌握 `du`命令的使用,对于维护和优化Linux系统的磁盘空间至关重要。
33 4
|
3月前
|
Linux Windows
【Linux】-基本指令(下)
【Linux】-基本指令(下)
【Linux】-基本指令(下)
|
2月前
|
安全 Ubuntu Unix
【Linux】基础指令
本文介绍了Linux操作系统的基本概念及特点,强调了其开源性、多用户多任务处理能力、稳定性和安全性。文章重点讲解了多个Linux基础命令,如ls、cd、touch、mkdir、rm、man、cp、mv、cat、less、find、grep、tar等,旨在帮助初学者快速掌握Linux命令行操作,为后续深入学习奠定基础。
68 0
|
3月前
|
Linux
【Linux第一弹】- 基本指令
【Linux第一弹】- 基本指令
42 1
|
3月前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(三):Linux下操作指令大全
Ubuntu学习笔记,介绍了Linux操作系统中常用的命令和操作,如文件管理、系统信息查看、软件安装等。
50 3
|
3月前
|
Unix Linux 索引
【Linux】-基本指令(上)
【Linux】-基本指令(上)
|
3月前
|
Linux Shell Windows
Linux入门1——初识Linux指令
Linux入门1——初识Linux指令
39 0
Linux入门1——初识Linux指令
|
3月前
|
人工智能 Unix Linux
装杯 之 Linux指令
本文介绍了Linux操作系统的基本命令。首先欢迎各位进入Linux的世界,并展示了`ls`命令,用于列出目录下的文件和子目录。接着介绍了`pwd`命令,用于显示当前目录;`cd`命令,用于切换目录;`mkdir`命令,用于创建目录;`touch`命令,用于创建普通文件或修改文件时间戳;`rmdir`命令,用于删除空目录;以及`rm`命令,用于删除文件或目录。通过这些基本命令,你可以开始探索和管理Linux系统。
|
5月前
|
存储 Linux
Linux专栏08:Linux基本指令之压缩解压缩指令
Linux专栏08:Linux基本指令之压缩解压缩指令
71 4
|
5月前
|
Linux
Linux专栏09:Linux基本指令之时间日期指令及关机重启指令
Linux专栏09:Linux基本指令之时间日期指令及关机重启指令
116 2