gladevise Logo
HomeAboutContact

lsよりもexaじゃん! Rust製Linuxコマンド 【exa】


こちらの記事に触発されてexaを使ってみたら、思ったより便利だったので、オススメのエイリアスを含めてexaをご紹介します。

exaはLinuxでファイルやディレクトリを確認するのに使うlsコマンドを、より見やすくカラフルにしてくれるRust製のコマンドです。

Install of exa

インストールするにはcargo install exaを実行してください。

cargoが無い場合、下のコマンドでインストールしてください。

  curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y

Usage of exa

lsとの対応関係は以下の通りです。

ls → exa
ls -l → exa -l
ls -a → exa -aa
ls -al → exa -aal

Settings of exa

以下のようにエイリアスを設定するのがオススメです。

if [[ $(command -v exa) ]]; then
  alias e='exa --icons'
  alias l=e
  alias ls=e
  alias ea='exa -a --icons'
  alias la=ea
  alias ee='exa -aal --icons'
  alias ll=ee
  alias et='exa -T -L 3 -a -I "node_modules|.git|.cache" --icons'
  alias lt=et
  alias eta='exa -T -a -I "node_modules|.git|.cache" --color=always --icons | less -r'
  alias lta=eta
fi

前半のifでexaがインストールされている場合のみ、エイリアスを設定するようにしています。

exaに--iconsを指定して実行すると下の画像のようにファイルタイプに応じてアイコンが付きます。

exa --icons result

-Tオプションでツリー表示でき、-Lで探索するディレクトリの深さを指定できます。-Iでignore patternを指定して、 .gitnode_modulesなど特に表示しなくても良いディレクトリを無視できます。

lessで受け取る時は上の例のように--color=alwaysを付けて、lessに-rオプションを付けると、lessの中でもexaの色が反映されます。

Reference

https://github.com/ogham/exa

最近、Rustで既存のCLIツールを高速化・高機能化する流れが出てきています。AlacrittyというRust製のGPUでレンダリングを高速化されたターミナルもオススメです。

https://gladevise.com/alacritty-install-settings/

Recent Posts

Next.jsでsitemap.xml生成する

Next.jsでSSRやnext-sitemapを用いてsitemap.xmlを生成する方法を紹介します。

Rust製の爆速端末Alacrittyのインストールと設定方法

Rust製のGPUで高速レンダリングするターミナルエミュレータAlacrittyのインストール方法、tmux、NeoVimでのTrue Color、カラースキーム、Font、デフォルトの端末の設定などの紹介をします。

react-modalを使ってModalコンポーネントを作る

react-modalを使ってModalコンポーネントを作る方法を解説します。モーダルの外側をクリックして閉じる、アニメーションを付ける等の基本的な機能から、CSS-in-JS(Emotion)を使ってタイリングの方法を説明します。

Emotionを使ってGatsbyでtailwindを使う方法

Gatsby & Emotion & tailwindの環境構築、スタイリング方法についてまとめました。twin.macroを使えば、classNameだけでなく、Styled Componentsやcss propでスタイリングできます。

GatsbyのLinter/Formatter, CSS-in-JS環境構築

Gatsbyのインストール方法、プロジェクトの作り方、Linter(ESLint, stylelint)/Formatter(prettier)、CSS-in-JS(styled-components, Emotion)、tailwindの設定方法を説明します。