ホームページに戻る

Linuxリンク集10

Linuxの雑多なこと(コマンドやシステム)に関するリンク集です。

システム管理

コマンド一覧

alias	コマンドの別名を登録
basename	パス名からファイル名を取り出す
cal	カレンダーを表示する
cat	ファイルの内容を表示する
cd	カレント・ディレクトリの変更
chgrp	ファイルやディレクトリの所属グループを変更
chmod	ファイルやディレクトリのパーミッションを変更
chown	ファイルやディレクトリの所有者を変更
clear	画面をクリアする
compress	ファイルの圧縮/復元(*.Z)
cp	ファイルやディレクトリをコピーする
crontab	ジョブを自動実行する
cut	文字列を切り出す
date	現在の時刻を表示/設定する
df	ディスク使用量を調べる@
diff	ファイルの内容の違いを調べる
du	ディスク使用量を調べるA
echo	文字列や変数の値を表示
exit	ログアウトする
find	ファイルの検索
ftp	FTPでファイルを転送する
grep	文字列を検索する
groupadd	グループを追加する
groupdel	グループを削除する
groupmod	グループの設定を変更
gunzip	圧縮ファイルの復元(*.gz)
gzip	ファイルの圧縮/復元(*.gz)
head	ファイルの先頭部分を表示する
history	コマンドの履歴を表示
hostname	現在のホスト情報を表示
id	ユーザー・グループIDを表示する
jobs	バックグラウンドジョブを表示
kill	プロセスまたはジョブを終了する
less	ファイルの内容を1画面ごとに表示するA
ln	ファイルやディレクトリにリンクを設定
ls	ファイル・ディレクトリ情報を表示する
mail	メールを送受信する
man	コマンドのマニュアルを表示
mkdir	ディレクトリを作成する
more	ファイルの内容を1画面ごとに表示する@
mv	ファイルの移動/ファイル名の変更
netstat	現在のネットワーク状況を表示
nohup	ログアウト後もプログラムを実行する
passwd	パスワードを変更する
ping	ホストとの接続確認
ps	実行中のプロセスを表示
pwd	カレント・ディレクトリの表示
rcp	リモート・システム間でのファイルコピー
rm	ファイルやディレクトリを削除する
rmdir	ディレクトリを削除する
rsh	リモート・マシンにコマンドを送る
sed	文字を変換する
shutdown	システムを停止する
sleep	一定時間スリープする
sort	ファイル行を並び替える
split	ファイルを分割する
su	他のユーザーに切り替える
sync	バッファの内容をディスクに書き込む
tail	ファイルの末尾を表示する
tar	アーカイブの作成/復元
telnet	リモート・マシンにログインする
touch	ファイルのタイムスタンプを更新
unalias	コマンドの別名を解除
uncompress	圧縮ファイルの復元(*.Z)
unzip	圧縮ファイルの復元(*.zip)
useradd	ユーザーを追加する
userdel	ユーザーを削除する
usermod	ユーザーの設定を変更
vi	テキストファイルを編集する
wc	テキストファイルの大きさを調べる
which	コマンドのパスを表示
who	ログインしているユーザーを調べる
zcat	圧縮ファイルの内容表示
zip	ファイルの圧縮(*.zip)

Linuxコマンド一覧より。)

本当はもっとたくさんあります。この中にはyesのような面白いコマンドが含まれていません。

コマンドを知りたいだけなら詳しいWebサイトを見るのが良いとは思いますが、Linuxの仕組みを知りたいなら、一度LFS日本語版)かGentoo Linuxをやるのが僕はおすすめです。

ネットワークの設定

出来るだけディストリビューションの公式ドキュメントを見ましょう。

パーミッション

以下のようなコマンドで変えるか:

chmod 756 index.html

あるいは、このように変えるかです。

所有者に読み書き実行権を与える
% chmod u+rwx index.html
グループ所属ユーザに読みと実行権を与える
% chmod g+rx index.html
グループに所属しないユーザーから実行権を削除する
% chmod o-x index.html

UNIXの基礎知識 - パーミッション編より。)

文字コード

文字コードは、システム全体の文字コード、各テキストファイルの文字コードから、PHPやMySQLの文字コードなどがあるし、クライアント側とサーバー側で合わせる必要もあります。

今の標準はUTF-8です。出来るだけUTF-8で作るようにしましょう。でも、Windowsで書いた文章は、どうしてもShift-JISになってしまいますし、EUC-JPと言う昔のUNIXの文字コードも混在します。

マウント

マウントはこんな感じ:

# mount
# mount <DEVICE> <DIRECTORY>

例えば:

# mkdir /media/usb
# mount /dev/sdb1 /media/usb

アンマウントはこんな感じ:

# umount <DEVICE>
# umount <DIRECTORY>

あとは:

# mount [OPTIONS] <DEVICE> <DIRECTORY>

Mount - Gentoo Wikiより。)

パーティションの切り方

こんな感じで作りましょう。

パーティション	ファイルシステム	サイズ	説明
/dev/sda1	(ブートローダ)	2M	BIOSブートパーティション
/dev/sda2	ext2 (またはUEFIを使うならfat32)	128M	ブート/EFIシステムパーティション
/dev/sda3	(swap)	512M もしくはそれ以上	スワップパーティション
/dev/sda4	ext4	残りのディスク	ルートパーティション

partedかfdiskで頑張って作ってください。

partedの場合:

# parted -a optimal /dev/sda
(parted) mklabel gpt
(parted) rm 2
(この調子で繰り返して全部のパーティションを削除する。)
(parted) unit mib
(parted) mkpart primary 1 3
(parted) name 1 grub
(parted) set 1 bios_grub on
(parted) print
(parted) mkpart primary 3 131
(parted) name 2 boot
(parted) mkpart primary 131 643
(parted) name 3 swap
(parted) mkpart primary 643 -1
(parted) name 4 rootfs
(parted) set 2 boot on
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/sda: 20480MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
  
Number   Start      End      Size     File system  Name   Flags
 1       1.00MiB    3.00MiB  2.00MiB               grub   bios_grub
 2       3.00MiB    131MiB   128MiB                boot   boot
 3       131MiB     643MiB   512MiB                swap
 4       643MiB     20479MiB 19836MiB              rootfs

ファイルシステムの作成は、ext2なら:

# mkfs.ext2 -T small /dev/<device>

ext3とext4なら、ジャーナリングを有効にするために(すでにこちらの方が一般的。ジャーナリングファイルシステムです。):

# mkfs.ext2 -j -T small /dev/<device>

マウントは以下のようにしてください:

# mount /dev/sda4 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/sda2 /mnt/gentoo/boot

gentooは変えてくださいね。

ディスクの準備 - Gentoo Handbookより。)

あとは、/etc/fstabを編集することを忘れないように:

/dev/sda2   /boot        ext2    defaults,noatime     0 2
/dev/sda3   none         swap    sw                   0 0
/dev/sda4   /            ext4    noatime              0 1
/dev/cdrom  /mnt/cdrom   auto    noauto,user          0 0

システムの設定 - Gentoo Handbookより。)

設定・初期化ファイル

Bash関係:

.profile

login shellを sh, bash にした場合(rootのlogin shell を除けば、shにすることはほとんどないが)に端末からloginした際に読み込まれる設定ファイル。login後にシェルを起動しても読み込まれない。

.bash_profile

login shellを bash にした場合に端末からloginした際に読み込まれる設定ファイル。login後にシェルを起動しても読み込まれない。

.bash_logout

login shellを bash にした場合、端末からlogoutする際に実行される設定ファイル。

.bashrc

bashを起動した際に読み込まれる設定ファイル。login後にシェルを起動した際にも毎回読み込まれる。

.bash_history

bashの場合にコマンド履歴を保存するファイル

X関係:

.xsession

端末のX画面やXDMCPで飛ばされたXの画面(AstexXなどのlogin画面)からloginした場合に読み込まれる設定ファイル。

.xinitrc

テキストモードから xinit や startx でXを立ち上げる場合に使用する。Xが立ち上がっている状態でのloginやXDMCPでloginする場合には不要。基本的には.xsession へのリンクとしてもよい。

.Xdefaults

Xクライアントのリソース(大きさ、色、フォント、ボタンの形状等)を記述するファイル。記述がなければシステムのデフォルト値が用いられる。共通設定は/usr/lib/X11/ja_JP.ujis/app-defaults/...にある(Linux)。

.xmodmap

キーコードと文字の対応を記述する。高橋研ではjp106キーボード用に設定しているので別のキーボード(Sunのワークステーション付属のものなど)を使わなければ不要。

初期設定より。)

パイプとリダイレクト

あるコマンドを実行した結果の出力を、他のコマンドの入力として渡せる「パイプ」と、入出力とファイルを変換できる「リダイレクト」。

たとえば

find ~ | grep "2012"

とすることで、ホームディレクトリにある、「2012」を名前とパスに含むファイルを列挙出来る。

findで~の中を「サブディレクトリまで含めて」列挙し、そこからgrepで名前を検索する。

パイプは、使うとやみつきになる。UNIXは、こうした多数のコマンドプログラムに分けながら、ユーザーが自分の力で環境を操作することを哲学としている。

シェルスクリプト

基本的に、コマンドをそのまま列挙したファイルを作って、実行すればシェルスクリプト。

だが、引数や関数定義が使えたり、if文なども出来るなど、応用範囲は多い。

UNIXでは、何でもかんでも再利用することで、応用性のあるシステム設計を行っている。

環境変数

コマンドライン環境の中で利用できる、変数のようなもの。

環境変数は僕もまだあまり分かっていない(シェル変数とどこが違うのか分からなかったりする)。

コマンドのバイナリファイルを探すPATHやユーザーのホームディレクトリを探すHOMEなどが有名である。

コマンドの詳細

コマンドの詳細は、manと言うコマンドで見ることが出来る。

man ls

コマンドラインオプションは、例えば、詳細表示をしたい時は、以下のように使う。

ls -al

それ以上のコマンドの詳しいことは、manを参照のこと。manは、設定ファイルについても調べることが出来る。

以下のサイトから、オンラインでブラウザからmanを見ることが出来る。

JM Project