水底

ScalaとかC#とかk8sとか

shell

WSL2のshellがどうにも重かったのが解決できた話

何が重かったか tmux+zshな環境を利用しているのですが、zshでコマンドなしでEnterを連続で押したときやtmux環境を保存・復元するtmux-resurrectが激重でした。特に後者は保存・復元にそれぞれ1分程度かかっていました (同程度のマシンで普通のlinuxであれば…

ローカルのVSCodeから、ローカルに置いたソースコードをリモートのDocker上で動かす方法

TL;DR; 現状、vscode-remote-development-containerは DOCKER_HOST で指定するdocker over sshに対応しきれていない sshでリモートのdockerソケットをローカルにフォワーディング amaya382/sssh を利用して、ローカルにあるソースコードディレクトリをリモー…

GNU系とBSD系のコマンドで特によくハマるやつ

「あなたのシェルスクリプト、ポータビリティありますか?」 まぁ個人的によーーーくハマる、というかほぼほぼBSD環境やらかしがちなやつのまとめです。バージョンによっては別の挙動をすることも多いので注意。

プログラムを変更せずに標準出力ごとにタイムスタンプを付ける方法とPythonでのサンプル

プログラムの実行時間を計測したいけどプログラム自体には手を加えたくないor加えられないということがあると思います。プログラム全体の実行時間の計測時間であれば time コマンドで簡単に行なえますが、より内部的に計測する場合の一つの手段として、標準…

散々既出で今更だけどmacOSデフォルトのgrepがめちゃ遅だった

(あまりに内容が雑なのでポエム扱いで) そこそこデカいファイルを扱っていたら気になったのでメモ. 一時期 grepが10倍速くなった と話題になったりしてましたが自分のユースケースでは最大2,000倍程度の速度差がありました (記事の内容とは関係ない部分のよ…

`docker exec -it` を便利にしたかった

Dockerコンテナ弄りにはみんな大好き docker exec -it (まさかSSH使ってませんよね…?). docker exec -it $container_name $shell_name とすることでコンテナ内に入ってインタラクティブシェルを使うことが出来ます. ただし基本的にコンテナ内には素のシェル…

エイリアスを無視してコマンドのフルパスを取得するだけ

例えば .bashrc や .zshrc で ls の利便性を上げるために alias ls='ls -G' といったようにエイリアスを張っているとします. この状態で ls コマンドのフルパスを取得するため which ls や type ls を実行するとフルパスではなく ls: aliased to ls -G のよ…

複数のコマンドの出力をまとめてリダイレクトする2つの方法

1. (), {} の利用 (), {} で囲んでまとめてリダイレクト先を指定する. 丸括弧の場合はサブシェルで, 波括弧の場合はカレントシェルで実行される. 例 { command1 command2 } >> log 2>&1 2. exec の利用 exec は現行プロセスを別コマンドのプロセスに置換する…

sh・bash・zsh等, shellの違いでハマりやすい部分とか

前提として sh の実体は環境によって POSIX互換bash (bash --posix) であったり, dash であったり, busybox であったりと様々である (ls -l `which sh` とすれば実体がわかる). 唯一の制約は POSIX互換であること だ (※どこぞの今はなきお行儀が悪いOSを除け…