天天看点

Linux系统管理员的命令行工具箱目录Linux系统管理员的命令行工具箱目录

系统管理员(sysadmins)负责日常维护生产系统和服务。其中一个关键任务就是保证功能性服务能24小时工作。为了这个,他们得很小心地计划备份方式,灾难管理策略,定时维护,安全审查,等等。和任意其他管理一样,系统管理员也有他们的必备工具。在正确的时间正确的情况下使用合适的工具,可以帮助维护操作系统的健壮,达到最小的服务中断时间和最大的运行时间。

Linux系统管理员的命令行工具箱目录Linux系统管理员的命令行工具箱目录

这篇文章会介绍一些系统管理员日常活动中最常用和有效的命令行工具。如果你想推荐其他没在这里列出来的好用的工具,别忘了在评论区里分享一下。

<a target="_blank"></a>

ping:通过icmp回应/回复报文来检查远端主机的端到端连接性(rtt延时,抖动,丢包)。用来检查系统状态和可连接性很不错。

traceroute:通过ttl限定的icmp/udp/tcp侦测包来发现从本地主机到远端目标主机之间的第三层转发路径。用来调试网络连接性和路由问题。

mtr:traceroute的一个变种,能根据运行时统计数据整理出每一跳的包丢失/抖动。用来评估路由路径延时很不错。

dig:dns调试工具,可以生成正向查询,反向查询,搜索域名服务器,检查cname,mx和其他dns记录。可以在侦错的时候查询特定的dns服务器。

nslookup:另外一个dns检查/调试工具。支持所有dns查询和记录。可以查询特定dns服务器。

dnsyo:一个dns测试工具,通过对全世界1500个不同网络中的大量开放解析器执行dns查询来测试dns传输。

lsof:显示进程打开的文件信息(例如,普通文件,管道或套接字)。用来监视网络连接很不错。

iftop:一个基于ncurses的命令行界面应用,可以实时监视各个网络物理接口上的网络连接和带宽占用。用来记录霸占带宽的应用、用户、目的地和端口等很不错。

netstat:一个网络统计工具,可以显示状态以及统计信息,当前网络连接(tcp/udp端口,ip地址)、路由表、tx/rx traffic以及网络协议。用来做网络相关诊断和性能调试很不错。

ip:一个多功能的命令行网络工具,是iproute2包的一部分。可以检查和修改路由表、网络设备状态以及ip隧道设置。用来查看路由表、增加/删除静态路由、配置网络接口、以及调试路由问题很有用。

ifup/ifdown:用来激活和关闭特定的网络接口。经常用于重启整个网络服务。

iperf:一个网络测试工具,通过在发送自定义tcp/udp数据流来衡量主机间双向最大吞吐量。

getfacl/setfacl:查看和定制文件和目录的访问控制列表,作为传统文件权限的扩展。

cryptsetup:用于创建和管理luks加密磁盘分区。

lynis:一个命令行的漏洞扫描工具。可以扫描整个linux系统,并汇报潜在的漏洞以及相关可能解决方案。

maldet:一个恶意软件扫描命令行工具,可以检测和隔离潜在的感染文件。可以在后台运行长期监视。

fdisk:一个磁盘分区编辑工具。用于查看、创建和修改本地磁盘或可移动磁盘的分区。

sfdisk:fdisk的一个变种,能用一种非交互的方式访问或更新磁盘分区表。用来自动化备份和恢复过程中的磁盘分区很有用。

df:用来查看不同分区或文件路径的已用/可用存储空间和挂载点。还有一个更易用的变种dfc。

du:用来查看不同文件和目录的当前磁盘占用情况(例如,du -sh *)。

mkfs:一个磁盘格式化命令,用来在独立磁盘分区上建立文件系统。有多个文件系统相关的版本:ext2、ext3、ext4、bfs、ntfs、vfat/fat。

fsck:一个命令行工具,用来检查文件系统错误并尝试可能的修复。通常在启动时自动运行,但是在卸载一个分区后也可以根据需要手动运行。

mount:用来映射一个物理磁盘分区、网络共享或远程存储到一个本地挂载点。任何对挂载点里的读/写操作都是对应实际存储的实际数据读/写。

mdadm:一个命令行工具,用来管理物理块设备上的软件raid设备。可以创建、构造、增长或监视raid阵列。

lvm:一套命令行工具集,用来管理卷分组和物理/逻辑卷,可以用最小的停机时间在多个物理磁盘上创建、调整大小、拆分和合并卷。

logrotate:一个命令行工具,可以在根据设定的时间段拆分、压缩并通过邮件发送旧的/大的日志文件。用来管理可能产生大量日志文件的繁忙主机很有用。

grep/egrep:可以通过特定的模式或正则表达式过滤日志内容。变种包括用户更友好的ack和速度更快的ag。

awk:一个多功能的文本扫描和处理工具。常用于从文本/日志文件中找出特定的列或内容,并输出给其他工具。

sed:一个文本流编辑工具,可以过滤和改变(例如,删除行/空格、替换/转换单词、增加计数)文本流并通过管道连接到stdout/stderr或者其他工具。

duplicity:一个加密的增量备份工具。使用gnupg加密备份,并通过ssh上传到远程服务器。

top:一个命令行的进程查看程序。可以监视系统负载、进程状态、cpu和内存占用。有一个更易用的变种htop。

ps:显示系统所有运行中进程的一个快照。输出可以定制成显示pid、ppid、用户、负载、内存、积累的用户/系统时间、启动时间、以及更多。有一个变种pstree可以用树结构显示进程。

ngxtop:一个网页服务器访问日志解析和监视工具,界面受到了top命令启发。它可以实时汇报整理过的页面请求列表,包括频率、大小、http返回值、ip地址,等等。

vmstat:一个简单的命令行工具,可以显示多个实时系统特征,例如进程数、剩余内存、分页状态、cpu占用、块设备i/o活动、中断/上下文切换统计、等等。

iotop:一个基于ncurses的i/o监视工具,可以实时排序显示所有运行中进程的磁盘i/o活动。

iostat:一个命令行工具,可以汇报当前cpu使用情况,以及设备i/o使用情况,这里的i/o使用情况(例如,块传输速度、字节读/写速度)是按设备或分区来汇报的。

screen:用来把一个单一的终端拆分成多个持久的虚拟终端,也支持远程用户访问,类似teamviewer的屏幕分享功能。

tmux:另一个终端复用工具,可以支持多个长期会话,还可以横向/纵向拆分终端。

cheat:一个简单的命令行工具,可以让你查看多个常用linux命令的备忘录,就在手边非常方便。内建的备忘录也可以完全定制。

apropos:用来在帮助手册里查找描述或关键字很有用。

apt:基于debian系统的事实上的包管理工具,例如debian、ubuntu或backtrack。一个救生圈。

apt-fast:apt-get的一个支撑应用,可以通过多个并行连接明显提高apt-get的下载速度。

apt-file:用来查看某个特定文件属于哪个.deb包,或者显示一个特定.deb包里的所有文件。已安装和未安装的包都能支持。

dpkg:一个用来手动安装.deb包的命令行工具。强烈建议尽可能的使用apt。

yum:用于基于红帽的系统的自动包管理工具,比如rhel、centos或fedora。这是另一个救生圈!

rpm:通常我都是使用 rpm 来配合 yum 使用。有很多有用的参数,比如-q、-f、-l可以分别用来查询、指定文件和路径。

lspci:一个命令行工具,可以显示已安装的pci设备的各种信息,比如型号名称、设备驱动、设备功能、内存地址、pci总线地址。

lshw:一个命令行工具,可以查询和显示不同分类下的硬件配置的详细信息(例如,处理器、内存、主板、网络、存储)。支持多重输出格式:html、xml、json、text。

如果你希望推荐没有列在这里的好用的工具,不要客气,在评论区里分享一下。

原文发布时间:2014-12-01

本文来自云栖合作伙伴“linux中国”

继续阅读