Exa to Eza

2020年にexaをインストールして から、3年半弱lsの代わりとしてexaを使用してきました。 設定としては以下のような感じで、exaに何やらオプションを足した奴をlsのエイリアスとして、追加でll、la、llaを設定している感じです: 1 2 3 4 alias ls="exa -Fgh --git --time-style=long-iso" alias la="ls -a" alias ll="ls -l" alias lla="ls -la" で、不定期でやってるローカルのツール更新というか、brew update && brew outdatedをしたところ、exaのバージョンが(なんかよく分からない感じで)上がっていたので更新内容をチェックしに行ったところ、exa is unmaintained, please use the active fork eza instead というコミットが打たれていて、eza を見に行ったら実際活発に開発されていて、7月末からすでに10回のリリースが行われているようでした。 個人的にはexaで困ってはいなかったモノの、2年以上リリースが打たれていないのも事実ですし、ezaのリリースノートを見る限りセキュリティフィックスなどもあるようなので、置き換えをしました。 手順 brew install eza sed -ie 's/exa/eza/' .zshrc brew uninstall exa 今のところ特に使用感は変わった感じはしないですが、一つだけ気づいたのはsymlinkのサイズ表示が変わった くらいですかね。

2023-09-18 · nasa9084

二つのファイルの共通行(または共通しない行)を得る

例えば、サービスAでは登録されているけれどもサービスBには登録されていないユーザの一覧を得たい、という様な場合。もちろんdiffでよしなにやることもできますが、commも便利です。 例えば次の様にリストがあるとします。 サービスAのユーザーリスト(users_a.txt): 1 2 3 4 5 alice bob charlie dave oscar サービスBのユーザーリスト(users_b.txt): 1 2 3 4 5 charlie isaac justin mallory oscar これらに対してcommを使うと次の出力が得られます: 1 2 3 4 5 6 7 8 9 $ comm users_a.txt users_b.txt alice bob charlie dave isaac justin mallory oscar TABで揃えられた列がそれぞれ左から、Aにだけ存在する行、Bにだけ存在する行、Cにだけ存在する行、となっています。これだけだと別にそれほど便利ではないんですが、commはそれぞれの行を非表示にする事もできます。それぞれ、非表示にしたい行を-1 -2 -3で指定します。 Aだけに存在する行を表示する: 1 2 3 4 $ comm -23 users_a.txt users_b.txt alice bob dave 両方に存在する行を表示する: 1 2 3 $ comm -12 users_a.txt users_b....

2022-09-28 · nasa9084

bashのhere-documentは一時ファイルを作成するらしい

皆さん使ってますか、here-document。bashでいうとこういう奴: 1 2 3 4 5 6 cat <<EOF this is here document EOF 出力はこう: this is here document 複数行に渡るテキストをリテラルとして表現したい場合に便利ですね。で、shellscriptからREST APIにリクエストを投げたくて、here-documentを使ってJSONをべたっとスクリプト内で書いてたんですけど、こんなエラーが出てました(パスはもちろん違いますよ。念のため。): /path/to/shellscript/using/here-document.sh: line 179: cannot create temp file for here-document: No space left on device 全然知らなかったけど、here-documentって一時ファイルを作成するんですね。確かめてみます。 $ docker run -it --rm centos:7 bash [root@8017e5e28d6e /]# yum install -y strace (中略) [root@8017e5e28d6e /]# cat <<EOF > script.sh > cat <<EOS > foo > bar > baz > EOS > EOF [root@8017e5e28d6e /]# strace -f bash script....

2021-09-08 · nasa9084

rustで書かれたlsの代替コマンドexaをインストールしてみた

twitterでおのかちお氏(鍵垢なのでここでは紹介できないが)がexa というlsの代替コマンドを試してみている、ということでスクショをアップしており、これがなかなか良さそうであったので、探してインストールしてみました。 website の説明によると、 A modern replacement for ls. トのことで、色をつけれたり、早かったり、tree viewができたり、Gitのステータスを表示できたりするらしい。 macの場合、homebrew でインストールできるようなので早速インストールしてみます。 1 $ brew install exa very easyですね。使ってみましょう。 なるほど、デフォルトの表示はlsと同じくgrid viewなんですね。ホームにディレクトリしかないのでわかりにくいですけど、字が太いですね。あとklaussinani/hyper-pokemon を使っている都合で、色は表示されません・・・ アイコン付きで表示してみましょう。アイコンを表示したい場合は--iconsオプションをつければ良い、とのこと。 おや、表示されないですね。これは困った。まぁこの手の問題は(見た目から言っても)フォントがインストールされてないために発生しているのだろう、とあたりをつけつつ、issueを検索します。 するとどうやら nerd fonts というフォントがアイコン表示用に使用されているようです。これをインストールしてみます。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $ brew tap homebrew/cask-fonts ==> Tapping homebrew/cask-fonts Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask-fonts'... remote: Enumerating objects: 19, done. remote: Counting objects: 100% (19/19), done. remote: Compressing objects: 100% (14/14), done....

2020-05-20 · nasa9084

cut vs. parameter expansion

TL;DR:: bash/zsh parameter expansion is faster than cut. which is faster? Consider you want to take out hostname from URL or IP with port like some.mysql.server:3306 or 192.168.1.10:3306 using bash/zsh. There are some way to do this. The first way is using cut command: 1 2 $ TARGET="192.168.1.10:3306" $ echo ${TARGET} | cut -d ":" -f 1 Now printed 192.168.1.10 on your screen. The second way is using “shell parameter expansion”, which is functions of bash/zsh built-in....

2018-02-26 · nasa9084