Linux初心者~Linuxコマンド~

システムLinux

はじめに

仕事でLinuxを使うことになり、Linuxコマンドを毎回調べるが面倒だったので
自分用にまとめた備忘録です。
ただせっかくまとめたのでブログにしちゃえってことで公開しました!
※細かい説明とかは省略してます。
もし、誤った内容がありましたらご指摘をお願いしますm(_ _)m

Linux初心者~Linuxコマンド~
Linux初心者~Linuxコマンド~

キーコマンド

シェル

カーソル移動

コマンド内容
Ctrl + b左へ移動
Ctrl + f右へ移動
Ctrl + a行頭移動
Ctrl + e行末移動

編集

コマンド内容
Ctrl + hカーソル位置から左の1文字を削除
Ctrl + dカーソル位置から右の1文字を削除
Ctrl + wカーソル位置から1単語削除
Ctrl + kカーソル位置から行末まで削除
Ctrl + uカーソル位置から行頭まで削除

コマンド履歴

コマンド内容
Ctrl + p前のコマンド
Ctrl + n次のコマンド

その他

コマンド内容
Ctrl + l画面出力をクリア

メタキャラクタ

メタ内容
*0文字以上の任意の文字列
?任意の1文字列
[]指定の1文字
{}カンマで抉った任意の文字列
  • .txtのファイル一覧を表示
$ ls /home/ユーザ名/*.txt
  • 3文字の.txtファイル一覧を表示
$ ls /home/ユーザ名/???.txt
  • aかbかcで始まる.txtファイル一覧を表示
$ ls /home/ユーザ名/[abc].txt
  • 0から9で始まる.txtファイル一覧を表示
$ ls /home/ユーザ名/[0-9].txt
  • 0から9で終わる.txtファイル一覧を表示
  • []に記述する文字の並びは文字コードの昇順である必要がある
$ ls /home/ユーザ名/*[A-Za-z].txt
  • .txtか.htmlファイルの一覧を表示
$ ls /home/ユーザ名/.{txt,html}

リダイレクション(標準出力/標準入力)

記号内容
>標準出力をファイルに設定(上書き)
>>標準出力をファイルに設定(追記)
<標準入力をファイルに設定
2>標準エラー出力をファイルに設定(上書き)
2>>標準エラー出力をファイルに設定(追記)
&>標準出力と標準入力をファイルに設定

コマンド

ファイル操作

ls

オプション内容
-l詳細情報を表示
-a隠しファイルを表示
-Fファイルの種類を表示(/:ディレクトリ,*:コマンド,@:シンボリックリンク)
-hファイルの単位を表示(K:キロバイト,M:メガバイトなど)
-tタイムスタンプ順に表示
-r逆順に表示
-iiノード番号を表示
  • フォルダ/ファイル一覧表示
$ ls
bin  book.txt  images  list.txt  sorce  work

mkdir

オプション内容
-pサブディレクトリごと作成
  • ディレクトリ作成
$ mkdir /home/ユーザ名/hoge/

less

オプション内容
-N行番号を表示
-x 4タブを4スペースで表示
-i大文字小文字区別なしに検索(小文字入力時)
  • ファイル出力
$ less /home/ユーザ名/hoge.txt
  • 検索文字列のヒット数を表示
$ less /home/ユーザ名/hoge.txt | grep 'ほげ' | wc -l

cat

| オプション | 内容 |
|:–:|:–|
|-n|行番号付き|
* ファイル出力

$ cat /home/ユーザ名/hoge.txt

tail

オプション内容
-f内容を常に監視
  • ファイル末尾を表示
$ tail /home/ユーザ名/hoge.txt
  • tail で grep を使う
$  tail -f /home/ユーザ名/hoge.log | grep --line-buffered "ほげ"

zcat

  • gz圧縮されたファイルを表示(解答しない)
$ zcat /home/ユーザ名/hoge.gz

cp

オプション内容
  
  • ファイルをコピー
$ cp /home/ユーザ名/hoge.txt /home/ユーザ名/hoge2.txt

ファイル検索

find

オプション内容
-nameファイル名で検索
  • ファイル名で検索
$ find /home/ -name test.txt
$ find /home/ -name test.*
$ find /home/ -name test.???
$ find /home/ -name test.txt -ls
  • 空ファイルを検索
$ find /home/ -empty
  • 今日変更されたファイル
$ find /home/ -mrtime 0
  • 3分前に変更されたファイル
$ find /home/ -mmin 3

grep

オプション内容
-i大文字小文字判別しない
  • 行番号表示
$ grep -rn test /home/
  • 大文字小文字区別無し
$ grap -ri test /home/
  • ほげ
$ grep -rE 'test|TEST' /home/
  • 対象ファイル内に検索ワードが何件あるか
$ zgrep '/home/test.txt' *検索ワード* | wc

ファイル差分

diff

オプション内容
-B 
-w 
  • hoge1.txtとhoge2.txtを比較し、差分結果を表示
$ diff /home/ユーザ名/hoge1.txt /home/ユーザ名/hoge2.txt

シンボリックリンク

ln

オプション内容
-sシンボリック・リンクを作成する
  • 作成
$ ln -s 元ファイル 先ファイル

unlink

  • 削除
$ unlink ファイル

圧縮・解凍

tar

オプション内容
-c書庫を新規に作成する
-f指定した書庫ファイルまたはデバイスを使用する。初期値は/dev/rmt0
-v処理したファイルの一覧を詳細に表示する
-x書庫からファイルを取り出す
-zgzipを通して処理する
  • gzip形式の解凍
$ tar zxvf ファイル名.tar.gz
  • gzip形式に圧縮
$ tar zvcf ファイル名.tar.gz

同期

rsync

オプション内容
-a元のパーミッションやグループなどを保持して同期
-v処理中の経過ファイル名を表示
-eリモートシェルを指定
  • ローカル内で同期
$ rsync -av /home/ /home_back/
  • リモート先と同期
$ rsync -av ssh /home/ ユーザ名@XXX.XX.X.X:/home/

パッケージ管理

yum

  • クリーン
# yum clean all
  • インストール
# yum install パッケージ名
・PHP 5.6をインストール
# yum install --disablerepo=amzn-main --enablerepo=remi-php56 php php-fpm
  • アップデート
# yum update パッケージ名
  • 削除
# yum remove パッケージ名
  • インストール一覧
# yum list installed
  • アップデート可能パッケージ
# yum list updates
  • インストールパッケージで利用不可なリポジトリーのパッケージ
# yum list extras
  • パッケージの情報確認
# yum info パッケージ名
  • パッケージのバージョン確認
# yum list パッケージ名
  • パッケージの更新確認
# yum check-update パッケージ名
  • パッケージ検索
# yum search パッケージ名
  • 実行履歴確認
# yum history
  • 実行履歴の詳細確認
# yum history info 実行履歴ID
  • 実行の取消
# yum history undo 実行履歴ID
  • レポジトリーをインストール
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# rpm -ivh remi-release-6.rpm
  • レポジトリーのインストールを確認
# less /etc/yum.repos.d/remi.repo

rpm

  • インストール
# rpm -ivh パッケージ名.rpm
  • インストール一覧 特定パッケージ
# rpm -qa | grep パッケージ名

composer

  • ダウンロード
# curl -sS https://getcomposer.org/installer | php
  • インストール
# composer create-project laravel/laravel プロジェクト名 --preger-dist

アカウント

useradd

オプション内容
-mホームディレクトリの作成を自動でする
-Gユーザの所属グループを指定 ※複数は’,’
  • 作成
$ useradd -m ユーザ名

passwd

  • パスワード設定
$ passwd ユーザ名

id

  • ID確認
$ id ユーザ名

groups

  • 所属グループを確認
$ groups ユーザ名

getent

  • グループの所属ユーザを確認
$ getent group グループ名

usermod

  • グループへユーザを追加
$ usermod -G グループ名 ユーザ名

last

  • ログインログ
$ last

サービス

systemctl

  • 起動
# systemctl start サービス名
  • 停止
# systemctl stop サービス名
  • 登録
# systemctl enable サービス名
  • 解除
# systemctl disable サービス名

プロセス

ps

オプション内容
-a自分以外のユーザのプロセスも表示
-e「実効命令 + 」に環境変数を不可
-fツリー形式で表示
-l標準のPID,TTY,TIME,CMDに加え,F,S,UID,PPID,C,PRI,NI,ADDR,SZ,VSZ,RSS,WCHAN,STATも表示する
-x制御端末の無いプロセス情報も表示
-uユーザ名と開始時刻を表示
  • 確認
$ ps alx
  F   UID   PID  PPID PRI  NI   VSZ  RSS WCHAN  STAT TTY        TIME COMMAND
100     0     1     0   0   0  1096  468 do_sel S    ?          0:04 init [3]
                                  :
140     0   563     1   0   0  2384 1224 do_sel S    ?          0:00 httpd
                                  :
                                  :
100   500   683   681   9   0  1744  992 wait4  S    pts/0      0:00 -bash
000   500   780   683  13   0  2484  832 -      R    pts/0      0:00 ps axl
  • 確認(子プロセス)
$ ps axuf

kill

  • 終了
$ kill プロセスID
  • 停止
$ kill -STOP プロセスID

jobs

  • バックグラウンドの実行プログラムを確認
$ jobs

スケジュール

cron

  • cron編集
$ crontab -u ユーザ名 { -l | -r | -e }

通信

wget

curl

ssh

  • 接続
$ ssh ホスト名

そのほか

which

  • コマンドのフルパス表示
$ which ls
alias ls='ls --color=auto'
        /bin/ls

history

  • コマンド履歴
$ history

そのほか

ログファイル

  • システム起動時のサービスの起動メッセージなどが記録されるファイル
# less /var/log/boot.log
  • cronやatdのようなクロックデーモンのログが記録されるファイル
# less /var/log/cron
  • メールシステムのログが記録されるファイル
# less /var/log/maillog
  • 認証に関するログが記録されるファイル
# less /var/log/secure
  • UUCP(Unix to Unix CoPy、2つのUNIX*システム間でデータ交換を行うための一連のプログラム群)のログが記録されるファイル
# less /var/log/spooler
  • 上記以外のsyslogメッセージが記録されるログファイル
# less /var/log/messages
  • インストールされているすべてのrpmパッケージ名を記録したファイル
# less /var/log/rpmpkgs
  • yumのログファイル
# less /var/log/yum.log
  • Let’s Encryptのログファイル
# less /var/log/letsencrypt
  • ログインログ
$ last

設定ファイル

  • レポジトリーのインストールを確認
# less /etc/yum.repos.d/remi.repo

権限(パーミッション)

d rwx rwx r-x
_ ___ ___ ___
| |    |   |
| |    |   └その他
| |    └所有者グループ
| └所有者
└ファイル種別

内容
r読み込み可
w書き込み可
x実行可
なし
内容
7rwx
6rw-
5r-x
4r–
0

参考サイト

システムLinux