不够高效?那必定要收下这64个运维必备的命令行工具!

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

 

本篇内容会介绍一些系统管理员平常活动中最经常使用和有效的命令行工具。前端

 

网络工具

 

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

 

hping:网络扫描和检测工具,能够产生ICMP/TCP/UDP ping数据包。经常用于高级端口扫描,防火墙测试,手动MTU路径发现和碎片测试。正则表达式

 

traceroute:经过TTL限定的ICMP/UDP/TCP侦测包来发现从本地主机到远端目标主机之间的第三层转发路径。用来调试网络链接性和路由问题。json

 

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

 

netcat/socat:TCP/IP网络里的瑞士军刀,能够读/写 TCP/UDP 协议字节流。用来调试防火墙策略和服务可用性很不错。安全

 

dig:DNS调试工具,能够生成正向查询,反向查询,搜索域名服务器,检查CNAME,MX和其余DNS记录。能够在侦错的时候查询特定的DNS服务器。服务器

 

nslookup:另一个DNS检查/调试工具。支持全部DNS查询和记录。能够查询特定DNS服务器。网络

 

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

 

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

 

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

 

netstat:一个网络统计工具,能够显示状态以及统计信息,当前网络链接(TCP/UDP端口,IP地址)、路由表、TX/RX traffic以及网络协议。用来作网络相关诊断和性能调试很不错。

 

tcpdump:一个经常使用的基于libpcap抓包库的包侦测工具。能够按伯克利包过滤器格式定义抓包条件。

 

tshark:另外一个命令行抓包工具,和它的GUI版本Wireshark彻底兼容。支持1000种协议并且这个列表还在增长。用来调试、分析和保存实时网络封包信息很不错。

 

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

 

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

 

autossh:一个能创建SSH链接并在断线后自动从新链接的程序。用来建立长时间保持的穿越严格企业网络的SSH隧道颇有用。

 

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

 

elinks/lynx:为基于命令行的服务器环境下使用的基于文字的网页浏览器。

 

安全工具

 

iptables:一个用户空间下的命令行工具,用于配置Linux内核防火墙。能够建立和修改Linux内核空间的网络包接收、转发和发送规则。

 

nmap:一个经常使用的为了安全审查目的的端口扫描和网络发现工具。用来在本地网络中找出哪些主机开机并运行起来了以及某台特定主机打开了哪些端口颇有用。

 

TCP Wrappers:一个主机端的网络访问控制列表工具,能够过滤进入/出去的网络请求/回复。常常配合iptables一块儿使用,做为额外一层安全保护。

 

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

 

cryptsetup:用于建立和管理LUKS加密磁盘分区。

 

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

 

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

 

rkhunter/chkrootkit:一个命令行工具,能够扫描本地系统里的潜在木马、隐藏后门和可疑利用,并禁用它们。

 

存储工具

 

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

 

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

 

parted:另外一个磁盘分区编辑器,支持超过2TB的磁盘的GPT(GUID分区表)格式。gparted是parted的一个前端GTK+图形界面。

 

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

 

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

 

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

 

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

 

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

 

mdadm:一个命令行工具,用来管理物理块设备上的软件RAID设备。能够建立、构造、增加或监视RAID阵列。

 

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

 

日志访问工具

 

tail:用来查看一个(增加中的)日志文件的尾部。有几个变种,包括multitail(多窗口查看)和ztail(支持inotify和正则表达式过滤以及颜色)。

 

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

 

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

 

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

 

sed:一个文本流编辑工具,能够过滤和改变(例如,删除行/空格、替换/转换单词、增长计数)文本流并经过管道链接到stdout/stderr或者其余工具。

 

备份工具

 

rsync:一个快速的单向增量备份和镜像工具(LCTT 译注:rsync 应是双向的)。经常使用于复制一个数据仓库到线下存储,能够选择经过SSH或stunnel的加密链接。

 

rdiff-backup:另外一个有效利用带宽的增量备份工具。管理两个连续快照之间的差分。

 

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

 

性能监视工具

 

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

 

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

 

nethogs:一个带宽监视工具,按进程来分组显示活动网络链接,实时汇报每一个进程占用的(上传/下载)带宽。

 

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。

 

inxi:一个综合硬件查看工具,能够提供不一样硬件模块的总览,例如CPU,显卡,声卡,网卡,温度/风扇传感器,等等。

相关文章
相关标签/搜索