コーダーなら知っておいて損はない CUI にまつわるエトセトラ その1

スタッフブログ

皆様どうも、こんにちは!
こまりのソフトウェアエンジニア、桑木です。

みなさん、CUI(Character User Interface)使ってますか? 黒背景の画面でキーボードからコマンドを入力してコンピュータを操作するアレです。サーバ管理する人はもちろんのこと、コーダーでも作業内容によってはCUIを使うこともあるんじゃないでしょうか。

そんなCUIについて、ちょっとした使い方やTips等を弊社コーダーに向けて書いていきたいと思います。

だが、その前に

CUIを使ったことがない人もいると思うので、今回の記事ではCUIそのものの使い方から説明していきます。CUIにもいくつか種類はありますが、この記事ではLinuxで主に使われているbashに一般的な設定がしてあるものを使います。また、Windowsのコマンドプロンプトとかでも似たような機能はあるので応用はできると思います。

コマンドの実行

さて、そもそもどうやってコマンドを実行するのか。

CUIではコマンドの入力待ちの時に、$とか>などの記号が最後に付いた文字列が表示されます。記号の前には現在の状態などを表す文字列などが表示されている場合が多いです。この入力待ちを示す文字列をプロンプトと言います。

表示されているプロンプトに続いて、キーボードから任意のコマンドを打ち込み、最後にEnterキーを押すことでコマンドは実行されます。

以下はlsコマンドを実行した例です。

$ ls
bin   dev  home  lib64       media  opt   root  sbin  sys  usr
boot  etc  lib   lost+found  mnt    proc  run   srv   tmp  var
$

コマンドから出力があれば画面に表示されます。コマンドの終了後には再びプロンプトが表示され入力待ちになります。

コマンドの終了

通常、コマンドの処理が終わればそのコマンドプログラムは勝手に終了します。

しかし、想定よりも時間の掛かる処理になってしまったから強制的に終了したいとか、様々な理由で実行中のコマンドを終了したいことがあります。

そんな場合、Ctrl+Cを入力することで終了信号をコマンドプログラムに送信することができます。Windowsでいうところの✗ボタンですね。

この信号を受け取ったプログラムは、可能な限り速やかにプログラムを終了させます。ファイルを書き換える処理などをしていた場合、処理が途中で終わってしまうので使用には注意が必要です。

コマンドの構造

コマンドには、実行させるコマンド名――実行プログラムのファイル名を最初に記述して半角スペースで区切ってから、コマンドのパラメータを入力します。パラメータに指定する内容とその記述方法はコマンドごとに違うので、まずは実行したいコマンドのマニュアルなどを参照してください。

とはいえ、多くのコマンドでパラメータの記述方法には共通する点もあります。

  • 複数パラメータを指定する場合、それぞれのパラメータを半角スペースで区切って記述する
  • 半角スペースそのものをパラメータに含めたい場合、そのパラメータを"で囲む
    などはかなり一般的です。

以下はtouchコマンドにaba bの3つのパラメータを指定したひどい例です。

$ touch a b "a b"

ワーキングディレクトリの変更

CUIには基本的にワーキングディレクトリ(Working Directory, 作業ディレクトリ)という概念があります。カレントディレクトリ(Current Directory, 現在のディレクトリ)ともいいます。ディレクトリとはフォルダの別の呼び方です。

例えば、Windowsでどこかのフォルダでファイル操作をする時、まずは目的のフォルダを開いてからやりたい作業をしますよね。

これと同じように、CUIでも目的のディレクトリを開いてから作業をすることが多いです。ここで作業対象として開いているディレクトリのことをワーキングディレクトリと呼んでいます。また、このワーキングディレクトリは相対パス指定の基点にもなります。

ワーキングディレクトリはcdコマンドのパラメータに対象のディレクトリを指定することで変更することができます。また、現在のワーキングディレクトリはpwdコマンドで出力することができます。(それぞれ、change directory, print working directoryの頭文字といわれています)

以下は、現在のワーキングディレクトリに存在するabcディレクトリに、ワーキングディレクトリを変更する例です。

$ pwd
/home/komari
$ cd abc
$ pwd
/home/komari/abc

その2へ続く

今回はなぜかCUI基礎中の基礎といった内容になってしまいましたが、いかがでしたでしょうか。

他にどんなコマンドがあってそのコマンドのパラメータにはどういう記述をするのか。そういった事を調べれば、やりたいことがCUIでできるようになったのではないでしょうか。