これら 10 個の Linux コマンドは、Windows の生活がどれほど快適であるかを示しました。

in tech

初めて Windows から Linux に切り替えたとき、ターミナルに怖気づいていました。カーソルが点滅する黒い画面は、Windows の洗練された GUI と比べると古風に見えました。ボタンをクリックするだけで済むのに、なぜコマンドを入力しようとするのでしょうか?ああ、私はなんて間違っていたんだろう。

ターミナルは単なる代替インターフェイスではなく、あなたの生活を楽にするスーパーパワーです。最初は新しいことを学ぶ必要がありますが、基本を理解すれば、いくつかのコマンドを使用するだけで、多くの複雑なタスクを簡単に実行できます。

Linux を数年間使用した後、ワークフローを完全に変え、Windows なしの方が生活がより良い理由を教えてくれる複数のコマンドに出会いました。これらは単なるコマンドではありません。これらは、Windows には完全に欠けているか、不格好なインターフェイスやサードパーティのソリューションによって不十分に実装されている機能です。ここではその一部をご紹介します。

grep

何でもすぐに見つけられる

時間がかかり、GUI に限定される Windows のファイルコンテンツ検索とは異なり、Linux grep ツールは、結果が見つかると端末にストリーミングします。 grep を使用すると、ファイル内の単純な検索、再帰的検索、パターン マッチングに使用でき、さらにその出力を他のコマンドにパイプすることもできます。

次のように、パターン (単語や語句など) を指定し、どこを参照するか (1 つのファイル、複数のファイル、または別のコマンドの出力) を指示するだけです。

grep "important note" ~/Documents/*.txt
ドキュメント フォルダー内のファイルのリストからフレーズを検索します。

この簡単なコマンドを使用すると、ドキュメント フォルダー内のすべてのテキスト ファイルから「重要なメモ」という語句を検索できます。結果はミリ秒単位で表示され、ファイル名と検索語を含む行が表示されます。

grep はファイルだけを扱うものではなく、他のコマンドにパイプして出力をフィルタリングすることもできます。たとえば、すべての Chrome プロセスを一覧表示したい場合は、次を実行できます。

ps aux | grep "chrome"

grep を使用すると、各ドキュメントを個別に開いたり、実際に探しているもの以外のすべてにインデックスを付けてしまうような遅い検索機能を使用したりする必要がありません。

探す

ファイルを正確に見つける

find と grep を混同しないでください。grep はファイル内のテキストを検索するのに最適です。 grep と ls を組み合わせて特定のファイルを見つけることもできますが、find コマンドはファイルとディレクトリ自体を見つけるように特別に設計されています。隠しファイルやシステム ファイルを見逃すことがある Windows Search とは異なり、find では、名前、サイズ、変更日、さらには内容など、必要なものを正確に指定できます。

これを使用して、30 日より古いすべてのログ ファイルを見つけてみましょう。

find /var/log -name "*.log" -type f -mtime +30
find コマンドを使用して古いログ ファイルを取得します。

Windows では、ファイル エクスプローラーで日付順に並べ替え、各フォルダーを手動で確認する必要があります。 find を使用すると、1 つのコマンドで済みます。ただし、find はファイルを検索するだけでなく、ファイルに対してコマンドを実行することもできます。これらの古いログ ファイルをすべて削除するには、次のコマンドを実行します。

find /var/log -name "*.log" -type f -mtime +30 -delete

ファイル システム操作に対するこのレベルのきめ細かな制御は、標準の Windows インターフェイスには組み込まれていません。

APT、YUM/DNF、パックマン

非常に簡単なアプリのインストール

Windows ソフトウェアをインストールするには、通常、オンラインで検索し、インストーラーをダウンロードし、ウィザードをクリックして実行し、バンドルされているツールバーを拒否し、インストールを待ち、デスクトップ ショートカットを作成し、最後にプログラムを起動する必要があります。 Linux では、パッケージ マネージャーを使用して 1 つのコマンドでこれらすべてを行うことができます。

APT (Debian または Ubuntu)、DNF (Fedora)、または Pacman (Arch) などの Linux パッケージ マネージャーを使用すると、プロセスが驚くほど簡単になります。たとえば、Ubuntu などの Debian ベースのシステムに GIMP (画像エディター) をインストールするには、次のコマンドを実行するだけです。

sudo apt install gimp

それでおしまい。 1 つのコマンドで GIMP とそのすべての依存関係をインストールできます。ウィザードや不要なソフトウェア、再起動は必要ありません。それだけでなく、これを使用して、インストールされているすべてのソフトウェアを一度に更新することもできます。

sudo apt update && sudo apt upgrade

この 1 つのコマンドは、インストールされているすべてのプログラムの更新を確認し、それらを一度に適用します。

配管

組み合わせの力

パイプ演算子 (|) を使用すると、あるコマンドの出力を取得し、それを別のコマンドの入力として直接渡すことができます。このシンプルなコンセプトにより、小さな単一目的のユーティリティを複雑なワークフローに組み合わせることができるため、計り知れない力が解放されます。

たとえば、ファイルの詳細を一覧表示する ls -l を思い出してください。

ls -l
lsコマンドを使用してファイルをリストします。

上記のリストが膨大な場合、またはファイルの総数のみを返したい場合はどうすればよいでしょうか?これを行うには、パイプ演算子「|」を使用します。 wc コマンドを使用します。

ls -l | wc -l
Linux ターミナルでのファイルのリストとカウント。

これは行数だけを計算して出力します。それ以外に、システム上で実行されているすべてのプロセス (ps aux) を検索し、Web サーバー (Apache) に関連するプロセスのみをフィルターすることもできます。

ps aux | grep apache

ビルディング ブロックのようにコマンドを連鎖させるこの機能は非常に強力で、多くの効率的なスクリプト作成や自動化タスクの基礎を形成します。 Windows PowerShell ではパイピングが採用されていますが、Linux ほど汎用的でもシームレスに統合されてもいません。Linux では、この哲学がシステム設計の基礎となっています。

hトップまたはトップ

リアルタイムのプロセス監視

Windows タスク マネージャーでは、実行中のプロセス、CPU 使用率、メモリ使用量などのスナップショットが表示されます。これは機能しますが、少し静的であるように感じることが多く、システムの動作に関する詳細なリアルタイム情報を取得するのは困難な場合があります。

Linux には、プロセスを監視するためのコマンド ライン ツールが用意されています。最も有名なのは、top とそのよりユーザー フレンドリーなバージョンである htop です。走るとき hトップを使用すると、システムのアクティビティを動的にリアルタイムで端末に直接表示できます。

htop を実行しているターミナル ウィンドウ。Ubuntu システム上の CPU、メモリ、プロセスの使用状況をリアルタイムで表示します。

プロセスごとの CPU とメモリの使用量を確認したり、さまざまな基準 (CPU 使用量、メモリ使用量、プロセス ID) で並べ替えたり、不正なプロセスを強制終了したり、プロセス間の親子関係を示すツリー構造を表示したりできます。

クロン

自動バックアップのスケジュールを設定する

Windows で自動タスクを設定するには、通常、タスク スケジューラを使用します。これは、多機能で広く使用されているグラフィカル ツールですが、スクリプトを多用したり高度な自動化を行う場合には、合理化されていないと感じる場合があります。毎日または毎時間の特定の時間に特定のコマンドまたはスクリプトを実行したい場合、Linux では Cron を使用した別のアプローチが提供されます。

Cron は、Linux および Unix 系システムの時間ベースのジョブ スケジューラです。 crontab ファイルを編集すると、分、時、日、月、曜日の 5 つのフィールドの単純な構文を使用して、実行するコマンドと実行するタイミングを指定できます。

「/home/user/backup.sh」にあるバックアップ スクリプトを毎晩午前 2 時に実行したいですか?このコマンドを実行した後:

crontab -e

次の行を crontab に追加します。

0 2 * * * /home/user/backup.sh

誤解しないでください。どちらのツールも強力ではありますが、どちらのツールも普遍的に優れているわけではありません。私が Cron を好むのは、軽量でテキストベースであり、コマンド ラインやバージョン管理システムとシームレスに統合できるからです。対照的に、Windows タスク スケジューラは GUI/XML 構成に依存しており、オーバーヘッドが大きく、セッションおよびアクセス許可に関連する問題が発生する可能性があります。

名前変更またはループ

一括ファイル管理

Windows で複数のファイルの名前を変更するのは、面倒で制限があると感じることがあります。最新のファイル エクスプローラーを使用しても、単純な連続した名前変更 (ファイルを選択、F2) に制限されるか、より高度な場合は PowerShell またはサードパーティのツールに頼る必要があります。

対照的に、Linux には強力な組み込みコマンドライン オプションが用意されており、名前変更ユーティリティまたは単純なシェル ループを使用して、数百のファイルの名前を瞬時に変更できます。

たとえば、すべての JPG ファイルにプレフィックスを追加するには、bash または zsh で次のループを使用します。

for file in *.JPG; do mv "$file" "TripToItaly_$file"; done

または、rename コマンドを使用して、Perl ベースの名前変更 (Debian/Ubuntu 構文) を使用してすべての TXT ファイルの拡張子を MD に変更することもできます。

rename 's/\.txt$/\.md/' *.txt

util‑linux の名前変更が行われたディストリビューション (CentOS、Fedora、Arch で一般的) では、次を使用します。

rename .txt .md *.txt

これらのコマンドは、ファイルに対して O(n) ループで実行されます。クリックや追加のソフトウェアは必要ありません。高速かつ柔軟で、スケーラブルなスクリプト可能な名前変更だけです。

カールまたはウィジェット

コマンドラインからダウンロードする

curl および wget コマンドは、スクリプト作成、ダウンロードの自動化、処理用のデータの取得、およびグラフィカル ブラウザが利用できないサーバーでの作業に非常に役立ちます。ファイルをプログラム的に、スクリプトの一部として、または認証を必要とするサーバーからダウンロードする必要がある場合、さらにはリストから何百ものファイルをダウンロードする必要がある場合はどうすればよいでしょうか? wget とcurl を使用すると、ダウンロード プロセスをきめ細かく制御できます。これは Web ブラウザーでは実現できません。

たとえば、特定の Web サイトからファイルをダウンロードするには、これを使用します。

wget https://example.com/path/to/file.zip

curl はさらに多用途であり、幅広いプロトコルとオプションをサポートしています。これは、Web API との対話、データの送信、複雑な転送の実行に最適です。

curl -O https://example.com/another/file.tar.gz

-O を指定すると、ファイルが元の名前で保存されます。

エイリアス

独自のショートカットを作成する

私たちは皆、繰り返し実行するタスクを持っています。同じ長いコマンドを何度も入力するのは面倒で、タイプミスが起こりやすくなります。 Windows では、システム全体のコマンド ライン ショートカットを作成することは、平均的なユーザーにとって簡単ではありません。

Linux シェル (Bash や Zsh など) を使用すると、エイリアスと呼ばれるカスタム ショートカットを作成できます。エイリアスは短くて覚えやすいコマンドで、入力するとシェルによって長いコマンドに置き換えられます。

たとえば、次のように入力する代わりに、 ls -lha 毎回、次のものを作成できます。

alias ll="ls -lha"

今、入力しています ll 完全なコマンドを実行します。シェルの構成ファイル (.bashrc や .zshrc など) にエイリアスを追加すると、ターミナルを開くたびにエイリアスを使用できるようになります。

サーバーへの接続、スクリプトの実行、お気に入りのアプリの起動など、あらゆる用途にエイリアスを作成できます。例えば:

alias update="sudo apt update && sudo apt upgrade -y"

これを .bashrc ファイルに追加して実行します アップデート ターミナルですべてのソフトウェアを更新します。

tmux

1 つのウィンドウを複数の画面に分割する

tmux は、1 つのウィンドウを複数のペインに分割できるターミナル ツールです。コードの編集、ログの監視、テストの実行など、各ペインでさまざまなコマンドを実行でき、切断してもすべてが実行され続けます。

Debian ベースのシステムの場合と同様に、パッケージ マネージャーを使用して tmux をインストールできます。これを使用します。

sudo apt install tmux
水平および垂直ペインを備えた tmux マルチプレクサ ウィンドウ

Windows はタブと複数のウィンドウもサポートしていますが、セッションを切断してログアウトし、後で再接続することはできません。ただし、Windows 上の WSL 内で tmux を実行すると、ネイティブ Linux システムと同じ接続解除および再接続機能が得られます。

小さなことから始めて、コマンドの語彙を増やしてください

これらのコマンドは、私の Linux エクスペリエンスを大幅に向上させる重要なツールです。それらのうちのいくつかを学ぶことは、始めるのに最適な場所です。また、さらに強力な機能と柔軟性を実現できる、見落とされているコマンドを確認することもできます。

関連情報は以下のリンクからご確認いただけます

公式情報はこちら

関連記事

前の投稿
ACRを無効にしてテレビがあなたを追跡しないようにする方法
次の投稿
次に見るべき「ザ・ペーパー」のような番組 10 選