Server

よく使うLinuxコマンドの覚え書き

Category

Server

サイト制作の際、専用サーバーやVPSサーバーを利用されている方も多いと思います。
サーバーの設定を変更したり、各種モジュールやライブラリ、フレームワーク等もインストールしたりすることもでき、とても便利です(当サイトもVPSサーバーを利用しています)。
今回は、自分用に"よく使うLinuxコマンドの覚え書き"を記事にしてみようと思います。

Keyword:Linuxコマンド,vi,yum,Tera Term

Linuxコマンド

Linuxコマンド

ファイル管理

1#ディレクトリの移動
2cd [ディレクトリ名]
3例) cd /home/username
4usernameディレクトリに移動します。
5 
6#カレントディレクトリを表示
7pwd
8 
9#カレントディレクトリ内のファイルを一覧表示
10ls [オプション] [ディレクトリ名]
11[オプション]
12-a・・・隠しファイルを表示(".[ドット]"で始まるファイル等)
13-l・・・詳細表示(パーミッション・グループ・所有者・サイズ・タイムスタンプ等)
14-t・・・日時順に並べ替え
15-F・・・名前の最後にファイルタイプを付ける
16・ディレクトリ ⇒ …/
17・実行可能ファイル ⇒ …*
18・リンクファイル ⇒ …@ など
19-s・・・ファイル名の横にキロバイト(kB)単位でファイルサイズを表示
20例) ls -al webcreator-net
21カレントディレクトリにあるwebcreator-netディレクトリ内を隠しファイルも含めて詳細表示します。
22 
23#ディレクトリの作成
24mkdir [オプション] [ディレクトリ名]
25[オプション]
26-m・・・ディレクトリのモードを指定して作成
27-p・・・存在しないディレクトリ階層を作成
28例) mkdir -p image/common
29カレントディレクトリ内にimage/commonというディレクトリ階層を作成します。
30 
31#新規空ファイルの作成
32touch [ファイル名]
33例) touch info.php
34カレントディレクトリ内にinfo.phpという新規空ファイルを作成します。
35中身を記述する際は、viコマンド("vi info.php")を使います。
36 
37#新規ファイルを作成
38vi [ファイルのパス+新規作成するファイル名]
39例) vi information/info.php
40カレントディレクトリ内にあるinformationディレクトリ内にinfo.phpを作成します。
41 
42#ファイルの削除
43rm [オプション] [ファイル名]
44[オプション]
45-f・・・存在しないファイルがあってもエラーを出力しない
46-i・・・ファイルを削除する前に確認
47-r・・・ディレクトリを削除
48 
49#空ディレクトリの削除
50rmdir [空ディレクトリ名]
51 
52#ディレクトリごと削除
53rm -r [ディレクトリ名]
54 
55#ディレクトリごと強制的に削除
56rm -rf [ディレクトリ名]
57 
58#ファイル名の変更・移動
59mv [元ファイル名(ファイル名)] [新ファイル名(移動先)]
60例1) mv a.php b.php
61カレントディレクトリ内にあるa.phpというファイル名をb.phpに変更します。
62例2) mv a.php ../file
63カレントディレクトリ内にあるa.phpというファイルを1階層上のfileディレクトリ内に移動します。
64 
65#ファイルのコピー
66cp [ オプション ] [コピー元ファイル名] [コピー先ファイル名]
67[オプション]
68-b・・・同名ファイルはバックアップして保存
69-f・・・同名ファイルを警告せずに上書き
70-i・・・同名ファイルがある場合に上書き確認
71-p・・・パーミッションやタイムスタンプもコピー
72-r・・・ディレクトリを再帰的にコピー
73例1) cp a.txt a_copy.txt
74カレントディレクトリ内にあるa.txtをコピーし、同一階層上にファイル名a_copy.txtを作成します。
75例2) cp a.txt back_up/
76カレントディレクトリ内にあるa.txtをコピーし、カレントディレクトリ内にあるback_upというディレクトリ内に同じファイル名でコピーを作成します。
77 
78#パーミッション変更
79chmod [パーミッション] [ディレクトリ名orファイル名]
80[オプション]
81-R・・・ディレクトリ以下全てのファイル(ディレクトリ)のパーミッションを変更
82 
83#ディレクトリのパーミッションを一括変更
84find . -type d -exec chmod [パーミッション] {} \;
85 
86#ファイルのパーミッションを一括変更
87find . -type f -exec chmod [パーミッション] {} \;
88 
89#所有者の変更
90chown -R [ユーザー名] [ディレクトリ]
91[オプション]
92-R・・・ディレクトリ以下全ての所有権を変更
93 
94#検索
95find [検索の開始パス] [オプション] [アクション]
96[オプション]
97・-name [ファイル名(ディレクトリ名)]・・・ファイル(ディレクトリ)で検索
98・-user [ユーザー名]・・・ユーザーが所有するファイル・ディレクトリを検索
99・-group [グループ名]・・・グループが所有するファイル・ディレクトリを検索
100・-type [ファイルタイプ]・・・ファイルタイプで検索
101[アクション]
102・-ls・・・詳細情報を出力
103・-print・・・ファイル名のみ出力
104・-fprint [ファイル名]・・・ファイルに出力(同名ファイルは上書き)
105・-exec [コマンド] {} \;・・・コマンドに引き渡し実行
106 
107#全体からファイル名で検索
108find / -name [ファイル名]
109 
110#カレントディレクトリからファイル名で検索
111find . -name [ファイル名]
112 
113#全体からファイルタイプで検索し、ファイル名を出力
114find / -name "*.[拡張子]" -print
115例) find / -name "*.png" -print
116全体からpngファイルを検索し、ファイル名を出力します。
117 
118#カレントディレクトリからファイルタイプで検索し、詳細情報を出力
119find . -name "*.[拡張子]" -ls
120例) find . -name "*.dat" -ls
121カレントディレクトリからdatファイルを検索し、詳細情報を出力します。

補足

●ディレクトリの移動
cd ..(../)で一階層上に移動します。

●新規空ファイルの作成
“vi info.php”でviエディタを直接開きファイルを保存しても構いません。

●新規ファイルを作成
viエデイタ上で保存しないとファイルは作成されません。

●ディレクトリごと強制的に削除
存在しないファイルがあってもエラーを出力しません。

●ディレクトリ・ファイルのパーミッションを一括変更
ディレクトリのパーミッションは、カレントディレクトリも含めて変更します。
カレントディレクトリが/home/username/dataだとすると、dataディレクトリも含めて以下全てのディレクトリのパーミッションを変更します。
findコマンドと組み合わせた使用法です。
findコマンドのオプション・アクションを参照

●所有者の変更
グループを指定する場合、ユーザー名の後に“:[グループ名]”を追記します。
chown -R [ユーザー名]:[グループ名] [ディレクトリ]

ユーザー管理

1#ユーザーを作成
2/usr/sbin/useradd [オプション] [ユーザー名]
3[オプション]
4-d・・・ホームディレクトリを指定
5-e・・・ユーザアカウントの有効期限(※月/日/年の順)
6-f・・・有効期限を過ぎた場合の使用不可期限(※日数で指定)
7-G・・・ユーザアカウントが所属するグループ
8例1) /usr/sbin/useradd -d /home/username
9/home/usernameをホームディレクトリとしたユーザー(username)を作成します。
10例2) /usr/sbin/useradd -e 10/01/13 -G group username
11有効期限が2013年1月10日まで、グループ名"group"、ユーザー名"username"のアカウントを作成します。
12 
13#パスワ-ドを作成
14passwd [ユーザー名]
15 
16#パスワードの有効期限の参照・変更
17chage [オプション] [ユーザー名]
18[オプション]
19-E・・・パスワードの有効期限(※フォーマット:yyyy/mm/dd)
20-I・・・パスワードの有効期限後、アカウントがロックされるまでの日数
21-l・・・パスワードの有効期限を参照
22-M・・・パスワードの有効期限(※パスワードの最終更新日からの日数)
23-W・・・パスワードの有効期限前にユーザに警告する日数
24 
25#ユーザーを削除
26/usr/sbin/userdel [オプション] [ユーザー名]
27[オプション]
28-r・・・ホームディレクトリも同時に削除

補足

●ユーザーを作成
useraddコマンドを使用するには、パスを通す必要があるため、useraddの前に “/usr/sbin/”を付けてパスを通します。
また、ユーザー作成時に“su -”でrootにスイッチした場合、パスは通っていますので“/usr/sbin/”は必要ありません(useradd -d /home/[ユーザー名]でOKです)。
オプション”-f”で日数を”-1″にするとこの機能(有効期限を過ぎた場合の使用不可期限の設定)は無効となります。

●パスワードの有効期限の参照・変更
オプションの”-E”と”-M”の違いは、”-E”は指定した日程までパスワードが有効となりますが、”-M”はパスワードの最終更新日から指定した日数までパスワードが有効となります。

エディタ

1#viエディタでテキスト編集
2vi [編集するファイルのパス]
3 
4#入力(INSERT)モードに切り替え
5a・・・カーソル位置の後から文章を追加
6i・・・カーソル位置の前から文章を追加
7 
8#表示モードに戻る
9Esc
10 
11#カーソル位置の下に新しい行を挿入
12o
13 
14#カーソル位置の行を削除
15dd
16 
17#テキストの削除
18x・・・カーソル位置の文字を後ろ方向に削除
19 
20#取り消し
21u
22 
23#検索
24/+検索ワード+Enter
25n・・・後方検索
26 
27#1行目に移動
28g
29 
30#最終行に移動
31G
32 
33#1画面下に移動
34Ctrl+F
35 
36#1画面上に移動
37Ctrl+B
38 
39#行頭に移動
40^
41 
42#行末に移動
43$
44 
45#保存
46:w+Enter・・・viを閉じずに保存
47:wq+Enter・・・viを閉じて保存
48:q!+Enter・・・保存しないでviを閉じる

補足

●入力(INSERT)モードに切り替え
数字を入力する場合、テンキーは使用せず、キーボードのファンクションキー下にある数字キーより入力します。
“1” ⇒ “1(!・ぬ)”といった感じですね。

[その他]
ターミナルエミュレータであるTera Termでコピー&ペーストを行う場合、
Alt+C・・・コピー
Alt+V・・・ペースト
といったショートカットがあります。
また、Tera Term内でコピー&ペーストをする場合、ペースト位置にカーソルを置き、コピー元のテキストを選択(反転表示)し右クリックをすると、ペースト位置にコピーしたいテキストが反映されます。
他テキストエディタのコピー&ペーストは、ほとんどが”Ctrl+C”と”Ctrl+V”ですね。

RPMパッケージ管理

1#パッケージのインストール
2yum install [パッケージ名]
3 
4#インストールされているパッケージの一覧表示
5yum list installed
6 
7#パッケージの簡易表示
8yum list [パッケージ名] 
9 
10#パッケージの詳細表示
11yum info [パッケージ名] 
12 
13#パッケージの更新
14yum update [パッケージ名]
15例) yum update httpd
16アパッチのアップデートを適応します。
17また、"rpm -qi httpd"でアパッチのアップデート結果を確認できます(※RPMパッケージの詳細を問い合わせるコマンドです)。
18 
19#更新可能なパッケージの確認
20yum check-update
21 
22#パッケージの削除
23yum remove [パッケージ名]

補足

●パッケージの更新
“パッケージ名”を指定してアップデートを実行した場合、そのパッケージのみを更新しますが、指定せずに実行した場合、インストール されている全ての更新可能なパッケージが更新されます。

ダウンロード・解凍・圧縮

1#ダウンロード
2wget [ダウンロード先のURL]
3 
4#解凍・圧縮
5tar [オプション] [ファイル名]・・・tar.gzファイルの解凍・圧縮
6[オプション]
7-c・・・新規にアーカイブを作成
8-f・・・アーカイブのファイル名を指定
9-t・・・アーカイブの中身を表示
10-u・・・アーカイブ内の同名ファイルより新しいものだけを追加
11-v・・・処理したファイルを一覧表示
12-x・・・アーカイブからファイルを抽出
13-z・・・gzipで圧縮、解凍
14例1) tar -zxvf data.tar.gz
15data.tar.gzを解凍します(解凍・抽出・一覧表示・アーカイブファイル名の指定オプションを付けています)。
16例2) tar -cvzf data.tar.gz detail/
17detail内のファイルをdata.tar.gzに圧縮します(新規アーカイブ作成・一覧表示・圧縮・アーカイブファイル名の指定オプションを付けています)。
18例3) tar -cvzf data.tar.gz file1 file2
19file1とfile2をdata.tar.gzに圧縮します(新規アーカイブ作成・一覧表示・圧縮・アーカイブファイル名の指定オプションを付けています)。
20 
21unzip [オプション] [ファイル名]・・・zipファイルの解凍
22[オプション]
23-p・・・標準出力
24-l・・・圧縮情報を簡易表示
25-z・・・アーカイブコメントを表示
26-Z・・・圧縮情報を表示
27例) unzip data.zip
28data.zipを解凍します。
29 
30zip [ファイル名]・・・zipファイルの圧縮
31[オプション]
32-A・・・自己解凍形式で圧縮
33-d・・・アーカイブから指定ファイルを削除
34-l・・・改行をLFからCR LFへ変更
35-ll・・・改行をCR LFからLFへ変更
36-m・・・アーカイブから指定ファイルを移動
37-q・・・クイック圧縮
38-t・・・指定日付以降のファイルを圧縮
39-u・・・新規・更新されたファイルのみ圧縮
40-z・・・コメントの追加
41例1) zip data.zip file1 file2
42file1とfile2をdata.zipに圧縮します。
43例2) zip -d data.zip file1
44data.zipからfile1を削除します。

補足

●解凍・圧縮
圧縮ファイルの形式は他にもたくさんあります。
以下サイトが簡潔にまとめらてれいると思いますので、他の圧縮形式に関しては参考にしてみてください。
LinuxOS上での解凍・圧縮方法

システム管理

1#ログインユーザーの変更
2su [ユーザー名]
3suのみの場合、rootにスイッチします。
4 
5#ログアウト
6exit・・・現在ログインしているユーザーからログアウト
7 
8#コマンドを別名で登録
9alias [別名] = '[コマンド]'
10例) alias rmdir = 'rm -rf'
11rmdirコマンドは"空ディレクトリのみ削除可能"ですが、rm -rfコマンドと同じにすることで"ディレクトリごと削除"します。
12 
13#別名の登録状況を表示
14alias [別名]
15 
16#登録されている別名を全て表示
17alias
18 
19#登録されている別名のコマンドを削除
20unalias [別名]
21 
22#アパッチを再起動
23/etc/rc.d/init.d/httpd restart(service httpd restart)
24 
25#アパッチを停止
26/etc/rc.d/init.d/httpd stop(service httpd stop)
27 
28#アパッチを起動
29/etc/rc.d/init.d/httpd start(service httpd start)
30 
31#システムを再起動
32reboot
33 
34#システムをシャットダウン
35shutdown
36shutdown now・・・今すぐにシステムをシャットダウンして再起動
37shutdown -r 23:30・・・23:30にシステムを再起動
38 
39#mysqlを再起動
40/etc/init.d/mysqld restart
41 
42#mysqlを停止
43/etc/init.d/mysqld stop
44 
45#mysqlを起動
46/etc/init.d/mysqld start
47 
48#sshを再起動
49/etc/init.d/sshd restart
50 
51#sshを停止
52/etc/init.d/sshd stop
53 
54#sshを起動
55/etc/init.d/sshd start

補足

●ログインユーザーの変更
パスを通してユーザーをスイッチする場合は”su – [ユーザー名]”でスイッチします。
変更したいユーザーのホームディレクトリに移動できます。

●コマンドを別名で登録。
例では、”-r”と”-f”オプションが付加されていますので、”存在しないファイルがあってもエラーを出力せず、ディレクトリごと削除する”といった意味になります。

●アパッチを再起動
↑(矢印キー上)・・・前回の入力コマンドに戻る
「アッパチの再起動に失敗した」なんて時に、再入力するのは面倒ですので、覚えておくと便利ですね。

ネットワーク

1#ネットワークの疎通確認
2ping [IPアドレス(またはドメイン)]
3以下のような返答が返されます。
4PING ドメイン or IPアドレス (IPアドレス) 56(84) bytes of data.
564 bytes from IPアドレス: icmp_seq=0 ttl=64 time=0.25 ms
6 
7#ネットワークの疎通確認を停止する
8Tera Term等のターミナルエミュレータで接続している場合、Ctrl+Cで疎通確認を停止します。
9 
10#ネットワークの疎通確認を3回行う
11ping -c 3 [IPアドレス(またはドメイン)]
12 
13#ドメイン情報取得
14dig [ドメイン名]

補足

●ネットワークの疎通確認
ネットワークの接続状態を確認したいホストに対しIPパケットを発行し、そのパケットが正しく届き返答が返ってくるかを確認します。 パケットの送信から返答までの時間が表示されますので、ネットワーク性能を簡易的に確認することもできます。

●ドメイン情報取得
ドメイン情報をDNSから取得します。
dig [@server] domain [query-type] [query-class] [query-option]
といった構文になっています(以下にて簡単に説明)。

@server
検索に利用するDNSサーバーのドメイン名またはIPアドレスを指定

domain
検索するドメイン名を指定

query-type
検索タイプを指定
[検索タイプ]
・a…ネットワークアドレス
・any…全ての情報
・mx…ドメインのメールエクスチェンジ情報
・ns…ネームサーバー
・soa…SOAレコード
・hinfo…ホスト情報
・axfr…ゾーン転送情報
・txt…任意の文字列数

query-class
問い合わせで利用するネットワーククラスを指定

query-option
検索オプション
[検索オプション]
・-x(IPアドレス)…逆アドレス変換を指定する際に通常のIPアドレスを指定
・-f(ファイル名)…バッチモードで処理するファイルを指定
・-T(時間)…バッチモードで実行した際、次の問い合わせをする間隔を指定
・-p(ポート)…利用するポート番号を指定
・-t(検索タイプ)…問い合わせのタイプを指定
・-c(検索クラス)…問い合わせのクラスを指定
・+recurse…再帰的に検索
・+retry(回数)…再試行する回数を指定
・+time(時間)…タイムアウトの時間を指定
・+defname…デフォルトドメイン名を利用
・+search…ドメインサーチリストを利用
・+n(ドメイン名)…デフォルトドメインを指定
・+primary…プライマリサーバーを利用
・+stats…問い合わせの統計を表示
・+header…ヘッダフラグを表示
・+answer…回答項目を表示
・+cmd…コマンドラインを表示

List

関連記事(※当記事と関連性が高いと思われる記事)

Webサーバーに公開鍵認証を導入する

2011/12/30
公開鍵認証
スコア:6 ※スコアの数値が大きいほど、関連性の高い記事です。 公開鍵認証を導入することで、Webサーバーには公開鍵(authorized_keys)、SSH接続時にローカル環境上に秘密鍵(id_rsa)がないとアクセスできなくなり... 続きを読む...

サーバーの設定変更

2012/02/17
サーバーの設定変更
スコア:4 ※スコアの数値が大きいほど、関連性の高い記事です。 php.iniの設定変更 viコマンドでphp.iniを編集 vi /etc/php.ini・・・viでphp.iniを開く ;メモリの上限を変更 memory_lim... 続きを読む...

APCでPHPの処理を高速化

2012/06/12
APCでPHPの処理を高速化
スコア:3 ※スコアの数値が大きいほど、関連性の高い記事です。 PHPアクセレーターAPCとは? PHPアクセレーターとは、PHPのスクリプトを最適化してコンパイルされた状態でデータをキャッシュし、以後同じデータにアクセスがあった際... 続きを読む...

CentOSにPHP5.3をインストール

2012/04/04
CentOSにPHP5.3をインストール
スコア:3 ※スコアの数値が大きいほど、関連性の高い記事です。 以下を前提にインストールするものとします。 CentOS5系でのインストール手順 PHP5.3とMySQLをインストール 基本、デフォルトのリポジトリ経由でインストール... 続きを読む...

CentOSでPHPのバージョンをアップデート

2011/12/23
CentOS
スコア:2 ※スコアの数値が大きいほど、関連性の高い記事です。 CentOSでyumを使ってPHPを5.2系にアップデートする手順 外部のリポジトリでよく聞くのは以下の2つだと思います。 ・Les RPM de Remi ・Utte... 続きを読む...

おすすめ書籍・商品(※当記事と関連性が高いと思われる書籍・商品)

ページの先頭へ