Linuxの隠された機能


64

PowerShell隠し機能やStack Overflowのさまざまな機能の精神に従って、どのLinuxコマンドまたはコマンドの組み合わせが仕事に不可欠だと思いますか?

関連項目:
MySQLの
非表示機能PowerShellの
非表示機能Oracle Databaseの
非表示機能Windows 2008の
非表示機能Solaris / OpenSolarisの
非表示機能SQL Serverの
非表示機能IISの非表示機能(6.0 / 7.0)

回答:


52

ボールを動かすには、画面が不可欠であることがわかります

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


誰もubuntu 9.04で展開されているスクリーンプロファイルについて何か言いたいことがありますか?私はそれらを少し見ましたが、実際に有用であるか、見栄えが良いかどうかを言うのに十分な時間を与えませんでした
xkcd150 2009年

12
ああ、神様!再びスクリーン?
瀬多高橋2009年

@ xkcd150、それらはかなり似ていますが、最大の勝利はステータスラインです。すべてのウィンドウと、マシンに関するヒープが表示されます。
staticsan

そして、スクリーンの良いバージョンが必要な場合は、tmuxを使用してください;)
グッドパーソン

45

たぶん私はこれらを毎日使用するわけではありませんが、頻繁に使用します:

  • 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良好なポートスキャナー

私も上に追加します
PiL

TLDP bashドキュメントはどちらも非常に悪いです。
アダプター

33

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

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

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

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


9
xming sourceforge.net/projects/xmingを使用すると、Windowsでも動作します。
xkcd150 09年

3
SSH転送は暗号化を行うため、すべてが遅くなります。安全なLANを使用している場合は、1つのLinuxデスクトップから別のLinuxコンピューターXセッションにプログラムを送信できます。とても便利な。私は、メインのデスクトップで、ラウンジルームの一方の端にあるsteroに接続されているようなmplayerを介して映画を実行していました。mplayerのオーディオはステレオから出力されますが、画像はデータプロジェクターに接続されたラウンジルームの反対側のラップトップ(イーサネット経由)に届きます。ホームムービーの素晴らしさ。
ガレス

5
毎回-Xを追加する代わりに、内部ホストとアドレススペース 'Host .domain.org 192.168。に一致するホスト行でssh_configを更新できます 。*」および「ForwardX11 yes」オプションを有効にします
Zoredache

私は-Yに慣れてきましたが、違いを学んだことはありません。
Notmyfault 2009年

-Yは信頼できるX11転送です。-X(単純なX11転送)よりもずっと安全です。ところで、多くのデフォルトのsshdセットアップでは、-Xは許可されず、-Yのみが許可されます。-Xを使用すると、奇妙なエラーが発生し、アプリが「MIT MAGIC COOKIE」エラーで終了してから、-Yを使用します。結論:-X、-Yのみ使用していない
wazoox

33

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を参照してください。


2
1つのファイルまたは1つのマウントポイントのみに関心がある場合、fuserは別の素晴らしいトリックです。
bdonlan

1
確かに隠されています。私はずっと前からこの機能を探していました。(でも、私はnoobのだ)
CGP

lsofは本当に素晴らしいです。すべて(ほとんど)がファイルであるというUNIXのアイデアと組み合わせることで、驚くべきことができます。最初は不可能または困難と思われる多くのことが、lsofのオプションのおかげでonelinerでは解決できることがわかりました。
ptman


26

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


ワオ。すごくかっこいい!+1空き時間があれば、2.6カーネルでこれを試してみるつもりです。
wzzrd 2009年

それは素晴らしいですが、どのようにそれがハッキングできないのですか?カーネルをまだ実行する必要はありませんか?それとも最小限のカーネルですか?
cdeszaq 2009年

7
"カーネル"?この「カーネル」とは何ですか?このモードに入ると、実行されるコードは/ network stack /のみです。タスクスケジューリング、API、コード、サービス、ユーザースペース、なし、zip、nada ...イーサネットを介してエコーするパケットのかすかな音...人生の2つの機能を備えた組み込みデバイスのようなものと考えてください、送信パケット。パケットをこっそり試してみることができるという意味でこれを「ハッキング」できると思いますが、スタック自体に/直接/攻撃できることは何もありません。
エイブリーペイン

24

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


4
幸いなことに、多くのLinuxディストリビューションにはcron.dailyにupdatedbが含まれています:-)。
マットソルニット

1
また、検索よりもはるかに高速です。
cgp 2009年

一部の人々は、位置情報をセキュリティリスクと見なしていることに注意する必要があります。そうは言っても、私はいつもそれを使用しています:
ボータック

Locateの最近のバージョンには、大文字小文字を無視する-iスイッチがあり、非常に便利です。
niXar

また、セキュリティについては、安全なロケートバージョンがあり、ログインしたユーザーが実際に見ることができるファイルのみを「見つける」ことができます。
ユルゲンA.エアハルト

19

「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()の呼び出しをすべて除外します(RoRコードのデバッグに役立ちます。これは、pthreadsを使用するようにビルドされている場合、これらの呼び出しの多くを行うようです)。


今、私は本当にLinuxを愛し始めています。:)
その後

17
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)

man -k代わりに常に使用しますが、スペルに障害があります。
-mctylr

15

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

Alt + SysRq + RSEIUB


1
+1 Magic SysRQは黄金色です。キーを使用する順序のヒントとして、「象の飼育は非常に退屈です」を覚えておいてください。ただし、順序は明確ではありません。これがRSEIUBが上記で使用される理由です。RSEIUBはデータをディスクに同期してから、「terminate」コマンドと「kill」コマンドを提供します。正しい順序は議論の余地があります。
wzzrd

別の記憶補助:BUSIER(逆スペル)。
メイ

13
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

12

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

cp arq{,.bak}

入力と同じです

cp arq arq.bak

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

!! 

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

^foo^bar 

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


12

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ホスト名


11

仮想コンソール。ほとんどの人は(Ctrl-)Alt-F1を使用して最初のコンソールにアクセスする方法などを知っていますが、12個以上ある場合はどうでしょうか?Alt-LeftおよびAlt-Rightを使用して、それらの残りを循環できます。:-D


うわー、その時点で、画面を使用してください。笑:)私は私が画面が開いている知らせ下部のタスクバーを表示するために、私は.screenrcでそれを持っている
ロイ・リコ

また、12番目のコンソールがデスクトップ環境(gnomeなど)を実行しているIDは何ですか?
-Behrooz

11

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

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

さらに、moreutilsもあります。これは、基本的にホイール上の素晴らしいパイプツールです。

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

8

仕事で毎日使用する素晴らしい「機能」:SSHがポート443でリッスンする機能。仕事用ファイアウォールをバイパスするトンネルを作成できるため、SSHを介してインターネットに接続されているLinuxサーバーにローカルSOCKSプロキシを実行できます。 。

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


3
ネットワークを「ロックダウン」できると信じている人々のことを考えると、いつもうれしくなる。トラフィックが出て行くための単一のポートを残す場合、あなたはめちゃくちゃです。
ボータック2009年

コンピューターからポート443を介して3 GBのデータが流れているとしたらどうでしょうか。
ワディM.

nixにコルク抜きを追加すれば、httpsプロキシでさえ問題になりません!!
ニールドネガン

@ Wadih.M:これは方法です:443からsshまで、リモートマシンから別のポートにudpパケットを送り返します.netcat.sendを使用すると、リモートマシンへの別のudpパケットを送信します.congrats.theポートがパンチされます。
-Behrooz


8

おそらく、Windowsとは対照的に、Linuxの優れた機能の1つは、設計によって隠された機能がほとんどないことです。文書化されていない機能が、コミュニティがその仕事をしていることを知るのに十分に重要であるならば、願っています。


7

ここに私が定期的に使用したいくつかがあります:

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

これらはおそらく「隠された」ものではありませんが、非常に便利です。

  • df -hk -人間が読める形式でディスク使用量を表示する
  • ls -ltr -日付順にファイルをリストする
  • while :; do...done-(バッシュ)watch利用できない場合の交換
  • perl -e- Perlコマンドラインでスニペットを実行する
  • free -kt -メモリ情報を表示(キロバイト/合計)

私はそれが書くwhile true; do ...より簡単だと思うwhile [ 1 ]; do ...
-ptman

6

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

curlは、wgetを使用するほとんどすべてのことで、wgetを完全に無効にします。

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


概要、怠forな;-) 1.pgrep(psがgrepに会うように)2.pstree(プロセスをツリー形式でリストする)3.bc(任意精度の計算機言語)4.split(大きなファイルをチャンクに分割する)5 .nl(行番号)6.mkfifo(2つのコマンドが名前付きパイプを介して通信する)7.ldd(共有ライブラリの依存関係を出力する)8.col(改行を削除する)9.xmlwf(XMLドキュメントが整形式かどうかを確認する) 10.lsof(開いているファイルのリスト)
ユーザー名

(GNU)psにはツリーを印刷するためのフラグがあります。pstreeで行っていることを覚えやすくすること以外に何かありますか?
ptman

カールがwgetよりも優れているのはなぜですか?そして:zgrepとzlessは始まりにすぎません。zcatとzmoreもあります。
メイ

6

ESC + .

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

例えば

ls -l /home/someuser/somedir/somefile

に続く

rm ESC + .

に変換する

rm /home/someuser/somedir/somefile

すごい。知らなかった。
アンドリューテイラー

5

私はyesコマンドがとてもいいと思います:

yes | do_you_agree

manページから:

NAME
       yes - output a string repeatedly until killed

SYNOPSIS
       yes [STRING]...
       yes OPTION

5

概念は、Linuxのすべてがファイルであるということです

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


この基本的なUnixコンセプトが好きなら、Plan9 OSが好きでしょう。
wazoox 09年

4

オープンソースです。見た目がわからなければ、「隠された」ものは何もありません。


残念ながら、オープンソースは「隠れた」ものを見るのをかなり難しくする傾向があります。
スポイケ

5
私は反対を主張しただろう-機能がクローズドソースアプリに隠されている場合、それを公開するのは開発者の責任です。オープンソースのアプリでは、この機能は誰でも見ることができます。さらに、積極的に開発している人の数は一般的にはるかに多くなっています(「隠された」機能についてより多くの人が知っており、話します)。最後に、オープンソース開発は大部分がコミュニティ指向であるため、一般に人々は隠された機能について互いに話し合います。
トム・ライト

私は@Spoikeの推論にまったく従いません。はい、もっと見るべきことがありますが、あなたが見るものはあなたが得るものです。
ポール

あなたはセマンティクスについて議論していると思います。「Obfuscated features of linux」に名前を変更するのはどうですか?
spoulson

私は部分的に、最新の文書が一般的に不足しているために物事が「隠されている」かもしれないと主張します。この声明がすべてのプロジェクトに当てはまるとは限りませんが、完全なドキュメント(およびハウツーユーザーガイドだけではありません)がやや欠けているプロジェクトがたくさんあります。KDEの管理機能、特にrcファイル内の設定の管理と、特定のフィールド不変の設定の実際の効果に関しては、完璧な例です。多くの場合、私は物事がどのように処理されるかを知るためにソースコードを調べていることに気づきました。
ジェイソンモック

4

隠された機能は、隠された機能がないことです。システムは、ユーザーが完全にアクセスできる膨大な量の電力を提供します。あなたはそれのすべての部分とあなたの指先にある力を知るために利用可能なすべてのツールを理解する必要があります。

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

マニュアルページを読んだりソースを読んだりするのが苦手なら、それが隠された機能です。



3
  • od-8進数およびその他の形式のファイルをダンプします。ファイルの先頭にBOMが含まれているかどうかを確認するのに便利です
  • file -指定されたファイルのファイルタイプは何ですか?
  • lshwlsusblspci-リストのハードウェア
  • tracepath -ここでMTUの問題に対処していますか?
  • netwox 200以上のネットワーク関連ツールが含まれています
  • ip -ネットワーク構成/情報用
  • sysctl -ファイルシステム/ネットワーク/カーネル情報
  • ebtables -ブリッジのiptables
  • vconfig -VLAN設定
  • brctl -ブリッジ構成
  • socat- netcatステロイドについて
  • ipgrab-- tcpdump詳細なヘッダー情報を出力するユーティリティ
  • dig -現在DNSサーバーはどうなっていますか?


3

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

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

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


lspci、lsscsi、lsusbも好きです:)
wazoox

うん、私は定期的にls *コマンドを使用しています-BIOSレベルの情報を引き出すことができるものがあることに気づいていませんでした:)
gharper

3

Linuxのことではなく、Bashのことです。プロセスの置換、

diff some_local_file <(ssh somehost "cat some_remote_file")

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

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