独自のターミナルコマンドを作成する方法

独自のターミナルコマンドを作成する方法

カスタムターミナルコマンドを作成する方法は知っています。これは、フォルダー内のすべてのJavaクラスをコンパイルするのに非常に便利です。また、これを行うために、通常、フォルダー ~/bin を作成し、実行したい行を含む .sh ファイルを配置する人もいますが、よく理解できませんでした。たとえば、いくつかの行を含む compile.sh を作成します。

-gcc file -o file
-gcc file1 -o file1

しかし、読んでいるうちに、ホーム フォルダーに隠されている .bashrc というファイルに 1 行追加する必要もあることがわかりましたが、その方法がわかりません。このファイルを編集する簡単な方法はありますか? 編集すると、カスタム コマンドは .sh ファイルの名前 (compile) になりますか?

答え1

コンピュータのすべてのユーザーが利用できる Bash スクリプトを作成する最も簡単な方法は、それを に配置することです/usr/local/bin。ただし、これには管理者権限が必要です。

  1. スクリプトを作成します:

    お気に入りのテキスト エディターを開き、スクリプトで実行するすべてのコマンドを 1 行に 1 つずつ記述します。

    行の先頭に を付けることで、Bash スクリプトにコメントを追加できます#

    完了したら、スクリプトの先頭に次の行を追加します。これは「シェバン」と呼ばれ、スクリプトを実行するインタープリタをシェルに指示します。

    #!/bin/bash
    

    以下は、質問で言及した 2 つのコマンドを実行する完全なスクリプトの簡単な例です。

    #!/bin/bash
    
    # Compile 'file':
    gcc file -o file
    # Compile 'file1':
    gcc file1 -o file1
    
  2. スクリプトを正しい場所に移動します。

    すべてのユーザー用の独自のスクリプトを配置する場所は です/usr/local/bin

    このディレクトリはユーザー が所有しているためroot、そこにファイルを移動するには管理者である必要がありますsudo

    スクリプトはホーム ディレクトリに作成したものと想定します~/my_script.sh。ターミナルを開いて、以下のコマンドを入力します。 は、SCRIPTNAMEスクリプトに付けたい名前に置き換えてください。この名前は、スクリプトを実行するために入力する必要があるコマンドになります。.shファイル拡張子は必要ありません。

    sudo mv ~/myscript.sh /usr/local/bin/SCRIPTNAME
    
  3. 正しい所有者と権限を設定します。

    スクリプトは が所有し、 が書き込み可能である必要がありますrootが、誰でも読み取りおよび実行可能である必要があります。以下の 2 つのコマンドにより、これが保証されます。

    sudo chown root: /usr/local/bin/SCRIPTNAME
    sudo chmod 755 /usr/local/bin/SCRIPTNAME
    
  4. スクリプトを実行してお楽しみください:

    これで、SCRIPTNAMEターミナルに入力するだけで (または任意の名前で)、スクリプトが実行されます。

答え2

スクリプトを書くことは実行するのに非常に便利な方法ですが1つのファイルから複数のコマンドを実行する1 つまたは 2 つのコマンドだけを必要とする関数を使用することをお勧めします。

例えば以下の関数定義を見てみましょう

compile()
{
  gcc "$1" -o "${1%%.*}" && printf "<<< Compiled successfully\n"
}

これをファイルに配置すると.bashrc(そして実行するか新しいターミナルタブを開く)、変数に追加するsource ~/.bashrcことなくどこからでもこのコマンドを実行でき、次のようにコマンドライン引数としてファイル名を指定できます。~/binPATH

compile somecode.c

ちなみに、gedit ~/.bashrcコマンドラインから呼び出すだけでそのファイルを編集できます。

"$1"とが何をするのか疑問に思っている人のために説明すると"${1%%.*}"、 は"$1"最初のコマンドラインパラメータ(この場合は"somecode.c")を指し、"${1%%.*}"- はパラメータ展開 、特に接尾辞の削除 を行い、ドットの後のすべてを破棄するものです。言い換えると、 はsomecode.cになりますsomecode 。詳細については、以下をお読みください。bash マニュアルページパラメータ拡張に関するセクション

答え3

これに入る前に、新しいコマンドを作成するのではなく、実行可能ファイルとして実行できるスクリプトを作成するということを明確にしておきたいと思います。ただし、スクリプトはどこからでも実行できるため、コマンドと同じように動作できます。

ホーム フォルダーに「bin」というフォルダーがない場合は、作成します。

ターミナルウィンドウを開いて、 と入力しますnano ~/.bashrc

エディタが開きます。このファイルの下部に、 という新しい行を追加しますPATH="$HOME/bin:$PATH"

次に、CTRL+O (ゼロではなく文字の o) を押してファイルを保存し、ENTER キーを押します。CTRL+X でエディターを終了します。変更を有効にするにはログアウトして再度ログインしてください。それでも問題が解決しない場合は、コンピューターを再起動してください。

これで、bin フォルダーに作成したスクリプトは、ターミナル ウィンドウのどこからでもアクセスできるようになります。

これらのスクリプトは、nano、gedit (Ubuntu のグラフィカル テキスト エディター)、または任意のテキスト エディターを使用して作成できます。スクリプトを ~/bin フォルダーに保存し、ファイルを実行可能にすることを忘れないでください。これを行うには 2 つの方法があります。

GUI: ファイルを右クリックして権限タブに移動し、「プログラムとして実行を許可する」ボックスをオンにします。

ターミナル :chmod +x /location/of/your/file

関連情報