Ubuntu 18.04 で直接 Python3.7 をインストール

# apt の update
sudo apt update

# python 3.7 のインストール
sudo apt install python3.7

# 再起動
reboot

# pip3 インストール
sudo apt install python3-pip

# BeautifulSoup4 インストール
pip3 install beautifulsoup4

# Requests インストール
pip3 install requests
しなくても、request モジュールは標準で入っていた

参考

Ubuntu18.04にPyhton3.7を導入や設定をしよう!
https://www.sejuku.net/blog/83204

macBook 上の Ubuntu 18.04 で F1 Functionキーと fn キー

macBook でインストールした ubuntu は、F1 や F2 キーを押すためには fn と同時押ししないといけない。単体だと特別キーになってしまっている。

この挙動を逆にして、F1 のみを押したら F1 として認識させたい。

# 下記コマンドを打てばいいみたい。
sudo bash -c “echo 2 > /sys/module/hid_apple/parameters/fnmode”

echo 0 で元の挙動に戻る。

参考

How can I reverse the ‘fn’ key on an Apple Keyboard so that F1, F2, F3… are used as default?
https://askubuntu.com/questions/7537/how-can-i-reverse-the-fn-key-on-an-apple-keyboard-so-that-f1-f2-f3-are-us

On an Apple Keyboard under Linux, how do I make the Function keys work without the fn modifier key?
https://unix.stackexchange.com/questions/121395/on-an-apple-keyboard-under-linux-how-do-i-make-the-function-keys-work-without-t

Ubuntu の cron で python を定期実行

cron を動かす場合、crontab に記述する方法と /etc/cron.d 以下に拡張子無しのファイルを配置する方法があるみたい。今回は後者で実行。

cron_test というファイルを作り、/etc/cron.d 以下に配置。
上の二行は無くても問題無いかも。

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

*/5 * * * * USER /bin/bash /home/USER/python/test.sh >> /home/USER/python/log.log

USER のところは、ログインユーザー名。
5分ごとに test.sh を実行して log.log にログを追加する。

*/5 で指定すると、5分間隔。すなわち、0:00, 0:05, 0:10, 0:15, 0:20 で実行されていく。

cron ファイル権限

test_cron のファイルオーナーは root になっている必要があるため、cron ファイルを作るときは、sudo vi cron_test コマンドで実行。cron_test の権限は 644 にしておく必要があった。

また、cron ファイル内には、起動時間の後に、ユーザー名を書く必要がある。
sudo chmod 644 test_cron

sh ファイル作成

python3.6 /home/ubuntu/python/notify.py >> ./log.log

こんな感じに1行、python 実行を追加して保存。
実行するシェルスクリプトは、作った直後だと、rw- rw- r– になっており bash から実行できない。

-bash: ./notify.sh: Permission denied

# chmod でシェルスクリプトに実行権限を与える
chmod +x notify.sh

sh から呼び出す python コマンド

cron から呼ばれる、sh の中に書くパスは相対だとダメ。
python3.6 notify.py

中で cd するか、もしくは絶対パスで python ファイルのパスを指定する。
python3.6 /home/ubuntu/python/notify.py

特に、エラーメッセージも出なくて困った。

cron デーモン start, stop, status

# cron の起動
sudo service cron start
start/restart/stop

# cron 起動の確認
sudo service cron status

cron ログを出す

vim /etc/rsyslog.d/50-default.conf を編集。下記のコメントを外す。
cron.* /var/log/cron.log

動作ログは下記でも確認できる。
tail -f /var/log/syslog

参考

cron で少しばかりくろーん(苦労)した話
https://inokara.hateblo.jp/entry/2017/05/19/214149

Ubuntu18.04 cronログを/var/log/cron.logに書き出すには
https://www.ninton.co.jp/archives/2588

Ubuntuでのcronの使い方
https://intellectual-curiosity.tokyo/2018/10/12/ubuntu%E3%81%A7%E3%81%AEcron%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/


貴重な情報に感謝!

ubuntu 18.04 でファイルを vi で編集

vi でファイルを開いて編集モードに移行すると、方向キーで ABCD と入力されるし、delete キーを押しても削除されない。

ググったら、vim をインストールすると良いよと書かれていたので、下記コマンドで vim を入れたら問題なくファイルを編集できるようになった。

sudo apt install vim

参考

vimの矢印キーを押すとABCDが出てくる問題の解決
http://zeroringo.hateblo.jp/entry/2018/08/06/192413

Shell Script から Conda Command 実行

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/USER/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/USER/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/home/USER/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/USER/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

sh の中で、conda activate をしてもコマンドが通らなかった。
~/.bashrc に書かれていた内容を、sh の先頭に記述したら通った。

参考

https://qiita.com/akikuno/items/ad3a4f488a49400fd457
貴重な情報に感謝