LoginSignup
1
6

More than 5 years have passed since last update.

サーバ作業でよく使うUNIXコマンド

Last updated at Posted at 2018-01-31

概要

UNIXコマンドについて、サーバ作業をするさいのイディオムをまとめます。
シェルを書くためのイディオムではなく、その場でさっと作業するためよく利用するにやつです。

文字列の検索

#単純に検索
grep 検索するキー 検索対象ファイル


#何らかの処理結果を検索
cat 検索対象ファイル | grep 検索するキー


#ルートから検索する場合エラーが出るのでエラーは捨てる
grep 検索するキー / 2>/dev/null

文字列の置換

#sedでするパターン(ファイルを直接書き換え)
sed -i -e "s/置換対象の文字列/置換する文字列/" 対象ファイル
#=>ファイルが直接書き換わる


#sedでするパターン(パイプ受け取り)
cat 対象ファイル | sed -e "s/置換対象の文字列/置換する文字列/"
#=>標準出力に結果が出力される


#viで置換するパターン
:%s/hoge/fuga/

当日用の日付ディレクトリを作成する

もっともよく使うコマンドです。

#基本パターン
mkdir `date '+%Y%m%d'`
#=>20180131


#同日作業で被らないように時間付き
mkdir `date '+%Y%m%d_%H%M%S'`
#=>20180131_221611


#プロセスID付き
mkdir `date '+%Y%m%d'`_ID$$
#=>20180131_ID39015

プロセスIDの取得

以下は、sshdのプロセスを取得する


ps -ef | grep  sshd | grep -v grep | awk '{ print $2}'
#=>953
#=>15389
#=>15392

特定行の抜き出し

#cutコマンドを利用するパターン(シンプルだが文字列の生成はやりづらい)
echo a b c | cut -f2 -d" "
#=>b

#awkを利用するパターン(文字列の生成がやりやすい)
echo a,b,c,d | awk 'BEGIN {FS=","} {print "先に"$2"後に"$1}'
#=>先にb後にa

重複行の削除

cat 対象ファイル | sort | uniq
#=>標準出力に結果が出力される

繰り返し処理

この形式で覚えておけば大抵の事には対応できるはず。

cat list.txt | while read LINE; do
 echo ${LINE}
done
1
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
6