1.GUIとCGI、シェル
- WindowsはGUI(グラフィカルユーザーインターフェース)を基本とするが、LinuxはCGI(キャラクターユーザーインターフェース)を基本としており、コマンド操作が便利。
- Linuxの核カーネルとユーザの間に立ち、ユーザの入力(コマンド)をカーネルに伝え、カーネルの出力をユーザに伝える役割を担っているのがシェル。
- ユーザは、端末を利用してシェルを介してカーネルを操作する
2.端末(ターミナル)エミュレーター
高価なUNIXに安価な入出力装置を複数接続し、複数人でUNIXを操作した。その入出力装置を模倣したアプリを端末エミュレーター(ここでは単に「端末」とする。)と呼ぶ。
$ ← (コマンド)プロンプト
シェルがコマンドの入力を待っている状態。
ここにコマンド打ち込み最後にENTER KEYを押せば、そのコマンドをシェルがカーネルに伝え、カーネルの出力をシェルが受け取って端末に結果が出力される。
3.コマンド、オプション、引数
コマンド(command)の書式は、一般的に次の形になっている。
コマンド [オプション] [引数]
オプションはコマンドの基本的な機能にプラスアルファを加えるもの
オプションの形式には以下の3通りがある。見た目フルネームのGNU形式がわかりやすいが、あまり長いと覚えきれない。
しかもlsコマンドのように通常のオプションはUNIX形式、ヴァージョン表示はGNU形式と2通りのオプション形式を持っている。
覚えきれないので、統一してくれないか?と思うが!
最悪3通りのヘルプ表示をやって、それからオプションをつけるという回りくどい操作が必要となる。
形式 | |
UNIX98形式 | 先頭にハイフンをつけて、複数のオプションをまとめて指定する。例 ls -al |
BSD形式 | 先頭に何もつけず、複数のオプションをまとめて指定する 例 openssl version |
GNU形式 | 先頭にダブルハイフンをつけて長い名前でオプションを指定する ls –version |
引数は コマンドに渡す「値」で「ひきすう」と読むそうだ。
なぜ引くんだ。コマンドに渡すんのであれば増数ではないのか?まぁそれは冗談として。
例えば、cat コマンドはテキストファイルの内容を表示するが、これにどのファイルか?引数でこれを指定してやらなければならない。
$ cat test.txt
This file is test
てな具合に!
3.パスとディレクトリ
Linuxでは、ルートディレクトリを頂点とするツリー構造にディレクトリ( directory )、ファイル( file )が配列されている。
この構造を、ファイルが自分の家、ルートディレクトリは駅、ディレクトリを〇〇丁目、そして△△番地に例えると、
駅を降りた自分が家路につくには、駅⇒〇〇丁目⇒△△番地⇒自分の家ということになるが、
この道順を書いた地図がパス( path )という関係になりそう!
(1)絶対パス
必ずルートディレクトリからファイルを表記する。/home/user/text/test.txt
(必ず駅から道順をたどるやり方)
(2)相対パス
今自分のいるディレクトリからファイルを表記する。 ~/text/test.txt
(〇〇丁目にいるのであれば△△番地の表示だけで家にたどり着けます。)
(3)現在のディレクトリ
道がわからなくなったときには自分が今どこにいるのかをはっきりさせることが大事です。これが pwd( present working directory )コマンド。
このコマンドなんの略?っていつも思っていたが、今回調べてみた https://techacademy.jp/magazine/6455
この意味か?ってわかると覚えやすいと思う。
$ pwd
/home/user/text
(4)ディレクトリの移動
現在地がわかったら目的のところに移動し直さなければならない。ディレクトリを移動するコマンドが cd (chenge directory)コマンド。
使い方 | 意味 |
cd ./ | 現在を動かない |
cd ../ | 一つ上に移動 ../../にすると2つ上に移動 |
cd /home/usr/text | 絶対パス指定 |
cd ~/text | 相対パス指定 |
cd $HOME | 自分のホームディレクトリへ移動 |
4.コマンドの処理の仕方
コマンドの種類 | 説明 | 特色 |
シェルの組み込みコマンド | シェルの内部コマンド | 外部の助けを借りない |
PATHで指定されたディレクトリ内の実行可能ファイル | /binとか/sbinなどのディレクトリに格納されたコマンド | シェルはPATHで指定された場所から探し出して実行 |
パス指定による実行可能ファイル | 任意のディレクトリに格納されたコマンド | (絶対・相対)パス指定しないと実行できない |
5.環境変数
シェルがある値を取り込む機能を有しているが、その値を決めるのが環境変数またはシェル変数という。両者の違いは、シェル変数がそれを定義したシェルでしか使用できないのに対し、環境変数はシェルが呼び出した子プロセスにも値を渡せることである。
環境変数名 | 内容 |
HOME | ユーザのホームディレクトリのパス |
PATH | コマンド検索するパス |
LANG | 使用中の言語、文字コード |
HOSTNAME | ホスト名 |
これらの値は env または printenv で確認できる。
コメント