linux错误代码在Linux中执行任务或使用在Linux环境中交互的程序时,可能会遇到错误。虽然有些错误可能是相对较小的,可能与主要程序功能的中断无关;为了避免问题的升级,即使是很小的错误也应该被处理。还有一些与事件相关的错误,这些错误可能会导致系统停止响应、函数未按预期完成或数据丢失。错误可以以代码或消息的形式显示,这些代码或消息指示已经检测到异常或其他潜在问题,并提供问题来源的信息。

定位错误日志

如果您没有在程序中收到预期的输出,或者程序似乎已经停止响应,那么定位与发生事件相关的错误将被证明是诊断问题的关键步骤。在Linux中,我发现了解事件的最好方法之一是使用文件导航来查找细节。在诊断问题时,错误日志常常成为我最好的朋友。当然,为了在文件系统中导航,可以首先访问命令行。设计了一个界面来提供用户访问和使用命令行。Linux默认的命令行接口是BASH (Bourne Again Shell),它是Bourne Shell (SH)的高级版本。

BASH是基于Unix的,虽然BASH是基于为Unix (POSIX)类型shell派生的可移植操作系统接口的标准,但是BASH还包括POSIX shell最初不支持的函数。在Linux中,访问命令行的方式可以根据用户设置的访问方法(比如为终端创建快捷方式)而不同,并且默认方法可能因版本不同而不同。访问Linux命令行的常用方法是通过终端(在某些版本的Linux中,可以通过系统工具菜单或工具栏访问终端)或控制台(可以通过组合键访问,如CTRL+ALT+F1)。探索一个教程来了解更多关于BASH脚本的知识。

从命令行执行的命令和脚本可用于定位信息,其中可能包括错误。尽管使用脚本的概念和使用命令可以很相似,区分命令和脚本的一个方法是如下:一组命令(比如一个函数或模块)可以包含一个脚本(可以存储在一个目录和从一个目录);然而,命令通常是直接在命令行中逐行手动输入的。脚本可以从编辑器中创建、编辑和保存;例如可以用于自动化目的的vi编辑器。要了解更多关于使用Linux命令行或编辑器的信息,请使用Udemy教程来扩展您的学习。

在命令行中,您将希望找到包含错误或与错误相关信息的目录。可以通过命令查看日志列表,如下所示:

cd /var/logs ls

上面显示的命令将把目录从当前目录更改为/var/logs目录,然后列出该目录中的文件。当然;你也可以使用列表选项,如下所示:

ls -

上面的开关将在输出列表中包含隐藏文件。如果你知道你想查看目录中的哪个文件,你可以改变/切换到该目录,然后搜索特定的内容,使用如下命令:

cd /var/logs/messages ls -l |grep -i error

上面列出的命令将把目录更改为用于消息的目录,并从包含关键字error(已使用grep实用程序和关键字)的目录中生成一个信息列表(可以逐页查看输出)。注意,本例中包含了-I;为了在搜索中包含更多的可能性,可以通过在搜索中使用-i来忽略要搜索的字符的情况。另一个需要考虑的问题是,在查找错误时,可以搜索许多关键字,这些关键字可能不包括单词“error”。如果你想在不搜索特定关键字的情况下搜索文件的内容(逐页的方式),那么你可以使用如下命令:

猫| pg的消息

位于/var目录中的子目录可能不同。在/var目录中有一些常见的目录,而在其他目录中也有一些目录(这取决于系统中使用的应用程序类型等因素)(其他目录也是如此)。/var/log/apache2,它可能包含与Apache Web服务器事件相关的错误;/var/log/ Samba,其中可能包括与Samba(充当第三方的软件,允许在Windows和Linux服务器之间交互和/或共享)有关的错误和其他日志信息;/var/log/sssd,包含系统安全服务守护进程的信息;/var/log/posIMB,可以在IBM零售环境中找到;等。在不同的目录中可以找到诊断信息。作为一个应该搜索其他目录的例子;为了更深入地了解在发生错误的同一时间段内可能正在运行的进程的pid(进程标识号),您可能希望查看目录,例如/var/run目录。

错误和场景的示例

错误码的官方定义已在Linux的errno.h文件(错误通知头文件)中存档。

场景1

试图在零售环境中完成交易;用户收到一条消息,表明事务可以在此时完成(用户收到这条消息是因为系统管理员使用了错误处理方法和STDOUT命令,在发生错误时显示消息)。用户联系了他们的技术支持人员,后者随后搜索错误日志,以定位在用户无法进一步处理事务的同一时间内发生的错误。在联系技术支持时,商店里的其他用户会遇到一些问题,比如终端停止响应,信用卡没有被授权。在联系技术支持的几分钟内,问题就发生了,IT专家决定使用以下命令(在导航到适当的目录后),以便显示文件的最后50行:

-50年尾巴error.log

注意,tail命令用于一个名为error.log的文件;在这个场景中,error.log文件是由具有根访问权限的管理员创建的(管理员将符合特定条件的错误重定向到非标准的错误日志)。此外,如果系统管理员想要创建包含步骤的脚本;例如:导航到文件,检索特定的错误,然后显示这些错误,那么这也是可能的。在某些情况下;对于那些权限有限的人(可能包括大多数系统用户)来说,从终端上运行脚本可能更理想。

在这种情况下,发现以下错误与该问题有关:错误112 - EHOSTDOWN

除了发现Linux错误外,还发现了其他与连接相关的问题。技术支持热线开始接到更多来自其他地点的关于相同类型问题的电话。发现原因后,网络问题已经解决。

场景2

已实现Samba的管理员在收到错误代码127时试图挂载Samba共享。管理员查看错误通知文件头以获取更多细节,并发现代码(EKEYEXPIRED)通常与安全相关,并指示某个密钥已过期。管理员在更新了他们的凭据之后重新尝试,在这种情况下,已经能够挂载共享。

场景3

管理员正在监视错误日志,并遇到错误80 (ELIBBAD)。经过研究,管理员发现一个插件无法完成一个函数,因为该函数试图使用的文件是损坏的库文件。对错误日志的监控和研究是系统管理中必不可少的任务;了解如何培养成为一名系统管理员的技能。

总结

虽然可能会产生一系列可能的场景和可能的错误,但本文已经介绍了可能发生的一些Linux错误代码。您可以使用相对手动的方法来搜索日志,使用自动流程检索和发送的信息,或者使用方法的组合。为了诊断问题,您还可以随意利用其他资源,比如Linux中的手册页(通过man命令访问),以及研究系统问题的症状和搜索日志文件。了解Linux代码不仅可以帮助您排除问题,而且还可以帮助您防止进一步的问题。

Linux顶级课程

精通Linux:在11.5小时内掌握Linux命令行
Ziyad Yehia,物联网学院
4.7 (12837)
畅销书
用实例完成Linux安全与加固
伊姆兰·阿夫扎尔(24万+学生)
4.7 (408)
完成Linux培训课程,获得你梦想的IT工作2021年
伊姆兰·阿夫扎尔(24万+学生)
4.6 (9672)
畅销书
Linux管理和故障排除技巧-动手
全球30,000多名学生
4.5 (2375)
Linux管理:完整的Linux训练营2021
安德烈·杜米特雷斯库,水晶思想学院
4.6 (265)
畅销书
面向云和DevOps工程师的Linux
Valaxy Technologies | AR Shankar
4.4 (570)
Asterisk变得简单:学习安装Asterisk和Linux
乔恩·曼宁
4.7 (854)
评价最高
Linux诊断与故障处理
全球30,000多名学生
4.4 (307)
Linux初学者
Bogdan Stashchuk
4.8 (249)
畅销书

更多的Linux的课程

Linux学生也学习

让你的团队。领导行业。

通过Udemy for Business为您的组织订阅在线课程图书馆和数字学习工具。

请求一个演示