目次


Windows から Linux へのロードマップ

第 2 回 コンソール集中コース

Linux コンソール早分かり

Comments

コンテンツシリーズ

このコンテンツは全#シリーズのパート#です: Windows から Linux へのロードマップ

このシリーズの続きに乞うご期待。

このコンテンツはシリーズの一部分です:Windows から Linux へのロードマップ

このシリーズの続きに乞うご期待。

Linux では、どの管理作業もコンソールから行うことができます。多くの場合、コンソールを使う方がグラフィカルなプログラムを使うよりも早いですし、追加機能が付いている場合もあります。さらに、コンソールからの作業はスクリプトに置き換え可能なので、自動化できます。Linux 環境を本当にコントロールするには、作業をコンソールからどう行うかを学ぶ必要があります。今回の記事は、DOS/Windows での経験がある人が Linux コンソールで始めるための案内です。

コンソールにアクセスする

システムがテキスト・モードでブートするなら (サーバーではサービスのオーバーヘッド節約のためにテキスト・モードに設定されているのが普通です)、テキストでのログイン実行で既にもうコンソールに向かっていることになります。典型的な Linux システムでは Ctrl + Alt + (F1 - F6) を押すことで、追加コンソールを持つことができます。各コンソールはシステム上完全に別セッションで、別のユーザーが同時にアクセスすることができます。

このマルチ・コンソール機能は Windows のマルチ・デスクトップとは違います。Linux では、各コンソールを全く別のユーザーがコントロールできるのです。例えば、コンソール 1 で root としてログインし、コンソール 2 では joeuser としてログインすることができます。両方のコンソールからそれぞれ別のユーザー空間で、異なるプログラムを実行できるのです。同じ理屈で、別のユーザーが遠隔から Linux システムにログインすることもできます。こうした意味では Linux は簡単なサーバーやワークステーションよりも、むしろメインフレームのような機能を持っていると言えます。

グラフィカル・モードにいる場合は、terminal を開いてコンソール画面にアクセスします。ターミナルは普通、デスクトップのタスクバーにボタンがあるか、プログラム・メニューのシステム・ツールの下にあります。ターミナルはコンテキスト・メニュー (デスクトップで右クリック) から開くこともできます。

コマンド

コンソールから実行できるコマンドは数多くありますが、その一部はスクリプトを書くときに真価を発揮するものです。まず最初に必要なコマンドとしては次のようなものでしょう。全コマンド、オプションは大文字小文字を区別することを思い出してください。-R-r は意味が違い、違ったことをします。コンソール・コマンドはほとんど常に小文字です。

cd
ディレクトリを動き回るにはおなじみの cd コマンドを使います。ちょっと違うのはバックスラッシュ ( \ ) でなじんだところに Linux ではフォワード・スラッシュ ( / ) を使うことですが、これは覚えておく必要があります。バックスラッシュも使いますが、これはコマンドが次の行まで続くのを指定するために使います。特に長いコマンドをタイプするときには時々、読みやすくするために行を変えます。

ls
ディレクトリのファイルをリスティングするには ls コマンドを使いますが、リスティングの仕方を変えるためのスイッチがいくつか使えます。

ファイルのリスティング
コマンド
ls -lファイルサイズ、日付けと時間、属性を含んだ長いリスティングを表示します。
ls -t時間でファイルを並べ替えます。
ls -Sサイズでファイルを並べ替えます。
ls -r他の並べ替えスイッチと併用し、逆の順序で並べ替えます。ls -lt は最新ファイルを先頭にして表示し、ls -lrt は最新ファイルを最後にして表示します。
ls -h人が読める形式で。リストするファイルのサイズをバイトではなく、分かりやすいk、M、G の単位で表示します。
ls -a隠しファイルを含めて、ディレクトリ内のすべてのファイルを表示します。

cp
cp コマンドでファイルをコピーします。基本的に DOS の copy コマンドと同じです。重要なスイッチとしては。

ファイルのコピー
コマンド
cp -Rファイルを再帰的にコピーします。ディレクトリの全部をコピーするときに必要です。
cp -fユーザーに尋ねることなくコピーを強行し、既存ファイルを上書きします。
cp -lコピーする代わりにファイルをリンクします (下記参照) 。

mv
ファイルの移動とリネームには mv コマンドを使います。DOS の move コマンドと基本的に同じですが、ファイルと同時にディレクトリ構造全体を移動する点は違います。

cat
ファイルを見るには cat コマンドを使います。DOS の type コマンドと同等です。ファイルの内容を別のファイルやスクリーン、別のコマンドにダンプします。cat は concatenate (連結する) の略で、いくつかのファイルを連結して大きなファイルにすることができます。

more
情報を一度に一ページ分見るには more コマンドを使います。DOS の more コマンドと基本的に同じ動作をします。

less
テキスト・ファイルを見るのに less コマンドを使うと、ドキュメントを上下にスクロールしてテキスト・パターンを検索する機能が使えます。

vi
vi は「virtually impossible (ほとんど不可能) 」の略だと言う人もいるかもしれません。vi は Unix の世界で長い伝統のあるテキスト・エディターです。直感的ではありませんが、Unix 風の環境にはほとんど必ず入っています。Linux にインストールされているバージョンにはチュートリアルが組み込まれているので、一度慣れてしまえば、ちょっとしたキー操作で信じられないような芸当ができるのです。実際パスワードやコンフィギュレーション・ファイルの編集に、vi に置き換わるものは未だありません。

man
man コマンドで、コマンドの説明が表示されます。Man は manual の略です。説明は完璧なものがほとんどです。man についてもっと知るには下記をタイプします。

man man

info
infoman と似ていますが、info ではテキストにハイパーリンクが付くので説明を読むのが楽になります。

どのシェル?

DOS/Windows と Linux で決定的に違う点の一つが、コマンドシェルがオペレーティング・システムから分離されたレイヤーであることです。シェル環境は編集できるコマンドラインや前の操作がスクロールして見られるかどうか、などのフィーチャーに影響しています。シェルはまた、スクリプトで各種の機能を実行するのに必要な構文を決定します。DOS/Windows のスクリプトにはお粗末な.BAT ファイルという一つのオプションしかありませんでした。.BAT ファイルもいろいろできたのですが、基本的なこと以外のことをしようとすると、スクリプトを書く側にかなりの創造性が要求されました。Linux のスクリプトではループができ、プログラミング言語にあるような機能まで含めて、基本的な条件ステートメント以上のことができるのです。.BAT ファイルを書くのがうまい人だったら、シェル・スクリプトでも輝く人になるでしょう。

デフォルト・シェルは各ユーザー・アカウントのパラメーターです。Linux での典型的なデフォルト・シェルは/bin/bash ですが、他でも構いません。実は各シェルについての man のコマンド説明が非常に良くできており、シェルの詳細と動作について説明しています。その説明をここで繰り返すよりは、下のリストからシェルを選択してその man ページを見てください。

bash
bash シェルは最初の Unix シェル、Bourne シェルのフリー版で、たくさんの機能が追加されています。Bash には編集可能なコマンドラインや前のコマンド操作をスクロール・バックする機能、また長いファイル名をタイプせずにすませられるタブ操作などがあります。

csh
C シェルは「C 風の」構文を使い、Bourne シェルから多くの機能を借用していますが、内部シェルコマンドには違うものを使っています。

ksh
Korn シェルは Bourne シェルと同じ構文を使い、C シェルの使いやすさを取り入れています。Ksh は多くのインストレーション・スクリプトで使われていて、自分のプライマリー・シェルではなくても多分インストールはしておくべきでしょう。

tcsh
TC シェルは C シェルの改善版で、C シェルと 100%互換性があります。

zsh
Z シェルは Korn シェルの改善版で、bash シェルにある多くの機能を含んでいます。

リンクして!

ファイル・リンクは Linux ファイルシステムの称賛すべき特徴の一つです。リンクはファイルへの参照で、ファイルシステム中の複数の場所でファイルが見えるようにするものです。ところが Linux では、リンクは元のファイルとして扱うことができるのです。何も特別なことをしなくても、リンクを実行したり編集したりアクセスしたりすることができるのです。システム上の他のアプリケーションに関する限り、リンクは元ファイルなのです。リンクからファイルを編集すると、元のファイルを編集していることになります。リンクはコピーではありません。リンクにはハード・リンクとシンボリック・リンクの 2 種類があります。

ハード・リンクは同じファイルシステム内のファイルのみを参照でき、ファイルシステム中での、ファイルの物理インデックス (i ノードとも言われます) を指します。ハード・リンクはファイル構造上の位置ではなく、ファイルの物理データ位置を指すので、元のファイルを動かしてもリンクは切れません。ハード・リンクでは、ユーザーが元のファイルにアクセス権限を持っている必要は無く、またハード・リンクが元ファイルの位置を示すこともないので、セキュリティ上からも多少有利になっています。ハード・リンクされた一つのファイルを削除しても、他のすべての参照が削除されるまで元のファイルは残っています。

シンボリック・リンクはファイルシステム上でのファイル位置を示すポインターです。シンボリック・リンクはファイルシステムにまたがることができ、遠隔にあるファイルシステムのファイルを指すことさえできます。シンボリック・リンクは元ファイルの位置を示しており、リンクを使うにはユーザーが元ファイルの位置にアクセス権限を持っている必要があります。元のファイルが削除されるとすべてのシンボリック・リンクは切れてしまい、ファイルシステム上で存在しない位置を指すことになります。

どちらのリンクもコマンド ln <source> <target> で作ることができます。デフォルトで ln はハード・リンクを作ります。-s スイッチでシンボリック・リンクができます。

# Create a hard link from MyFile in the current
# directory to /YourDir/MyFile
ln MyFile /YourDir

# Create a symbolic (soft) link from MyFile in
# the current directory to /YourDir/YourFile
ln -s MyFile /YourDir/Yourfile

上の例では MyFile、/YourDir/MyFile、/YourDir/Yourfile はすべて同じファイルとして扱われます。

殻 (シェル) を破る

コンソール操作は Linux での管理には必須です。コンソールを使わずにすませられるツールもありますが、そうすると自分がしたいことがツールの機能だけに制限されてしまいます。コンソールを使うのは簡単ですし、コマンドの説明も man コマンドと info コマンドで容易に読むことができるのです。


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Linux
ArticleID=230464
ArticleTitle=Windows から Linux へのロードマップ: 第 2 回 コンソール集中コース
publish-date=11112003