Ubuntuインストール後 はじめにする事
GNOME 端末エミュレータを起動する gnome-terminal
コマンドラインシェルを利用するために、端末として動作するソフトウェア(ターミナルエミュレーター)の GNOME 端末エミュレータを起動します。
実際は「Ctrl + Alt + T」ショートカットキーで、GNOME 端末エミュレータを起動しています。
起動したGNOME 端末エミュレータからコマンドを入力して
$ gnome-terminal
新しいGNOME 端末エミュレータを起動する事ができますが、やはり「Ctrl + Alt + T」で起動です。
端末エミュレータを使う理由
※CUI ( Character-based User Interface )とは、キーボードで入力されるコマンドによってサーバの操作を行うユーザーインターフェースのことです。
何故、マウスを使って操作する( GUI )ではなく、キーボードでコマンドを打ちながら作業をすすめる方法( CUI )の端末エミュレータを使うかわかりますか?
一番の理由は、豊富な Linux のコマンドが使えることです。
他に、多くのレンタルサーバはOSにUnix/Linux系列のものを採用しています。
レンタルサーバを使う場合、ネットワーク経由でシェル(ユーザーとの対話を受け持つプログラム)に接続してコマンドを打ち込んで操作するSSH( Secure Shell )はCUIのプログラムです。
サーバー上のファイルを直接編集したり、データベースを直接操作したり便利なコマンドを使えるようにする事が出来ます。ことが一般的です。
shell の種類
- sh( Bシェル ) 初期のUNIXの標準シェル
- csh( Cシェル ) BSD系のUNIXの標準シェル
- tcsh( TCシェル ) Cシェルの上位互換のあるシェル
- ksh( Kシェル ) SVR系のUNIXの標準シェル
- Bash GNUプロジェクトのシェル
など多くのシェルがあります。
UNIX系のOSは、業務毎にプログラムを作成せず、小さな仕組みを組み合わせて問題を解決できるよう工夫され、発展してきました。
コマンドラインが使えるようになると、GUIを使った操作よりも作業効率が何倍(何百倍?)も良くなります。
コマンドを組み合わせて処理を自動化する事も簡単に出来るようになります。
例)
サーバーのディスク容量の確認
$ df
必要な情報だけ表示させる
$ df -h | grep sd
ディスク使用量の多い順に表示させる
$ df -h | grep sd | sort -k 5 -r
この例は、データの量が少ないのでメリットを感じませんが、何百・何千とあるデータでも一瞬で結果が表示されます。
df コマンド: ディスク容量を確認する。
grep コマンド: 特定の文字を含む行を抽出する。
sort コマンド: 行単位で並べ替える。
3つのコマンドを使っています。
標準入力、標準出力、標準エラー出力
シェルから起動されるプログラムには、標準入力、標準出力、標準エラー出力という入出力の路が用意されています。これらは、リダイレクトで自由に出力先を変える事ができます。
- 標準入力
通常はキーボードに割り当てられています。キーボードだけでなく、書き込みファイルを指定しないプログラムも標準入力になります。 - 標準出力
通常、画面に割り当てられています。処理結果は標準出力に出力されます。 - 標準エラー出力
通常、画面に割り当てられています。
コマンドをつなぐのが パイプ処理 「|」です。パイプとは、コマンドの標準出力を次のプログラムの標準入力に渡す機能です。
コマンド > ファイル | コマンド結果をファイルへ書き込む |
コマンド < ファイル | ファイルの中身をコマンドの標準入力へ |
コマンド >> ファイル | コマンドの出力結果をファイルへ追記 |
コマンド 2> ファイル | エラー出力をファイルへ書き込む |
コマンド 2>> ファイル | ファイルにエラー出力を追記 |
コマンド > ファイル 2>&1 | ファイルに標準出力と標準エラー出力を書き込む |
コマンド >> ファイル 2>&1 | ファイルに標準出力と標準エラー出力を追記 |
コマンド << 終了文字 | 終了文字が現れるまで標準入力へ送る |
コマンド &> ファイル | 標準出力と標準エラー出力を同じファイルに書き込む |
コマンド > /dev/null 2>&1 | 表示をしない。(表示をゴミ箱へ) |
パイプ( | )とリダイレクト( > )を使えば複数のコマンドを繋いで快適に処理を行う事が可能になります。
まとめ
次の用語について理解できましたか?
- 端末エミュレータ
- シェル
- 標準入力
- 標準出力
- 標準エラー出力
- パイプ
- リダイレクト