Shebang(シェバン)

#!で始まる行のこと。実行ファイルとして動かすには記述が必要。

#!/bin/sh

#!/usr/bin/env python

#!/usr/bin/env ruby

環境確認

# Linux 定数確認
$ set
$ printenv

# machine名称情報確認
$ cat /etc/redhat-release

# hosts確認
$ cat /etc/hosts

# shell確認
$ echo $SHELL

# コマンド履歴
$ history

# linuxデータベースから一覧表示させる
$ getent [option]

# ファイルシステムの使用状況
$ df -h

# フォルダサイズの確認
$ du -sh

# 直前に終了したコマンドの終了コードを取得する(通常終了:0)
$ echo $?

# TODO:未調査
# コマンドを作成して実行する
$ xargs

# 上書き保存
$ echo "text" > test.txt

# ファイルへ書き込む
$ echo "add text" >> test.txt

# commnad 1>標準出力 2>標準エラー出力。
# &1は1>の結果と同じの意味。
# /dev/nullはlinux上では存在しないフォルダで出力を捨てるの意味。
$ command > /dev/null 2>&1

# 設定時間分待機する
$ sleep 1

# 処理時間を計測する
$ time [command]

閲覧

# ファイル末尾まで表示し終了する
$ more [file]

# ファイル末尾まで表示し終了しない
$ less [file]

# ファイルの中身を表示する。連結できる。
$ cat [file] [file]
$ cat [file] [file] > [file]

# ファイル先頭を確認する(あまり使わない)
$ head -n 5 [file]

# ファイル末尾を確認する
$ tail -n 5 [file]

# リアルタイムにlogファイルを監視
$ tail -f [file] | grep error

検索

# コマンドの場所
$ which [command]
$ where [command]

# ファイル名検索
$ find [directory] -print -name "[正規表現]"

# ファイル内の文字列検索
$ find ./ -type f -print | xargs grep '自分が子供の時、一緒に暮らしていた、'

# ファイルデータベースから検索
$ updatedb
$ locate [name]

文字列の抽出・置換・検索

# TODO:未調査

# 抽出
$ awk

# 削除
$ sed '/^$/d' source.txt

# textデータから検索
$ grep [name]

# ファイル内の文字列を検索
$ cat [ファイル名] | grep [検索文字列]

# 実行プロセスの中から名称を検索
$ ps aux | grep [プロセス名]

# command historyから検索
$ history | grep [コマンド名]

# Linux 定数検索(バイナリファイルと誤認されるのでaオプションを付与する)
$ set | grep -a SHELL

権限

# 現在のユーザー
$ whoami

# ユーザー一覧の確認
$ cat /etc/passwd

# ユーザーパスワード確認
$ cat /etc/shadow

# ユーザーグループ確認
$ cat /etc/group

# ユーザーのグループ確認
$ groups [user name]
$ getent group [user name]

# 所有ユーザー、グループを変更する
$ chown [user]:[group] [file]

# 所有グループを変更する
$ chgrp [group] [file]

# 権限の変更
# r:4 w:2 x:1
$ chmod 775 [file]

プロセス

# 実行プロセスを確認
$ ps aux

# 実行プロセスをツリー表示させる
$ ps auxf

# プロセスを通常終了させる
$ kill [pid]

# プロセスを強制終了させる
$ kill -9 [pid]

#プロセスを停止させる
$ kill -STOP

ファイル複製・データ転送

# 複製
$ cp [複製元] [複製先]

# 同期
$ rsync [同期元] [同期先]

# ファイルをsshでコピー
$ scp [file1] [host2]:[path2]
$ scp [host2]:[path2][file1]

# ファイルをsftpで転送
$ sftp [オプション] ホスト名 [コマンド]

圧縮・解凍

# 圧縮する
$ tar -cvzf [ファイル名].tar.gz [圧縮対象ディレクトリ]

# 解凍する
$ tar -xvzf [ファイル名]