Home日記コラム書評HintsLinks自己紹介
 

Linux 初心者向けのネタのメモ

Fedora install memo という、 install とは名ばかりの謎のページから、 初心者向けのネタだけ取り出したり、 あるいは書き足したもの。

超基本 (1)

最近の Linux だとデフォルトで何か alias が指定されているかもしれないが、 Windows のコマンドプロンプトなら分かる、という人なら、こんな感じ。

とりあえずコマンド名が分かったら、 man コマンドで使い方が分かるはず。 例えば、次に出てくる「ls」の使い方は、 man ls で分かる。

カレントディレクトリにあるファイル一覧を見るには、ls。 コマンドプロンプトの dir に対応する。 詳細表示は ls -l。 再帰的に(サブディレクトリも全て)表示したいなら、ls -lR。

ファイルの削除は rm。 Windows の del に対応する。 再帰的に(サブディレクトリも全て)削除したいなら、 rm -r。 強制的に削除するには、rm -f。 ということで、rm -rf というのは割と使うかもしれない。 ディレクトリの削除も rm を使う。 rmdir というコマンドはない。

ファイルのコピーは cp。 Windows の copy に対応する。

ファイルの移動は mv。 Windows の move に対応する。 ファイル名を変更するときにも、mv を使う。 例えば、 mv foo.c hoge.c は、foo.c というファイルの名前を hoge.c に変更する。 mv foo.c ../hoge.c のふるまいは2種類あり得る。

(1) ../hoge.c というディレクトリがない場合は、 foo.c というファイルを上位のディレクトリに移動して、hoge.c という名前に変更する。

(1) ../hoge.c というディレクトリがあれば、 foo.c というファイルを ../hoge.c に移動する。 すなわち、../hoge.c/hoge.c というファイルができる。 もちろん、hoge.c なんて名前のディレクトリは普通作らないはずだが。

Note

あるファイルをコピーして元ファイルを削除するのと、 mv を使って場所を移動するのとでは、 結果が違うことがある。 mv はファイルそのものは触らずに、ファイルの置き場所だけを変更する。 つまり、ファイルの作成者 (owner) などの情報が、そのまま引き継がれる。 cp をすると、ファイルの作成者はカレントユーザーとなる。
例えば、neo というユーザーが作ったファイルがあるとする。 これを smith というユーザーが mv すると、このファイルは neo が作成した状態のままである。 しかし、smith がこれを cp で複製し、元のファイルを rm で削除したら、 残ったファイルは smith が新しくコピーしたもの、 つまり、smith が作成したファイルである。
Unix の場合、ファイルは作成者、グループ、その他、という3種類の属性で permission を管理するので、 誰が作ったのかという情報は重要なのである。

ファイルの内容を見たいときは、 more または less を使う。 cat というコマンドもあるが、これは Windows の type に対応する。

超基本 (2)

実行ユーザーを変更したいときは、 ログアウトしてログインし直してもいいが、 面倒だとか、一時的に違うユーザーの権限で処理したい、 という場合も多い。 こういうときには、su を使う。

su hoge

これで、hoge というユーザーの権限でいろいろできる。 ただし、そのためには hoge のパスワードを知っている必要がある。

su - hoge

これも同様だが、 ログインしたときの状態になるというあたりが微妙に違う。

su

単に su と実行したときには、 root が指定されたとみなされる。 「su して…」のように書いてあるドキュメントやWebページは多数あるが、 つまり、root (スーパーユーザー)の権限でナニしろ、ということである。

root でやることというのはあまりないと思うが、 システムを停止するのに、shutdown コマンドを使うとか。

shutdown -t 0 -h now

これはただちにシステムを停止するための処理を開始する。 コンソール画面から「システムの停止」のような選択ボタンがあったりするなら、 そちらを使えば楽かもしれない。 -h というオプションは halt を意味する。 すなわち、OS は停止する。 シャットダウン後にすぐ再起動したいのなら、 次のようなオプションを指定すればいい。

shutdown -t 0 -r now

-r は reboot を意味する。

scp

ファイルを異なるホスト間で転送するには、 rcp というコマンドを使うが、 セキュリティの問題がある場合は、 ssh で暗号化した状態でコピーする scp というコマンドを使う。

scp *.tar.gz mai@www.phinloda.com:~

これは、カレントディレクトリにある .tar.gz で終わる名前のファイルを、 www.phinloda.com の mai のホームディレクトリにコピーする。 www.phinloda.com には mai でログインすることになる。

gzip

UNIX では、ファイルの圧縮、展開は、 主に gzip を使う。

gzip filename

filename で指定したファイルを圧縮する。

gzip -d filename

このように -d をつけると展開になる。

Note

昔は compress / uncompress を使って圧縮、展開を行うことがあった。 これを使ったファイルは、.Z という拡張子を付ける慣習がある。