Linux サーバコマンド 備忘録

IT関連

Linuxのサーバコマンドの備忘録です。CentOS系のコマンドも書くかもしれません。

 

  1. 操作等
    1. サーバへログイン
      1. Windows
      2. Mac
  2. 共通箇所
    1. オプションについて
      1. オプションは順不同で書ける
      2. オプションは分けて書いても良い
      3. オプションは引数の後でも書ける
    2. コマンドを取り消したい
    3. HELP機能
      1. コマンドのオプションを調べたい –help
      2. コマンドのマニュアルを見たい man
    4. ワイルドカード
      1. *は任意の複数文字
      2. ?は任意の一文字
      3. []は任意の一文字か範囲
      4. {} は任意の文字列
    5. コマンドの簡単な入力
      1. 直前の引数の値は!$に入る
      2. コマンドの検索
  3. コマンド一覧
    1. 基本頻出
      1. 現在のディレクトリを調べる pwd
      2. ディレクトリの中身を見る ls
      3. 別のディレクトリに移動する cd
    2. ディレクトリ操作
      1. ディレクトリを作る
      2. ディレクトリの削除
    3. ファイル操作
      1. ファイルを作る touch
      2. ファイルの中身を見る cat more less
      3. ファイルを編集する vi
      4. ファイルの先頭から数行表示する head
      5. ファイルの末尾から数行表示する tail
      6. ファイルの行数や単語数を調べる wc
      7. ファイルやディレクトリをコピーする cp
      8. ファイルやディレクトリの移動と名前の変更 mv
      9. ファイルやディレクトリの削除 rm
      10. シンボリックリンクの作成
    4. リダイレクト
      1. ファイルの中に書き込む >
      2. ファイルの中に追記する >>
      3. コマンドの実行結果を別のコマンドに渡す |(パイプ)
      4. コマンドが成功したら次のコマンドを実行する &&
      5. ブレース展開
    5. 検索系
      1. 文字がある行だけを表示する grep
      2. パイプとgrepで検索する
      3. パイプを組み合わせる
      4. ファイルを検索する find
    6. ユーザーとグループ
      1. ユーザーの一覧を表示する
      2. グループの一覧を表示する
      3. 特定のユーザーがどのグループに所属しているか
    7. アクセス権
      1. アクセス権の変更 chmod
      2. 一時的にルート権限を使う sudo
    8. シェルプログラム
      1. viでファイルを作成する
      2. シェルプログラムを書く
      3. 実行権限を付与する chmod
      4. 環境変数を設定する export
      5. 実行する
    9. シェルプログラムを書く2
    10. コマンド履歴
      1. 実行コマンドの履歴を表示する
      2. historyのコマンドを番号で実行
      3. 直前のコマンドを実行
      4. historyを消す
      5. historyを全部消すとき
    11. その他
      1. マシンに設定された日付を表示する date
      2. 今月のカレンダーを表示する cal
    12. 環境変数
      1. 環境変数を見る
      2. 環境変数を設定する export
    13. Laravelのバージョンを調べる
    14. 動いているCronを調べる
    15. Webサーバ再起動
    16. データベースインポート
    17. ファイヤーウォールの空いているポートを調べる
    18. ファイヤーウォールが起動しているか
    19. ホスト名を調べる
    20. CPU情報を調べる
    21. パーティション情報を確認する
    22. ディスク容量を確認する
    23. IPアドレスなどeth0のネットワーク設定を調べる
    24. ディストリビューションを調べる
    25. SELinuxの有効か無効か調べる
    26. ユーザー情報を確認する
    27. PHPのバージョンを調べる
    28. インストールされてるPHPを調べる
    29. インストールされてるApacheを調べる

操作等

ログインや操作方法などの予備知識です。

サーバへログイン

WindowsならTeratarm、Macなら標準のターミナルからアクセスが基本。

Windows

割愛します。GUIなので直感的にできます。

Mac

下記コマンドを打てばパスワードを聞かれるのでそれをクリアすればログイン完了。鍵の場所は絶対パスで書いてもいいが、鍵のある場所にcdで移動してからの方が楽かも。サーバのアドレスはドメイン名でもOK。

# 文法
$ ssh サーバのアドレス -l ユーザ名 -i 鍵ファイル

# 文例(鍵無し)
$ ssh 192.168.0.10 -l user

# 文例(鍵付き) 
$ ssh 192.168.0.10 -l user -i hogekey.pem

 

共通箇所

コマンドに関する共通知識です。

オプションについて

オプションは順不同で書ける

# 以下は同じ動き
$ コマンド -al
$ コマンド -la

オプションは分けて書いても良い

$ ls -a -l

オプションは引数の後でも書ける

$ ls -al /etc
$ ls /etc -al

 

コマンドを取り消したい

  • コマンドを取り消したい Ctrl + C
  • 途中まで打ったコマンドを消したい Ctrl + U
  • 画面全体をクリアしたい Ctrl + L (もしくはclear)

HELP機能

コマンドのオプションを調べたい –help

# lsのオプションを調べたいのなら
$ ls --help

コマンドのマニュアルを見たい man

次ページはSpaceキー、終了はQキー

# pwdのマニュアルを見たいのなら
$ man pwd

 

 

ワイルドカード

*は任意の複数文字

# .confで終わるファイル名
$ ls *.conf

?は任意の一文字

# sで始まる6文字のファイル名 shadow shells
$ ls s?????

[]は任意の一文字か範囲

# pかsから始まる6文字のファイル名 shadow shells passwdなど
$ ls [ps]????? 

# fからhから始まるファイル名 fstab hostsなど
$ ls [f-h]*

{} は任意の文字列

# shかhoで始まるファイル名 shadow hostsなど
$ ls {sh,ho}*

 

コマンドの簡単な入力

直前の引数の値は!$に入る

これを利用することでlsで調べたディレクトリに一気に移動できる。

# lsの引数に/etcを指定すると
$ ls /etc

# !$の中に直前の引数の値(/etc)が入っている 
$ echo !$

コマンドの検索

「Ctlキー」+「R」で検索モードに入る。抜ける時は「Ctlキー」+「C」

(reverse-i-search) `': 何か文字を打つ

 

コマンド一覧

基本頻出

現在のディレクトリを調べる pwd

プリントワーキングディレクトリ

$ pwd

ディレクトリの中身を見る ls

# 基本
$ ls
# 詳細も表示する
$ ls -l
# 隠しファイルも表示する
$ ls -a
# 対象を指定することもできる
$ ls -al /etc

別のディレクトリに移動する cd

現在のディレクトリからのパスを指定する。

$ cd ./ディレクトリ名
$ cd ディレクトリ名

# ホームディレクトリに移動
$ cd ~
$ cd

# ひとつ上のディレクトリに移動
$ cd ..

# 直前引数に渡した場所に移動
$ ls /etc
$ cd !$

 

ディレクトリ操作

ディレクトリを作る

# 文法
$ mkdir ディレクトリ名

# 文例
$ mkdir mysite

# -pオプションで深い階層まで一気に作る
$ mkdir -p mysite/css

ディレクトリの削除

# 文法
$ rmdir ディレクトリ名

# 文例
$ rmdir mysite

 

ファイル操作

ファイルを作る touch

# 文法
$ touch ファイル名

# 文例
$ touch index.html

ファイルの中身を見る cat more less

# 一気に表示する
$ cat ファイル名

# spaceで次へ,Qで抜ける
$ more ファイル名

# viと同じ使い勝手なので検査も可能
$ less ファイル名

ファイルを編集する vi

viの説明はこちら

Vimエディタ 備忘録
基本コマンド エディタの起動 # 文法 $ vi ファイル名 # 文例 $ vi /etc/hosts 保存せず終了 ファイルの変更があり保存していない場合はストップがかかる :q 保存せずすぐ終了 ファイルの変更があり保存していない場合で...

 

ファイルの先頭から数行表示する head

# 文法
$ head -n ファイル名

# 文例
$ head -3 services

ファイルの末尾から数行表示する tail

# 文法
$ tail -n ファイル名

# 文例
$ tail -3 services

ファイルの行数や単語数を調べる wc

表示される結果は、左から行数・単語数・バイト数・ファイル名。

# 文法
$ wc ファイル名

# 文例
$ wc services

# -lで行数だけ
$ wc -l services

ファイルやディレクトリをコピーする cp

cpコマンドはオプションを指定しないとファイルだけが対象となる。

# 文法
$ cp 元ファイル名 先ファイル名

# 文例
$ cp index.html profile.html

# ディレクトリの場合は-rオプションを使う
$ cp -r mysite

# 他のディレクトリを現在のディレクトリにコピーしてくる
$ cp /etc/services .

ファイルやディレクトリの移動と名前の変更 mv

# 移動の文法
$ mv ファイル名 移動先パス/

# 移動の文例
$ mv index.html mysite/

# ファイル名変更の文法
$ mv ファイル名 変更後ファイル名

# ファイル名変更の文例
$ mv profile.html about.html

# ディレクトリ名の変更も同じ
$ mv mysite myprifile

ファイルやディレクトリの削除 rm

rmは基本的にはファイルの削除。オプションを付けるとディレクトリも削除できる

# 文法
$ rm ファイル名

# 文例
$ rm index.html

# ディレクトリを削除
$ rm -r mysite

シンボリックリンクの作成

現在のディレクトリ(リンク元)にリンク先へのショートカットができる。

# 文法
$ ln -s リンク先 リンク元

# 文例
$ ln -s mysite/css/common mycommon

# ファイルにも使える
$ ln -s mysite/css/common/index.html myfile

# リンクの削除
$ rm mycommon

 

リダイレクト

ファイルの中に書き込む >

$ echo 'aaaa' > file.txt

ファイルの中に追記する >>

$ echo 'bbbb' >> file.txt

コマンドの実行結果を別のコマンドに渡す |(パイプ)

$ ls -l /etc | grep 'log'

コマンドが成功したら次のコマンドを実行する &&

$ mkdir test && cd test

 

 

ブレース展開

ブレースとは波括弧のこと。シェルにはその中に入れた数字や文字を決められた法則にしたがって展開する機能がある。

# a b c
$ echo {a,b,c}

# a b c d e f
$ echo {a..f}

# 1a 1b 2a 2b 3a 3b
$ echo {1..3}{a..b}

# app1からapp5までディレクトリを作成
$ mkdir app{1..5}

# app1からapp5の中にファイルを作る
$ touch app{1..5}/test{1..3}{.jpg,.png,.gif}

# app1からapp5の中の.png以外を削除する
$ rm app{1..5}/test{1..3}{.jpg,.gif}

# testディレクトリの中にapp1からapp5のディレクトリを作る
$ mkdir -p test/app{1..5}

 

検索系

文字がある行だけを表示する grep

# 文法
$ grep '文字列' ファイル名

# 文例
$ grep 'backup' services

パイプとgrepで検索する

lsをした結果の中にsudoが含まれるものだけを表示する

# 文法
$ コマンド | grep 文字列

# 文例
$ ls -l /etc | grep sudo

パイプを組み合わせる

lsの結果をgrepで検索してwcで行数を表示する

# 結果は5
$ ls -l /etc/ | grep 'sudo' | wc -l

ファイルを検索する find

# 文法
$ find [検索場所] [オプション] [検索ワード]

$ 文例 app3.pngという名前のファイルを捜す
$ find test -name 'app3.png'

$ 文例 ディレクトリを捜す(ファイルはf)
$ find test -type d

$ 文例他
$ find test -name 'app1*' -type f

 

 

ユーザーとグループ

ユーザーの一覧を表示する

ユーザーのデータは/etc/passwdに入っている。

$ cat /etc/passwd

# 表示結果
root:x:0:0:root:/root:/bin/ash
dotins:x:1000:10:Comment:/home/dotins:/bin/ash

表示される項目は順番に

  • ユーザー名
  • パスワード(非表示のx)
  • ユーザーID
  • グループID
  • コメント
  • ホームディレクトリの位置
  • シェルコマンド

グループの一覧を表示する

グループのデータは/etc/groupに入っている

$ cat /etc/group

# 表示結果
wheel:x:10:root,dotins

表示される項目は順番に、

  • グループの名前
  • グループのパスワード
  • グループID
  • グループに所属しているユーザー

特定のユーザーがどのグループに所属しているか

# 文法
$ groups ユーザー名

# 文例
$ groups root

# 結果
root bin daemon sys adm disk wheel floppy dialout tape video

 

アクセス権

ls -lで詳細表示してところ。ファイルのアクセス権。

最初の1文字はファイル(-)、ディレクトリ(d)、シンボリックリンク(l)

次の3つは、ユーザに与えられている権限、Read,Write,eXecuteの意味。

次の3つの塊がグループに与えられている権限、一番右がその他のユーザー。

その次がそのファイルやディレクトリを所有するユーザーやグループ。

 

アクセス権の変更 chmod

色んな書き方があるが数字で指定した方が楽。1つの足し引きなら「+」や「-」でも使えるかも。

# 文法
$ chmod アクセス権 ファイルやディレクトリ

# 文例1(全てにフルの所有権)
$ chmod a=rwxrwxrwx index.html

# 文例2(グループはrw、その他はrにする)
$ chmod g=rw,o=r index.html

# 文例3(グループにxを足す、その他からrを引く)
$ chmod g+x,o-r index.html

# 文例4(全てにフルの所有権)
$ chmod 777 index.html

 

略号

  • u = User
  • g = Group
  • o = other
  • a = 全て
  • 4 = read(読む)
  • 2 = write(書き)
  • 1 = execute(実行)

一時的にルート権限を使う sudo

/etc/shadowは通常root権限がないと見れない。

# 文法
$ sudo コマンド

# 文例
$ sudo cat /etc/shadow

 

シェルプログラム

helloというファイル名のプログラムを作る

viでファイルを作成する

$ vi hello

シェルプログラムを書く

最初の2文字#!はシェバンと言い、これがあれば次のプログラムで実行しなさいという意味。

#!/bin/ash
echo 'Hello there!'

実行権限を付与する chmod

$ chmod u+x hello

環境変数を設定する export

プログラムを置いたディレクトリにパスを通す

$ export = PATH=/home/user:$PATH

実行する

$ hello

 

シェルプログラムを書く2

<を使ってファイルの中身を流し込むみつつ、リダイレクトでresult.txtへ書き込む。

$ echo 'date' > commands.txt
$ echo 'cal' >> commands.txt
$ /bin/ash < commands.txt > result.txt

 

コマンド履歴

実行コマンドの履歴を表示する

$ history

historyのコマンドを番号で実行

# 文法
$ !番号

# 文例(history番号の5番目)
$ !5

直前のコマンドを実行

$ !!

historyを消す

$ history -d 番号

historyを全部消すとき

$ history -c

 

 

 

その他

マシンに設定された日付を表示する date

$ date

今月のカレンダーを表示する cal

$ cal

 

環境変数

環境変数を見る

$ echo $PATH

環境変数を設定する export

exportは環境変数を設定する命令。/home/userのパスを現在の$PATHにつなげて代入する。尚これは一時的なものなので永続的にするには別の方法が必要。

$ export = PATH=/home/user:$PATH

 

 

 

 

 

Laravelのバージョンを調べる

$ php artisan --version

Laravelが入っているディレクトリで行うこと

 

動いているCronを調べる

$ crontab -l

 

Webサーバ再起動

# service httpd restart
# systemctl restart httpd

 

データベースインポート

$ mysql -u root dbname < filename.sql

 

ファイヤーウォールの空いているポートを調べる

$ firewall-cmd --list-ports

 

ファイヤーウォールが起動しているか

$ firewall-cmd --status

 

ホスト名を調べる

$ hostname

 

CPU情報を調べる

$ cat /proc/cpuinfo

model name : CPUの種類
cpu MHz : CPUの動作クロック
cpu cores : CPUのコア数
siblings : HT込みの見せかけ後のコア数

 

パーティション情報を確認する

# parted -l

 

ディスク容量を確認する

$ df
$ df -m
$ df -h

-mがMB単位で、-hが人間に解りやすく表示

 

IPアドレスなどeth0のネットワーク設定を調べる

$ ifconfig eth0

 

ディストリビューションを調べる

$ cat /etc/redhat-release

 

SELinuxの有効か無効か調べる

$ getenforce

Disabledなら無効

 

ユーザー情報を確認する

$ cat /etc/passwd

 

 

PHPのバージョンを調べる

$ php -v

 

インストールされてるPHPを調べる

$ rpm -qa | grep php

 

インストールされてるApacheを調べる

$ rpm -qa | grep httpd

 

コメント

タイトルとURLをコピーしました