水底

ScalaとかC#とかネットワークとか

shell

散々既出で今更だけど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を除け…