Edited at

Linuxターミナルコマンド一覧(中級編)

More than 1 year has passed since last update.

自分のローカル環境での作業では、実際にGUIでグラフィカルにファイルやディレクトリをいじることができます。

しかし、sshでログインしているサーバーではそうはいかず、ターミナルだけでファイルをやディレクトリを編集しなければならないこともあります。

本記事では、サーバーで何かする際によく使うと思われるコマンドを紹介します。


コマンド一覧


cat コマンド

ファイルの中身を表示するコマンド。

cat test.html  #test.htmlの中身を表示する

cat -n test.html #test.htmlの中身を行番号と一緒に表示する


find コマンド

ファイルを検索するコマンド。

これはデフォルトで指定したファイル以下をすべて検索してくれます。

ファイルの読み込み権限がない場合は末尾にpermission deniedと表示されるので、これがでた場合にはsudoをつけて実行しましょう。

find ディレクトリ 検索条件 アクション   #このような形になっています


検索条件

find ディレクトリ -name "文字列" アクション  #ディレクトリ以下から文字列にマッチするファイルを検索する

find ディレクトリ -name "文字列" アクション #ディレクトリ以下から大文字、小文字を区別せずに文字列にマッチするフィイルを検索する
find ディレクトリ -type d #ディレクトリを探し出す
find ディレクトリ -type f #ファイルを探し出す


アクション

find ディレクトリ 検索条件 -print  #検索ファイルを表示する

find ディレクトリ 検索条件 -ls #検索ファイルを詳しく表示する)


実際に使ってみる

find . -type f -print  #カレントディレクトリ以下のファイルを全て表示する

find . -type d -print #カレントディレクトリ以下のディレクトリをすべて表示する
find . −name "hoge" −print -type f #カレントディレクトリ以下から、hogeという文字列が含まれるファイルを検索して表示する


grep コマンド

ファイル内から指定した文字に一致する内容を含む行を検索する。

grep オプション 検索文字列 ディレクトリ名  #このような形になっています。


オプション

grep -r  #指定したディレクトリ以下をたどって検索する

grep -i #大文字小文字を区別せずに検索する
grep -l #検索した文字列が含まれているファイル名のみを表示する
grep -n #検索した文字列が書いてある行番号を表示する。-lオプションと併用することはできない
grep -e #複数の検索条件を指定する
grep -v #パターンに一致しない行を表示する


実際に使ってみる

grep "hoge" *.html  #拡張子がhtmlのファイルからhogeを検索

grep -n "hoge" text.html #test.htmlよりhogeを検索して行番号をつけて行を表示する)
grep -ir "hoge" . #カレントディレクトリ以下のすべてのファイルからhogeという文字列が含まれている行を表示する


ps コマンド

起動しているプロセスを表示するコマンド。

ps aux  #起動しているすべてのプロセスを表示する

ps aux | grep hoge #上記のgrepコマンドと組み合わせて、psコマンドで検索したプロセスでhogeという文字が含まれるプロセスだけを表示する
ps aux | grep hoge | grep -v grep #上記のコマンドで、grepコマンド以外のプロセスでhogeが含まれるプロセスだけを表示する
ps --pid PID #特定のPIDだけを表示する

詳しい使い方などは以下のqiita記事を参考にしてみてください。

psコマンドまとめ


killコマンド

プロセスを終了させるコマンド。

kill PID  #さきほど表示したpsコマンドで表示したプロセスを終了させる

kill -9 PID #プロセスIDのプロセスの強制終了させる


tail コマンド

ファイルの末尾を表示するコマンド。

tail -n 10 test.log  #test.logというファイルを末尾から10行目までを表示する

tail -f test.log #test.logの内容を常に監視して表示を更新する


chown コマンド

ディレクトリやファイルの所有権を変えるコマンド。

chown testuser /usr/local/var/test.html  #/usr/test.htmlのファイルの所有権をtestuserに変更する

chown -r testuser /usr/local/var #/usr/local/var以下のファイルの所有権をすべてtestuserに変更する


uname コマンド

システムの情報やバージョンなどを表示するコマンド。

uname -a  #システムのすべての情報やバージョンを表示する

uname -n #ホスト名を表示する
uname -m #PCの種類を出力する
uname -r #OSのリリース番号を出力する
uname -s #OSの名称を出力する
uname -v #OSのバージョンを出力する


ln コマンド

ファイルやディレクトリへのリンクファイルを作成する。

ln file-a file-b  #file-aのハードリンクfile-bを作成する

ln -s file-a file-b #file-aのシンボリックリンクのfile-bを作成する
ln -f ~~~ #すでにリンクが張られているリンクを上書きする
ln -v ~~~ #リンク作成前にファイル名を表示する


ハードリンク

あるファイルと全く同じ(別名だけどファイルの情報や中身まですべてが同じ)ファイルを別の場所に作ります。

参照元のファイルの情報(所有権でもファイルの中身でも)を変えたら、それに応じてリンクファイルの内容も変わり、その逆もまた同じことが起きます。


シンボリックリンク

シンボリックリンクは参照元と参照先の区別がはっきり存在します。

シンボリックリンクは参照先が存在しなくてもエラーにはなりません。


chown コマンド

そのファイルの所有権を決める

chown testuser test.html #test.htmlの所有者をtestuserに変更する

chown -R testuser test.html #test.htmlのディレクトリ以下のすべてのファイルとディレクトリの所有者をtestuserに変更する


chmod コマンド

そのファイルやディレクトリにに対して誰がどのような権限があるかを決める

chmod u+x test  #testファイルにユーザーの実行の権限を与える

chmod u-r /usr/local/test #/usr/local/testファイルのユーザーの読み込み権限を取り去る
chmod -R g+w /usr/local #/usr/local以下の全てのファイルに対してグループの書き込み権限を与える
chmod -R 755 test #testディレクトリ以下のすべてのファイルとディレクトリにユーザーrwx/グループrx/その他rxの権限を与える


権限の見方

表示
意味

-rw-r--r--
読み出し可能なファイル。所有者だけが書き込み可能

-rwx------
実行可能なファイル。所有者以外のアクセスはすべて不可

-rwxrwxrwx
すべてのユーザーが,すべての操作を行える

-rwxrwxr-x
所有者とグループ・ユーザーのみ書き込み可能

-rwsrwxr-x
ファイルを実行する際,所有者の権限で実行する

-rwxrwsr-x
ファイルを実行する際,グループの権限で実行する

-rwTrw-rw-
全てのユーザーがファイルの変更はできるが,削除やファイル名の変更は所有者のみが行えるファイル

drwxr-xr-x
ディレクトリ。他のユーザーは書き込み不可

drwx------
プライベートなディレクトリ

drwxrwxrwt
すべてのユーザーがディレクトリ内のファイルを作成・変更できるが,削除やファイル名変更は所有者のみが行えるディレクトリ

lrwxrwxrwx
シンボリック・リンク。パーミッションはリンク先のものを引き継ぐ

記号
意味

r
読み出し可能。マイナス(-)の場合は読み出し不可

w
書き込み可能。マイナス(-)の場合は書き込み不可

x
実行可能。マイナス(-)の場合は実行不可

t
ディレクトリへのスティッキ・ビット。所有者のみがディレクトリ内のファイル名の変更,削除を行える

T
ファイルへのスティッキ・ビット。所有者のみがファイル名の変更,削除を行える

s
セットID。その他のユーザーがファイルを実行する際,所有者またはグループの権限で実行する

権限
数字

rwx
7(=4+2+1)

rw-
6(=4+2)

r-x
5(=4+1)

-wx
3(=2+1)

r--
4

-w-
2

--x
1

---
0