web-dev-qa-db-ja.com

Linuxの隠された機能

PowerShellの隠し機能 の精神に倣い、Stack Overflowでさまざまなことを行っていますが、作業に不可欠なLinuxコマンドまたはコマンドの組み合わせは何ですか?

こちらもご覧ください:
MySQLの隠し機能
PowerShellの隠し機能
Oracleデータベースの非表示機能
Windows 2008の隠し機能
Solaris/OpenSolarisの隠し機能
SQL Serverの隠し機能
IIS(6.0/7.0))の非表示機能

64
Chris Bunch

ボールを動かすために、私は screen が不可欠であると思います:

Screenが呼び出されると、シェル(または指定されたコマンド)が含まれた単一のウィンドウが作成され、通常どおりプログラムを使用できるように邪魔になります。その後、いつでも、他のプログラムを含む新しい(フルスクリーン)ウィンドウ(シェルを含む)を作成したり、現在のウィンドウを強制終了したり、アクティブなウィンドウのリストを表示したり、出力ログのオン/オフを切り替えたり、テキストをコピーしたりできますウィンドウ、スクロールバック履歴の表示、ウィンドウ間の切り替えなど。すべてのウィンドウは、互いに完全に独立してプログラムを実行します。プログラムは、ウィンドウが現在表示されていない場合や、スクリーンセッション全体がユーザーのターミナルから切り離されている場合でも、引き続き実行されます。

52
Chris Bunch

多分私はこれらを毎日使用しませんが、私は頻繁に使用します:

  • strace プロセスによってロードされるファイルを確認します。
  • htop より良いトップ。
  • mtr ping + tracerouteの組み合わせ
  • lynx / links / w3m コンソールの閲覧が必要な場合
  • ettercap 優れたネットワークスニファ(wiresharkよりも好む)
  • スクリプトbash すべての* nix管理者はこれを知っている必要があります。
  • プログラミング言語。より複雑なものについては、bashスクリプトから離れて、python/Perl/Ruby/tcl/...などを使用してください(私はLISPを使用しています)。
  • ミッドナイトコマンダー は、ノートンコマンダーが好きな人に最適です。
  • irssi IRCで何か質問したいときはいつでもわかりません。
  • wget / curl コマンドラインからデータをダウンロードします。
  • scp sshにデータをコピー
  • lftp / ncftp 良い(スクリプト可能な)コンソールFTPクライアント。
  • iotop ディスクに負荷をかけているものを確認します
  • nmap 良いポートスキャナー
45
Gert M

「-X」パラメータを使用して、SSH経由でリモートGUIアプリケーションを実行できることに驚いた。例えば:

# on my machine
$ ssh -X linuxserver
# on remote machine
$ gedit /etc/my.cnf &

ローカルマシンにgeditウィンドウが表示され、サーバー上の「my.cnf」ファイルが編集されます。

これが機能するのは、クライアントマシンにX環境がある場合のみです。つまり、Windowsでは機能しません。しかし、それは私のMacでうまく機能します!

33
Matt Solnit

lsofはしばしば無視されるため、非常に便利なツールです。 lsofを使用すると、システム上で開いているすべてのファイルのリスト、誰が/何を使用しているかなどを表示できます。

例えば:

root@tower:~ # umount /mnt/hardy
umount: /mnt/hardy: device is busy
umount: /mnt/hardy: device is busy
root@tower:~ # lsof | grep /mnt/hardy
bash       5966       root  cwd       DIR      253,2     1024          2 /mnt/hardy
root@tower:~ #

これで、別のターミナルのシェルにログインしていることがわかります。/mnt/hardyが現在の作業ディレクトリです。だから私はそのシェルを殺すか、他のターミナルに行ってそのディレクトリから出てアンマウントすることができます。

これは実に取るに足らない例であり、時折発生する「ボット」の侵入をクリーンアップするのにも非常に便利です。オプションは豊富です。詳細については、man lsofを参照してください。

33
Tim Post

あなたがいた最後のディレクトリに変更するには:

cd -
31
dkaylor

システムが停止した後も、ネットワークスタックを実行したままにすることができます。これが2.6.xシリーズのカーネルで最新であるかどうかはわかりませんが、古いバージョンでは、ファイアウォール/ルーティングを構成してから、システムを停止できますシャットダウンなしで、ネットワークのみを残しますスタック実行中。これにより、「ハッキングできない」安価な(静的な)ファイアウォールを作成できます。なぜなら、プログラムやサービスがなく、ネットワークのスタック部分だけなので、toハッキングがないからです。カーネルがパケットをやり取りしています...

26
Avery Payne

私は "locate"が好きです-危険な "find。-name xxxx -print"よりもはるかに簡単にファイルを検索できます。最新のファイルインデックスに対しては、updatedbコマンドを使用する必要があることに注意してください。詳細については、manページを参照してください。

24
gareth_bowles

「ngrep」は、tcpdumpファイルをあちこち探し回ることなく、リモートサーバーのネットワークコードをデバッグするのに非常に便利です。

ngrep -d any -W byline port 80

たとえば、HTTP要求と応答のライブが表示されます。

私が頻繁に役立つ他の1つは、straceへの「-e」スイッチです。

strace -p <pid> -e trace=open

指定されたpidのすべてのopen()システムコールを表示し、

strace -p <pid> -e trace=\!rt_sigprocmask

rt_sigprocmask()へのすべての呼び出しを出力から除外します(Rothreadコードのデバッグに役立ちます。これは、pthreadを使用するように構築されている場合、これらの呼び出しの多くを行うようです)。

19
Jon Topper
apropos

説明各マニュアルページには、短い説明が含まれています。 aproposは、キーワードのインスタンスの説明を検索します。

gyaresu@debian:~/bin$ apropos ettercap
etter.conf (5)       - Ettercap configuration file
ettercap (8)         - (unknown subject)
ettercap_curses (8)  - (unknown subject)
ettercap_plugins (8) - (unknown subject)
17
Gareth

ありがたいことに、私は数回しか必要としませんでしたが、 Magic SysRq key は、私のお気に入りの隠し機能の1つです。

Alt + SysRq + RSEIUB

15
gharper
NAME
 units -- conversion program

DESCRIPTION
 The units program converts quantities expressed in various scales to their 
equivalents in other scales.  The units program can only handle multiplicative
scale changes.  It cannot convert Celsius to Fahrenheit, for example.
It works interactively by prompting the user for input:

     You have: meters
     You want: feet
             * 3.2808399
             / 0.3048

     You have: cm^3
     You want: gallons
             * 0.00026417205
             / 3785.4118

     You have: meters/s
     You want: furlongs/fortnight
             * 6012.8848
             / 0.00016630952

     You have: 1|2 inch
     You want: cm
             * 1.27
             / 0.78740157
13
Gareth

それは実際にはそれほど隠されているわけではありませんが、経験のない人にとってはそうかもしれませんが、リストを指定してbashで次のように展開できるようにしたいです。

cp arq{,.bak}

これはタイピングと同じです

cp arq arq.bak

履歴のショートカットも使用します(これは正しい用語だとは思いませんが...)のように

!! 

最後のコマンドを繰り返す、または

^foo^bar 

最後のコマンドでfooをbarに置き換える

12
Flávio Amieiro

sshキーを転送するためのssh-copy-id。古い方法はsshでキーをcatすることでしたが、さらに古い方法は、scpを実行してからキーをcatすることでした。非標準のsshポートを使用している場合は、これでうまくいきます。

ssh-copy-id -i/path/to/key '-p nonstandardport hostname'

さもないと..

ssh-copy-id -i/path/to/keyホスト名

12
bobbyrcox

仮想コンソール。ほとんどの人は(Ctrl-)Alt-F1を使用して最初のコンソールなどにアクセスする方法を知っていますが、12以上の場合はどうなりますか? Alt-LeftおよびAlt-Rightを使用して、残りの部分を順番に切り替えることができます。 :-D

11

私はdebian-goodiesパッケージが好きです:

説明:Debianシステム用の小さなツールボックススタイルのユーティリティ
これらのプログラムは、標準のシェルツールと統合するように設計されており、
 Debianパッケージシステムで動作するように拡張されています。
。
 dgrep-指定されたパッケージ内のすべてのファイルで正規表現を検索します
 dglob-パターンに一致するパッケージ名のリストを生成します
。
これらは有用であるため、含まれています正当化しないでください
独自のパッケージ:
。
 debget-APTのデータベースにあるパッケージの.debをフェッチします
 dpigs-インストールされているパッケージのうち、どのパッケージがほとんどのスペース
 debman-抽出せずにバイナリ.debから簡単にmanページを表示します
 debmany-インストールまたはアンインストールされたパッケージのmanページを選択します
アップグレードされたファイルの古いバージョン
(ライブラリなど)
 popbugs-カスタマイズされたリリースクリティカルバグを表示します使用する
パッケージに基づくリスト(人気コンテストデータを使用)

そして、基本的にホイールの素晴らしいパイプツールであるmoreutils:

説明:追加のUNIXユーティリティ
これは、誰もが30年前に書いたとは考えていなかった
 UNIXツールのコレクションの増加です。
。
だからこれまでのところ、次のユーティリティが含まれています。
-スポンジ:標準入力を吸収してファイルに書き込みます。
-ifdata:ifconfig出力を解析せずにネットワークインターフェイス情報を取得します
-ifne:run標準入力が空でない場合のプログラム
-vidir:テキストエディターでディレクトリを編集
-vipe:パイプにテキストエディターを挿入
-ts:タイムスタンプ標準入力
-結合:ブール演算を使用して2つのファイルの行を結合します
-pee:パイプへのtee標準入力
-zrun:コマンドへの引数を自動的に解凍します
-ミスパイプ:2つのコマンドをパイプし、最初の終了ステータスを返します。
-isutf8:ファイルまたは標準入力がutf-8かどうかを確認します
-lckdo:ロックを保持したままプログラムを実行します
ホームページ:http://kitenet.net/~joey/code/moreut ils /
11
jldugger

おそらく、Windowsとは対照的に、Linuxの優れた機能の1つは、設計上、隠された機能がほとんどないことです。ドキュメント化されていない機能がコミュニティについて知るのに十分重要である場合、うまくいけばうまくいきます。

8
Cawflands

私が仕事で毎日使用する優れた「機能」:SSHをポート443でリッスンして、仕事用ファイアウォールをバイパスするトンネルを作成し、SSH経由でインターネットに面したLinuxサーバーにトンネルされたローカルSOCKSプロキシを実行できるようにする機能。

企業ファイアウォールを完全に無視できます。

8
WerkkreW

私は、システムに不慣れな人を支援するために「男はもっと」をいつも好きでした。

8
Matt Simmons

以下は、私が定期的に使用したものです。

  • sar-システムアクティビティを表示します
  • vmstat-仮想メモリの統計
  • iostat-io統計
  • pkill-pgrepに似ていますが、返されたプロセスIDを強制終了できます
  • xargs -I<string>-文字列をパイプデータで置き換えることができます。
  • at-タスクをスケジュールします
  • tkdiff-グラフィカルdiffユーティリティ

これらはおそらく「非表示」ではありませんが、非常に便利です。

  • df -hk-人間が読める形式でディスクの使用状況を表示します
  • ls -ltr-ファイルを日付順に並べ替え
  • while :; do...done-(Bash)watchの代わりに使用できない場合
  • Perl -e-コマンドラインでPerlスニペットを実行します
  • free -kt-メモリ情報を表示します(合計キロバイト)
7
bedwyr

この記事 から始めて、Linuxのすばらしいトリックをいくつか紹介します。私のお気に入りはpstreeです。これは、プロセスをツリー形式で表示するため、どのプロセスがどのプロセスを生成したかを確認できます。

curlは、wgetを使用するほとんどすべての場合に、wgetの地獄を打ち負かします。

zgrepとzlessはgzipで圧縮されたログファイルを検索するのに最適なので、gunzipを介してそれらをパイプ処理したり、/ var/logに圧縮されていないものを残したりする必要はありません。

6
Magus

ESC.

前の行の最後のパラメータを現在のプロンプトに「貼り付け」ます

例えば.

ls -l /home/someuser/somedir/somefile

に続く

rm ESC.

に翻訳する

rm /home/someuser/somedir/somefile
6
Bryan

コンセプトはLinuxのすべてがファイルです。

すべての構成はテキストファイルにあり、Linuxのすべてはファイルとして扱われます。これは、Linuxでの変更が非常に簡単になる、はるかに単純なアプローチです。 Linuxでは、ファイルシステム自体もファイルとして表示できます。

5
ecleel

私はyesコマンドをとてもよく見ています:

yes | do_you_agree

Manページから:

NAME
       yes - output a string repeatedly until killed

SYNOPSIS
       yes [STRING]...
       yes OPTION
5
FerranB

オープンソースです。わざわざ目を向ければ、何も「隠されている」ことはありません。

4
Paul Tomblin

非表示の機能は、非表示の機能がないことです。システムはあなたが完全にアクセスできる途方もない量のパワーを提供します。あなたはそれのすべての部分とあなたの指先で何の力があるかを知るために利用可能なすべてのツールを理解する必要があります。

/ bin、/ sbin、/ usr/bin、/ usr/sbinのすべてのコマンド、および/ procのすべての仮想ファイルを理解することから始めます。必要に応じて、マンページ、その他のドキュメント、およびソースを読みます。

Manページを読んだり、ソースを読んだりするのが苦手な場合は、それが隠し機能です。

4
carlito

grepawkおよびsed

トップ

3
Brent

今日これを見つけました:

dmidecode
SMBIOS/DMI標準に従ってシステムBIOSに記述されている、システムのハードウェアに関する情報を報告します。この情報には通常、システムの製造元、モデル名、シリアル番号、BIOSバージョン、資産タグ、および製造元に応じてさまざまなレベルの関心と信頼性に関するその他の多くの詳細が含まれます。これには、CPUソケット、拡張スロット(AGP、PCI、ISAなど)とメモリモジュールスロットの使用状況、およびI/Oポートのリスト(シリアル、パラレル、USBなど)が含まれることがよくあります。

間違いなく、コロコロ施設のsomerandomserver27に関する質問への回答がはるかに簡単になります!

3
gharper

本当はLinuxのことではなく、Bashのことよりも:プロセスの置換、

diff some_local_file <(ssh somehost "cat some_remote_file")

これは、SSH経由で取得したローカルファイルとリモートファイルを1行で比較します。

3
Rog
  • od-ファイルを8進数およびその他の形式でダンプします。たとえば、ファイルの先頭にBOMのがらくたがあるかどうかを確認するのに役立ちます
  • file-指定されたファイルのファイルタイプは何ですか?
  • lshwlsusblspci-ハードウェアのリスト
  • tracepath-ここでMTUの問題に対処していますか?
  • netwox200以上のネットワーク関連ツールを含む
  • ip-ネットワーク構成/情報用
  • sysctl-ファイルシステム/ネットワーク/カーネル情報
  • ebtables-ブリッジのiptables
  • vconfig-VLAN構成
  • brctl-ブリッジ構成
  • socat-ステロイドのnetcat
  • ipgrab-詳細なヘッダー情報を出力するtcpdumpのようなユーティリティ
  • Dig-DNSサーバーの状況を教えてください。
3
raspi

teeは素晴らしいです。画面への出力and logfile?小切手。

3
nwahmaet

history-最後に使用したコマンドを表示します
!<number>-historyでその番号のコマンドを実行します

3
Esa Varemo

loggerを使用すると、シェルプロンプトまたはスクリプトからsyslogにメッセージを書き込むことができます。

logger "See? There! It happened again!"

<blah> -exec <blah> {}を見つける\;

例えば。:

見つける。 -iname * 20080 [123456] .log -a! -iname * .bz2 -exec bzip2\{\} \;

2
Jason Tan

bashの履歴-私は通常10個ほどのxtermを実行しています。これが私のプロフィールの関連部分です:

# Make history ignore dups, ls, and exit
export HISTIGNORE="&:ls:[bf]g:exit"

# Save 100000 history comamnds
export HISTSIZE=10000

# Make each terminal use a separate history file
HISTDIR=${HOME}/.history
SHELLID=$(tty | sed 's!/!.!g')
HISTFILE=${HISTDIR}/history${SHELLID}

touch ${HISTFILE}

# load last histfile as current history
history -r $(/bin/ls ${HISTDIR}/history${SHELLID} | /usr/bin/tail -n 1)

コマンドを検索する必要がある場合は、履歴ディレクトリをgrepするだけです。

aespipe-標準入力から読み取り、標準出力に書き込みます。暗号化されたtarまたはcpioアーカイブを作成および復元するために使用できます。

2
aultl

通常、人々はXを使用してデスクトップシステムを実行します。ただし、通常、実際のテキストモードターミナルにアクセスできます。これらは仮想コンソールと呼ばれます。その後、通常はログインしてコマンドラインなどを使用できます。

ちょうどヒット CtrlAltF1、 CtrlAltF2など。Xサーバーは通常、 CtrlAltF7

もちろん、これは配布と構成に依存します。

また、Xサーバーを強制終了するこのコマンドが役立つ場合があります。 CtrlAltBackspace

これらのキーの組み合わせは、少なくともi86 PCで機能します。

2
Juha Syrjälä

Stack Overflowで作成した投稿: 現在のサブディレクトリのみを一覧表示する方法

ls -d */

それは簡単なトリックですが、それを見つけるのにどれだけの時間が必要だったかはわかりません。

2
edomaur

私が自分の無知を表示しているだけなのかどうかはわかりませんが、ログインしているユーザーを確認するための「最後の」コマンドについて知りました。これは非常に便利です。

別の良いプログラムは「期待」です。 ssh/telnetログインなど、プログラムへの入力を強制するものを自動化するのが非常に簡単になります。

2
bowman

POSIX機能とファイルPOSIX機能

http://www.friedhoff.org/posixfilecaps.html

1
h0tw1r3

Linux(/ Unix)を初めて使用するユーザーが見落としている、または見落としがちな「非表示」機能の場合。

  • man man
  • man -k <blah>またはapropos <blah>

「非表示」機能

1
mctylr

SSHの力と柔軟性は私を驚かせ続けることは決してありません。また、何か(フロッピーなど)からRAIDアレイを作成する機能、利用可能なすべてのファイルシステム、LVM、暗号化ツール、無数のコンパイラー、インタープリター、言語を使用して独自のツールを作成する可能性などの優れた機能。 。ああ、apt-getなどで新しいものをインストールすることを忘れないでください。

それは窓よりもとても素晴らしいです。

1
Quazatron

fgrep

例えばfgrep -r * --include = *。rb

現在のディレクトリからRubyソースファイルを検索して、dir構造をウォークします

見つけるよりもはるかに使いやすいです

1
Jeff Leonard

Whereisとwhichコマンドが便利だと思います。同じ名前の同じアプリケーションの代替バージョンがあり、それらの特定のバージョンを使用したい場合は、これらを使用してください。

1
Dana the Sane

NXは、screenとssh -Xのいくつかの利点を巧妙な圧縮と組み合わせています。これで、モデム接続を介してリモートでgnumericを実行し、接続が停止したときに再開できます。

1
Nick Russo

私の上位5つの「非表示」機能(うまくいけば、これらはまだここにありません)

  1. cd -試してみてください:)
  2. 名前付きパイプは十分に使用されておらず、本当にクールなものをいくつか使用できます
  3. システムタップ。ただし、私はそれが得意ではありませんが、適切なユーザーに信じられないほどのパワーを発揮するカーネルを知る必要があります。
  4. リストをsortに、次にuniq -cに、次にsort -nにパイプ処理することの組み合わせは、驚くほどうまくいく可能性があります。これを使用して、Apacheログファイルまたはps -oからのメモリ消費からトップトーカーを排除できます。
  5. proc/sysインターフェース/ファイルシステム。リアルタイムで調整/表示できるほどたくさんあります。 catまたはgrepのステートメントをwatch -d -n 0.1でラップすると、非常に便利です。

注目すべきはddnetcatscreentcpdumpおよびfindですが、ほとんどはすでに言及されています。

1
d34dh0r53
lsof -i - list all opened socket
htop - like top, but with more eye candy
rdiff-backup - for incremental backup
mc - midnight commander 
ethstatus - ethernet statistics
netstat, nmap
iftop - display bandwidth usage on an interface by Host
1
miHost

dd-ファイルを変換してコピーする

私はこれを非常に頻繁に使用して、バックアップが必要なDVDまたはHDDパーティションのコピーを作成します。

dd if=/dev/sda2 of=/tmp/copy_of_sda2

非常に便利で構成可能です。manページをご覧ください。

1
cb0
scp

私はWeb開発者であり、開発のセットアップでは、常にファイルを開発サーバーにプッシュする必要があります。これを処理するために、scpの周りに簡単なラッパーを書きました。

1
baudtack

私はこれらのコマンドなしでは何もできません

  • ps -fA(実行中のすべてのプログラムを一覧表示します
  • lsof(プロセスごとの開いているファイルのリスト)
  • プッシュ。 (現在のディレクトリをディレクトリスタックにプッシュします)
  • popd。 (ディレクトリスタックから現在のディレクトリをポップ)
  • ローカルアカウントのホームディレクトリ〜/〜usernameなどのユーザーディレクトリにもアクセスできます。
  • 再度ログインせずに変更を加えたら、現在のbashプロファイルを置き換えます。 "。〜/ .bashrc
  • grep -inR(再帰的grep、i =大文字と小文字を区別しない、n =数字のように表示する、R =再帰的)
0
Matt
  • man(ほとんどのコマンドでヘルプを提供します)
  • 少ない(まともな閲覧可能な表示)
  • tail -f(ファイルの拡大に応じてファイルの追加データを表示)
  • 監視(プログラムを実行し、その出力を定期的に全画面表示します)
0
Wayne Koorts

ctrl + r:指定した文字で最後のコマンドの履歴を検索します

0
Prozaker

どれどれ ...

  • /root/.bash_profileでbashカラーコードを使用して、ルートbashプロンプトを非root標準ユーザープロンプトとは異なる色にしています。システム全体を破壊することから私がたった1つのコマンドであることを思い出させてください。 ;)

  • 私は物事をテストするためにnc(netcat)をたくさん使います。汎用性の高い素敵なユーティリティ。

  • 長い間、chownがユーザー名とグループ名の両方を引数として受け入れることができることを知りませんでした:chown user:group -R /some/directory。この事実により、多くのタイピングを節約できました(chown/chgrpのペアは不要)。

  • Dfコマンドは、マウントされているすべてのファイルシステムを表示するための簡単なショートカットです。

  • スクリプトでpgrepを頻繁に使用して、プロセスが実行されているかどうかを確認しています。

  • kexecはかなりすっきりしており、BIOSを経由せずに再起動できるため、再起動時間が大幅に短縮されます。ただし、あまり再起動しないでください...

0
ultrasawblade

私にとって最大の特徴は、実際には「隠されている」ものは何もないということです。ドキュメントやコードを読むのが面倒だとしたら、すべてが目の前にあります。

0
vwegert

findは私の最大のツールです。私はそれを使用して物を見つけ、見つかったファイルまたはディレクトリに対してコマンドを実行します。

sshがなければ、システムは完成しません。

0
Felipe Alvarez

端末セッションを保存するためにscript(1)を使用したことはありませんか?
apg(1)ランダムなパスワードを作成する
プロセッサ/コアの数を知りたいですか? nproc(1)
sfdisk(8)優れたパーティションツール
multitail(1)複数のテールを一度に...素晴らしいツール

0
PiL