それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

linux

date コマンドと bash でタイマー(カウントアップ)を作る

date を使うと整数値の秒が取れる date +%s 整数値で秒が取れるなら、タイマーも作れそうですよね。 整数の四則演算 と 組み合わせる。 echo $(( $now - $start)) これで、現在の時刻が取れる。 改行(CRLF)が邪魔なので CRLFをしてしまうと1行次に行ってし…

dateコマンドでタイムスタンプ(unix epoch)を表示する

bash で現在のタイムスタンプを取得する unix時間などと呼ばれる int 秒ですね、int の timestamp をdate コマンドで取得する date +%s ## => 1534329465 これで、int秒のタイムスタンプを表示するすることができる。%s は現在の時刻の整数値を返してくれる…

certbotで証明書をぱぱっと更新する

nginx や apacheが起動していても大丈夫。 certbot はhttpd が起動しても、ちゃんとなんとかしてくれる。 /usr/bin/certbot -q renew --pre-hook "service nginx stop" --post-hook "service nginx start" pre-hook や post-hookで再起動を仕込めるので全く…

dm-cache(lvm-cache)を作って使う、設定方法

lvm cache を作ってみよう ssd 買ったけど容量持て余しました。大きい容量はNAS/HDDに突っ込んでるし。バックアップはGoogle Drive(Gsuite 無限)にあるし、普段遣いのファイルはNextCloud に置いていて20GB程度だし。SSDがだいぶ余った。 lvm-cache でSSD…

いまさらcrontabのメリットと書き方を見直す

crontab って便利だけどわかりにくさがある crontab の書き方がおかしくてうまく実行されないとか、そんな書き方があったのか!となることがある。 なので、systemd を使って定期実行することが多いんだけど、そうすると今度は管理が大変になる。 なんだこの…

コマンドで重複ファイルを探す。

重複ファイルを探すコマンド find . -type f -exec md5sum {} + | sort | uniq -w32 -dD find して md5sum にかけて sort したら、uniq を取る 解説 コマンドがズラッと並ぶのでひとつずつ見ていく 現在のディレクトリ以下のエントリ(Dir/File)を列挙 find .…

realpathコマンドがなくても諦めずに、代替コマンドを使う

realpath コマンドが無い。 Ubuntuの最小インストールに、realpath コマンドがなかったんです。まぁalpineとかDockerイメージはちょっと便利なコマンドがなくて苦労する。 相対パスを絶対パスに変換する目的でめっちゃ便利なんだけど readlink でなんとかす…

シェルのshebang が実行されるときの引数を見てみる。

linux でコマンドを実行する shebang shebang を指定すると、そのコマンドでプログラムが実行されますよね。 #!/usr/bin/env ruby puts 1 このとき、shebangの1行目に指定したコマンドにはどのように引数が渡されているのだろうか。 ちょっと試してみよう。…

nkf で文字コードの判別結果を取り出す

nkf コマンドで文字コードがなになのか調べる curl http://b.hatena.ne.jp/ | nkf -g UTF-8 nkf -g -g オプションで guess の意味がある。g はゲス(勘ぐり)だとでも覚えておけばいいかもしれない。 NKFについては nkf については以前に使い方をまとめてい…

ユーザーのbashrc を読み込まずにクリーン起動する

bash で設定を無効にして起動する。 env -i bash --noprofile --norc bash --noprofile --norc だと環境変数が。。 takuya@$ bash --noprofile --norc bash: takuya_prompt_command: コマンドが見つかりません bash-4.4$ bash: takuya_prompt_command: コマ…

systemdのjournalctl で指定のサービスのログを見たいけど見れない(mysql)

mysql のログが見れない。 systemctl コマンドの status でログが見れる。 takuya@:mysql$ systemctl status mysqld.service ● mariadb.service - MariaDB database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: e…

ext4 の拡張はマウントしたまで出来た

ext4 のリサイズ マウントを解除して、、て思ってて、うっかりやらかしたら、そのまま拡張できちゃった。 マウントしたままで出来たわ takuya@:~$ sudo resize2fs /dev/mapper/spanning--test-spanning--lv resize2fs 1.43.4 (31-Jan-2017) Filesystem at /d…

findコマンドで日付と時刻を指定して最近のファイルを削除する

find コマンドで最近のファイルを削除したい 間違って作っちゃったファイルなどを削除したい。 find コマンドならそれも簡単 find コマンドで今日のファイルを見つける 今日(直近24時間)のファイルを見つける find var/tmp -type f -daystart -mtime -1 …

nl で空行(empty line) を表示する

nl コマンドで行番号を空行を含めて表示する なにもない行を無視してしまうので、空行を含めて行番号表示したいですよね。 オプションをつける nl -b a -b, --body-numbering=STYLE のオプションで all の a をつける。 実行サンプル takuya@webhooks$ cat .…

sed で指定行に「挿入」する

sed で指定した行に文字を挿入 sed 使うと、X行目に文字を追加することができます。 sed -i '3i#Hello' /etc/hosts これを実行すると、 3行目に、#Hello が挿入されます。 ちゃんと3行目に追加されたのか nl を組み合わせることで、sed の結果を行数を見な…

ブラウザでリモートのターミナルを起動できるShell in A box がiOSから使うのに便利

Shell in a Box が便利だった Macからはターミナルで解決するし、特に生活に不便を感じないんだが、ちょっとしたファイルサーバーのメンテンス(ファイル消す)とかでMac起動するのもめんどくさい iOS Safariから使えるターミナル 各種ターミナルのアプリが…

Macが接続しているルーターのIPアドレスをコマンドで取り出す。ルーティングを取得する方法4種

ルーターIPをパパッと取り出したい。 無線ルーターのIPにアクセスしたいときに、設定→ネットワーク→無線LANとたどるのは面倒くさいですよね。 ルーターIPとはなにか? ネットワークの用語で言えばデフォルトゲートウェイである。つまり ip コマンドでデフォ…

lvm でディスクのサイズをパパッと変更するコマンド

lv で管理しているボリュームのサイズは簡単に増減できるんですね。 ディスクのサイズを増やすとき sudo lvextend --resizefs --size +10G /dev/mapper/my-root ディスクのサイズを減らすとき sudo lvreduce --resizefs --size -10G /dev/mapper/my-root res…

partprobeが見つからない。

partprobe を実行しようとしたら コマンドが見つからない。 partprobe command not found .になった。 partprobe ずっと使ってて、いつ入れたか、どのパッケージと入れたかわかない。 parted ぐぐったら、 partprobe は parted についてくる sudo apt instal…

文字の実体参照と実コードを変換する

文字の実体参照と実コード(文字)を変換する。 sed や nkf でもできる ruby なら出来るんだけど >>> escaped_data = b'\\x50\\x51' >>> escaped_data.decode("unicode_escape") python / nodejsだと、どううやるんだっけ。。。 参考資料 https://stackoverf…

systemd-networkdが初期設定で有効にならないことがある。

systemd-networkd が enable になってない。 まいった。何度かこういう事態が発生する。 Linuxを再起動するとネットワークがつながらない。 DHCPで割当する、ネットワークが再起動後に有効にならない。VirtualBoxでよく起きる。 そのたびに ip set ...や res…

unarが Uncaught exception NO Character Conversion Exception

unar をシェルコマンド経由で自動実行してたらエラーになった unar: Uncaught exception NO Character Conversion Exception Unar Can't get cString from Unicode string などとエラーになる。 調べてみたら LANGが無いことが原因だった。 LANG=c の状態でz…

splitで指定した行数でファイルを分割し拡張子も付与するsplitコマンドの基本的な使い方

split コマンド便利ですよね split コマンドは、ファイルを分割するコマンドです。 一度くらいは見たことが在るんじゃないでしょうか。 split コマンドでファイルを分割する ファイルを分割してもアルファベットのよく分からないファイル名になるので、よく…

cut コマンドで途中を棄てる(除外)する

cut コマンドで中間を削除したい時 絡む指定の複数の条件を 感まで繋げば、途中のカラムをすてて、歯抜けを作ることが出来る。 cut -f 2-5,7-10 ほかにも、カンマでつなぐのは複数個作れて cut -f 1,3,5,7 のように数字を書いてもいいし、数字が続く場合は、…

htop の更新頻度(インターバル)を指定する

htop コマンドで更新の時間を指定する。 htop -d X X には in tenths of second つまり 10分のX秒で更新される 何もしないとデフォルトは2秒(X=20)だった 1秒おきに更新させるには htop -d 10 0.5 秒間隔の更新は htop -d 5 こんな感じ。 わかりにくいよね…

SSHのパスワード認証をシェル経由で手軽に行えるコマンド

ssh のパスワード認証を使いたい。 ssh で鍵登録は場合によって面倒くさい。 パスワードは弱いってのはわかる。でもシェルを実行するユーザごとに鍵をつかったり鍵管理は煩雑になる。 sshpass コマンド ssh の認証をパスワードで、シェルコマンドでおこなえ…

ls コマンドで結果を1行ごと1列にならべてループを楽にしたい

ls の結果からディレクトリ名を除きたい。 ls すると結果がズラッと並んでしまって、後処理をしにくい takuya@Desktop$ ls / '[' cat cp date df echo expr kill launchctl ln mkdir pax pwd rm sh stty tcsh unlink zsh bash chmod csh dd domainname ed ho…

find コマンドでgit フォルダを無視したい(ただし.gitフォルダは表示したい

find コマンドで gitがズラッと並ぶの不便 ああ、、、、要らないよこんなの。。。 takuya@pages$ find takuya@pages-sample$ $(which find ) -type f ./.git/COMMIT_EDITMSG ./.git/config ./.git/description ./.git/FETCH_HEAD ./.git/HEAD ./.git/index .…

ln -s で相対シンボリック作成のやりかたと解説。

ln -s で失敗した経験ありますよね? /var/www/log/index.php から /var/www/html/index.php へリンクする場合。こういうときに、相対パスをぱぱっと作れたら嬉しいでしょ? でも、ぱぱっと作れなかったり、相対パスを作ったつもりがリンク切れてたり。。そ…

Systemd 時代のresolv.conf

/etc/resolv.confがない。 驚いた、Resove.conf がなくなってるんですよ systemd 管理下に置かれた /etc/systemd/resolved.conf 代わりに、次のファイルがが出来た 昔からある resolv.conf は systemd が管理してしまう。 もしかしてリンク? takuya@ubuntu0…