よく使うLinuxコマンドの覚え書き
Category
Server
サイト制作の際、専用サーバーやVPSサーバーを利用されている方も多いと思います。
サーバーの設定を変更したり、各種モジュールやライブラリ、フレームワーク等もインストールしたりすることもでき、とても便利です(当サイトもVPSサーバーを利用しています)。
今回は、自分用に"よく使うLinuxコマンドの覚え書き"を記事にしてみようと思います。
Keyword:Linuxコマンド,vi,yum,Tera Term
Linuxコマンド
ファイル管理
#ディレクトリの移動 cd [ディレクトリ名] 例) cd /home/username usernameディレクトリに移動します。 #カレントディレクトリを表示 pwd #カレントディレクトリ内のファイルを一覧表示 ls [オプション] [ディレクトリ名] [オプション] -a・・・隠しファイルを表示(".[ドット]"で始まるファイル等) -l・・・詳細表示(パーミッション・グループ・所有者・サイズ・タイムスタンプ等) -t・・・日時順に並べ替え -F・・・名前の最後にファイルタイプを付ける ・ディレクトリ ⇒ …/ ・実行可能ファイル ⇒ …* ・リンクファイル ⇒ …@ など -s・・・ファイル名の横にキロバイト(kB)単位でファイルサイズを表示 例) ls -al webcreator-net カレントディレクトリにあるwebcreator-netディレクトリ内を隠しファイルも含めて詳細表示します。 #ディレクトリの作成 mkdir [オプション] [ディレクトリ名] [オプション] -m・・・ディレクトリのモードを指定して作成 -p・・・存在しないディレクトリ階層を作成 例) mkdir -p image/common カレントディレクトリ内にimage/commonというディレクトリ階層を作成します。 #新規空ファイルの作成 touch [ファイル名] 例) touch info.php カレントディレクトリ内にinfo.phpという新規空ファイルを作成します。 中身を記述する際は、viコマンド("vi info.php")を使います。 #新規ファイルを作成 vi [ファイルのパス+新規作成するファイル名] 例) vi information/info.php カレントディレクトリ内にあるinformationディレクトリ内にinfo.phpを作成します。 #ファイルの削除 rm [オプション] [ファイル名] [オプション] -f・・・存在しないファイルがあってもエラーを出力しない -i・・・ファイルを削除する前に確認 -r・・・ディレクトリを削除 #空ディレクトリの削除 rmdir [空ディレクトリ名] #ディレクトリごと削除 rm -r [ディレクトリ名] #ディレクトリごと強制的に削除 rm -rf [ディレクトリ名] #ファイル名の変更・移動 mv [元ファイル名(ファイル名)] [新ファイル名(移動先)] 例1) mv a.php b.php カレントディレクトリ内にあるa.phpというファイル名をb.phpに変更します。 例2) mv a.php ../file カレントディレクトリ内にあるa.phpというファイルを1階層上のfileディレクトリ内に移動します。 #ファイルのコピー cp [ オプション ] [コピー元ファイル名] [コピー先ファイル名] [オプション] -b・・・同名ファイルはバックアップして保存 -f・・・同名ファイルを警告せずに上書き -i・・・同名ファイルがある場合に上書き確認 -p・・・パーミッションやタイムスタンプもコピー -r・・・ディレクトリを再帰的にコピー 例1) cp a.txt a_copy.txt カレントディレクトリ内にあるa.txtをコピーし、同一階層上にファイル名a_copy.txtを作成します。 例2) cp a.txt back_up/ カレントディレクトリ内にあるa.txtをコピーし、カレントディレクトリ内にあるback_upというディレクトリ内に同じファイル名でコピーを作成します。 #パーミッション変更 chmod [パーミッション] [ディレクトリ名orファイル名] [オプション] -R・・・ディレクトリ以下全てのファイル(ディレクトリ)のパーミッションを変更 #ディレクトリのパーミッションを一括変更 find . -type d -exec chmod [パーミッション] {} \; #ファイルのパーミッションを一括変更 find . -type f -exec chmod [パーミッション] {} \; #所有者の変更 chown -R [ユーザー名] [ディレクトリ] [オプション] -R・・・ディレクトリ以下全ての所有権を変更 #検索 find [検索の開始パス] [オプション] [アクション] [オプション] ・-name [ファイル名(ディレクトリ名)]・・・ファイル(ディレクトリ)で検索 ・-user [ユーザー名]・・・ユーザーが所有するファイル・ディレクトリを検索 ・-group [グループ名]・・・グループが所有するファイル・ディレクトリを検索 ・-type [ファイルタイプ]・・・ファイルタイプで検索 [アクション] ・-ls・・・詳細情報を出力 ・-print・・・ファイル名のみ出力 ・-fprint [ファイル名]・・・ファイルに出力(同名ファイルは上書き) ・-exec [コマンド] {} \;・・・コマンドに引き渡し実行 #全体からファイル名で検索 find / -name [ファイル名] #カレントディレクトリからファイル名で検索 find . -name [ファイル名] #全体からファイルタイプで検索し、ファイル名を出力 find / -name "*.[拡張子]" -print 例) find / -name "*.png" -print 全体からpngファイルを検索し、ファイル名を出力します。 #カレントディレクトリからファイルタイプで検索し、詳細情報を出力 find . -name "*.[拡張子]" -ls 例) find . -name "*.dat" -ls カレントディレクトリからdatファイルを検索し、詳細情報を出力します。
補足
●ディレクトリの移動
cd ..(../)で一階層上に移動します。
●新規空ファイルの作成
“vi info.php”でviエディタを直接開きファイルを保存しても構いません。
●新規ファイルを作成
viエデイタ上で保存しないとファイルは作成されません。
●ディレクトリごと強制的に削除
存在しないファイルがあってもエラーを出力しません。
●ディレクトリ・ファイルのパーミッションを一括変更
ディレクトリのパーミッションは、カレントディレクトリも含めて変更します。
カレントディレクトリが/home/username/dataだとすると、dataディレクトリも含めて以下全てのディレクトリのパーミッションを変更します。
findコマンドと組み合わせた使用法です。
※findコマンドのオプション・アクションを参照
●所有者の変更
グループを指定する場合、ユーザー名の後に“:[グループ名]”を追記します。
chown -R [ユーザー名]:[グループ名] [ディレクトリ]
ユーザー管理
#ユーザーを作成 /usr/sbin/useradd [オプション] [ユーザー名] [オプション] -d・・・ホームディレクトリを指定 -e・・・ユーザアカウントの有効期限(※月/日/年の順) -f・・・有効期限を過ぎた場合の使用不可期限(※日数で指定) -G・・・ユーザアカウントが所属するグループ 例1) /usr/sbin/useradd -d /home/username /home/usernameをホームディレクトリとしたユーザー(username)を作成します。 例2) /usr/sbin/useradd -e 10/01/13 -G group username 有効期限が2013年1月10日まで、グループ名"group"、ユーザー名"username"のアカウントを作成します。 #パスワ-ドを作成 passwd [ユーザー名] #パスワードの有効期限の参照・変更 chage [オプション] [ユーザー名] [オプション] -E・・・パスワードの有効期限(※フォーマット:yyyy/mm/dd) -I・・・パスワードの有効期限後、アカウントがロックされるまでの日数 -l・・・パスワードの有効期限を参照 -M・・・パスワードの有効期限(※パスワードの最終更新日からの日数) -W・・・パスワードの有効期限前にユーザに警告する日数 #ユーザーを削除 /usr/sbin/userdel [オプション] [ユーザー名] [オプション] -r・・・ホームディレクトリも同時に削除
補足
●ユーザーを作成
useraddコマンドを使用するには、パスを通す必要があるため、useraddの前に “/usr/sbin/”を付けてパスを通します。
また、ユーザー作成時に“su -”でrootにスイッチした場合、パスは通っていますので“/usr/sbin/”は必要ありません(useradd -d /home/[ユーザー名]でOKです)。
オプション”-f”で日数を”-1″にするとこの機能(有効期限を過ぎた場合の使用不可期限の設定)は無効となります。
●パスワードの有効期限の参照・変更
オプションの”-E”と”-M”の違いは、”-E”は指定した日程までパスワードが有効となりますが、”-M”はパスワードの最終更新日から指定した日数までパスワードが有効となります。
エディタ
#viエディタでテキスト編集 vi [編集するファイルのパス] #入力(INSERT)モードに切り替え a・・・カーソル位置の後から文章を追加 i・・・カーソル位置の前から文章を追加 #表示モードに戻る Esc #カーソル位置の下に新しい行を挿入 o #カーソル位置の行を削除 dd #テキストの削除 x・・・カーソル位置の文字を後ろ方向に削除 #取り消し u #検索 /+検索ワード+Enter n・・・後方検索 #1行目に移動 g #最終行に移動 G #1画面下に移動 Ctrl+F #1画面上に移動 Ctrl+B #行頭に移動 ^ #行末に移動 $ #保存 :w+Enter・・・viを閉じずに保存 :wq+Enter・・・viを閉じて保存 :q!+Enter・・・保存しないでviを閉じる
補足
●入力(INSERT)モードに切り替え
数字を入力する場合、テンキーは使用せず、キーボードのファンクションキー下にある数字キーより入力します。
“1” ⇒ “1(!・ぬ)”といった感じですね。
[その他]
ターミナルエミュレータであるTera Termでコピー&ペーストを行う場合、
Alt+C・・・コピー
Alt+V・・・ペースト
といったショートカットがあります。
また、Tera Term内でコピー&ペーストをする場合、ペースト位置にカーソルを置き、コピー元のテキストを選択(反転表示)し右クリックをすると、ペースト位置にコピーしたいテキストが反映されます。
※他テキストエディタのコピー&ペーストは、ほとんどが”Ctrl+C”と”Ctrl+V”ですね。
RPMパッケージ管理
#パッケージのインストール yum install [パッケージ名] #インストールされているパッケージの一覧表示 yum list installed #パッケージの簡易表示 yum list [パッケージ名] #パッケージの詳細表示 yum info [パッケージ名] #パッケージの更新 yum update [パッケージ名] 例) yum update httpd アパッチのアップデートを適応します。 また、"rpm -qi httpd"でアパッチのアップデート結果を確認できます(※RPMパッケージの詳細を問い合わせるコマンドです)。 #更新可能なパッケージの確認 yum check-update #パッケージの削除 yum remove [パッケージ名]
補足
●パッケージの更新
“パッケージ名”を指定してアップデートを実行した場合、そのパッケージのみを更新しますが、指定せずに実行した場合、インストール されている全ての更新可能なパッケージが更新されます。
ダウンロード・解凍・圧縮
#ダウンロード wget [ダウンロード先のURL] #解凍・圧縮 tar [オプション] [ファイル名]・・・tar.gzファイルの解凍・圧縮 [オプション] -c・・・新規にアーカイブを作成 -f・・・アーカイブのファイル名を指定 -t・・・アーカイブの中身を表示 -u・・・アーカイブ内の同名ファイルより新しいものだけを追加 -v・・・処理したファイルを一覧表示 -x・・・アーカイブからファイルを抽出 -z・・・gzipで圧縮、解凍 例1) tar -zxvf data.tar.gz data.tar.gzを解凍します(解凍・抽出・一覧表示・アーカイブファイル名の指定オプションを付けています)。 例2) tar -cvzf data.tar.gz detail/ detail内のファイルをdata.tar.gzに圧縮します(新規アーカイブ作成・一覧表示・圧縮・アーカイブファイル名の指定オプションを付けています)。 例3) tar -cvzf data.tar.gz file1 file2 file1とfile2をdata.tar.gzに圧縮します(新規アーカイブ作成・一覧表示・圧縮・アーカイブファイル名の指定オプションを付けています)。 unzip [オプション] [ファイル名]・・・zipファイルの解凍 [オプション] -p・・・標準出力 -l・・・圧縮情報を簡易表示 -z・・・アーカイブコメントを表示 -Z・・・圧縮情報を表示 例) unzip data.zip data.zipを解凍します。 zip [ファイル名]・・・zipファイルの圧縮 [オプション] -A・・・自己解凍形式で圧縮 -d・・・アーカイブから指定ファイルを削除 -l・・・改行をLFからCR LFへ変更 -ll・・・改行をCR LFからLFへ変更 -m・・・アーカイブから指定ファイルを移動 -q・・・クイック圧縮 -t・・・指定日付以降のファイルを圧縮 -u・・・新規・更新されたファイルのみ圧縮 -z・・・コメントの追加 例1) zip data.zip file1 file2 file1とfile2をdata.zipに圧縮します。 例2) zip -d data.zip file1 data.zipからfile1を削除します。
補足
●解凍・圧縮
圧縮ファイルの形式は他にもたくさんあります。
以下サイトが簡潔にまとめらてれいると思いますので、他の圧縮形式に関しては参考にしてみてください。
LinuxOS上での解凍・圧縮方法
システム管理
#ログインユーザーの変更 su [ユーザー名] suのみの場合、rootにスイッチします。 #ログアウト exit・・・現在ログインしているユーザーからログアウト #コマンドを別名で登録 alias [別名] = '[コマンド]' 例) alias rmdir = 'rm -rf' rmdirコマンドは"空ディレクトリのみ削除可能"ですが、rm -rfコマンドと同じにすることで"ディレクトリごと削除"します。 #別名の登録状況を表示 alias [別名] #登録されている別名を全て表示 alias #登録されている別名のコマンドを削除 unalias [別名] #アパッチを再起動 /etc/rc.d/init.d/httpd restart(service httpd restart) #アパッチを停止 /etc/rc.d/init.d/httpd stop(service httpd stop) #アパッチを起動 /etc/rc.d/init.d/httpd start(service httpd start) #システムを再起動 reboot #システムをシャットダウン shutdown shutdown now・・・今すぐにシステムをシャットダウンして再起動 shutdown -r 23:30・・・23:30にシステムを再起動 #mysqlを再起動 /etc/init.d/mysqld restart #mysqlを停止 /etc/init.d/mysqld stop #mysqlを起動 /etc/init.d/mysqld start #sshを再起動 /etc/init.d/sshd restart #sshを停止 /etc/init.d/sshd stop #sshを起動 /etc/init.d/sshd start
補足
●ログインユーザーの変更
パスを通してユーザーをスイッチする場合は”su – [ユーザー名]”でスイッチします。
※変更したいユーザーのホームディレクトリに移動できます。
●コマンドを別名で登録。
例では、”-r”と”-f”オプションが付加されていますので、”存在しないファイルがあってもエラーを出力せず、ディレクトリごと削除する”といった意味になります。
●アパッチを再起動
↑(矢印キー上)・・・前回の入力コマンドに戻る
「アッパチの再起動に失敗した」なんて時に、再入力するのは面倒ですので、覚えておくと便利ですね。
ネットワーク
#ネットワークの疎通確認 ping [IPアドレス(またはドメイン)] 以下のような返答が返されます。 PING ドメイン or IPアドレス (IPアドレス) 56(84) bytes of data. 64 bytes from IPアドレス: icmp_seq=0 ttl=64 time=0.25 ms #ネットワークの疎通確認を停止する Tera Term等のターミナルエミュレータで接続している場合、Ctrl+Cで疎通確認を停止します。 #ネットワークの疎通確認を3回行う ping -c 3 [IPアドレス(またはドメイン)] #ドメイン情報取得 dig [ドメイン名]
補足
●ネットワークの疎通確認
ネットワークの接続状態を確認したいホストに対し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…コマンドラインを表示
関連記事(※当記事と関連性が高いと思われる記事)
Webサーバーに公開鍵認証を導入する
2011/12/30サーバーの設定変更
2012/02/17APCでPHPの処理を高速化
2012/06/12CentOSにPHP5.3をインストール
2012/04/04CentOSでPHPのバージョンをアップデート
2011/12/23おすすめ書籍・商品(※当記事と関連性が高いと思われる書籍・商品)