コマンド入力の省略による効率化

スポンサーリンク

Linuxコマンドを利用する場合、多くの操作はキーボードからの操作になります。キーボードの操作がどれだけ小さい労力だとしても長時間の作業になれば、疲労は塵のように積もって、最終的にはとても疲れてしまいます。

なので多くの人はできるだけその作業を省略して効率化したいと考えたいと思います。この記事では簡単な省略方法ですが、効率よく作業が行えるようなテクニックを紹介します。

TAB補完

コマンドを入力するのを省略する方法として有名なものはTABによる補完です。これはシェルの機能が働いて、コマンド入力を補完してくれます。Bashでのコマンドの補完はbash-completionに依存していて、有名なディストリビューションではデフォルトでインストールされています。最低限の環境のBashではファイル名の補完ぐらいしか機能しなくなります。Bashの補完機能は以下のコマンドで確認できます。

Bashの補完機能が気にいらないので、zsh等の別のシェルを利用する人もいます。補完機能はコマンド入力を省略するための重要な機能のため、この機能のためにシェルを別のものに変更するのは動機としては十分でしょう。

コピペを利用する

GUI環境ならコマンドをコピペして利用するのもコマンド入力の省略につながります。これには利点もありますが欠点も割と多くあります。使い慣れていないコマンドですでにマニュアルのようなものがある場合はコピペ作業で仕事を行うことができます。

しかし、コピペするコマンドが何が行われるかを理解していないと思わぬトラブルに見舞われます。セキュリティの話でブラウザからコマンドをコピペさせて実行することでウイルスに感染させるような話もあります。

また、何度も行うコマンドになると逆に作業効率が悪くなる場合もあります。この場合はスクリプトを作成して方が効率がよく、変な間違いも起こりにくいでしょう。

ブレース展開を利用

ブレース展開とは以下のようなものになります。

この波括弧は意外と便利な場面があります。バックアップコピーやファイル名変更に便利です。cpコマンドやmvコマンドが2引数で操作することを利用して、バックアップコピーは

のように利用できます。ファイル名変更も

のように行うことができます。

同じ名前を繰り返しているような場合に利用でき、コマンドの修正も楽になる可能性があります。

直前のコマンドを繰り返す

これは有用な場面がかなり限定的かもしれません。直前のコマンドを繰り返す方法は

を実行することです。例えば、直前にlsコマンドを利用していた場合はそのlsコマンドが再度実行されます。

この!!の特徴は直前のコマンドの前後に何か文字列を追加できることです。有用な使い方として、sudoを追加することになります。

もう一つは直前のコマンドの後ろに何かを付け足すような使い方もできますが、これは素直に履歴をさかのぼって何かを付け足したほうが楽かもしれません。

直近で使ったコマンドを繰り返す

直前のコマンドではなく直近で使ったコマンドをそのままの引数で実行しなおす方法になります。使い方は

のように!の後にコマンドを指定します。指定するコマンドは前に使ったコマンドが特定できる程度の長さであれば利用できます。

これはファイルの再編集やプログラムの再実行の際に利用できます。

場合によってはコマンドの履歴を探さずに実行できるため、前のセクションの直前のコマンドの繰り返しより活躍できる場面は多いでしょう。ただし、利用する際はコマンド指定を間違えて、コマンド履歴から意図しないコマンドの実行にならないように気を付けた方がよいかもしれません。

スクリプトやプログラムの作成

コマンドの入力を最大限省略する方法はスクリプトやプログラム等のファイルに書き残すことでしょう。スクリプトとして残しておけば、どれだけ長いコマンドも処理も一つのコマンドで簡単に実行できるようになります。電子レンジで冷凍食品を温めるような感じで簡単操作でできるようになります。

スクリプトやプログラムを残しておけば、systemdやcronで自動起動させることもできます。ここまで作業を自動化できれば、今後の作業としての労力がほとんど必要なくなるでしょう。

ひっそりと心にとどめておくことは人間がそのスクリプトの必要性や作成過程や方法等を忘れてしまうことになるでしょう。きちんと管理して保守できればいいですが管理できていないと困った事態になる可能性もあります。

バージョン管理ツールの利用

Gitのようなバージョン管理ツールを利用することで作業の進捗状況を管理できます。ゲームでセーブをするようなものです。セーブはこまめに行わなければ、面倒なことになったりします。急にゲームオーバーになって作業が最初からになるかもしれません。

バージョン管理ツールを利用していれば、作業をやり直すことも簡単です。効率的に作業するためにバージョン管理ツールの存在は必須でしょう。RPG等のゲームでセーブ機能がなければさぞ大変になることは想像しやすいでしょう。

まとめ

この記事では、コマンド操作をより快適にするためにコマンド入力を省略するさまざまな方法をご紹介しました。 TAB補完やコピペでコマンド入力はよく知られた方法でしょう。また、この記事では紹介していませんが、エイリアスの設定もよく知られています。ブレース展開や !! や !command はちょっとしたシェルの機能を用いたコマンド入力を省略する方法です。スクリプトやプログラムの作成といったコマンドの一つですべてを実行できるようにしたり、タイマーの設定をしたプログラムの自動起動といった自動化まで行ければ、理想的でしょう。そこまで行くと今度はバージョン管理ツールを用いた作業管理や構成管理が大切になっていきます。

手動での入力を可能な限り減らすことにより、作業効率を上げるだけでなく、タイプミスや操作ミスを防ぐこともできます。日々の作業における労力の軽減はもちろん、精神的な負担も軽減され、より集中して重要な作業に取り組めるようになります。コマンド操作の効率化は、Linuxを使いこなすための第一歩になります。