Linux 教科書という素晴らしい教材が無料配布されました。(2008年9月16日〜)すこし、ちゃんと習得したいというかたには、ぜひおすすめです。→ここ

端末・コンソールとは

Debian GNU/Linux徹底入門第3版 Sarge対応
Debian GNU/Linux徹底入門第3版 Sarge対応
UbuntuなどのLinuxを使用すると、”端末” ”コンソール” という壁にぶつかるかもしれません。Windowsでいうと”コマンドプロンプト”などと言われている あの黒い画面です。あれが出てくるなら"パス”と思われる方もいるかもしれませんし、私もそうでしたが、覚えると便利なものです。Ubuntuでは、極力 ”端末”、”コンソール”を使わずに、GUI(グラフィックユーザーインターフェース 要するにウィンドウ画面操作)で操作が出きるようになっていますが、逆に不便だったり、操作が遅くなったりします。
Screenshot-2.png
"端末"を立ち上げるには、[メニュー]→[アクセサリ]→[端末]です。開いたウィンドウのメニューバー [編集]→[プロファイル]から上図の様な半透明な画面に設定にすることも可能です。

私がよく使うコマンド

ディレクトリ移動 CD

端末を立ち上げると 以下の様な画面になっています。
felix@felix-lenovo:~$
ユーザー名@パソコン名:~$ という感じですね。端末では、現在自分がどの位置(どのディレクトリ下)にいるかが決まっています。通常、初期状態で立ち上がった端末は、
$ /home/felix(ユーザーのディレクトリ)
にいます。試しに
$ cd ../
と入力してみます。そうすると
$ felix@felix-lenovo:/home$
となり、/home つまり、/home/felix の一つ上のディレクトリが上がった位置に移動したことがわかります。(初期状態では、どこにいるか表示されないわけですね。)説明が前後しましたが、
../
の ../ は、自分の上位のディレクトリを表します。その前に記述した cd は、change directory の略なのでしょうが、ディレクトリの移動コマンドです。自分の上のディレクトリへ行けが、 cd ../ となる訳です。
ディレクトリの移動は、上記の様に相対的に(自分のいる位置からみて上なのか、下なのかを決めて)移動する方法と、絶対的に移動する方法があります。絶対的の移動方法は、簡単です。
$ cd /home/felix/www
こんな感じです。

相対的移動方法

相対的移動方法のルールですが、
./
という記述が、いまいるディレクトリを表します。そのため、今いるときより上にいくなら
../
という記述になります。2個上は .../ とは書かず、
../../
と書きます。これは、cd コマンドに限らず、ファイルの指定の際には、常に使うルールです。
いまいるディレクトリより、下に移動するには、
$ cd ./www
という様になりますが、単に
$ cd www
でもOKです。ただし、ちょっとした違いですが、
$ cd /www
となると全然違うところへ行こうとしてしまいます。ディレクトリ構造において
/
は、絶対位置の root を表していて、最上部のディレクトリを指します。そのため、/www とは、root下にある www というディレクトリを表していて、そのようなディレクトリは通常ないので、エラーとなります。

便利な補完機能 TABキー

これも cd に限ったことでは無いのですが、cd につづく、ディレクトリ名が 曖昧にしか分からない時があります。そんな時には、頭文字を分かる限り入れて、TAB キーを押します。そうすると、その後に続く文字を自動的に表示してくれます。(複数候補がある時には、いずれの候補にも共通する部分まで自動表示されます。)
$ cd ./www/feli   (ここでTABを押すと・・・) 
$ cd ./www/felix-labo/ (としてくれます。)

便利な記憶機能 ↑キー

端末上で打ち込んだコマンドを記憶してくれます。それを呼び出すのが、↑キーです。長いコマンド打って、どこか一ヶ所間違っていてエラーだったりしても大丈夫。

ディレクトリ内のファイル・ディレクトリ表示 ls

ディレクトリに移動しても、その中に何が入っているか分からなければ、不便です。ディレクトリ内を表示するコマンドが、 ls です。
$ ls
とすると、現在いるディレクトリ内のファイルとディレクトリがすべて表示されます。また、
$ ls -l
とすると、ファイルサイズなどの詳細情報をすべて表示します。-l はオプションといわれ、-l の他にも、-s -d -p などの様に、-(ファイフォン)+アルファベット の様に記載します。lsについて言えば、私が得に使うのが、-a です。-a は隠しファイルなども表示してくれます。ですから、とくかく全部のファイルの詳細な情報を閲覧したい時には
ls -la
とやってしまいます。その他、オプションの詳細は
$ ls --help
といった感じで表示されます。
もう一点、
$ ls /etc
という様にすると、/etc ディレクトリ下にある情報が得られます。見たいディレクトリの下に行かずとも、中身が確認できるという訳です。これなんかは、多分ファイルエクスプローラーより早く結果が得られるかもしれません。

スーパーユーザーになって、コマンド実行 sudo と apt-get

Linuxは、ユーザーと権限が明確に設定されています。通常ログインするユーザーは、一般ユーザーで、すべてのコマンドが使える訳ではありません。通常扱わないようなシステムな箇所は、あやまって変更してしまうことがないようになっている訳です。
パッケージのインストールや更新も一般ユーザーでは、行えないものの一つです。そのため、これらの実効は、スーパーユーザーになって実行することになります。そのコマンドが、sudo です。
もう一つ、パッケージの操作をするコマンドが apt-get です。まずは、パッケージリストを最新のものに代えます。
$ sudo apt-get update
パッケージリストが、登録されているレポジトリから更新されます。(ちょっと時間がかかります。)つづいて、最新パッケージをインストールして適用させます。
$ sudo apt-get upgrade
更新すべきパッケージがあれば、ここでインストールが始まります。すでにご存知かもしれませんが、Ubuntuは、数多くのパッケージが、レポジトリから読み込まれ、すでにインストールされているもの、追加でインストールしたものについて、常に最新版に保ってくれる優れた機能があります。また、必要なパッケージを選択した場合に、依存関係のあるパッケージを自動的に検索してくれて、一緒にインストールしてくれたりもします。これにより、パソコンのソフトを常に最新に保つことができるというメリットがあるわけです。

テキストファイル作成

コピーやファイル移動コマンドを扱う前にテキストファイルを一つ作ります。gedit(テキストエディタ)を使ってつくっても良いですが、 せっかく端末を使っているので、端末上からテキストファイルの操作ができる vim をつかってみます。まずは vim インストール
$ sudo apt-get install vim
続いてホームディレクトリ上に test.html というファイルをつくります。
$ cd /home/felix
$ vi ./test.html
端末の画面が vim の画面になります。詳しくは Ubuntu/Vimの使い方を見ていただくこととして、コマンドだけ
i
を打つと、テキスト挿入モードになるので、その後
test
とでも打ちます。次にテキスト保存して閉じます。
[Esc]キー → :wq! → [Enter]
と打ちます。これで vim から 元のプロンプト『$』の画面に戻ります。
$ ls
とすると、今作った test.html ができているのがわかります。このファイルを使ってコピー・ファイル移動をやっていきます。

コピーコマンド cp

コピーは cp コマンドです。cp コピー元 コピー先 という様にやります。原理は簡単です。
$ cp /home/felix/test.html /home/felix/www/test.html
上記コマンドは、 /home/felixの下にある、test.html ファイルを www/ ディレクトリへコピーするということになります。ただし、普通は、/home/felix にいてこのコマンドを打つことが多いので
$ cp ./test.html ./www
コピーが成功しているか確認してみます。
$ ls ./www
test.htmlがあれば成功です。このファイルは消しておきます。
$ rm ./www/test.html
ファイルを消すのは rm (removeの略でしょう)です。このコマンドは注意してつかいましょう。詳しくは後ほどやりますが例えば
$ rm ./*
などとすると、そのディレクトリ以下のファイルを全部消します。ゴミ箱に移動などというナマヤサシイものではなく、消し去ってくれます。 端末でやるとものすごく簡単なので、一度くらいは痛い思いをするかもしれませんが、なにせ rm を打つときは緊張感が必要です。
話がそれましたが、test.htmlが消えたのも確認してみましょう。
$ ls ./www
次に、パーミッション(権限)についてです。実際にコピーを活用したいと思うと厄介なパーミッション(権限)という問題がからんできます。 例えば、
$ cp ./test.html /
と打ってみます。すると
cp: cannot create regular file `/test.html': Permission denied
と返ってきます。コピーができなかったと言われています。コピー先 " / " は root (最上位)ディレクトリ なのですが、ここは ログインユーザー felix では書き込めない場所です。