15 ポイント 投稿者 winterjung 2025-04-19 | 6件のコメント | WhatsAppで共有

私は以下のシェルスクリプトやスニペットを ~/.zshrc に入れておいたり、alias を設定して使ったりしているのですが、ほかの方はどんなスニペットを使っているのか気になって投稿してみます。

以下の内容は個人ブログ: よく使うシェルスニペットにも書いてありますが、わざわざ見に行かなくてもいいように内容をすべて貼り付けました。


1. man ページを pdf で見る

pman() {  
  mandoc -Tpdf "$(man -w $@)" | open -f -a Preview  
}  

macOS では $ pman curl のように使います。

2. git remote で削除されたブランチを削除

git fetch -p && for branch in $(git branch -vv | grep ': gone]' | awk '{print $1}'); do git branch -D $branch; done  

あるいは git gone - リモートで削除されたブランチをすべて削除するカスタムコマンド を使うこともできそうです。

3. .env にある環境変数を適用

export $(grep -v '^#' .env | xargs)  

direnv を使うほうがより良いとは思いますが、習慣のせいか上のスニペットをもっとよく使っています。

4. ローカルで mysql が一時的に必要なとき

docker run --rm -d --name mysql \  
  -e MYSQL_ROOT_PASSWORD=password \  
  -e MYSQL_ROOT_HOST=% \  
  -p 3306:3306 \  
  -v $(pwd)/mysql_data:/var/lib/mysql \  
  mysql:8 \  
  --character-set-server=utf8mb4 \  
  --explicit_defaults_for_timestamp=true  

その後 localhost:3306 に接続して使い、ボリュームを保持する必要がなければ -v オプションは外して使ったりします。

6件のコメント

 
roxie 2025-06-23
alias enable-sudo-with-touchid="cat /etc/pam.d/sudo && echo 'BEFORE===================\n===================AFTER' && sudo gsed -i '1i auth sufficient pam_tid.so' /etc/pam.d/sudo && cat /etc/pam.d/sudo"  

MacBookで管理者パスワードの入力が必要な場面(例: sudo)で、Touch IDを使えるようにするスクリプトです。

一度登録すれば済むのですが、なぜこれをaliasにしているのかというと……たまにmacOSのバージョンをアップグレードすると、これがリセットされるんですよね。

 
tequila 2025-04-21

MySQLを一時的に立ち上げるのをエイリアスにする発想はなかったので、面白いですね。
私は .zshrc にこういうちょっとした設定を入れて使っています。

cpcat() {  
  cat "$@" | pbcopy  
}  

cpcat [ファイル名] を実行すると、特定のファイル内容がクリップボードに入ります。

 
roxie 2025-06-23
alias cb="pbcopy"  

自分はこんな感じです(笑)

 
winterjung 2025-04-21

毎回 pbcopy するのが面倒だったので、これはいいですね!名前がCopycatなんですね(笑)

 
ndrgrd 2025-04-19

3000番台のポートのうち、使用されていないポートを表示します。

function idleports()  
{  
    cols=10  
    count=0  
    output=""  
  
    listening_ports=($(sudo ss -tlpn | grep -o ':30[0-9]*' | sed 's/://g' | sort | uniq))  
  
    for port in {3000..3099}; do  
        if [[ " ${listening_ports[@]} " =~ " $port " ]]; then  
            output+="\033[38;5;235m$port\033[0m  "  
        else  
            output+="$port  "  
        fi  
  
        ((count++))  
        if ((count % cols == 0)); then  
            output+='\n'  
        fi  
    done  
  
    if ((count % cols != 0)); then  
        output+='\n'  
    fi  
  
    echo -e "$output"  
}  
 
kohs100 2025-04-21

えっ、これはすごく役立つ小技ですね……ありがとうございます。