Unix管理者がいなければ生きられないツール[非公開]


33

UnixまたはUnixライクなサーバーを管理した後、あなたはどのツール(コマンドラインが望ましい)なしでは生きていけないと思いますか?

回答:



34

私なしでは生きられないことを知っている人もいます...

  • tee-STDOUT(標準出力)とファイルへの同時書き込みを許可します。情報を表示し、後で記録するのに最適です。

  • top-UNIXのタスクマネージャーは、システムの優れた概要を提供します。

  • tail -f-ファイルが大きくなるにつれて追加されたデータを表示できます。サーバー上のログファイルの監視に最適です。

  • grep-グローバル正規表現印刷。ファイル内のデータをシステムで検索するのに最適です。

  • df-現在のファイルシステムのディスク使用量を報告します。

  • du-特定のファイル/ディレクトリのディスク使用量を報告します。

  • 少ない-マニュアルページを表示するために必要です!また、簡単にシーク可能な方法でコマンドの出力を表示するのにも役立ちます。

  • vim / Emacs / nano / pico / ed-選択したテキストエディタが何であれ、それが必要な理由を自明します。


知らない人にとっては、「少ない」は「もっと」の更新版です。ファイルを前方にしか移動できないのに対して、後方にスクロールすることはできないため、より多くの制限がありました。ああユーモア... :
イアンホルダー

8
lessのもう1つの便利だがあまり知られていない機能は、「v」コマンドを使用して、現在表示しているファイルの編集をいつでも開始できることです。ニーモニックは「vi」の「v」です。
dr-jan

あなたが好きではない場合やmore、またはless、あなたは常に試すことができますmost
drybjed 2009年

私の好みのPAGERは、実際にはw3mです。lessのすべての機能を備えており、テキストモードのWebブラウザーとしても使用できます:-)また、bash関数を使用して読み取り専用モードでvimを使用しました(このように、たとえば色の付いた差分を取得します)。bash関数は、 '-'(stdinの読み取り用)を提供するかどうか(ファイルをページングする場合)を決定するためにのみ使用されます。nroffのは、重ね書きませmanページを除いて、魔法のように動作し、...
njsf

1
htopはの「より良い」バージョンですtop
アレクサンダーバード

26

lsofは、どのプロセスがファイルまたはディレクトリを使用しているかを判断します(デバイスのアンマウントを妨げている原因を突き止めるときに役立ちます)

ネットワーク接続を使用しているプロセスを特定するnetstat(特定のポートにバインドされているデーモンを特定するときに特に役立ちます)


1
lsofがあれば、netstatは必要ありません。lsof -iを使用する
vartec 2009

lsof -nは私のお気に入りの呼び出しです。パイプをgrepにパイプして、それを減らします
マットシモンズ

19

すべての基本的なツールを学びますが、Perlを学びます。

Perlはテキストの操作に理想的であり、un * x演算子はテキストファイル、パイプ、入力および出力に存在するため、Perlは最適です。

追加されたボーナスは、Perlはクロスプラットフォームであり、Windowsボックスで何らかの作業を行う必要がある場合は、簡単にインストール可能な(サーバーにPerlディレクトリをドロップするだけ)言語が既にあることです。

そして、その一連の思考で、Cygwinも入手してください。あなたがun * x管理者であり、ls、rm、grep、sed、tailなどを備えたWindowsボックス(デスクトップを含む)で作業する必要がある場合、OSの切り替え時に多くの時間を節約できます。


18
  • sed
  • awk

忘れられた現代システムのスクリプト作成の祖父。Perlは(Bashスクリプト、Python、Ruby、および[お気に入りのスクリプト言語をここに挿入]とともに)愛情のほとんどを得ることがわかっています。誤解しないでください、私はPerlが大好きです。私はほとんど毎日それを利用しています。

ただし、sedとawkを忘れたり、見落としたり、無視したりしないでください。多くの場合、sedとawkはこの仕事に最適なツールです。簡単な例は、sedを使用したコマンドラインフィルタリング、awkを使用した迅速でダーティなログ処理です。どちらもPerlで実行できますが、より多くの作業と開発時間が必要になります。


13

rsync、特にsshとの連携。ホスト間でファイルを簡単かつ効率的にコピーできます。sshとrsyncなしでどのように対処しましたか?:-)


12

Netcat。

  • TCPサービスがリッスンしているかどうかをテストします。
  • SMTPなどのプレーンテキストプロトコルに対してトランザクションを実行します。
  • マシン間での迅速で安全でないデータ転送。
  • Telnetクライアントエミュレーション。

彼らが言うように、ネットワークはスイスアーミーナイフです。


最近、netcatの代わりとしてsocatを使い始めました。それが提供する多くのオプションに驚いています。恐ろしい量のスイッチと奇妙な構文にもかかわらず、チェックアウトする価値があります。
マーチン

12

それに直面する-遅かれ早かれ、あなたもネットワークに対処します。mtrtcpdump、およびtsharkは、何が起こっているかを確認するのに非常に役立ちます。


9

クイックスクリプト、自動化など:

  • バッシュ
  • perl

* NIXサーバーに接続するには:

  • Open SSH(Linuxクライアント)
  • Putty(Windowsクライアント)

+1のために...まあ、特にPerl以外はすべて。* nix、WindowsまたはMac、これなしで何をするか想像できません。
ジョンガーデニアーズ

9

私はすでにリストされているツールのほとんどを使用しますが、誰もまだ触れていないものがあります:

Puppet-システム管理タスクを自動化するシステム



6

標準のもののほとんどは他の回答に含まれているので、非標準のものに行きます。

  • htop —プロセス管理に最適。
  • pinfo — lynxのようなブラウザーの情報およびmanページ。

6

まだ見たことのない便利なツールがいくつかあります:

  • dstat --nocolor(cpu-、disk-、net-usageの概要)
  • iftop(ネットワークトラフィックの素晴らしい動的な概要)
  • ccze(ログファイルをきれいに色付けする
  • sshトンネル(たまに役立つことがあります。マニュアルを参照してください; -R)
  • 期待します(インタラクティブでおしゃべりな対話型インターフェイスを自動化します。ピンチしている場合は便利です)

+1 "tail -f <file> | ccze" =ログファイルのすばらしい読み取り方法。


dstatの場合は+1。vmstat、iostatなどの代替品として最適です。
クリストファーキャシェル

5

ClusterSSH

ClusterSSHは、単一のグラフィカルコンソールウィンドウを介して複数のxtermウィンドウを制御し、ssh接続を介して複数のサーバーでコマンドを対話的に実行できるようにします。


...そしてClusterSSHはPerlで書かれているため、おそらくPerlを学ぶ必要があります。
ブラッドギルバート

ClusterSSHとGNU画面の違いは何ですか?または、同じ概念の異なる実装ですか?
アレクサンダーバード


4

pv:リダイレクト可能な長い操作の進行状況を表示します。http://www.ivarch.com/programs/pv.shtml

便利なのは、ネットワーク経由で生のブロックデバイスをコピー/圧縮するなど、古くなるものを監視することです(これは、ファイルシステム設定を微調整するなどの主要なことをいじる前に、8Gbネットブックの妄想バックアップをとる方法です)。

また、上記の人々が言及したように、ssh、rsync、screen、htop、netcatに2回投票します-これらはすべてpvよりも重要ですが、pvはまだ言及されていませんでした。実際、pvは、netcatとやり取りするときに便利な追加機能です。


pv便利なツールになりますが、使いすぎに注意してください。データを通過させると、パフォーマンスに絶対的な影響があります(すべてのデータは別のプログラムを通過する必要があります)。私の最後の仕事では、多くのログ処理を行いました。そのうちの1人が、すべてのログ処理スクリプトにpvを追加することを決定しましたが、それが処理時間の約15%を追加することがわかりました。現在では、数分未満のジョブ、または既存のリソース制限がある(低速のネットワーク接続を通過するなど)ジョブにのみ使用されます。
クリストファーキャシェル

良い点クリストファー、私はそれが15%ほどのパフォーマンス変化を引き起こすのを見たことがありませんでした(そして再び、私が使用するもののほとんどはpvCPU /メモリバウンドではなくディスクまたはネットワークI / Oバウンドです)。同じ議論は、過度の使用に対する重要なものでcatもあります(実際に必要ではないときにcatを使用して、物事を左から右にうまく読みますが、パイプとコンテキスト切り替えを介した余分なメモリ内データのコピーには、測定可能なパフォーマンスへの影響)。
デビッドスピレット

ええ、私は同じことをします。私の過剰なcat使用のほとんどは、で始まりcat foo、「上」矢印を押して| [command]から前の行に追加することから始まります。私は猫をそこに留めることで(小さな)パフォーマンスの打撃を受けていることを知っていますが、それを残すことはコマンドを書き直す/再入力するよりも少ない労力で済みます[command] < foo。(ほとんどの)アドホックなコマンドラインの作業には関心がありませんが、スクリプトには理想的ではありません(pv私が思うに、私はそう思います)。
クリストファーキャシェル



3

まだ言及されていないもの:

  • 頭/尾
  • diff
  • pstree
  • タール
  • gzip / bzip
  • 時計

+1 pstreeはとても甘いです。

3

タールパイプ!

tarの出力を別のユーティリティ、同じボックスで実行されているtar、またはSSHで実行されているtarにパイプすることは、ファイルをある場所から別の場所に移動するための私のお気に入りの古いUnixの動きです。

これにより、1つのフォルダーを別のフォルダーにコピーして、ソースおよび宛先ディレクトリー内のすべてのファイルを作成するWindowsスタイルのオプションも提供されます。




3

これらのツールのほとんどは、Bashの「プログラム可能な補完」を使用してより強力になります。そのため、コマンドラインオプションなどのタブ補完や、「apt-get install」でパッケージ名を言うことができます。また、関連ファイルのタブ補完を制限します。たとえば、「unzip」はサポートされているアーカイブファイルのみを補完します。

それは本当にmuttsです-あなたがそれを試したことがないなら、おそらくあなたの.bashrcをいじる必要があるでしょう:

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

確かにこれはUbuntuとDebianに当てはまります。一部のLinuxディストリビューションでパッケージを取得する必要がある場合があります。



2

私が言及したかったいくつかのことを見落としていました。

  • vim -d分割画面コンソールdiff。ファイルの違いを非常に簡単に確認できます。
  • pdshを使用すると、シリアルまたはパラレルのいずれかで必要な数のシステムでコマンドを簡単に実行できます(私はクラスター管理者です。これなしでは機能できません)。
  • nmonは亀裂の上部のようなものです。これにより、システム上で何が起こっているのかを1つの画面で把握できます。ディスクI / O、ネットワークI / O CPU使用率、およびメモリ使用率をリアルタイムで確認できます。少なくとも、システムをプロファイリングする際に遊ぶのは本当に楽しいことです。

ああ、私が言及するのを忘れたのは、スクリプトを作成するとき、Kornを常に使用すべきだと思うからです。私はコーンが嫌いです(バンドではありません。バンドが大好きです:-P)、それは文字通りどこにでもあります。スクリプトを取得して、Solaris、AIX、Linux間で移動することができ、管理者がBashをインストールするのに十分であるかどうかを心配する必要はありません。


2

時には非常に便利なツールの1つがnohupです。リモートSSHクライアントを使用して長時間続くスクリプトを実行するために使用します。


2

man-manページを読む。

elinks-グーグルをチェックするために、地獄がすべてを覚えていないので私は確信しています。

そして、細部と粘り強さに注意を払っています。なぜなら、それらがなければ私はただ時間を無駄にしているからです。


細部への注意と粘り強さのために+1
cop1152

2

特に良い.screenrcファイルでは、screenは必須です。どのウィンドウにいるかを視覚的に表示するように構成し、Ctrlキーを押しながら矢印キーを使用してウィンドウ間を移動できます。単一のsshセッションと複数のシェルの場合、これは命の恩人です。



2

AWKとコマンドラインの "for"が大好きです。

特に、実行したいコマンドのリストを作成して、それらを一度に実行します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.