Linux コマンド集

ファイル/ディレクトリ関連
コマンド 説明
cd [移動先のディレクトリ] ディレクトリ移動
pwd カレントディレクトリの表示
mv [file] [file] ファイル名の変更
touch [file] 空のファイルを作成する
rm [file] ファイルの削除
mkdir [directory] ディレクトリの作成(既に存在するファイル名と同名のディレクトリを作成することはできない)
rmdir [directory] ディレクトリの削除


ファイル/ディレクトリ一覧を表示する
コマンド 説明
ls ファイル・ディレクトリ一覧の表示
ls [directory] 指定したディレクトリ内のファイル・ディレクトリの表示
ls -a [directory] 隠しファイル(.から始まるファイル)も表示
ls -l [directory] ディレクトリのリスト表示
ls [directory] ディレクトリのリスト、パーミッションの表示
ls [file] 指定ファイルの詳細情報を表示
ls -F ファイル・ディレクトリの種別を一覧で表示(ディレクトリは"/"、実行可能ファイルは"*"、シンボリックリンクは"@"、通常ファイルは記号なし)
cp [file/directory] [file/directory] ファイルやディレクトリのコピー(ディレクトリをコピーする場合は、-rオプションを使用する)


ファイルの中身を見る
コマンド 説明
cat [file] ファイルの中身を表示
less [file] ファイルの中身をスクロール表示
head [file] ファイルの先頭のみを表示(初期設定は10行)
tail [file] ファイルの末尾のみを表示(初期設定は10行)


権限を変更する
コマンド 説明
su - rootユーザーに切り替える
su - [user] [user]に切り替える
sudo [コマンド] rootユーザーとしてコマンドを実行する


その他
コマンド 説明
history [オプション] [表示するコマンド数] コマンド入力の履歴を表示する
ctrl + a コマンドラインの行頭にカーソルを移動する
ctrl + e コマンドラインの行末にカーソルを移動する
esc + f 前方に単語1つ分移動する
esc + b 後方に単語1つ分移動する
ctrl + k カーソル位置から行末までを削除する
ctrl + u カーソル位置から行頭までを削除する
ctrl + y 最後に削除した内容を挿入する
source シェルの設定を即座に反映させる
who ログインしているユーザを探す
clear 画面をクリア(消去)にする
diff [-bciqrw] ファイル1 ファイル2 2つのテキストファイルの内容を比較する
ftp リモート・ホストに接続してファイルの送受信を行う
nohup [コマンド] ログアウト後もバックグラウンドでコマンドを実行する
rcp [-prxK] コピー元 コピー先 ネットワーク上の異なるマシン間でファイルをコピーする
scp [オプション] コピー元 コピー先 リモートホストからローカルにファイルをコピーする(暗号化するので安全)
rsh [-xK] [-l ユーザー] ホスト コマンド 指定されたリモート・マシンにコマンドを送り実行させる。
sort ファイル内の行を並び替える
split ファイルを分割して複数の新ファイルを生成する
hostname システムのホスト名を表示する(間違えて変な引数をとると名前を変更してしまうのでuname -aを使ったほうがいい
uname -n ユーザ名を表示する
sed -n 行番号A,行番号Bp file 行番号Aから行番号Bを表示する


grep

grepはファイル中の文字列に対して正規表現を使って検索し表示するLinuxコマンドだ。

オプション 説明
-r ディレクトリ内容も検索対象とする
-n 行番号を表示させる

grepコマンドの詳細まとめました【Linuxコマンド集】

#libディレクトリ以下のファイルの全ての中からaという文字を再帰的に検索する。
$ grep -rn a lib*



再帰的に検索するとは
対象となるディレクトリ内にディレクトリ がある場合は、そのディレクトリ内のファイルも含めて検索を行うということ。

grepの派生コマンド
コマンド 説明
grep 簡単な絞り込みに用いられる
egrep より強力な拡張正規表現(EREs)が使える
fgrep grepやegrepよりも早いが限定的な正規表現しか使えない
zgrep gzipなどで圧縮されたファイルも対象にできる
zegrep zgrep + egrep
zfgrep zgrep + fgrep


find

findは指定した名称のファイルやディレクトリが存在するか正規表現を使って検索し表示するLinuxコマンドだ。

"."を検索開始ディレクトリとして".tt"という文字列を含むファイルをprintする。
$ find . -name "*.tt" -print

findコマンドで覚えておきたい使い方12個(+1個) | 俺的備忘録 〜なんかいろいろ〜

sed

sedはファイルを読み込み、指定されたコマンドに従って文字を変換するLinuxコマンドだ。

#文字を変換した上で、元のファイル内容を上書きする
$ sed -i 's/置換対象文字列/置換後文字列/g' ファイル名


tail

tailはファイルの最終行から数行を表示するコマンドだ。デフォルトだと10行が表示される。

#指定したファイルの最終行から100行を表示する。追記があった場合は、追記の文を表示する(-nオプション)。
$ tail -f -n 100 ファイル名


特定のファイルから特定の文字列を検索する
git log -p -S 文字列 ファイルのパス


特定の文字列を含むファイルを完全一致で検索する
grep -rn -w 文字列 .

cpanでインストールしたモジュールは基本的にホームディレクトリ以下に作成される。


リモートの特定のファイルをローカルに反映させる
git checkout ブランチ名 -- ファイルのパス


ファイルの文字コードの判別をする
nkf --guess ファイル名


CPANモジュールのインストール場所の確認をする
perldoc -l モジュール名


CPANモジュールのバージョンを確認する
perl -M'モジュール名' -e 'print $モジュール名::VERSION'
# 例
perl -MGearman::Client -e 'print $Gearman::Client::VERSION'


デーモンを起動する
service サービス名 start


リモートブランチを削除する
git push --delete origin branch_name


ローカルブランチをマージしたかどうかを問わずに削除する
git branch -D branch_name


特定の行のみ表示する
sed -n 10p file_path


プロセスが使用しているポートを表示する。表示されたポート番号の使用を止める。
lsof -i:ポート番号
kill -9 ポート番号


shift jisで文字化けしているファイルを正常に表示させる。
iconv -f SJIS "ファイル名"


ファイルの文字コードを変換する。
iconv -f sjis -t utf-8 sample.pl -o sample.pl
# オプション
-f : 変換元の文字コード
-t : 変換後の文字コード
-o : 出力するファイル
INPUTFILE : 変換元のファイル名


duコマンドで一番容量を食っているディレクトリを探す
du -sh * | sort -nr


ディスク容量の使用状況を表示
$ df -h


iノード数を表示
$ df -i


ルートディレクトリの各ディレクトリのディスクの利用状況把握
sudo du -sh /*


別ブランチからファイルをコピーする
git checkout <ブランチ名> -- <ファイル名>


ローカルの変更を元に戻す
git checkout <filename>


nkfコマンド

nkf」は「Network Kanji Filter」の略で、LinuxWindowsなど、異なるOS間でテキストデータを交換する際に問題となる文字コードと改行コードを変換するためのコマンドである。

whichコマンド

whichコマンドは、環境変数のPATHに設定されているディレクトリ順に調べ、最初に見つかったコマンドを表示する。PATHに設定されている全ディレクトリを調べるには、-aオプションを使用する。

$ which httpd
/usr/sbin/httpd


インストール済のパッケージ一覧を表示する
$ yum list installed | grep ファイル名


リポジトリ内で利用可能なパッケージを表示する
$ yum list available | grep ファイル名


rpm

rpm」は、Red Hat系のLinuxディストリビューションで使われている“RPMRed Hat Package Manager)パッケージ”を扱うことができるパッケージ管理コマンドである。

2つのファイルの差分を表示する
vimdiff filename1 filename2


作業ブランチの変更を元に戻す
git checkout ファイル名

www.atmarkit.co.jp

ブランチ比較

br1ブランチのfoo/bar.tx と br2ブランチのhoge/fuga.txtを比較する

git diff br1:foo/bar.txt br2:hoge/fuga.txt


ブランチ間で差分のあるファイルの名前とステータスのみ表示
git diff --name-status  feature source/js/


setuidgid

setuidgid は明記されたアカウントの uid と gid で別のプログラムを起動する。

setuidgid account child

account は一つの引数で、child は一つ以上の引数からなる。
setuidgid は account の uid と gid に自身の uid と gid を設定し、全ての補助グループ(supplementary groups)を解除する。 それから child を起動する。


mysql マイグレーション
mysql -uroot DB名 < hoge.sql


ps auxf

プロセスごとの実行状態などを階層構造で表示する。

crontab

crontab(クロンタブ、あるいはクローンタブ、クーロンタブとも)コマンドはUnixオペレーティングシステム (OS) において、コマンドの定時実行のスケジュール管理を行うために用いられるコマンドである。

指定したDB名/テーブル名のデータのSELECT文を取得する。
mysqldump -uroot -t --compact --skip-extended-insert DB名 テーブル名 --where="条件" > ファイル名


コンフリクトを解消する
git mergetool ファイル名