ハイパーマッスルエンジニア

Vim、ShellScriptについてよく書く

ShellScript

ChatGPTをターミナルからサクッと試す

ChatGPTをターミナルからサクッと試す方法を紹介します。 アカウント登録が必要なもののクレジットカードの登録などはないので5分もあれば試すことができました。 ※ 2022年12月5日時点の情報です。AI周りは情報が速いのであくまで当時の情報ということを念頭…

zshが遅いのはvcs_infoが原因だったので高速化した

zshの起動が遅い。tmuxでパネル分割したときやls打ったあとがもっさりしてきた。 自分のzsh環境はoh-my-zshやpreztoなどは使っていないプレーンなzsh環境だったが、PROMPT表示に用いるvcs_infoが遅かったので改善した。 vcs_info gitやsubversionなどのバー…

shellだけでリッチなTUIアプリが作れる「gum」がすごい

Shell ScriptだけでリッチなTUIアプリが作れるようになる「gum」がかなり良い感じ。 github.com 入力、書き込み、選択、Fuzzy、ローディングなど、TUIアプリに必要なものがサクッと書けるようになる。 インストール go install github.com/charmbracelet/gum…

slack api curlまとめ

チャンネルのメッセージを取得 スレッド内のメッセージを取得 メッセージ送信 メッセージ送信(スレッドにつなげる場合) メッセージ送信(メンションやコードブロックなど凝った文章の場合) メッセージ削除 ファイル送信 まとめ github.com チャンネルのメッセ…

今月のコミット一覧を出す

GithubでsinceとuntilをURLにつければ検索できるんだな、知らんかった。 https://github.com/Rasukarusan/dotfiles/commits?author=Rasukarusan&since=2021-11-01&until=2021-11-30 コマンドだとこう git log --after '2021/11/01' --before '2021/11/30' 差…

Mac専用sipsコマンドで、画像に枠線をサクッとつける

Mac標準搭載のコマンドでsipsコマンドがある。画像情報を取得したり付与したりできる。 画像のコマンドといえばimagemagickだが、imagemagickよりも少ないオプションで、かつ直感的に実行できるのがsipsコマンドの良いところ。brew等で別途インストールしな…

Sequel AceをApplescriptで操作する

以前Sequel ProをApplescriptで操作するのはやっていたが、昨今はSequel Aceを使うようになった。 Sequel ProとAceではFavorite.plistのPATHやUIの配置などがいくつか異なっていたため、それをまとめたい。 スクリプト まずどういったスクリプトなのかを載せ…

gif動画から指定のフレーム(最初・最後・最後から2番目など)を抜き出す

convertコマンドで可能。とりあえずbrewでインストールしましょう。 # imagemagickをインストールするとconvertコマンドが使えるようになる brew install imagemagick 指定のフレームを抜き出す 最初 convert 'neko.gif[0]' first.png 最後 convert 'neko.gi…

今更ながらgit-ftp便利すぎた

とりあえず必要なことをババっと書いておく インストール brew install git-ftp もしくは、リポジトリにgit-ftpの実行ファイルがあるからcloneしてきて使ってもいい。 git clone https://github.com/git-ftp/git-ftp cd git-ftp ./git-ftp 初期設定 git conf…

ターミナル上にwifi接続のQRを表示できるsdushantha/wifi-passwordがおもしろい

github.com 今接続しているwifiのパスワード、またはQRコードをTermianl上に表示できるツール。 使用頻度は少ないかもしれないが、あったら地味に便利。 インストールはpipで可能。 python3 -m pip install --user wifi-password 実行 wifi-password --qrcod…

Githhub Actionsをローカルで実行するnectos/actでcommand not foundが出たときの対処法

Github Actionsをローカル実行できるツールnektos/actの話。 act -P でimageを指定するも必ずnode:12.6-buster-slimで実行されてしまう actの実行時の環境は、デフォルトではnode:12.6-buster-slimが選択されるが、このimageは最小限の構成なのでgitコマンド…

はてなブログでgifの代わりにmp4で投稿するために、Github Actionsでgif→mp4変換を自動化した

gifの欠点 ファイルサイズがでかい → ページ読み込みが遅くなる シークバーが表示されない → 一時停止、早送りができない MP4にしてvideoタグで埋め込むといい <video controls muted autoplay playsinline width="95%"> <source src="mp4動画のURL"> </video> gifの圧縮アルゴリズムはそこまで最適化されていないため、MP4などの動画フォーマットのほう…

Github Actionsのアクション作ってみる(Typescript編)

Typescriptで独自アクション作る 以前GithubActionsを使ってHomebrewのリリースを自動化し、一部のstepを独自アクションとして切り出した。 www.rasukarusan.com www.rasukarusan.com 前回のDockerで書き出したアクションを、Typescriptで書いてみる。 対象…

Github Actionsのアクションを作ってみる(Docker編)

1つ前のtagからの差分を出すアクションを作ってみる 前回GithubActionsを使ってHomebrewのリリースを自動化した。 www.rasukarusan.com 上記で実行している「1つ前のtagからの差分を取得する」をアクションとして切り出してみる。 イメージとしてはrunでゴリ…

GithubActionsでリリースとFormulaリポジトリの更新を自動化した

Homebrewの自作CLIツールの配布がとても面倒くさい 以前Homebrew/tapによる配布方法をまとめたが、やることが結構あって面倒くさい。 どうやらGithubActionsを使えばめちゃくちゃ楽にできるみたいなのでやってみた。 今までの流れ 1. tagをpush 2. GithubでR…

1年を振り返るときに使ったgitコマンド

コミット履歴を保ったままブランチを統合する ブランチ整理のために。過去のコミット履歴をなかったことにしたくなかった。 下記の記事が神。 qiita.com # 新規リポジトリを作成 mkdir new_repository cd new_repository git init # リポジトリを統合 git re…

tmux popupで遊ぶ

tmux popupとは tmuxのバージョン3.2-rcより導入された新たな機能。 どのようなものかはGIF見ていていただくのが一番早い。 fzfの絞り込みをtmux popupで実行したり、popup内で作業ができる paneやwindowの概念とは別に、新規ウィンドウがtmux上に表示される…

tmuxでiTermのimgcatを使う

iTermの拡張コマンドであるimgcatはtmux上で実行すると挙動がおかしくなる。 これはどうやらtmuxではpane分割があるため、widthやheightがうまく計算できないので描画がおかしくなってしまうらしい。 tmuxでimgcatを実行したときの挙動。一瞬だけ表示されて…

zshで関数内で実行したコマンドを履歴に残す

通常、コマンドを実行したら履歴に残り、Ctrl-p/nや上/下の矢印キーで実行したコマンドを遡ることができる。再度同じコマンドを実行するときはとても便利。 この履歴に手動で追加するにはどうするか。 結論から言うと print -s 履歴に残したいコマンド でい…

fzfは非表示にした列でフィルタリングすることはできない

--with-nthで特定の列だけを表示した上でフィルタリングがしたかったが、どうもできないらしい。 github.com 上記のIssueによると、できないというよりはそれを実装してしまうと混乱を招きそうだから実装しない、ということらしい。 何がしたかったのか fzf…

TerminalからfzfでBluetooth機器を選択して接続できると幸せになれる

TerminalからBluetoothの接続をする MacでBluetoothのデバイスを接続するとき、ステータスバーからデバイスを選択しているやつおる? エンジニアならTeminalからBluetoothデバイスを選択して接続しないといけない。 AirPodsの接続をTerminalからやりたい Air…

Terminalの現在行をエディタで編集して実行する

長いワンライナーを打っていると編集が面倒くさい ワンライナーじゃなくてもいいのだが、Terminalでコマンドを打っているときに、修正するときのカーソル移動が結構面倒くさい。コマンド履歴をさかのぼり、真ん中の方のコマンドだけ編集したいときなど地獄の…

Terminal上でSnippetを実現する ~ zle(Zsh Line Editor) × fzf ~

ワンライナー打つのしんどい CSV落として該当の列だけ抜き出すときにcat hoge.csv | awk ...とか、fzfでプレビューして〇〇するみたいなときにcat hoge.txt | fzf --preview...など、 大体打つコマンドって決まってくると思う。 .zshrcや.shファイルなどに直…

whichコマンドでaliasではなくPATHを表示する(where, whence, where, type, commandどれ使えばいいのか決める)

コマンドにaliasを貼っていると、whichコマンドでPATHを知りたいのにaliasが表示されてしまう。 $ which grep grep: aliased to grep --color=auto PATHを知りたいときは-pをつけるとPATHが表示できる。(※-pはzshのみ有効) $ which -p grep /usr/local/opt/g…

builtin-commandsのmanの見方

man readとかするとbuiltin commandsのmanが出てきてしまって、read自体の説明にたどり着けない。 我々が見たいのはこのmanではない これはmanがないのではなく、ちゃんと別のところに書いてあるのでそれを覗きに行く。 bashの場合 使っているShellがBashな…

sourceコマンドは複数のスクリプトを読み込めない

結論 先に結論だけ言っておくとsource file1 file2はできない。file1, file2をsourceしたいなら下記のようにする。 find ~/local_scripts |while read script; do source $script done # もしくはfor文でもいい for script $(find ~/local_scripts); do sour…

業務で使うツール(iTerm2,SequelPro,Chrome)をShellScriptでハイパーテクニックする

業務で使うツール(iTerm2,SequelPro,Chrome)をShellScriptでハイパーテクニックする はじめに この記事は今年イチ!お勧めしたいテクニック by ゆめみ feat.やめ太郎 Advent Calendar 2019の20日目の記事です。 今年は「お勧めテクニック」ということで、業…

SSHのデフォルトログインユーザーをrootにする

シンプルに下記の1行を.bashrcに追加するだけで終わる。 sudo su - zshの人は.zshrcなど適宜読み替えて追加するべし。 .XXXshrc系のファイルはログイン時に自動で読み込まれるので、自動でsudo su -を実行してくれるって感じ。 何がしたかったのか kali-linu…

【備忘録】Homebrewで自作ツールを配布する

Homebrewでの配布は簡単だが毎回忘れる Goでバイナリ作ったり、ShellScript書いて配布したいなと思ったときにHomebrew使うことが割とある。 が、その都度毎回調べてやり方を思い出しながらするのが億劫だったので、一回まとめてみる。 ざっくり手順 Homebrew…

fzfでChromeのtab移動をする

VimでWeb開発してるとブラウザとTerminalを行ったり来たりすることが多い。 ブラウザのタブ切り替えをブラウザでやるのではなく、Terminalでできればノンストレスな開発ができるのではないか。そうだろう。 fzfで実現した github.com 追記:fzf本家の方、Jun…