玄箱を操作するにはコマンドラインからの入力しかありません。。Linuxサーバの基本はやはりコマンド入力だと思います。

デスクトップ型だとGUIのエディタでの編集が多いんでしょうが TelnetやSSHでのリモート操作となるとやはり必要になってくるのでコマンドを扱えるようになったほうがいざというときに 重宝します。

コマンドを全部覚える必要はなく、文庫本サイズのリファレンスを机の横やパソコンの近くにおいておけば 必要なコマンドをサッと探すことが出来るので一冊は持っていたほうがいいかもしれませんね。

ここでは私がよく使用しているコマンドを紹介します。

 

コマンド 説 明
ls 指定したディレクトリのファイル一覧を表示
cd 指定したディレクトリへ移動
pwd 現在自分がいるディレクトリがどこなのかを表示
cp ファイル、ディレクトリをコピー
mv ファイル、ディレクトリの移動
vi テキストエディタ
mkdir ディレクトリの新規作成
mount 別のパーティション領域や外付けストレージを操作できるように、任意のディレクトリとリンクさせる
rm ファイル、ディレクトリの削除
grep 検索結果などのテキストから任意の文字を検索する
cat テキストファイルの中身を表示
su ユーザの変更
apt Debianパッケージのメンテナンス
tar ファイルやディレクトリの圧縮・解凍
insmod カーネルモジュールの組み込み
reboot, shutdown 再起動、シャットダウン

 

 

 

「ls」はおそらくもっとも多用するコマンドではないでしょうか。ファイルやディレクトリの一覧を表示するためのコマンドです。
Windowsで言うとフォルダを開いてアイコン一覧が表示されるのを、コマンドと文字だけでやってしまう、 と考えていただければイメージがわきやすいと思います。

 

■実際に使ってみましょう

# ls

と入力すると現在自分がいるディレクトリ内のファイルやフォルダの一覧を表示します。


# ls /

コマンドの後に「/」スラッシュを入力していますがこれはディレクトリの最上層である「ルート」のディレクトリを表示させています。
Linuxのディレクトリはこの「/」を頂上としてピラミッド状にディレクトリが分岐しています。


# ls /var/log/

コマンドの後にディレクトリを指定するとそのディレクトリ内の一覧を表示します。


# ls -al /var/log/

上記コマンドに「-al」を付けるとファイル名やディレクトリ名だけでなく、隠しファイルや細かい情報も表示できます。

 

 

「cd」はディレクトリを移動するコマンドです。上記「ls」でディレクトリの場所を確認したらこのコマンドで移動します。
ディレクトリを移動する必要があるのか?と言われるかもしれませんが、移動しなくてもたいていの作業はできます。 ですが後々入力する文字数が多くなるし、特定のディレクトリに移動してから出ないと出来ない操作もあるので注意しましょう。

 

■実際に使ってみましょう

# cd /

コマンドの後に「/」ディレクトリを指定していますのでピラミッド状ディレクトリの最上層へ移動します


# cd /var/log/

移動したいディレクトリのフルパス(ルートから始まる完全な名前)を指定して移動します。


# cd news/

上記に続いて、移動したいディレクトリの相対パス(現在自分がいるディレクトリ内のディレクトリ名のみ) を指定するとフルパスを入力する手間がなく移動できます(自分がいるディレクトリ内のディレクトリ移動に限る)。 上記例だと「/var/log/」に移動してから「/var/log/news/」ディレクトリに移動したことになる。(スラッシュの位置に注意しましょう)

 

# cd ../

一つ上のディレクトリに移動する。

 

 

「pwd」は現在自分がいるディレクトリを確認するコマンドです。「今、どのディレクトリにいるんだっけ?」と思ったらこのコマンドを入力してみましょう

■実際に使ってみましょう

# pwd

結果例:「/etc/apt」と表示されたらそのディレクトリに自分がいます。そのままですね。

 

 

「cp」はファイルやディレクトリを別の場所にコピーするコマンドです。
使い方は# cp 「コピー元」 「コピー先」

 

■実際に使ってみましょう

# cp /etc/network/interfaces /root/

「/etc/network/interfaces」のファイルを「/root/」ディレクトリにコピーしました。


# cp -r /etc/network/ /root/

「-r」オプションを付けるとディレクトリごとコピーすることが出来ます。「network/」ディレクトリごと「/root/」ディレクトリ内にコピーしました。

 

 

「mv」はファイルやディレクトリを別の場所に移動するコマンドです。
また、ファイル名やディレクトリ名の名前変更にも使われます。移動先が違えば移動、移動先が同じなら名前変更ということです。
使い方は# mv 「移動元」 「移動先」
名前変更するには# mv 「元のファイル名」 「変更後のファイル名」

 

■実際に使ってみましょう

# mv /root/network/ /tmp/

上記「cp」コマンドでコピーさせた「/root/network/」のディレクトリを「/tmp/」ディレクトリに移動しました。


# mv /tmp/network/interfaces /tmp/network/interfaces_rename

「interfaces」ファイルは「interfaces_rename」ファイルという名前に変更されました。

 

 

「vi」はテキストファイルを編集するエディタです。Linux設定を変更するにはテキストファイルを編集させないといけませんが このテキスト編集操作が一番難しいところだと思います。詳しくはこちらのページに記載しています。
Windowsで言う「メモ帳」感覚で編集をすることは出来るのですが癖のある操作方法なので マニュアルを見ながら操作しないとなにがなんだか分からなくなってしまいます。

 

■実際に使ってみましょう

# vi /root/newtext

「/root/」ディレクトリに「newtext」ファイルが存在していなければ、新規作成して編集モードに入ります。


# vi /root/newtext

すでに存在するファイルを編集するにはファイル名を指定すれば編集モードに入ります(例として上記で作成保存したものを指定)。

 

 

「mkdir」はディレクトリを新規作成するコマンドです。

■実際に使ってみましょう

 

「/root/」ディレクトリに「newdir/」ディレクトリを新規作成します。

# mkdir /root/newdir/


 

 

別のパーティションを操作するのには、mountコマンドで自分のいるパーティションとを連結させてからでないとできません。基本的には「/mnt」ディレクトリ内にマウントポイントとなるディレクトリを作製して、そこと連結させます。

接続したストレージがどのデバイス名で認識されているかをまずは調べます。

 

# dmesg (USB機器を接続した後にコマンド入力するとずらずらと文が出てくる

scsi 0:0:0:0: Direct-Access BUFFALO HD-PCTU2 0108 PQ: 0 ANSI: 4
sd 0:0:0:0: [sda] 976773167 512-byte hardware sectors (500108 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 1c 00 00 00
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] 976773167 512-byte hardware sectors (500108 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 1c 00 00 00
sd 0:0:0:0: [sda] Assuming drive cache: write through
sda: sda1 < sda5 > ←ここのsda1とかsda5とかがデバイス名になります
sd 0:0:0:0: [sda] Attached SCSI disk
usb-storage: device scan complete

 

マウントするには以下に書式を記載します。-tコマンドはext3(linuxで使われる形式)なら省略しても大丈夫です。

書式:#mount -t ファイルシステム名 /deb/マウントするデバイス名 /mnt/作成したディレクトリ

 

例:内蔵HDDの第1パーティションをマウントする。

例: #mount /deb/hda1 /mnt/hda1mount

 

例:windowsフォーマット(fat32)のUSBメモリをマウントする。ファイルタイプ指定はvfat

例: #mount -t vrat /deb/sda1 /mnt/usb

 

例:windowsフォーマット(NTFS)の外付けHDDをマウントする。(カーネル再構築が必要) (ntfs-3gプログラムが必要)ファイルタイプ指定はntfs-3g

例: #mount -t ntfs-3g /deb/sda5 /mnt/usbhdd

 

 

マウントを解除してデバイスを外す。

#umount /mnt/マウントポイントディレクトリ

 

 

「rm」はファイルやディレクトリを削除するコマンドです。
最も恐ろしいコマンドだと思います。重要なファイルも簡単に削除されてしまい、 Windowsで言うゴミ箱のようなものはありませんので一発勝負です。 使い方を誤れば全てを無に帰す事が可能なコマンドなので使用するときは慎重に確認しながら行いましょう。

■実際に使ってみましょう

「newtext」ファイルを削除します。

# rm /root/newtext

「newdir/」ディレクトリを削除します。

# rm -rf /root/newdir/

「-rf」オプションを付けるとディレクトリも削除でき、そのディレクトリの中のファイルも全て削除できます。 このオプションを付けると何の質問をされることなく実行されますので注意!。嗚呼恐ろしい・・・

 

 

「grep」は「cat」コマンドなどで表示される文章から特定の文字列を検索して表示するコマンドです。

■実際に使ってみましょう

# cat /root/test.txt | grep keyword

「/root/text.txt」ファイル内から「keyword」という文字が含まれる行を表示してくれます。
grepの前のたて棒(パイプ)はキーボードで¥マークにある文字です

 

 

「cat」はファイルの内容を表示するコマンドです。
このコマンドを入力するとファイルの内容がずらずらと一気に表示され、勝手にスクロールしていきます。 結局見れるのは文章の最後の部分だけですが他のコマンドと組み合わせる事によって初めて使い物になります。

■実際に使ってみましょう

「messages」ファイルの一覧を表示。もちろん一番最後あたりしか見れません。

# cat /var/log/messages

下記例だと「messages」ファイルの一覧を表示し、その中から「eth0」が含まれる行を検索して表示します。
コマンドの後に「|」(←長い縦棒。アルファベットのエルではありません。キーボードに印字されている文字を探してください)をはさんで検索コマンド「grep」を行います。

# cat /var/log/messages | grep eth0

「messages」ファイルを一ページずつ表示します。

# cat /var/log/messages | more

「messages」ファイルを一行ずつ表示します。

# cat /var/log/messages | less

 

 

 

「su」はユーザーを変更するときに使用するコマンドです。

■実際に使ってみましょう

一般ユーザーでログインしている状態と仮定

$ su root

 

パスワードを聞かれますので変更したいユーザのパスワードを入力します。例ではルートのパスワードを入力

 

■コマンド:exit

「exit」は「su」で変更したユーザから抜けて元のユーザに戻るコマンドです。
「su」していない場合はtelnetやsshを抜けて終了します。

 

 

「apt」はDebianのソフトウェアパッケージを管理するコマンドです。
Debianではこのコマンドでわずらわしいソフト同士の依存関係を気にせずインストールをすることが出来てとても便利です。
「apt」コマンドでソフトウェアの検索、インストール、アンインストールが出来ます。

■実際に使ってみましょう

現在流通しているソフトウェアの情報を更新します。

# apt-get update

「apache」というソフトウェアがあるかどうか検索します。

# apt-cache search apache

検索結果が多い場合、絞り込み検索するにはパイプを使用します。

# apt-cache search apache | grep php5


「apache」をインストールします。複数のパッケージを一度にインストールする場合はパッケージ名をスペースで区切って追加していきます。

# apt-get install apache

「apache」を設定ファイルごと完全にアンインストールします。

# apt-get remove --purge apache

Linux全体のソフトウェアパッケージを最新にします

# apt-get upgrade

 

 

 

ディレクトリごと圧縮ファイルに変換したり、解凍したりするコマンドです。ダウンロードしてくるプログラムなんかはtarで圧縮されているものが多いです。

 

解凍するとき(自分のいるディレクトリに解凍されます)

# tar -zxvf 解凍したいディレクトリ

 

圧縮するとき(圧縮したいものをスペースで区切って入力していく)

# tar -zcvf 圧縮後のファイル名.tgz 圧縮したいファイルやディレクトリ その1 さらにその2・・

圧縮時に除外したいフォルダがある場合はオプション--excludeのあとに続けて明記します。

# tar -zcvf 圧縮したいディレクトリ --exclude /除外ディレクトリ1 --exclude /除外ディレクトリ2

 

 

 

カーネルのモジュールを組み込みます

# insmod /lib/modules/2.6.25-kuroboxHG/kernel/モジュール名

 

逆にモジュールを外します

# rmmod モジュール名

 

組み込み済みのモジュール一覧を表示します

# lsmod

 

 

 

# reboot

「reboot」は再起動コマンド。説明の必要はありませんね。

 

# shutdown -h now

「shutdown -h now」はLinuxの終了コマンド。直ちにシャットダウンを始めます。これも説明の必要はありませんね。

 

 

Linux逆引き大全555の極意 コマンド編Linux逆引き大全555の極意 コマンド編
伊藤 幸夫

Linux逆引き大全600の極意 ネットワークサーバ構築編―CentOS5対応 (600 Tips to Use Linux Better!) Linux逆引き大全360の極意 サーバセキュリティ編 プロのための Linuxシステム構築・運用技術 (Software Design plus) Linuxエンジニア養成読本 [仕事で使うための必須知識&ノウハウ満載!] (Software Design plus) 【改訂新版】 Linuxコマンド ポケットリファレンス (Pocket Reference)

by G-Tools