Linux命令执行过程(新手必读)
简单来说,Linux 命令的执行过程分为如下 4 个步骤。
1) 判断路径判断用户是否以绝对路径或相对路径的方式输入命令(如 /bin/ls),如果是的话直接执行。
2) 检查别名Linux 系统会检查用户输入的命令是否为 别名命令 。要知道,通过 alias 命令是可以给现有命令自定义别名的,即用一个自定义的命令名称来替换原本的命令名称。
例如,我们经常使用的 rm 命令,其实就是 rm -i 这个整体的别名:
[root@localhost ~]# alias rm
alias rm= rm -i
这使得当使用 rm 命令删除指定文件时,Linux 系统会要求我们再次确认是否执行删除操作。例如:
[root@localhost ~]# rm a.txt 假定当前目录中已经存在 a.txt 文件
rm: remove regular file a.txt ? y 手动输入 y,即确定删除
[root@localhost ~]#
这里可以使用 unalias 命令,将 Linux 系统设置的 rm 别名删除掉,执行命令如下:
[root@localhost ~]# alias rm
alias rm= rm -i
[root@localhost ~]# unalias rm
[root@localhost ~]# rm a.txt
[root@localhost ~]# 直接删除,不再询问
注意,这里仅是为了演示 unalisa 的用法,建议读者删除 rm 别名之后,再手动添加到系统中,执行如下命令即可再次成功添加:
[root@localhost ~]# alias rm= rm -i
3) 判断是内部命令还是外部命令Linux命令行解释器(又称为 Shell)会判断用户输入的命令是内部命令还是外部命令。其中,内部命令指的是解释器内部的命令,会被直接执行;而用户通常输入的命令都是外部命令,这些命令交给步骤四继续处理。
内部命令由 Shell 自带,会随着系统启动,可以直接从内存中读取;而外部命令仅是在系统中有对应的可执行文件,执行时需要读取该文件。
判断一个命令属于内部命令还是外部命令,可以使用 type 命令实现。例如:
[root@localhost ~]# type pwd
pwd is a shell builtin pwd是内部命令
[root@localhost ~]# type top
top is /usr/bin/top top是外部命令
当用户执行的是外部命令时,系统会在指定的多个路径中查找该命令的可执行文件,而定义这些路径的变量,就称为 PATH 环境变量,其作用就是告诉 Shell 待执行命令的可执行文件可能存放的位置,也就是说,Shell 会在 PATH 变量包含的多个路径中逐个查找,直到找到为止(如果找不到,Shell 会提供用户 找不到此命令 )。
PATH 环境变量的改变,会直接影响 Shell 查找 Linux 命令的过程,有关 PATH 环境变量(是什么、如何查看、如何修改等),可阅读《Linux PATH环境变量》一文做详细了解。
相关文章
- 解压Linux文件:简单命令指南(linux解压命令)
- 『Linux网络:极致的连接体验』(linux网络实现)
- 探索Linux的奥秘:主菜单(linux主菜单)
- Linux加强防御:抵抗勒索病毒(勒索病毒linux)
- 如何快速查看Linux服务器状态(查看linux服务器状态)
- Linux实现FTP文件映射(linux映射ftp)
- Linux用户管理权限限制(linux用户限制)
- 库修炼Linux:如何修改链接库(linux修改链接)
- Linux下打包命令指南(linux打包命令)
- Linux系统带来的分支变革(linux的分支)
- Linux连接的无限可能:最佳端口号(连接linux端口号)
- Linux系统的分支探索之旅(linux的分支)
- Linux命令之行截取:快速编辑文本的好帮手。(linux截取行)
- Linux命令:如何实现列对齐?(linux列对齐)
- 学习Linux下载命令,提高系统管理效率(linux下载命令)
- Linux下如何高效调试C语言程序?(linux调试c语言程序)
- Linux下如何设置编译头文件路径(linux编译头文件路径)
- 25字中文文章标题:Linux 启动项目命令简介(linux启动项目命令)
- Linux命令Alias:简化工作流程(linux命令alias)
- 让平板设备也能愉快地运行Linux系统(平板运行linux)