この記事では、/usr/bin の隠れた隅をさらに深く掘り下げ、さらに興味深い宝物を発見します。一見すると時代遅れに見えるかもしれないが、実際には現在でも非常に役立つ、ユニークで興味深いプログラムをいくつか紹介します。
冒険の道に戻り、Linux が提供してくれるさらに素晴らしいものを発見し続けましょう。
まず第一に、入力行を特定の長さに折り返すのに役立つ非常に便利な小さなツールがあります。バイト数またはスペース数を指定して長さを定義できます。折りたたみツールを使用すると、さまざまな長さのファイルをすばやく処理できます。
たとえば、6 文字の長さの入力行があると仮定します。各行を 5 文字のみに制限し、残りを折り返す必要があります。フォールドを使用すると、次のコマンドでこれを実現できます:
リーリー対応する出力は次のようになります:
リーリーこれで、テキストを長さ制限内にすばやく収めることができます。これは、長いテキスト ストリームを分割したり、コードやその他の構成ファイルに行の長さ制限を強制したりする場合に便利です。
fold の使用方法の詳細については、wiki ページを参照してください。
同じ機能は awk などのツールを使用して実現できますが、列ツールはこの特定の目的のために設計されているため、使用が非常に簡単で、構文も覚えやすいです。
数行の入力に基づいて単純なテーブルを作成したい場合は、次のコマンドを実行できます:
リーリー
コマンドの出力は次のようになります:リーリー
ご覧のとおり、出力は自動的に整列した列にフォーマットされます。これにより、出力内に小さなテーブルが形成され、入力の各行の長さに基づいてサイズが自動的に変更されます。このツールは、コマンド ラインで少し長い非構造化データ セットを操作していて、表形式のフォームをすばやく作成したい場合に非常に役立ちます。
column のマニュアル ページには、使用方法の詳細と、さまざまな入力を処理する独自の方法が記載されています。
sudo グループの権限で ls コマンドを実行するには、次のコマンドを入力します。
リーリー
これにより、ls コマンドが sudo グループの権限で実行されるように切り替わります。コマンドの実行が終了すると、実行前に持っていた通常のグループ権限に戻ります。sg コマンドは、新しいグループの権限をテストしたり、コンテキストをすばやく切り替えて別のグループのプログラムを実行したりする場合に非常に役立ちます。
linuxmi という名前の次のファイルの 16 進数ダンプを取得するとします。
linuxmi
我们只需提供输入,xxd 将自动将文件编码到 stdout(对于较短的输入文件,这是一个很方便的默认功能):
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com] └─$ xxd linuxmi 00000000: 6c69 6e75 786d 690a
您还可以通过传递一个额外的文件名参数来直接将输出发送到转储文件:
xxd linuxmi 93139
这将将十六进制转储发送到名为 93139 的文件中。
xxd 的 man 页面可以在此处找到。
这个方便的小实用程序来自于我们都熟悉和喜爱的古老 ps 实用程序家族。pwdx 实用程序可以让您获取运行中进程的当前工作目录。您只需要将进程的 PID 传递给它,它就会告诉您该进程的工作目录在哪里。
假设我们想找出 cron 进程在我们的机器上的工作目录。首先,我们只需要使用 ps 搜索并找到它的 PID,像这样:
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com] └─$ ps aux | grep cron
在这里,我们可以看到cron的PID是612。现在,我们只需要将该进程的PID传递给pwdx来确定其工作目录,像这样:
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com] └─$ sudo pwdx 691
如下图:
由于cron是系统进程,您需要使用sudo才能获取有关它的信息。命令完成后,我们得到了cron的当前工作目录,即 /var/spool/cron。
这可以是一个非常有价值的故障排除工具,特别是当您追踪目录范围问题时。通过使用 pwdx 进行快速检查,您可以准确地确定一个进程认为它应该从哪个位置运行。
在这里查看 pwdx 的 man 页面。
这个强大的小程序可能不会像您一开始想的那样执行某个特定任务。它在 Linux 中已经存在了几十年,甚至可以追溯到 1975 年 Unix 的第 6版。
write 实用程序实际上允许您向同一系统上的其他用户发送消息。您可以针对任何其他登录的用户发送消息。提供用户名,您将进入一个交互式shell,以向他们写任何您想要的文本。您键入的所有内容(包括换行符)都将出现在目标用户的控制台上。
这里是一个快速示例:
write
这将使您进入一个交互式控制台,以向相应的用户发送消息。请记住,这是一种相当侵入性的与其他用户通信的方式。这将使他们的终端显示您输入的文本,而无需任何警告或提示。对他们来说,这将出现在他们的终端上,就像自动出现的信息一样。由于这是单向通信,他们也无法回复。
尽管现在有更好的方法来处理用户之间的消息传递,但这是计算历史的一部分。我相信今天仍然可以有一些创造性的用途。
以上が面白いお宝!あなたのための 6 つのユニークで素晴らしい Linux ユーティリティの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。