○ コマンドを快適に使うには?端末アプリやシェルにこだわってみる。
Linuxを使いこなす上で、絶対にマスターしておきたいのが「コマンドライン操作」だ。この特集では、コマンドライン操作に苦手意識を持つ人に向けて、「シェル」や「端末」などの根本的な仕組みからコマンド操作の基本や活用方法までを解説する。
Part2では、端末アプリの設定変更や高機能な端末アプリの利用、プロンプトのカスタマイズ、Bash以外のシェルの利用、などのコマンド実行環境を整備する方法を紹介します。便利な環境にしてコマンドを使いこなしましょう。
Part1で紹介した通り、Ubuntuでは「端末」(GNOME Terminal)と呼ばれる端末アプリをデフォルトで利用できます。最初に、この端末アプリの使い方を紹介します。
端末はタブ機能を備えており、タブを使って複数の画面を切り替えられます(図1)。タブを追加するには画面左上にある「+」ボタンをクリックします。タブを閉じるときには、タブの右側に表示されている「×」ボタンをクリックします。
タイトルバーにある虫眼鏡アイコンをクリックすると図2の検索用画面が表示されます。検索欄にキーワードを入力して[Enter]キーを押すと、端末内の文字列を検索できます。
虫眼鏡アイコンの右側にあるアイコン(ハンバーガーアイコン)をクリックして表示されるメニュー(図3)では、端末の文字サイズの変更や新しいウィンドウを開く、フルスクリーン表示する、設定画面を開く、といった操作ができます。このメニューの「読み取り専用」項目をチェックすると、端末がキー入力を受け付けなくなります。長時間実行させ続ける必要があるコマンドの誤操作を防止できるので便利です。
図3、ハンバーガーアイコンをクリックして表示されるメニュー。
メニューの「設定」項目を選択すると、図4の設定画面が開きます。「全般」を選択すると、端末全般の動作とテーマを変更できます。「ショートカット」を選択すると、デフォルトで設定されている(キーボード)ショートカットの一覧が表示されます。ここでショートカットの割り当てを変更することもできます。「プロファイル」項目の下に表示されるプロファイル名を選択すると、端末サイズ、フォントの種類やサイズ、背景色、文字コードなどのさまざまな設定が可能です。
図4、「端末」の設定画面。
「自分用」というプロファイルを作成して設定している様子。
デフォルトのプロファイルは「名前なし」です。新規にプロファイルを作成する場合は、「プロファイル」項目の右側にある「+」ボタンをクリックします。先ほどの図4は「自分用」というプロファイルを作成して設定している様子です。
プロファイルの設定でお勧めなのが、「文字」タブにある「端末ベルを鳴らす」項目のチェックを外すことです。チェックが付いたままだと、[Tab]キーを押した際などにベル音がして筆者はうるさく感じます。
また、「色」タブにある「システムテーマから透過を使用する」項目のチェックを外した上で「透過の背景を使用する」項目をチェックすると、端末の背景が透けて見えるようになります(図5)。これにより、複数のウィンドウを重ねて、背後のウィンドウの情報を見ながら手前の端末でコマンド操作をするといったことが可能になります。
図5、背景を透過させた「端末」の表示例。
ほかの端末アプリを使ってみる。
Ubuntuで利用できる端末アプリは、ほかにも多数あります。「Ubuntu Software」を起動して「terminal」というキーワードで検索すると、100個以上の端末アプリが表示されます。
以下では、それらの中から「QTerminal」「Kitty」の二つを紹介します。また、端末多重化ソフトウエア「tmux」も紹介します。
画面分割に対応するQTerminal。
QTerminal(図6)は、軽量で高速なデスクトップ環境「LXQt」の標準端末アプリです。画面分割機能を備えており、一つの画面内で複数の操作を並行して実施できます。
図6、画面分割機能を備える「QTerminal」。
Ubuntuには、端末で次のコマンドを実行するとインストールできます。
インストール後、アプリケーション一覧画面で「QTerminal」アイコンをクリックすると起動できます。
「操作」メニューで「ターミナルの上下分割」や「ターミナルの左右分割」を選択すると端末画面を分割できます。分割した各画面をクリックすると、そこにフォーカスが移ってコマンドの入力が可能になります。キーボードでフォーカスを移すには、[Alt]キーを押しながら上下左右の矢印キーのいずれかを押します。
「ファイル」メニューで「設定」-「ブックマーク」を選択してから、「ブックマークを利用可能にする」項目にチェックを入れると、マウスのクリックだけで特定のコマンドを実行できるブックマーク機能が利用できるようになります。
ブックマーク一覧は端末画面の左側に表示されます(図7)。ブックマーク一覧の表示、非表示を切り替えるには、「表示」メニューで「ブックマーク表示の切り替え」を選択します。
デフォルトでは、cdコマンドで特定のディレクトリーに移動するブックマークが登録されています。「~/.config/qterminal.org/qterminal_bookmarks.xml」ファイルに図8のような記述をすると、任意のコマンドを実行するブックマークを登録できます。記述後にQTerminalを再起動すると登録したブックマークを利用可能になります。なお、図8は「コマンド」というグループに「現在時刻」というブックマークを追加する設定です。このブックマークをクリックすると「date」コマンドが実行されます。
図8、ブックマークを追加する設定の例、
このような設定を、「~/.config/qterminal.org/qterminal_bookmarks.xml/etc/shells」ファイルに記述する。
端末内に画像を表示できるKitty。
Kittyは、画面の描画(レンダリング)にGPU機能を活用することでシステム負荷を抑えることが特徴の端末アプリです。右クリックメニューが表示されないなど若干の癖はありますが、キーボード操作のみで作業したい人にはお薦めです。画面分割機能も備えています。
Ubuntuには、端末で次のコマンドを実行するとインストールできます。
端末内画像を表示する拡張機能を利用するために、画像操作コマンド集「ImageMagick」のパッケージもインストールしています。また、デフォルトのフォント設定が適切ではないため、フォントの設定もしています。
Kittyには、メニュー、閉じるボタン、スクロールバーなどがありません。スクロールバーの機能を利用したい場合は、[Ctrl+Shift+H]キーを押します([Ctrl]キー、[Shift]キー、[H]キーを同時に押します)。するとlessコマンドが実行され、過去に端末に表示された情報を参照できるようになります。
タブの新規作成には[Ctrl+Shift+T]キー、画面の分割には[Ctrl+Shift+Enter]キーを押します。画面の分割方式は設定ファイルで指定します。
ImageMagickをインストールしていれば、次のコマンドを実行することで端末内に任意の画像ファイルを表示できます(図9)。
ほかにも多数の機能があります。Kittyの操作方法や設定ファイルの記述方法については、マニュアル(https://sw.kovidgoyal.net/kitty/overview/)を参照してください。
セッションを維持できるtmux。
tmuxという端末多重化ソフトウエアを使えば、端末(GNOMETerminal)の画面を分割できます(図10)。またtmuxは、端末での一連の作業を「セッション」として維持管理できます。そのため、例えばリモート操作時に途中で回線が切断しても、接続が復活した後にセッションの作業を継続できます。一つのセッションを複数の端末で共有することも可能です。
図10、tmuxで「端末」アプリ内の画面を分割した様子。
Ubuntuには、端末で次のコマンドを実行するとインストールできます。
インストール後、まず端末で「tmux」コマンドを実行します。
その後、[Ctrl+B]キーを押してから「"」を入力すると画面が垂直分割、[Ctrl+B]キーを押してから「%」を入力すると画面が水平分割されます。
次にセッション管理をしてみます。まず端末を二つ立ち上げてください。
一つめの端末で次のコマンドを実行します。これによって「session1」というセッションが新規に作成され、そのセッションにおいてechoコマンドが実行されます。
続いて二つめの端末で次のコマンドを実行します。これによってsession1に接続され、先ほど実行したechoコマンドの実行結果が、こちらの端末にも表示されます。
以降は、どちらかの端末で何かコマンドを入力して実行すると、別の端末にも入力したコマンドやコマンドの実行結果が表示されます(図11)。セッションを共有できていることが分かります。
図11、複数の端末でセッションを共有している様子。
プロンプトのカスタマイズ。
プロンプトに表示される情報は、「PS1」という環境変数の値で決まります。例えば、次のコマンドを実行してPS1の値を変更してみてください。
プロンプトが「NikkeiLinux $ 」に変わります。
この例では通常の文字列を設定しましたが、表1のような制御文字を設定することで、システムから取得した情報を表示できます。例えば、次のようにPS1を設定すれば、Ubuntuのデフォルトのプロンプトと同様の情報が表示されます。
ただし、この状態ではプロンプトに色や装飾が付きません。色や装飾を付けるには、それを付けたい範囲を「\[\033[装飾;色コード\]」と「\[\033[00m\]」という記述で囲みます。「装飾」部分に指定できる記述を表2、「色コード」部分に指定できる記述を表3に示します。
例えば、先ほど設定したプロンプト全体を全部緑色で表示したい場合は、次のようにPS1を設定します。
設定を常にBashに反映させたい場合は、同じ記述をBashの設定ファイル「~/.bashrc」の末尾などに追加します。
シェルを変更する。
Part1でも紹介しましたが、シェルにはさまざまな種類があり、好きなものを使用できます。ここでは、macOSで使われている多機能シェル「zsh(Z Shell)」と、Windowsで使われている多機能シェル「PowerShell」をUbuntuにインストールして使う方法を簡単に紹介します。
zshは、次のコマンドを実行することでインストールできます。
インストール後、「zsh」コマンドを実行すれば起動します。ログインシェルとして利用する場合は、次のコマンドを実行します。
PowerShellは、次のコマンドを実行することでインストールできます。
インストール後、「pwsh」または「powershell」コマンドを実行すれば起動します。Windows版のPowerShellと同様に、「Get-Process」コマンドを使ってプロセス一覧情報を表示することなどができます(図12)。
図12、Windowsで使われる「PowerShell」をUbuntuで稼働させた様子。
なお、PowerShellの設定は「/etc/shells」に追加されないので、そのままではログインシェルには使用できません*1。
*1 設定を「/etc/shells」に追加すれば、ログインシェルに設定できます。