(Linux) 日常作業用のコマンド類メモ 〜テキスト処理・開発環境・サービス管理〜

戻る一つ前のメニューに戻る

目次

grep

OR条件で複数のマッチパターンを指定する

grep -e 'Pattern1' -e 'Pattern2' file.txt

マッチした行を表示する

grep -n -e 'Pattern' file.txt

ディレクトリ以下全てのファイルから検索する

grep -e 'Pattern' -R *.txt
find /dir -type f -name '*.txt' | xargs grep -e 'Pattern'
find /dir -type f -name '*.txt' -exec grep -e 'Pattern' {} \;

ディレクトリ以下全てのファイルから検索する(ファイル名と行番号も出力)

find /dir -type f -name '*.txt' -exec grep -Hn -e 'Pattern' {} \;

ディレクトリ以下全てのファイルから検索する(ファイル名のみ表示)

find /dir -type f -name '*.txt' -exec grep -l -e 'Pattern' {} \;

sed

先頭に#や;のある行(コメント行)の削除

sed '/^\;/d' [ファイル名]
sed '/^\#/d' [ファイル名]

空白行(改行のみある行)の削除

sed '/^$/d' [ファイル名]

sed "/^$/d" のように"で囲むとエラーとなる

複数条件を指定するには、条件の間をセミコロンで区切る

sed '条件;条件'

プロセス管理

指定したプロセス名のPIDを得る(-x オプションで完全一致の場合のみ)

pgrep -x [プロセス名]

指定したプロセスを停止する(-x オプションで完全一致の場合のみ, -HUP はプロセスのリロード)

pkill -x -HUP [プロセス名]

指定したプロセスが実行中の場合、指定したプログラムを実行する

[ -n "$(pgrep -x プロセス名)" ] && 実行するプログラム

開発環境

初期設定(インストール)

CentOSの場合
yum groupinstall "Development Tools"
Ubuntuの場合
apt-get install build-essential

ビルドに必要なライブラリを一括インストールする

CentOSの場合
yum-builddep package_name.src.rpm
Ubuntuの場合
apt-get build-dep package_name

サービスの管理

upstart (Debian/Ubuntu)

一覧表示 (起動されているサービスはprocess番号が表示される)

initctl list

有効・無効化は、/etc/init以下の設定ファイルを編集する。例としてsambaデーモンの設定ファイルの該当部分を示す

start on (local-filesystems and net-device-up)
stop on runlevel [!2345]

サービスの手動での起動・停止・再起動・状態表示

initctl start|stop|restart|status [service]

SysVinit (Debian/Ubuntu)

一覧表示

sysv-rc-init --list

有効・無効化

sysv-rc-init [service] on|off

サービスの有効・無効化は/etc/rc*.d//etc/init.d/の起動スクリプトへのシンボリックリンクを張ることにより行われる。

サービスの手動での起動・停止

service [service] start|stop|restart
戻る一つ前のメニューに戻る