ジャンナのテーマ ライセンスが検証されていません. テーマ オプション ページに移動してライセンスを検証します. ドメイン名ごとに XNUMX つのライセンスが必要です.

ターミナルからアプリケーションを直接実行する最良の方法

ターミナルからアプリを実行する4つの効果的な方法

ターミナルを使ってアプリケーションを起動すると、従来のメニューやショートカットに比べて、より高速で高度な操作が可能になります。正しいコマンドを覚えておけば、ウィンドウ間を移動したりタスクバーを探したりすることなく、あらゆるプログラムを直接開くことができます。この機能は、特に日常業務で複数のアプリケーションを使用している場合、柔軟性を高め、大幅な時間節約を実現します。

linux-mascot-terminal-multiplexer ターミナルから直接アプリケーションを実行する最良の方法

ターミナルウィンドウからアプリケーションを起動したことがあると思いますが、ターミナルウィンドウを閉じるまでウィンドウがビジー状態になっていることに気づいたことはありませんか?これは非常に煩わしいものです。しかし、この方法でアプリケーションを起動することが便利な場合もあります。今回は、その効果的な方法を説明します。

メニューを使う人もいれば、アプリケーションランチャーを使う人もいます。私は個人的に、Firefoxなどのすべてのアプリケーションをターミナルウィンドウから起動しています。この習慣は、ショートカットの作成方法を知らなかったLinuxを使い始めた頃(約15年前)に遡ります。時が経つにつれて、この方法でアプリケーションを起動することに慣れてきました。ターミナルウィンドウは常に開いているので、これは理にかなっています。それに、アプリケーションランチャーの設定とメンテナンスが面倒なのです。ターミナルウィンドウを使えば、アプリケーションランチャーのようにアプリケーションをざっと検索できますが、実行前にコマンドを編集できるという利点もあります。

まず、Nohup とその背景要因を理解します。

ターミナルウィンドウからアプリケーションを開いて閉じると、多くの場合、アプリケーション自体も終了してしまいます。これは望ましくないかもしれません。Linuxでは、あるアプリケーションが別のアプリケーションを起動すると、プロセスがフォークされるため、元のアプリケーションが親アプリケーションになります。

ターミナルウィンドウに親プロセスと子プロセスの階層ツリーを表示する ターミナルから直接アプリケーションを実行する最良の方法

親プロセスが終了すると、通常はすべてのサブプロセスも閉じられます。コマンドウィンドウに次のコマンドを入力し、プロセスが起動するのを待ってからコマンドウィンドウを閉じてください。

firefox

ターミナルを閉じた後もサブプロセスを実行し続けるには、nohup と呼ばれる実績のあるツールを使用します。

ノフップ

nohup コマンドは、プロセスが SIGHUP シグナルを無視するように強制し、ユーザーがログアウトした後やターミナル セッションが終了した後でもプロセスの実行を継続できるようにします。

ターミナルを閉じた後もプロセスを実行し続ける方法ができたので、nohup は出力をカレントディレクトリの nohup.out ファイルに自動的に書き込むことに注意してください。これらのファイルをファイルシステム全体に分散させる場合を除き、この動作に対処する必要があります。すべての出力を無視するか、ログ用に特定のファイルにリダイレクトするかを選択できます。

すべての出力を無視するには、ジャンク データのブラック ホールとして機能する /dev/null にリダイレクトするだけです。

nohup firefox &>/dev/null

これで、ターミナルを閉じてもFirefoxは動作を続けます。ただし、この設定ではすべてのログが無効になってしまいます。代わりに、出力をログファイルにリダイレクトすることもできます。

nohup firefox &>/tmp/firefox.log

これで、Firefox に問題がある場合は、ログ ファイルを読み取ることができます。

背景要因

FirefoxでNohupを実行すると、コマンドラインがNohupに引き継がれるため、他のコマンドを実行できなくなります。同じコマンドウィンドウを他の用途に使いたい場合、これは理想的な解決策ではありません。そこで、バックグラウンドエージェントの出番です。

バックグラウンド演算子は、コマンドの末尾に「and」を追加するだけのシンプルなもので、アプリケーションの実行中でもコマンドウィンドウを使い続けることができます。試してみてください。

firefox &

ここでターミナルウィンドウを閉じると、アプリも終了することに気づくでしょう。これは、バックグラウンドランチャーがアプリをバックグラウンドに置いたとしても、SIGHUPシグナルには従うため、ターミナルウィンドウを閉じるとプロセスが停止するからです。そのため、Nohupも使用しています。

バックグラウンドワーカーの便利な機能の一つは、プロセスをフォアグラウンドに戻す機能です。Firefoxをバックグラウンドに送った後、fgと入力するとフォアグラウンドに戻ります。

バックグラウンドワーカーでNohupを使用する

バックグラウンド ワーカーで Nohup を使用すると、アプリケーションは完全にバックグラウンドで実行されるため、ターミナル ウィンドウで作業を続行したり、ターミナル ウィンドウを閉じたりしても、プロセスは中断されることなく実行され続けます。

nohup firefox &>/tmp/firefox.log &

覚えやすいニックネームを使用してください。

シェルエイリアスはコマンドのエイリアスとして機能します。例えば、Firefoxを起動するには「f」という文字を割り当てます。ターミナルで「f」と入力するだけでFirefoxが開きます。シェルエイリアスの使い方がわからない場合は、シェルエイリアスの作成方法に関する記事を読むことをお勧めします。

シェルのカスタマイズでは、覚えやすいエイリアス(長いコマンドを表す、短くて覚えやすい文字列)を使うのが一般的です。例えば、Firefoxのショートカットを作成して、特定の引数でブラウザを起動することができます。

alias ffaa="firefox about:about"
alias ffac="firefox about:config"
alias ffnt="firefox --new-tab"
alias ffp="firefox --profile"
alias ffsm="firefox --safe-mode"

ニックネームをアルファベット順に並べると、どのニックネームがすでに使用されているかがわかりやすくなります。

通知
Firefox を実行するには、Nohup とバックグラウンド エージェントを使用する必要がある場合があります。

ファジーインターフェースレジストリを使用する

インストールするインターフェースツールの中で最も便利なのは、あいまい履歴ツールです。Atuinはまさにそれを実現するアプリケーションで、どこでも動作します。私は個人的にZshのアドオンであるzsh-fzf-history-searchを使用していますが、機能はほぼ同じです。

ターミナルウィンドウにコマンド一覧が表示されます。これは fzf 履歴検索コマンドの出力です。ターミナルから直接アプリケーションを実行する最良の方法

長いコマンドを書くのに長い時間を費やすなら、それを簡単に再実行できる方法があると便利です。私はよく、1~2分かけて複雑なコマンドを作成し、その後、シェルログを使って、数か月、あるいは数年にわたって何百回も実行します。

メリットが1つだけあるなら、ファジーシェルログのアドオンまたはアプリを使うのがおすすめです。Atuinの使用をお勧めします。ご興味があれば、Atuinの紹介記事をご覧ください。

フラットコマンドファイル

ファジーシェルログの背後にある考え方はシンプルです。シェルログをコンパイルし、不要な詳細を削除して、その結果をFZFというプログラムに送信します。これと似たような処理を行いますが、今回はFZFを使ってプレーンテキストファイルからコマンドを選択し、実行できるようにします。

FZFは、長いリストから項目を素早く選択できるように設計されています。これは必須ツールであり、あらゆる高度なシェルツールキットの一部です。ターミナルスキルを向上させたいなら、ぜひ使い方を習得することをお勧めします。FZFは使いやすく、経験豊富なユーザー向けの高度な機能を多数備えています。

FZF を使用して複数行のテキストを検索する方法の簡単な例を次に示します。

echo "foo\nbar" | fzf

ターミナルウィンドウにfzfの実行と2つのオプションのリストを表示し、fooとbarを表示する ターミナルから直接アプリケーションを実行する最良の方法

入力を開始すると、FZFはリストを動的に絞り込み、選択肢を即座に更新します。選択すると、FZFは選択したエントリを出力します。多くのユーザーは、この選択を別のコマンドに参照させて、さらに処理を進めます。例えば、echo "foo\nbar" | fzf | tr '[:lower:]' '[:upper:]' は、選択された単語を大文字に変換します。

さて、独自のコマンドリストを作成し、それらを検索してみましょう。まず、コマンドを含むファイルを作成します。

echo "ls -al\ndir" > ~/.commands

次に、.bashrc ファイルに以下の関数を追加します。関数の意味がわからない場合は、.bashrc ファイルについて解説した記事をご覧ください。

fe() {
  eval "$(fzf <"${HOME}/.commands" || return)"
}

~/.bashrc のソースを使ってシェルファイルをリロードし、fe(ファジー実行)を実行してください。コマンドを指定すると、自動的に実行されます。~/.commands テキストファイルに任意のコマンドを追加できます。

Zshを使用している場合は、コマンドを実行する前に変更することができます。.zshrcファイルに次のように入力します。

fe() {
  print -z "$(fzf <"${HOME}/.commands" || return)"
}

このコマンドを実行すると、最初にコマンド ラインが表示されるので、それを変更することも、単に Enter キーを押して実行することもできます。

バックグラウンド全体にコマンドを送信する方法がわかったので、複数のターミナルウィンドウでワークスペースを乱雑にすることなく、ターミナルからアプリケーションを安全に実行できます。これらのコマンド(nohupコマンドとバックグラウンドワーカー)をコマンドファイルまたはシェルレジストリに追加して、アプリケーションをすばやく起動できます。複雑なパラメータを持つコマンドの場合は、エイリアスが便利です。

これらの原則をすべて活用して、ターミナルからアプリケーションを素早く起動しています。カスタムランチャーの方がはるかに優れたソリューションではありますが、利便性のためにターミナルで直接何かを実行したい場合もあります。今では、それがこれまで以上に簡単になりました。

アプリケーションを実行するためのターミナルコマンドをマスターすることで、コンピューティング体験が新たなレベルのスピードとプロフェッショナルさへと進化します。一般ユーザーでも開発者でも、この方法を活用することで日々の効率性が向上し、デジタル作業環境をより細かく制御できるようになります。

トップボタンに移動