bashで日付を扱う

.shファイルで日付を使いたいときのメモ

日付をフォルダ名にする。

#!/bin/sh
DIR=`date +%Y%m%d-%H%M%S`
mkdir /home/user/$DIR

一週間前の日付をフォルダ名にする。

#!/bin/sh
DIR=`date --date "7 days ago" +%Y%m%d`
mkdir /home/user/$DIR

参考にさせて頂いたサイトは
こちら

インストールされているphpのパッケージを調べる

新年始まりました。
おうちのraspberrypiにnextcloudをインストールしようと思ったところ
——
This version of Nextcloud requires at least PHP 7.2
You are currently running 7.0.33-0+deb9u10. Please update your PHP version.
——
と出てしまいました。PHPのバージョンが古いようです。

最新バージョンを入れるにあたり、とりあえずPHP関連のパッケージ?ライブラリ?は何がインストールされてるのかなぁと思い、調べ方を調べました。

apt list --installed | grep php

参考にさせて頂いたサイトはこちら

tp-linkのクライアントモードを探せ

TP-LINKの『TL-WR902AC』を購入しました。
別のアクセスポイントからwifiを拾って有線で繋ぎたかったのですが、管理画面のどこを探してもクライアントモードが見つからない。

「モバイルルーター」モードと「3G/4Gルーター」モードしかない。

管理画面を探し回った挙句、どこにもみつからないのであきらめかけたところ、
本体に物理スイッチが付いていた・・・

トラップや。
無事クライアントモードに切り替えられました。

raspberrypiの音量変更

raspberrypiにスピーカーをつないで音楽やラジオを再生しているのだけど、
な~~んか音が小さく感じる。
スピーカーの電源をraspberrypi本体のUSBポートから、
独立した電源アダプタに切り替えてみても音量変わらず・・・

あるときふと思った。スピーカーの音量ではないのではないか。

Windowsにもボリューム調整あるし、
raspberrypi本体にも内部ボリュームがあるのではないかと。
調べたらあっさり出てきた。。。
参考にさせて頂いたサイトはこちら

まず調べる。

amixer -M

ババババと文字が出てくるのでボリュームの名前を見る。
自分の環境では「PCM」という名前だった。

現在の音量を調べるとき

amixer sget PCM

音量を100%にするとき

amixer sset PCM 100%

音量を20%増減するとき

amixer sset PCM +20%
amixer sset PCM -20%

これですごく快適になった。

raspberrypiでWifiやBluetoothを無効にする

raspberrypiでWifiやBluetoothを無効にしたい。
ずっと電波を探し続けているなんてなんか可哀そうな気がしたので。

/boot/config.txtの末尾(かどこかに)に

#Wifi オフ
dtoverlay=pi3-disable-wifi

#bluetooth オフ
dtoverlay=pi3-disable-bt

と記述する。

別の方法
/etc/modprobe.d/raspi-blacklist.confに

#bluetooth off
blacklist btbcm
blacklist hci_uart

#wifi off
blacklist brcmfmac
blacklist brcmutil

と記述する。

参考にさせて頂いたサイトはこちら

raspberrypiのWifiの設定

家のWifi環境が変わり、raspberrypiの設定も変更しなければならなくなったが、
どこで設定したかまったく思いだせぬ・・・のでメモ。

設定するところはココ。
/etc/wpa_supplicant/wpa_supplicant.conf

network={
   ssid="SSID"
   psk="password"
}

参考にさせて頂いたサイトはこちら

bashで引数を使う

bashで引数(ひきすう・昔「いんすう」と呼んでいて大恥をかいた)を使いたいとき。

test.sh parm1 parm2

#!/bin/bash

if [ $# -ne 2 ]; then
  echo "2個の引数が必要です" 1>&2
  exit 1
fi

echo $1
echo $2

exit 0

bash内では「$n」でn番目の引数を使うことができる。

参考にさせて頂いたサイトはこちら

テンキーでraspberrypiを操作する

raspberrypiで部屋の電気(ルームライト?)を赤外線で操作したり
radikoを聞けるようになったは良いものの、毎回SSHでログインしてコマンドを打つのがとても面倒に感じてました。

ルームライトの操作なんてリモコンを操作した方が100倍早く、
壁のスイッチを押したほうが1000倍早い。
なので、物理ボタンでraspberrypiを操作して電気のオンオフをできないものかなぁと思った次第。

キーボードを直接つないで直接コマンドを叩くことも考えたのですが、それではあまりうまみもなく、場所も取るので却下。
と、ふと、そこで思い付いたのがテンキー。

テンキーで例えば「1」を押したら電気OFF!みたいなことできたら最高ではないかと。

さっそく調べてみたところ、pythonで操作する方法が多めに出てきたのですが、
自分はPHPしか読み書きできないのと、よし!この際pythonを覚えよう!という気持ちが沸かなかったのと、もっと楽な方法はないかなぁという欲があり、さらに調べていたところ、先人を発見。こちらのサイトを参考にさせて頂きました。

結論。
エイリアスを設定する。

/etc/bash.bashrc
の末尾に記入。

alias 1='~/bto_ir_cmd/my_room_light_off.sh'
alias 2='~/bto_ir_cmd/my_room_light_on.sh'
alias 800='~/my_tokyofm.sh'
alias 9='~/my_radiko_stop.sh'

これで「1」を押せば電気OFF、「2」を押せば電気ON、「800」でTokyo FMが再生、「9」でラジオが停止されるというようにしました。

いざ「1」Enter!・・・・・・

何も起きない。。。

画面をつないでみたら、ログイン画面で止まっていた。道理でコマンドが入力されないわけだ。
こちらのサイトを真似させて頂いて、自動ログインを有効にしました。

/etc/systemd/system/getty.target.wants/getty@tty1.service
の↓のような部分にユーザー名を追記。

ExecStart=-/sbin/agetty --autologin ユーザー名 --noclear %I $TERM

これで物理ーテンキーからコマンドを受け付けるようになりました。
テンキーからraspberrypiを操作できるようになってものすごく便利になりました。

とくにradikoの起動が非常にスムーズになり、快適なラジオ生活がおくれるようになりました。

tightvncserverのポート番号を変更する

最近tightvncserverが軽くて気に入っていて、windowsとUbuntuにインストールして、Androidから遠隔操作したりしています。
他のvncサーバーだとAndroidのVNCクライアントでデスクトップが表示されるまで時間がかかったりしますが、tightvncserverはわりとサクッと表示されます。
すべてのサーバーで試したわけではないので一概には言えませんが。。。

ですが、Ubuntuではデフォルトのポート番号を変える方法がわからなくて右往左往しました。
自分が見つけた方法は
/usr/bin/tightvncserver
↑の中に2か所ほどある「5900」を任意の番号に書き換えてしまうこと。
本当はダメなような気もしますが、なんとかポート番号を変えられました。