了解陌生系统的命令

了解陌生系统的命令

您登录到一个不熟悉的 UNIX 或 Linux 系统(以 root 身份)。您运行哪些命令来定位自己并确定您所在的系统类型?您如何确定正在使用的硬件类型、正在运行的操作系统类型以及权限和安全方面的当前情况?

您输入的第一个和第二个命令是什么?

答案1

一个双重用途的问题!软件考古学家或邪恶黑客都可以使用这个问题的答案!现在,我是谁?

我总是用ps -efvsps -augxww来了解我在做什么。 Linux 和 System V 机器倾向于使用“-ef”和“-augxww”上的错误,对于 BSD 和旧 SunOS 机器反之亦然。的输出ps也可以让你了解很多。

如果您可以以 root 身份登录,并且它是一台 Linux 机器,那么您应该这样做lsusb-lspci这将使您 80% 地了解硬件状况。dmesg | more可以帮助您了解任何当前的问题。

它已开始被淘汰,但实际操作ifconfig -a通常可以告诉您很多有关网络接口和网络的信息。运行mii-tool和/或在您在输出中看到的看起来像有线以太网的ethtool接口上也可以为您提供一些信息。ifconfig

Runninip routenetstat -r可以提供有关 Internet 协议路由的信息,也可能提供有关正在使用的网络接口的信息。

调用mount可以告诉您有关磁盘及其安装方式的信息。

运行uptime,然后last | more可以告诉您有关当前维护状态的信息。打个比方,正常运行时间超过 100 天可能意味着“是时候更换机油和液体了”。跑步who也是

查看/etc/resolv.conf/etc/hosts可以告诉您有关该机器的 DNS 设置的信息。也许可以做nslookup google.comdig bing.com看看 DNS 是否大部分正常工作。

始终值得关注哪些错误(“未找到命令”)以及命令的哪些变体(“ps -ef”与“ps augxww”)可以确定您最终使用的 Unix 或 Linux 或 BSD 的哪个变体。

C 编译器是否存在以及它位于何处非常重要。做which cc或者更好,which -a cc找到他们。

答案2

cat /etc/*release*是一个很好的命令,用于获取正在运行的发行版的概述。

答案3

http://bhami.com/rosetta.html审查可能很方便,否则我通常会在/etc(帐户、初始化内容、操作系统风格的提示等)下浏览,crontab -l并浏览ps列表以查找需要学习的内容。

另外,“作为 root”是非常可怕的,因为我必须修复系统,其中 Linux 管理员进行此类调查将所有 Solaris 主机名设置为-f.

这也是df一个危险的命令,是阻塞 I/O 的好方法。因此,在您至少调查了安装,或者知道可以以某种方式打开另一个会话之前,切勿运行它。

使用非常简单的命令(unamecd /etc; lscat$PAGER),直到您弄清楚主机是什么,如果您不熟悉它,请检查 Rosetta 或始终阅读手册页,然后再假设某些命令或命令的标志执行其操作更受欢迎的系统。

答案4

其他一些想法:

  • 文件系统的存在或不存在/proc可能表明您是否在 苹果, 自由BSD或 Linux。
  • 不同 Linux 发行版的包管理有所不同。基于Debian的有apt,例如Deepin、Ubuntu、Mint; Red Hat 和 Fedora 在某种程度上曾有过 yum,但现在 Fedora 已经地下城与勇士; Arch 使用 pacman。所以我们可以这样做:ls /usr/bin | grep 'apt\|yum\|pacman'
  • 查看时某些端口上存在某些服务netstat -tulpan。可能是sshd网络服务器ftp

相关内容