Linux初心者がとあるプロジェクトで手順書が無いサーバーの構築を命じられたときに使用したコマンドをまとめた

Linux初心者に突然以下の仕事が振られました.

  • 試験環境サーバー構築
  • シェルの要所要所でログを出すようにする

今回構築するサーバーはなんと本番環境しかなく,まともな手順書がないっていうもう残念な感じでした. そんな中でもtry & errorでなんとか構築できたのでその際に使用したコマンドたちを備忘録としてさらします.

パッケージ管理

パッケージインストール

sudo apt-get install apache2

パッケージ削除

sudo apt-get remove apache2

パッケージ管理更新

sudo apt-get update && sudo apt-get upgrade

パッケージ完全削除

  • 設定ファイルごと削除する
sudo apt-get purge apache2

ファイル操作

ファイルコピー

  • /usr/local に tmpsrc ファイルがごそっと入る
sudo cp -r /tmp/tmpsrc /usr/local

ディレクトリ操作

ディレクトリ作成

mkdir -p testdir

カレントディレクトリ表示

pwd

解凍

tar.gzの解凍

tar -zxvf xxxx.tar.gz

.tgzの解凍

tar xvzf xxxx.tgz -C /tmp/tmpsrc

所有権変更

# -Rでディレクトリの中身も含めて再帰的に処理する
# 所有者をtestuserに,所有グループをrootにする
chown -R testuser:root /home/testuser/example01 /home/testuser/example02

ログイン

ディレクトリを変えずにログインする

su testuser

ディレクトリをユーザーのルートに切り替えてログインする

su - testuser

ユーザー

ユーザー作成

sudo useradd testuser

ユーザー削除

sudo userdel testuser

ユーザー一覧

cat /etc/passwd

グループ

グループを作成

sudo groupadd testuser

グループを削除

sudo groupdel testuser

グループ一覧

cat /etc/group

FW

FWインストール

sudo apt install firewalld

FWポート開放

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent

FW設定反映

sudo firewall-cmd --reload

パーミッション

パーミッション設定

モード(数字) モード(アルファベット) 権限
4 r 読み取り
2 w 書き込み
1 x 実行

「所有者」「所有グループ」「その他」の順に権限をモードの合計値で設定する.

chmod 777 /tmp/test.txt

パーミッション確認

ls -l

cron

コマンドやシェルスクリプトを定期的に自動実行するデーモン.

cron.d

  • /etc/cron.d 配下に設定を追加する
sudo cp /etc/crontab /etc/cron.d/cron_test
vi /etc/cron.d/cron_test
# m h dom mon dow user  command
# 10分ごとに実行する
*/10 * * * *   userA echo "hello new world!"

その他

スクリーン初期化

clear

環境変数設定

export HOGE=aiueo

ロギング

  • コマンドの実行履歴をファイルに出力する.
script /tmp/20190207.log
  • ロギングをとめる
exit
  • 自作ロガー
#!/bin/bash
#
# 指定したファイルにログを出力します。
#
# Example:
#   . ./logger.sh
#   write_log "/tmp/sample.log" "this is test."
# 
# Args:
#   $1 - ログ出力先
#   $2 - ログメッセージ
#
# Return:
#   0
#
function write_log() {
  nowd=`date '+%Y/%m/%d'`
  nowt=`date '+%H:%M:%S'`
  echo "${nowd} ${nowt}: $2" >> $1
  return 0
}