Bash

Linux で、ユーザーをグループに追加する方法

Linux でユーザーをグループに追加する方法は1つだけではなく、実はいろいろな方法がある。コマンドでいうと、gpasswd と usermod、adduser の3つ。

このうち、ユーザーをグループに追加するには gpasswd を使うとよい。

gpasswd -a <USERNAME> <GROUPNAME>

usermod は、

usermod -aG <GROUPNAME> <USERNAME>

のように使うが、-a オプションを忘れて usermod -G ... だけにしてしまうと、なんと既存のグループが上書きされてしまうので注意が必要である。

Ubuntu 系では、adduser が使える。

adduser <USERNAME> <GROUPNAME>
続きを読む

Linux の cron で、月末だけコマンドを実行する方法

/etc/crontab を編集する

vi /etc/crontab

月末だけ実行

H 23 28-31 * * /usr/bin/test $( date -d '+1 day' +%d ) -eq 1 && <実行したいコマンド>

最終金曜日のみ実行の場合

0 0 * * 5 /usr/bin/test $( date +%m ) -ne $( date --date '7 day' +%m ) && <実行したいコマンド>

特に、

/usr/bin/test $( date -d '+1 day' +%d ) -eq 1

や

/usr/bin/test $( date +%m ) -ne $( date --date '7 day' +%m )

は、Jenkins でも活躍しそう。

続きを読む

Bash で、エスケープシーケンスで使える色を調べる方法

以下のスクリプトを作成して実行。

vi color.sh
chmod +x color.sh
./color.sh
#!/bin/bash

export txtrst='\x1b[00m'      # Reset

echo
for i in {0..255} ; do
  printf "\x1b[00;${i}m ${i}${txtrst}"
done
echo

echo
for i in {0..255} ; do
  printf "\x1b[38;05;%03dm 38;05;%03d " ${i} ${i}
  if [ $(( ${i} % 8 )) -eq 7 ] ; then
    echo
  fi
done
echo

ここで色の一覧が出てくるので、以下のように数字を指定して使用する。

続きを読む

Bash で、色付きのプロンプトを出す方法

[09/20 13:49][ubuntu@pixie:/etc]$

のように、

[日付][ログインアカウント名@サーバ名:カレントディレクトリ名]$

といったような書式でプロンプトを出すには、

vi ~/.bash_profile

で、最後に以下の1行を追加すればよい 。

PS1="[\$(date +%m/%d) \$(date +%H:%M)][\u@\h:\w]$ "

カラフルバージョン 1(桃色系)

続きを読む
Bash を購読