最牛BのLinux Shell命令(三)


詳細
1.現在マウントされているファイルシステムをより友好的に表示
mount | column -t
このコマンドは任意のファイルシステムに適用され、columnは出力結果をリストフォーマットするために使用されます.ここで最も主要な目的はcolumntの使い方を熟知させることです.
 
以下はmountコマンドのみを使用した結果です.
$ mount
/dev/root on/type ext3 (rw) /proc on/proc type proc (rw) /dev/mapper/lvmraid-home on/home type ext3 (rw,noatime)
column-tコマンドを追加すると、次のようになります.
$ mount | column -t
/dev/root on/type ext3 (rw) /proc on/proc type proc (rw) /dev/mapper/lvmraid-home on/home type ext3 (rw,noatime)
また、出力結果を改善するために列名を付けることができます. $ (echo "DEVICE - PATH - TYPE FLAGS" && mount) | column -t DEVICE – PATH – TYPE FLAGS /dev/root on/type ext3 (rw) /proc on/proc type proc (rw) /dev/mapper/lvmraid-home on/home type ext3 (rw,noatime)
列2と列4は友好的ではありません.awkで再処理してもいいです. $ (echo "DEVICE PATH TYPE FLAGS" && mount | awk '$2=$4="";1') | column -t DEVICE PATH TYPE FLAGS /dev/root/ext3 (rw) /proc/proc proc (rw) /dev/mapper/lvmraid-home/home ext3 (rw,noatime)
最後にnicemountという別名を設定できます $ nicemount() { (echo "DEVICE PATH TYPE FLAGS" && mount | awk '$2=$4="";1') | column -t; } やってみる
$ nicemount
DEVICE PATH TYPE FLAGS /dev/root/ext3 (rw) /proc/proc proc (rw) /dev/mapper/lvmraid-home/home ext3 (rw,noatime)
2.前のShellコマンドを実行し、コマンドラインの各「foo」を「bar」で置き換えます.
!!:gs/foo/bar
!! 前のコマンドを繰り返し実行し、gs/foo/barで置き換えます.
について!この用法は前の文章で詳しく紹介されている.
3.あるディレクトリの下で最新の変更ファイルをリアルタイムで表示する watch -d -n 1 'df; ls -FlAt /path' このコマンドを使用する場合は、/path部分を置き換える必要があります.watchはリアルタイムモニタリングツールです.-dパラメータは変化する領域をハイライト表示します.-n 1パラメータはリフレッシュ間隔が1秒であることを示します.
df; ls-FilAt/pathは2つのコマンドを実行し、dfは出力ディスクの使用状況であり、ls-FilAtは/pathの下のすべてのファイルをリストします.
ls-FilAtのパラメータの詳細:
-Fファイルの後ろにファイルの種類を表す記号を付けます.*/=>@|の種類があります.*は実行可能なファイルを表します./はディレクトリを表します.=はインタフェースを表します.>はドアを表します.@は記号リンクを表します.|はパイプを表します.-l-A表示を一覧表示する.および..-t時間順にファイルをソートする
4.SSHでリモートホスト上のフォルダをマウントする
sshfs name@server:/path/to/folder/path/to/mount/point
このコマンドは、FUSEとsshfsの2つのソフトウェアをインストールする必要があることを前提に、SSHを介してリモートホスト上のファイルシステムをローカルディスクにロードすることができます.
注:sshfsについては、実際には以前に「Ubuntuでsshfsを使用してリモートsshファイルシステムをローカルディスクにマッピングする」という記事を書いたことがあります.
アンインストールするにはfusermountコマンドを使用します.
fusermount -u/path/to/mount/point
5.DNSでWikipediaの語句を読み取る
dig +short txt .wp.dg.cx
これは最も興味深いテクニックかもしれませんが、David LeadbeaterはDNSサーバを作成し、TXTレコードタイプを検索するとWikipediaからの短い単語を返します.これは彼の紹介です.
ここでは、hackerの意味をクエリーするサンプルがあります.
$ dig +short txt hacker.wp.dg.cx
“Hacker may refer to: Hacker (computer security), someone involved in computer security/insecurity, Hacker (programmer subculture), a programmer subculture originating in the US academia in the 1960s, which is nowadays mainly notable for the free software/” “open source movement, Hacker (hobbyist), an enthusiastic home computer hobbyist http://a.vu/w:Hacker “
ここではdigコマンドを使用します.これはDNSをクエリーするための標準的なシステム管理ツールです.+shortパラメータは文字応答のみを返すようにし、txtはクエリーTXTレコードタイプを指定します.
より簡単な方法は、このテクニックの別名を作成することです.
wiki() { dig +short txt $1.wp.dg.cx; }
そしてやってみましょう.
$ wiki hacker
“Hacker may refer to: Hacker (computer security), …”
digを使いたくない場合はhostコマンドを使ってもいいです.
host -t txt hacker.wp.dg.cx
6.Wgetの再帰的な方法でサイト全体をダウンロードするwget --random-wait -r -p -e robots=off -U Mozilla www.example.com パラメータの説明:
--random-waitは0.5~1.5秒待ちで次の要求-r再帰検索-e robots=off無視robotsを開く.txt-U Mozilla設定User-AgentヘッダはMozilla
その他の有用なパラメータ:
--limit-rate=20 K制限ダウンロード速度20 K-o logfile.txtレコードダウンロードログ-l 0削除深さ(デフォルトは5)-wait=1 hファイルをダウンロードするたびに1時間待つ
7.最後に使用したコマンドのパラメータのコピー
ALT + . (or ESC + .)
このショートカットキーはshellのemacs編集モードでのみ動作します.最後に使用したコマンドラインから現在のコマンドラインにパラメータをコピーできます.次はサンプルです.
$ echo a b c a b c
$ echo $ echo c
ショートカットキーを繰り返して、必要なパラメータを取得できます.
次に例を示します.
$ echo 1 2 3 1 2 3 $ echo a b c a b c
$ echo $ echo c
$ echo again $ echo 3
また、1番目または2番目、またはn番目のパラメータを指定したい場合は、ALT+1(またはESC+1)またはALT+2(またはESC+2)のような形式のショートカットキーを押すことができます.
次に例を示します.
$ echo a b c a b c
$ echo $ echo a a
$ echo $ echo b b
「Emacs Editing Mode Keyboard Shortcuts」を参照して、類似のショートカットキーを追加します.
8.historyに保存されないコマンドを実行
command
このコマンドは最新のBash shellで実行できますが、他のshellではテストされていません.
コマンドラインの前にスペースを追加することで、このコマンドがbash history(~/.bash_history)ファイルに保存されるのを阻止できます.この動作は$HISTIGNORE shell変数で制御できます.私の設定はHISTIGNORE="&:[]*"で、重複するコマンドをhistoryに保存せず、スペースで始まるコマンドラインを保存しないことを示しています.$HISTIGNOREの値はコロンで区切られています.
これに興味があるなら、もっと詳しく知りたいなら、この文「The Definitive Guide to Bash Command Line History」を見てください.
9.現在のディレクトリ内のすべてのサブディレクトリのサイズを表示 du -h --max-depth=1--max-depth=1パラメータはduコマンドに現在のディレクトリの下の1級サブディレクトリの統計情報を表示させることができます.もちろん、1を2に変更して、2級サブディレクトリの統計情報をさらに表示して、柔軟に運用することができます.−hパラメータはMb,Gのような単位でサイズを表示する.
ここでは、この効果をより容易に達成するための小さなツールncduをお勧めします.
10.メモリ消費量が最も多い10の実行中のプロセスを表示し、メモリ使用量でソート
ps aux | sort -nk +4 | tail
明らかにこれは最善の方法ではありませんが、確かに使ってもいいです.
これは典型的なパイプアプリケーションで、ps auxでsortコマンドに出力し、sortソートで4つのバーをリストし、さらにtailコマンドに移動し、最終的に10行の出力でメモリ使用量が最も多いプロセスを表示します.
どのプロセスが大量のメモリを使用しているかを発見するには、psではなくhttpまたはtopを使用します.
追加:pythonでSMTPサービスを迅速に開始
python -m smtpd -n -c DebuggingServer localhost:1025
これはPython標準ライブラリsmtpd(-m smtpdで指定)で実現された簡易SMTPサービスで、1025ポートで実行される.
他の3つのパラメータの説明:
-nパラメータはPythonにsetuid(ユーザーを変更)を「nobody」にしないようにします.つまり、直接あなたのアカウントで-c DebuggingServerパラメータを実行するのは、Pythonの実行時に画面にデバッグおよび実行情報を出力させることです.localhost:1025パラメータは、Pythonがローカルの1025ポートでSMTPサービスを開始することです.
また、標準の25のポートでプログラムを実行したい場合は、rootのみが1-1024ポートでサービスを開始できるため、sudoコマンドを使用する必要があります.次のようになります.
sudo python -m smtpd -n -c DebuggingServer localhost:25