Unixpipe理员的工具不能没有

在pipe理Unix或类Unix服务器之后,你觉得你不能没有什么工具(命令行)?

GNU屏幕 – 在pipe理大量系统时不可或缺的是打开十几个terminal窗口。

有些我知道我不能没有…

  • tee – 允许同时写入STDOUT(标准输出)和一个文件。 非常适合查看信息并稍后logging。

  • top – UNIX的任务pipe理器给出了系统的一个很好的概述。

  • tail -f – 允许您在文件增长时查看附加数据,非常适合监视服务器上的日志文件。

  • grep – 全局正则expression式打印,非常适合在系统中search文件中的数据。

  • df – 报告当前文件系统的磁盘使用情况。

  • du – 报告某个文件/目录的磁盘使用情况。

  • 不需要查看手册页! 对于以易于查找的方式查看命令的输出也是有用的。

  • vim / Emacs / nano / pico / ed – 不pipe你select的文本编辑器是什么,自我解释为什么需要它。

lsof来确定哪些进程正在使用文件或目录(当试图找出是什么阻止设备被卸载时很有用)

netstat来确定哪些进程正在使用networking连接(当试图找出哪个守护进程被绑定到某个端口时特别有用)

学习所有的基本工具,但学习Perl。

Perl是处理文本的理想select,由于un * x操作符存在于文本文件,pipe道,input和输出中,所以Perl非常适合。

另外一个好处是Perl是跨平台的,如果你必须在windows上做一些工作,那么你已经知道了一个很容易安装的语言(只要在服务器上放一个Perl目录)。

在那个思路上,也得到Cygwin。 如果你是一个un * x的pipe理员,并且必须在有ls,rm,grep,sed,tail等的windows系统上(甚至是你的桌面)工作,在切换操作系统的时候可以节省很多时间。

  • SED
  • AWK

现代系统脚本被遗忘的祖父。 我知道Perl获得了大部分的爱(以及Bash脚本,Python,Ruby和[在这里插入你最喜欢的脚本语言]),不要误解我的意思,我喜欢Perl。 我几乎每天都在使用它。

但是sed和awk不应该被遗忘,忽略或忽视。 对于很多情况,sed和awk是最好的工具。 快速示例是使用sed进行命令行筛选,以及使用awk快速和肮脏的日志处理。 两者都可以在Perl中完成,但是需要更多的工作和开发时间。

rsync,尤其是与ssh一致。 它允许从主机到主机简单高效地复制文件。 我们如何处理没有ssh和rsync? 🙂

Netcat的。

  • testingTCP服务是否正在侦听。
  • 使用SMTP等明文协议进行交易。
  • 机器之间快速不安全的数据传输。
  • Telnet客户端仿真。

networking瑞士军刀,正如他们所说。

面对它 – 迟早你会处理networking。 mtr , tcpdump和tshark对于查看正在发生的事情非常有用。

对于快速脚本,自动化等:

  • 庆典
  • perl的

要连接到您的* NIX服务器:

  • 打开SSH(Linux客户端)
  • 腻子(Windows客户端)

我使用了已经列出的大部分工具,但是这里还没有人涉及:

Puppet – 系统pipe理任务自动化系统

对于脚本:

  • python
  • 呆子

大多数标准的都包含在其他的答案中,所以我会去非标准的:

  • htop – 非常适合stream程pipe理;
  • pinfo – 山猫喜欢浏览器的信息和手册页。

我还没有看到一些方便的工具:

  • dstat –nocolor (cpu-, disk- ,net-usage的概述)
  • iftop (networkingstream量的dynamic概览)
  • ccze (很好的颜色日志文件)
  • ssh隧道(稍后可以使用;请参阅手册; -R)
  • 期待 (自动化交互式,聊天对话界面,很好,如果你在捏)

ClusterSSH

ClusterSSH通过单个graphics控制台窗口控制许多xterm窗口,允许通过ssh连接交互地在多个服务器上运行命令。

vmstat 1

给你一个很好的系统行为的概述。

PV:显示可以redirect的长操作的进度。 http://www.ivarch.com/programs/pv.shtml

有用的话,你想监视一些将要花费时间的东西,比如通过networking复制/压缩一个原始块设备(这是我对8Gb上网本进行偏执狂备份之前,修改任何类似于文件系统设置的重大事项)。

另外:我会第二次投票ssh,rsync,screen,htop和netcat,正如上面提到的人 – 所有这些都比pv更重要,但是pv还没有被提及。 事实上,当pipe道连接到netcat或者从netcat时,pv通常是一个有用的补充。

ssh,Vim,htop,su,Python,ls,cd,screen,du,tar 🙂

sudo

说真的, tail -f是有用的。

以前没有提到的一些:

  • 头/尾
  • DIFF
  • pstree
  • 柏油
  • 的gzip / bZIP结构

焦油pipe!

将tar的输出pipe道输送到另一个工具,tar运行在同一个盒子上,或者tar运行在SSH上,这是我最喜欢的旧式Unix移动方式,用于将文件从一个地方移动到另一个地方。

这也为您提供了Windows风格的选项,即将一个文件夹复制到另一个文件夹,并以源目标和目标目录中的所有文件结束。

zsh作为一个shell

这对grml.org的扩展/安装尤其有效。

iotop是一个类似于顶级的程序,用于监视对磁盘的I / O访问。

大多数这些工具使用Bash“可编程完成”function变得更加强大 – 因此您可以制表完成诸如命令行选项之类的东西,或者使用“apt-get install”来说明软件包的名称。 它也会限制你为相关文件选项卡填写的内容,例如“unzip”只能完成支持的档案文件。

它真的是笨蛋 – 如果你从来没有尝试过,你可能只需要捣鼓你的.bashrc:

 if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi 

当然这在Ubuntu和Debian上也是如此。 您可能需要在某些Linux发行版上获取该软件包。

在这个类似的问题中可以find一些额外的答案

我想提一些被忽视的东西。

  • vim -d分割屏幕控制台比较,使它很容易看到文件中的差异
  • pdsh允许您轻松地在串行或并行的多个系统上运行命令(我是一个集群pipe理员,没有它我就无法运行)。
  • nmon就像是破解的顶端。 它使您能够在单个屏幕上了解系统上正在发生的事情。 您可以实时查看磁盘I / O,networkingI / O CPU使用率和内存使用情况。 在分析一个系统时,至less要玩一个真正有趣的事情。

哦,我忘记提及,在编写脚本时,我相信你应该总是使用Korn。 我讨厌Korn(不是乐队,我喜欢乐队:-P),但实际上它到处都是。 您可以采取脚本,在Solaris,AIX和Linux之间移动脚本,而不必担心pipe理员是否有安装Bash的风格。

一个工具有时非常方便是nohup。 我用它来运行使用远程SSH客户端很长时间的脚本。

男人 – 阅读手册页。

elinks – 检查谷歌,因为我当然不能记住一切。

并注意细节和坚韧,因为没有它们,我只是浪费时间。

屏幕是必须的,尤其是一个好的.screenrc文件。 我把它configuration成在视觉上显示我所在的窗口,并且可以用Ctrl +箭头在它们之间移动。 对于单个ssh会话和多个shell而言,它是一个生命保护程序。

  • SSH
  • AWK
  • SED
  • netcat的
  • 柏油
  • PS
  • 我喜欢AWK以及命令行上的“for”。

    特别是build立一个我想运行的命令列表,然后一次执行它们。