マクロに似たカスタムシェルコマンドを生成できますか?

マクロに似たカスタムシェルコマンドを生成できますか?

複数の長いキー入力を開始する単一の短縮コマンドを実行できますか?

例えば、

$ kontact & rekonq

私の端末に渡されると、2つのアプリケーションが開きます。このタスクを含めて実行するのにかかる時間を短縮するコマンドを自分で作成できますか?

ベストアンサー1

私はあなたが探しているものがシェルスクリプトだと思います。シェルスクリプトを使用すると、デフォルトでシェルに入力できるすべてをコマンドに変換できます。たとえば、これら2つのプログラムをシェルで実行するには、次のように実行します。

$ kontact &
$ rekonq &

これをシェルスクリプトに入れるには、テキストエディタで新しいファイルを開き、次の行を入力します。

#!/bin/bash
kontact &
rekonq &

これがシェルに入力するのと非常に似ていることがわかります。唯一の違いは#!/bin/bashトップソートです(Webサイトで別の色でレンダリングするのに役立ちました)。この行は、これがbashによって実行される必要があるスクリプトであることをシステムに伝えます。

最後に、ファイルを保存して実行可能にする必要があります。chmod +x file-name

仮に、これをシェルに入力して保存すると、両方のプログラムを起動する必要があります。/home/your-username/bin/run-my-programs~/bin/run-my-programs

多くのディストリビューションは、binコマンド検索パスに$ HOMEのディレクトリを自動的に追加するログインスクリプトを持っているので、簡単に実行したいシェルスクリプトを配置するのに最適な場所です。ただし、ログイン時に存在する場合にのみこれを実行してください$HOME/bin。その後、パスを省略してrun-my-programs。明らかに、システムの他のプログラムと競合しないようにスクリプト名を指定するときは注意が必要です。lsたとえば、スクリプト名をこのように指定すると、混乱して驚くでしょう!


上記のシェルスクリプトは実際にはあまり役に立ちません。プログラムがより複雑な場合に便利です。たとえば、職場で使用する実際のスクリプトは次のとおりです。

#!/bin/sh

xterm -geometry 80x24+0+0 -T 'Bennu-DBA' -e ssh bennu -t 'screen -d -R -S status' &

xterm -geometry 80x24+0+342 -e screen -S 'bservers' -c ~/.screenrc-bservers &
xterm -geometry 80x9+0+684 -T 'df-graph' -xrm '.xterm.vt100.allowTitleOps: no' &

( cd ~/src/haruhi.metrics.net/operations/backup/bennu && xterm -geometry 80x24+0+827 -T 'Bennu-Conf' ) &
( cd ~/src/haruhi.metrics.net/operations/backup/phoenix && xterm -geometry 80x24+509+827 -T 'Bennu-Conf' ) &

xterm -geometry 177x77+509+0 -T 'Console' -e screen -c ~/.screenrc-bconsole  &

これにより、ウィンドウを手動で配置してサイズ変更するために必要な多くの作業(すべての-geometryオプション)が節約されます。すべて-eのオプションは、そのオプション内で適切なプログラムを開始します。

おすすめ記事