揭开 Linux 中退出码的神秘面纱。退出码可以告诉我们最后一次执行的命令的状态。基本思想是,程序返回退出代码 0 表示执行成功,而代码 1 或 0 以外的任何代码都被视为不成功。
除了 0 和 1,还有许多其他退出码,本文将详细介绍它们。在 Linux Shell 中,主要有以下几种常见的退出码:
了解了退出码的用法后,我们来探讨它们的实际应用。
前一个命令执行的退出码存储在特殊变量 $? 中。可以通过运行命令获取它。
在所有演示中,我们都会使用它来获取退出代码。
请注意,exit 命令可以以与上一条命令相同的退出码退出。
退出码0 表示命令执行无误,这是完成命令的理想状态。例如,运行基本命令,这个退出码0 表示特定命令已成功执行。我们还可以通过终止一个进程或查看文件内容来演示退出码0。
退出码1 通常表示命令以一般错误结束。例如,在没有 sudo 权限的情况下使用软件包管理器或在基于 Ubuntu 的发行版中尝试使用 apt update 而不使用 sudo,都会返回代码 1。虽然这是一般的理解,但也可以解释为 “不被允许的操作”。除以0 等操作也会返回错误码 1。
退出码 2 用于表示命令有语法错误或滥用命令参数。这通常意味着命令无法执行。例如,添加了两个连字符的选项或权限被拒绝时会出现退出码 2。在访问/root 文件夹时也会出现错误码 2。
126 用于表示命令或脚本因权限错误而未被执行。当你尝试执行没有执行权限的 Shell 脚本时,就会出现这个错误。退出码 126 只出现在没有足够权限的脚本或命令的“执行”中,与一般的权限被拒绝错误不同。
退出码127 指的是“未找到命令”。它通常发生在执行的命令有错别字或所需的可执行文件不在 $PATH 变量中时。例如,尝试执行不存在的命令或可执行文件不在$PATH 变量中的命令时,会得到退出码 127。你可以通过在 PATH 变量中添加命令的目录来纠正这种情况。
当应用程序或命令因致命错误而终止或执行失败时,会产生 128 系列退出码(128+n),其中 n 为信号编号。这些信号包括 SIGTERM、SIGKILL 等。退出码 130 或 SIGINT 表示通过终止信号 2 或按下 Ctrl+C 中断进程。因为终止信号为2,所以退出码为 130。退出码 137 或 SIGKILL 表示终止信号 9。退出码 143 或 SIGTERM 表示进程在未指定参数的情况下被杀死时的默认行为。
了解 Linux 中的退出码对于排查各种问题非常方便。在 Shell 脚本中使用这些代码时,请确保你了解每个代码的含义,以便更容易地排除故障。希望本文能帮助你更好地理解 Linux Shell 中的退出码。
Linux 中退出码的含义 | Linux 中国
退出码 0 退出码0 表示命令执行无误,这是完成命令的理想状态。例如,运行基本命令,这个退出码0 表示特定命令已成功执行。我们还可以通过终止一个进程或查看文件内容来演示退出码0。退出码 1 退出码1 通常表示命令以一般错误结束。例如,在没有 sudo 权限的情况下使用软件包管理器或在基于 Ubuntu 的...
linux中的exit函数有什么用?
1、WEXITSTATUS 是返回子进程的退出码,用来判断子进程的退出值。当WIFEXITED(status) 这个宏用来指出子进程是否为正常退出的,如果是,它会返回一个非零值。2、WEXITSTATUS(status)取得子进程exit()返回的结束代码,一般会先用WIFEXITED 来判断是否正常结束才能使用此宏。
如何在 Linux 终端中退出一个程序 | Linux 中国
在 Linux 环境中,中止程序是常见的需求。比如使用 ping 命令,只需按下 Ctrl+C,这会向运行中的程序发送 SIGINT 信号,强制命令退出。终端会显示 ^C,表示你已发送了 Ctrl+C 键组合。更高级的操作是通过进程 ID 杀死进程,但这通常适用于后台运行或由其他用户操作的程序。对于 Vim、Nano 和 less ...
exit1什么意思?
"exit1" 通常表示一个命令、程序或脚本中的退出代码或标识符,它可能表示一个特定的退出状态。不过,它的确切含义可能因上下文或所使用的软件\/编程语言而异。在计算机编程和系统管理中,"exit" 通常与程序或命令的终止有关。当程序或命令结束时,它会返回一个退出状态码,这个码可以被操作系统或其他程序...
Linux-wait函数status的含义
若子进程正常退出,WIFEXITED为真,此时可通过WEXITSTATUS获取退出码,但需注意status仅使用低16位。一般情况下,低7位表示是否正常退出(0表示正常退出),高8位表示退出码的具体数值。然而,对于非正常退出的子进程,status的16位含义不再简单。如进程被kill或停止运行,status的16位定义会有所改变。例如...
linux命令含义linux命令意思
Linux下tomcat服务的启动、关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cdusr\/local\/tomcat\/bin)1,启动tomcat服务 方式一:直接启动.\/startup.sh 方式二:作为服务启动nohup.\/startup.sh 方式三:控制台动态输出方式启动.\/...
“Linux 中国” 开源社区,停止运营
从即日起,“Linux 中国” 这个社区,包括其主网(linux.cn\/)、公众号、视频号,以及《硬核观察》栏目,将无限期停止更新和运营。停止运营的原因在于“Linux 中国”已经完成了其历史使命。最初,社区的目标是传播开源技术,如今开源文化和 Linux 相关技术已广泛传播,其影响力减弱。此外,由于计算机翻译...
Linux 黑话解释:什么是 sudo rm -rf?为什么如此危险? | Linux 中国
尽管sudo rm -rf 是一个被广泛认为危险的命令,但它的含义需要深入理解。rm 是用于删除文件和目录的命令,-f 选项用于强制删除,而 -r 用于递归删除目录。加上 sudo,意味着你可以删除具有 root 权限的系统文件。这就像一把双刃剑,本身并无害,但若误用,可能导致严重后果,比如误删重要系统文件,...
在Linux 终端里管理你的密码 | Linux 中国
设置 GnuPG:在使用 pass 之前,需要一个有效的 PGP 密钥。你可以选择使用已有的 GnuPG 密钥,或者创建一个新的密钥用于 pass。GnuPG 是一个常用的开源 PGP 实现,对于 macOS 用户,可以从 gpgtools.org、Homebrew 或 Macports 安装它。创建 GnuPG 密钥时,按照提示输入姓名和电子邮件,设置密码,并...
linux中“UID、PID、PPID”分别是什么意思?
这使得可以在Linux下通过相应的模拟器执行常见的DOS、Windows的程式。这为使用者从Windows转到Linux奠定了基础。许多使用者在考虑使用Linux时,就想到以前在Windows下常见的程式是否能正常执行,这一点就消除了他们的疑虑。多使用者、多工 Linux支援多使用者,各个使用者对于自己的档案装置有自己特殊的权利,...