コンテンツにスキップ

Linux リテラシ2006 - 第1回 Linux の基礎知識と基本コマンド1

Linuxはオペレーティングシステム(以下OSと略す)であり、WindowsやMac等もOSの一種です。1991年、当時フィンランドのヘルシンキ大学の大学院生であったライナス氏(Linus Torvalds)によって開発され、オープンソースソフトウェアとしてインターネット上に公開されました。
オープンソースソフトウェアとは誰でもソースコードを閲覧でき、ライセンスによってはそれを修正したり、再配布することが出来ます。主要なオープンソースソフトウェアのためのライセンスとしてGNUの「GPL(General Public License)」やBSDの「BSD License」があります。
Linuxは米AT & T 社(当時)のベル研究所で開発されたUNIXと同等の機能を持っていながら、現在では高い安定性をもち、無料で利用できるため様々な目的で使用されています。

Linuxの中核はカーネルというプログラムで出来ています。Linuxを誰でも手軽に利用してもらうために、カーネルの上で動く様々なアプリケーションやユーザインターフェースを利用しやすいようにカーネルと一緒に一つにまとめて配布するという人々が現れ、それのまとめたものをディストリビューションと言います。またその中から、まとめたものをサポートする権利を販売するRed Hat社などのディストリビューターがいます。

ディストリビューションは100種類以上あり主にRed Hat系、Debian系、Slackware系、Turbo Linux系などがあります。

Linuxは安定性の面で高い評価を得ています。
サーバとして使用されるコンピュータは、停止してしまうと多くのユーザに影響を及ぼしてしまうため高い安定性が要求されます。Linuxはオープンソースソフトウェアという様々な分野の専門家が手を出しやすい環境で開発されているので、技術者達がコミュニケーションを図り、知恵を出し合う事によって問題が修正されるシステムになっています。またLinuxをターゲットとしたウィルスはWindowsに比べ少なく、その安定性の高さからLinuxは現在サーバに使用されるオペレーティングシステムとして広く普及しています。

ユーザインターフェースとはコンピュータとユーザが情報をやりとりするための手段のことで、Windowsのように情報の表示にグラフィックを利用し、マウスを主体として操作するGUI (Graphical User Interface) と、キーボードを主体として情報の表示を文字だけで操作をする CUI (Character-based User Interface) があります。

ファイルシステムとはハードディスク等の記憶装置上でデータがどこに、どのように格納されているかを管理するシステムです。
ファイルシステムにはファイルやディレクトリ(フォルダ)の作成、削除、移動を行う方法や、データを記録する方式、管理領域の場所等が定められていて、Linuxで使用されているファイルシステムの特徴として以下のようなものがあります。

Linuxではファイル名の大文字と小文字を区別します

ファイル名が.(ドット)から始まるファイルのことを指します。
ドットファイルは隠しファイルになっていて、通常は表示されません。
Linuxでは主にユーザごとの環境設定に使われています。

ディレクトリとはファイルを分類、整理などをするための保管場所のことをいいます。Windowsで言うフォルダと同じです。

’/‘というディレクトリはすべてのディレクトリの最上階層にあり、ルートディレクトリと呼ばれます。そのためすべてのユーザのデータはルートディレクトリの下に作成されます。

ユーザ個人のデータを置くためのディレクトリで、特に設定していない限り/home以下にユーザの名前で用意されます。

ユーザが現在作業を行なっているディレクトリのことで、作業ディレクトリとも呼ばれます。

ファイルの場所を指定する場合、絶対パスと相対パスの2種類の方法があります。

  • 絶対パス ルートディレクトリを基点にしてファイル名まですべての道のりを書きます。
    また、ディレクトリやファイルなどの階層を’/‘で結びます。

  • 相対パス カレントディレクトリを基点にしてファイルを指定します。
    カレントディレクトリにあるファイルはファイル名だけで指定することができます。
    これもまた、ディレクトリやファイルなどの階層を’/‘で結びます。

  • 特殊な文字 次の文字は(絶対パス以外の)パスの指定において特別な意味を持ちます。
    :.:カレントディレクトリを指します。
    :..:ひとつ上のディレクトリを指します。
    ::ユーザのホームディレクトリを指します。「/sample.txt」はホームディレクトリ直下にあるsample.txtのことを表しています。

例(図)

tree.png

カレントディレクトリがhogeのとき、上の図のファイルやディレクトリの絶対パスと相対パスは以下のように表記されます。

絶対パス 相対パス
/ / ../..
home /home ../
hoge /home/hoge ./
sample.txt /home/hoge/sample.txt ./sample.txt

LinuxをCUIで操作するにあたってコマンドというものを利用します。

コマンド [オプション] [第一引数] [第二引数] …

コマンドの基本形は上記のような形となり、各項目間を半角スペースであける必要があります。コマンドの表記で[ ]でくくられているものは、指定しなくてもコマンドが機能するものを表しています。またオプションを指定することにより、コマンドに様々な機能を付加することができます。引数にはコマンドの実行対象のファイルを指定することが多いですが何を引数とするか、またいくつまで引数をとることができるかは各コマンドにより異なります。

Linuxにはスーパーユーザ、一般ユーザが存在します。

Linuxはマルチユーザシステム(複数のユーザが同時にログインして利用できるシステム)なので、ユーザ間のセキュリティ問題が発生しないように、スーパーユーザと呼ばれる管理者によって厳密に管理されています。スーパーユーザはrootというユーザ名で、すべてのファイルを操作できたり、システム管理用の特別なコマンドの実行や、一般ユーザの登録と削除等ができ、Linux内で絶大な権限を持っています。

一方、一般ユーザとはスーパーユーザとは違いシステムの変更などの作業はほとんどできません。そのためシステムに対して比較的安全に作業を行うことができます。

新しいユーザを追加するときはuseraddというコマンドを使用し、rootのみ行うことができます。

useradd [オプション] ユーザ名
# useradd hoge

パスワードを設定するときはpasswdというコマンドを使用し、useraddコマンドを使用します。

passwd [ユーザ名]

一般ユーザ’hoge’のパスワード設定をする

Section titled “一般ユーザ’hoge’のパスワード設定をする”
Terminal window
$ passwd hoge
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

パスワードはセキュリティの都合上画面に表示されないので注意しましょう。またパスワードを設定するとき、簡単なパスワードで設定しようとすると警告が表示されるで、なるべく英字と数字を混ぜて出来るだけ長いパスワードを設定しましょう。

suというコマンドを使用することによって、一時的に別のユーザになることができます

su [オプション] [ユーザ名]

:-:新規ログインしたのと同じ状態になり、新しいユーザ環境が設定される

’-‘が無い場合は現在のユーザ環境が引き継がれます。つまりカレントディレクトリの位置は変わりません。また、ユーザ権限の違いでファイルやディレクトリにアクセスできないことで警告されやすいので注意しましょう。

ファイルやディレクトリの情報を表示する

Section titled “ファイルやディレクトリの情報を表示する”

内容を表示するときはlsというコマンドを使用します。

ls [オプション] [ディレクトリ名/ファイル名]

ファイルやディレクトリを指定すると、そのファイルやディレクトリの情報を表示することができます。また何も指定しない場合は、カレントディレクトリの内容を表示します。

:-a:すべてのファイルを表示する
:-l:ファイルの詳細情報を表示する。

ディレクトリの新規作成するときはmkdirというコマンドを使用します。

mkdir [オプション] ディレクトリ名

:-p:途中のディレクトリも同時に作成する

Terminal window
$ mkdir dir

dr1とdr2のディレクトリを作成する

Section titled “dr1とdr2のディレクトリを作成する”
Terminal window
$ mkdir dr1 dr2

ディレクトリdr1とその下のディレクトリdr2を同時に作成する

Section titled “ディレクトリdr1とその下のディレクトリdr2を同時に作成する”
Terminal window
$ mkdir -p dr1/dr2

ディレクトリを削除するときはrmdirというコマンドを使用します。このコマンドはディレクトリの中身が空でないと削除できないようになっています。そのため、ディレクトリ内にファイルや別のディレクトリがあるときは、それらを先に削除してから、rmdirコマンドを使用しましょう。

rmdir [オプション] ディレクトリ名

:-p:途中のディレクトリも同時に削除する

Terminal window
$ rmdir dir

ディレクトリdr1とその下のディレクトリdr2を同時に削除する

Section titled “ディレクトリdr1とその下のディレクトリdr2を同時に削除する”
Terminal window
$ rmdir -p dr1/dr2

カレントディレクトリを移動するときはcdというコマンドを使用します。

cd [ディレクトリ名]

ディレクトリを指定ない場合、ユーザのホームディレクトリへ移動します。

カレントディレクトリをdirに変更する

Section titled “カレントディレクトリをdirに変更する”
Terminal window
$ cd dir

一つ上のディレクトリに移動する

Section titled “一つ上のディレクトリに移動する”
Terminal window
$ cd ..

直前にいたのディレクトリに戻る

Section titled “直前にいたのディレクトリに戻る”
Terminal window
$ cd -

カレントディレクトリを表示する

Section titled “カレントディレクトリを表示する”

自分が現在いるディレクトリを知りたい時、pwdコマンドを入力すると絶対パスで自分のいるディレクトリを見ることができます。

Terminal window
$ pwd
/home/hoge

コマンドの使用方法などのマニュアルを表示する

Section titled “コマンドの使用方法などのマニュアルを表示する”

コマンドについて分からないことがあれば、manというコマンドを使用することによって、コマンドのマニュアルが表示されて調べることができます。

man [オプション] コマンド名

:-k:すべてのマニュアルページからキーワードを検索します。
:セクション番号:番号を指定することで、(存在する場合)そのセクションに合ったマニュアルを参照することができます。
+ユーザコマンド
+システムコール
+関数やライブラリルーチン
+特殊ファイル、デバイスドライバ、ハードウェア
+設定ファイルをファイル形式
+ゲームとデモ
+その他(文字セット、ファイルシステムタイプなど)
+システム管理用コマンド
+カーネル関係

lsについてのマニュアルをセクション1から探して表示する

Section titled “lsについてのマニュアルをセクション1から探して表示する”
Terminal window
$ man 1 ls
LS(1) LS(1)
名前
ls, dir, vdir - ディレクトリの中身をリスト表示する
書式
ls [options] [file...]
POSIX オプション: [-CFRacdilqrtu1]
GNU オプション (簡略形式): [-1abcdfghiklmnopqrstuvxABCDFGHLNQRSUX] [-w
cols] [-T cols] [-I pattern] [--block-size=SIZE] [--classify]
[--color[={none,always,auto}]] [--file-type] [--full-time] [--for-
mat={across,commas,long,single-column,verbose,vertical}]
[--human-readable] [--indicator-style={none,file-type,classify}]
[--quoting-style={c,clocale,escape,literal,locale,shell,shell-always}]
[--show-control-chars] [--si] [--sort={none,extension,size,time,ver-
sion}] [--time={atime,access,ctime,status,use}] [--help] [--version]
[--]
説明
プログラム ls は、最初にディレクトリでない引き数 file をリスト表示する
。それから、ディレクトリである引き数について、それぞれのディレクトリに
(以下省略)

表示を終了したいときは’q’を押して終了します

コマンドラインオプションを簡単にまとめて表示する

Section titled “コマンドラインオプションを簡単にまとめて表示する”

多くのコマンドはオプションに—helpを指定することにより簡単なマニュアルを表示することができます。

コマンド名 --help

lsのコマンドオプションを表示する

Section titled “lsのコマンドオプションを表示する”
Terminal window
$ ls --help
使用法: ls [オプション]... [ファイル]...
指定されたファイルの情報をリスト出力する(指定なければ現在のディレクトリ)。
-cftuSUX --sort の指定がなくても、アルファベット順で整列する。
長いオプションに必須の引数は短いオプションにも必須です.
-a, --all do not hide entries starting with .
-A, --almost-all do not list implied . and ..
--author print the author of each file
-b, --escape print octal escapes for nongraphic characters
--block-size=SIZE ブロックサイズを SIZE とする
-B, --ignore-backups 末尾に '~' がつくファイルをリスト表示しない
-c -lt 付き: ctime(最終更新時刻) でソートして表示
-l 付き: ctime を表示する。名前でソートする
その他: ctime でソートする
-C list entries by columns
--color[=WHEN] control whether color is used to distinguish file
types. WHEN may be `never', `always', or `auto'
-d, --directory list directory entries instead of contents,
and do not dereference symbolic links
-D, --dired generate output designed for Emacs' dired mode
(以下省略)

他に分からない事があればGoogleで検索してみる等、まず自分で調べることを心がけましょう。
Google → http://www.google.co.jp/

Linux JF Project → http://www.linux.or.jp/JF/

Linux JM Project → http://www.linux.or.jp/JM/