Linux端末利用の手引き--1999.5.19
電子制御システム工学科計算機実習室
Linux端末利用の手引き
1. 基本構成
1.1 ソフトウェア
オペレーティングシステム(OS)
コンピュータを制御する基本ソフトウェア
計算機、周辺機器の制御、管理
アプリケーションと計算機の間の仲立ち
本システムにおいてはDebian GNU/Linux 2.2 (Slink)を使用
アプリケーションソフトウェア
GNUプロジェクトによるフリーソフトウェアを中心としたフリーソフトのみで構成
インストールされているソフトウェアの例
名称 用途
TkDesk ファイルマネージャ
vi テキストエディタ
Emacs 統合環境テキストエディタ
Netscape Communicator WWWブラウザ
Xterm 端末エミュレータ
Kterm 日本語対応端末エミュレータ
C プログラム言語
C++ オブジェクト指向プログラム言語
Fortran 数値計算プログラム言語
Perl オブジェクト指向スクリプト言語
FVWM ウィンドウマネージャ
Tgif ドローソフト
TeX 日本語対応組版ソフト
GIMP フォトレタッチソフト
1.2 ハードウェア
本体
日立Flora350
Intel PentiumII 266MHz / RAM128MB / HD 2GB (ext2用)
光磁気ディスクドライブ(230MB / 128MBディスク用)
フロッピードライブ(1.44MB / 720kBディスク用)
CD-ROMドライブ
JIS配列89キーボード
PS/2インターフェイス3ボタンマウス
2. 起動と終了
2.1 起動
本体の正面向かって右側の○マークのスイッチを、本体正面向かって左側のランプがオレンジ色から緑色に変わるまで押しつづける
ディスプレイの電源が入っていない場合は、ディスプレイの正面向かって一番右のスイッチも押す。左横のランプが緑色になっていることを確認。
メモリチェック、BIOSチェック終了(約45秒)後、ディスプレイ左上に
LILO BOOT
と表示されたら、15秒以内に
linux
とキーボードから入力し、エンターキーを押す。
本機は LILO (LInux LOader) というブートローダーによりLinuxとNTのどちらか一方を起動できるようにしてある。
起動プロセスが順次表示され、ログイン画面が出ると起動完了。
2.2 停止
コマンドライン(後述)から
halt
とキー入力し、エンターキーを押す。
停止プロセスが実行された後、最後の行に
System halted
と表示されると停止プロセス終了。
電源ボタンを4秒以上押し続けて電源を切る。ディスプレイの電源も切る。
本機においては、ユーザーが停止操作をできるようにしてあるが、通常のUNIX(Linux)システムでは、システム管理者のみが停止操作を行う権限があるので、他の端末を利用するときは注意すること。
3. 基本操作
3.1 ログイン
Login:のプロンプトに続けて自分のユーザ名を入力し、エンターキーを押す。
Password:プロンプトが表示されるのでパスワードを入力し、エンターキーを押す。このとき、入力中のパスワードは表示されない。
ログイン操作が完了すると、シェルが起動し$プロンプトが表示される。
シェルとはユーザからの入力をOSに渡し、OSからの命令をユーザに分かる形で表示するインターフェイスであり、MacにおけるFinderに相当する。(Windowsには存在しない。)シェルは各種のコマンド入出力のインターフェイスや画面環境設定のみでなくそれ自身がスクリプトによりプログラム言語として各種の操作を行なえる機能を有している。
本システムではbash (Bourne Again SHell) をユーザのデフォルトシェルとしており、このシェルにはヒストリ機能、補完機能など覚えておくと便利な機能が揃っているので、順次説明する。また、インターフェイスや各種設定を自分の好みに近付けるように設定ファイルにより設定変更ができる。
他の高機能シェルとしてはtcshやzshがあるが、tcshはコマンドラインから/bin/tcsh コマンドにより切り替えることができる。
3.2 基本コマンド
ls (LiSt)
現在のディレクトリにあるファイルの一覧を示す。
UNIXコマンドには引き数を取るものが多くあるが、これもその一つであり、
-l: パーミッションなどを含む詳細表示
-a: .で始まるファイルも表示する
引き数は複数組み合わせて利用することもでき、
ls -l
ls -a
ls -al
等が利用できる。
詳細は、
man ls
と入力することにより得られる。
pwd (Print Working Directory)
現在自分がいるディレクトリを表示する。
cd (Change Directory)
ディレクトリを移動する。
相対パスと絶対パスの二通りの記述方法がある。
UNIXシステムにおいては/がディレクトリを表す記号であり、/のみで表されるディレクトリをrootディレクトリと呼ぶ。また、すべてのディレクトリは/から辿れるツリー構造をしており、DOSの様なA:やB:という独立したファイルは存在しない。よって、新しいファイルが加わった場合には、どこかにつなげる必要があり、その操作をマウントと言う。
相対パスとは自分が現在いる場所との関係で記述したパス(道筋)であり、絶対パスとは/からの階層を全て含めて記述したパスである。
cd /
とすると、ファイルシステムの頂点であるルートディレクトリに移る。そこで、lsとすると主要なディレクトリが表示される。
bin (BINary): 共通で利用するコマンド類
dev (DEVice): デバイスファイル
etc (ETCetra): 各種設定ファイル
home: ユーザのホームディレクトリを格納する
mnt (MouNT): 外部装置をマウントする領域
sbin (System BINary): 管理者が使用するコマンド類
tmp (TeMPorary): 一時的なファイルの保存場所
usr (USeR): ユーザが利用する各種アプリケーション類
var (VARiable): ログファイル等の保存場所
再びホームディレクトリに戻るには
cd /home/hoge
とする。(このシステムにおいては特殊な構造になっており異なる。)また、
ch ~
としても、ホームディレクトリに移動することができる。
相対パスの例は、
cd ..
とすると、親ディレクトリ(一階層上のディレクトリ)に移動する。今、ホームディレクトリに戻るには、
cd /home/hoge (絶対パス)
cd hoge (相対パス)
cd ~
がある。また
cd ../../../..…
とすると、必要なだけ上の階層に移動することができる。
cat (conCATinate)
ファイルの内容を表示する。
cat .bash_profile
と入力するとbashの設定ファイル一覧を見ることができる。concatinateとは連結と言う意味であり、このコマンドの本来の目的はファイルの連結である。また、簡単な入力エディタとしても利用できる。
cat > test
と入力すると、改行されてプロンプトが表示されなくなるので、ここで、
test
と入力し、コントロールキーを押したままdを押す(^d、以後、コントロールキーを押したまま他のキーを押す場合には^で表記する。)と、内容がtestで、名前がtestと言うファイルがディレクトリ内に作成される。lsで確認した後、
cat test
とすると、内容が表示される。ここで cat > test で用いた>の記号はリダイレクト(迂回)を表す記号であり、通常のコマンドの出力先が標準出力であるのに対し、特定のファイルに結果を格納することを意味する。UNIXが複数のコマンドを連結して複雑な処理をする際に基本となる概念のひとつである。
ps (ProceSs)
現在処理を行っているプロセス(作業の単位)を表示する。引き数を取ることができ、
ps ax
とすると、自分以外のユーザ、システムが実行しているプロセスを全て表示する。ここで、
ps > process
と入力すると、画面には何も表示されない。psコマンドが本来出力する先はディスプレイであるが、このように通常の出力先を標準出力と言う。ここでは、リダイレクトを利用して、標準出力の代わりにprocessというファイルを作成し、その中にコマンドの出力結果を入れている。
cat process
とすると、psコマンドの出力を見ることができる。
これまで各種のコマンドやファイル名をキーボードから入力して来たが、このような操作をコマンドラインからの入力と言い、UNIXの最も得意とするインターフェイスである。実際、慣れてくると単純な作業はコマンドラインから行うのがもっとも効率が良いことが分かる。しかし、そのためにはコマンド入力を楽にするための機能が必要であるのでしばらくはそれについて説明する。
補完
Tabキーを押すことによりファイル名やコマンド名などを補完することができる。
cd /us
と入力してTabキーを押すと/usrと表示されるので、続けて
/loc
と入力し、Tabキーを押すと/localと補完される。さらに、
/et
でTabを押すと補完され、結局
cd /usr/loca/etc
が完成する。
実際に目的のディレクトリやファイル名が存在するかをTab補完で確認しながらすすめることは初心者のうちには意義がある。
次は、
cat /etc/hos
まで入力した後に、Tabキーを押すと、警告音のみで補完が行われない。これは、補完するべき文字が一意に決まらない場合で、続けてTabキーを押すと補完候補一覧が表示されるので、あと何文字か入力して、候補が確定すればTab補完できる。ここでは、ts.aまで入力して補完すると
cat /etc/hosts.allow
が実行できる。
ヒストリー
自分が入力した過去のコマンドの一覧表がhistoryコマンドにより表示される。このヒストリーが覚えている最大のコマンド数はshellの設定ファイルに記述されている。実際に利用して便利なのは↑↓のキーである。↑キーを押すと、前回入力したコマンドがプロンプトに表示されるのでエンターキーによりコマンドを再実行できる。↑キーを押す度に一つ前のコマンドが表示される。↓は再び新しいコマンドの方へヒストリーを下って行く。検索によりはじめの文字が一致するヒストリーを探す機能もあるが、これは表示だけではなく実行してしまうので、使用には注意が必要であり、なれるまでは利用しない方が良い。
パイプ
コマンドの標準出力を他のコマンドの標準入力につなげる。
>により標準出力をファイルに保管することを学習したが、パイプは他のコマンドの入力とする機能である。
dmesg
は、起動時の処理を画面に表示するコマンドであるが、一画面には納まらないのでスクロールアウトして見えなくなってしまう。そこで、
dmesg | more
と、dmesgの結果をmoreというページャに入力すると、一画面ずつ表示したところで止まるので、読むことができるようになる。
more
はcatよりも高機能なファイル内容表示コマンドであり、同じ機能を有するlessとともに良く使われる。moreに関しては、MS-DOSでも良く用いられてきたが、DOSはUNIXを手本としてできたOSであるので、同じような機能が用意されている場合が多い。
cp (CoPy)
コピーコマンド
ファイルをコピーする。書式は、
cp test test2
のようになり、これにより先程作成したtestと言うファイルと同じ内容のファイルがtest2と言う名前で作成される。
mkdir (MaKe DIRectory)
ディレクトリを作成するコマンド。
mkdir demo
として、demoと言う名前のディレクトリを作成し、lsコマンドにより確認できる。
rm (ReMove)
ファイル削除
ファイルを削除する。書式は
rm test2
のようになる。このコマンドは引き数により各種の動作をさせることができるが、例えば、
rm -i test
とすると、削除してもよいか訪ねてくる。(ここでは消さないように)また、ディレクトリはrmコマンドでは消去できないが、
rm -rf hoge
とすると、強制的にファイルを削除できる。危険なので慣れないうちは利用しないこと。
mv (MoVe)
ファイルの移動コマンド
ファイルを移動する。cpコマンドと同じ書式によりファイルを移動できる。
mv test2 demo
とすると、demoディレクトリにファイルを移動する。
もう一つの機能としてファイルの名前を変更することができる。
cd demo
mv test2 test3
とすると、test2ファイルはなくなり、test3ファイルが作成される。mvコマンドで注意するのは、異なるファイルシステム間ではファイル移動ができないことでその場合には実際にはコピーが行われる。ファイルシステムに関しては、後で記述。
ワイルドカード
?や*によりファイル名を省略できる。
?: 任意の一文字
*: 0文字以上の任意の文字列
cp * ../
とすると、ディレクトリ内のすべてのファイルを親ディレクトリにコピーする。
他にも種々のコマンドがあるので、個別に説明はできないが以下のコマンドを実行して結果を確認すること。
date
cal
cal 1
cal 9 1999
whereis halt
また、以下に知っておくと便利なコマンドを示す。
df (Disk Free)
ディスクの使用状況を確認するコマンド。一台のハードディスクをシステム上は複数のディスクにわけて使用することが多い。それを、パーティションを切ると言うが、そうすることにより、保守上のメリットがある。ディスクに異常が生じた時はパーティション単位で情報が読み出せなくなるので、パーティションを切ることにより被害を特定の領域に押さえることができる。また、ファイルの使用効率をあげることもできるが、これについては省略する。異なるパーティションにあるファイルは異なるファイルシステムとなるので、上述のmvコマンドの注意事項に気をつけること。
free (FREE memory)
メモリの使用状況を見るコマンド。
ifconfig (InterFace CONFIGuration)
ネットワーク接続のインターフェイスを設定、確認するコマンド。UNIXにおいては、自分自身と通信するためのループバックアドレスが必ず存在し、それに加えてEthernet等のインターフェイスを持つ。loがLOop backアドレスを意味し、eth0はETHernet の0番目のインターフェイスを意味する。複数のEthernetインターフェイスがある場合にはeth1, eth2となっていく。一般ユーザは
/sbin/ifconfig
として実行できる。
ここには、EthernetカードのMACアドレスが表示され、また、IRQ (Interrupt ReQuest)というCPUに対して利用のために割り込みをかける時のアドレスも表示される。
netstat
ネットワークの接続設定を確認するコマンドで、
netstat -rn
として利用する。各ネットワークインターフェイスがどのようにして外部と接続しているかが確認できる。
3.3 応用機能
LinuxをはじめとするUNIXには仮想コンソールと言う概念がある。
cat /etc/passwd
で、ユーザ一覧を表示したまま、別の作業をしたい場合には、そのまま
コントロールキー+Altキー+F2きーを押すと新たなログインが面が表示される。ここでログインを行い、別の作業が実行できる。仮想コンソール間の移動はCtl+Alt+F1 or F2により行なえる。Linuxでは4つまで仮想コンソールが利用できるので、F4キーまで利用できる。psコマンドを使うと、catコマンドがプロセスとして生きていることが分かる。
また、
who
コマンドを実行すると、自分が複数の端末からログインしていることが表示される。whoは現在端末にログインしているユーザの一覧を示すコマンドである。
ping
ホストが稼動しているか調べるコマンド
ping www.ecs-s.shimane-u.ac.jp
と入力してエンターキーを押すと、自分の端末から送った信号が何秒で目的ホストまで行って戻ってきたかが表示される。特定のホストがネットワーク上で生きているか調べる重要なコマンドであり、WindowsやMacでも利用できる。このコマンドは永久に信号を測定しつづけるので、適当なところで^Cにより停止する。
telnet
UNIXにおいてリモート端末と通信するもっとも基本的なプロトコルであるTELNETを利用するコマンドである。
telnet www.ecs-s.shimane-u.ac.jp
とすると、コネクションが張られた後に、実際にホームページを置くサーバのログインプロンプトが表示されるので同じようにログイン作業を行うと、ログインできる。ここでは、相手先もUNIXシステムのばあい、自ホストで作業するのと同じ感覚でリモートのホストで作業できる。ログイン後、
mkdir public_html
と、入力しディレクトリを作成すること。このディレクトリがホームページの原稿を置く場所になる。UNIXがネットワークに強いのは、このtelnetによる作業が可能であることが大きな理由である。どこからでも回線さえ繋がれば必要な作業が全てリモートで行なえるので、サーバ等の設定の際にサーバの前で作業する必要がないし、GUI (Graphical User Interface) を用いたシステムのように回線の転送速度を要求することもない。ppp接続でも十分に利用できる。
ファイルの属性
UNIXはマルチユーザ環境を実現するためにファイルに以下に示すような属性が付いている。これにより他人のファイルを消去したり書き加えたりできないようになっている。
ls -l
として、ディレクトリの属性を表示させる。一番左のdはディレクトリであることを示す。次からは3文字ずつファイルの所有者、グループ、その他のユーザの権限を示す。rは読み出し許可、wは書き込み許可、xは実行許可をそれぞれ示す。この属性を変更するにはchmod (CHange MODe) コマンドを使用する。
本来のchmodコマンドは例えば
chmod u+wg-wo-wx hoge
のように、u(ユーザ、所有者)にw(書き込み許可を加える)、g(グループ)からはwを取り上げる、o(その他のユーザからはwとxを取り上げると言うように記述をするが、それらを一括して扱う方法もある。これにはrを4、wを2、xを1として和を取る方式が用いられる。
chmod 444 public_html
chmod 644 public_html
chmod 755 public_html
などとしてそれぞれls -lにより属性の変化を見てみること。このコマンドはファイルの所有者および管理者のみが実行できる。ただし、誰にでも書き込み権限を与えることはセキュリティ上問題であるので、通常は行わないこと。また、ディレクトリにおける書き込み権限はディレクトリ内のファイルに対してであり、実行権限とはディレクトリの中を見せる権限のことを意味する。ここでは、最終的に
drwxr-xr-x
となればよい。参考までに、
ls -l /home
として、自分のホームディレクトリも
drwxr-xr-xとなっていることを確認せよ。
4. 仮ホームページの作成
4.1 現在の端末での準備
仮想コンソールにより別のコンソールを起動し、再度ログインする。
cat > index.html
として、コンソールから適当に
<html>
と入力して^dする。次に、高機能テキストエディタであるemacsを利用してwebページ原稿を作成する。
emacs index.html
と入力すると、emacsが起動して画面に文書が表示される。以下のような文章を作成する。
<html>
<body>
<title>
hoge's homepage
</title>
<h1>
hoge's homepage</h1>
<h3>
Sorry!<p>
Now , under construction.<br>
Pease wait for a moment.</h3>
<p>
<hr>
<a href="mailto:hoge@ecs-s.shimane-u.ac.jp">hoge@ecs-s.shimane-u.ac.jp</a>
<p>
</body>
</html>
作成しおえたら^x^s(コントロールキーを押しながらxを押した後、コントロールキーを押しながらsキーを押す)とする。下の方の小窓に書き込んだ旨が表示されるので確認したら、^x^cとしてemacsを終了する。
4.2 ファイル転送
ftp
FTPプロトコルによりファイルを転送するコマンド。
ftp mag2.riko.shimane-u.ac.jp
と入力してサーバに接続されるのを待つ。ログイン画面が表示されたらログイン作業を行う。ディレクトリを確認して自分のホームディレクトリのpublic_htmlディレクトリに移動する。なお、標準のftpコマンドを利用した場合には補完機能は働かない。
put index.html index.html
として、先程作成したファイルをサーバに転送する。
bye
と入力してftpを終了する。
元のコンソール(www.ecs-s.shimane-u.ac.jpと繋がっているコンソール)に戻り、public_htmlディレクトリにおいて
ls -l
コマンドを使って、index.htmlファイルの属性が
-rw-r--r--
であることを確認する。(そうでない場合はそうする。)
4.3 wwwブラウジング
wwwページを実際に閲覧する。自ホストに接続しているコンソールに戻り、
lynx http://www.ecs-s.shimane-u.ac.jp/~hoge
と入力し、自分のページが表示されるか確認する。ちゃんと表示されたら、^cを入力してlynxを終了する。
-#-