fishシェルを活用した便利なコマンドやターミナルのカスタマイズ方法を紹介!bassbatexaなどの効率的なコマンドや、快適なシェル環境を構築する設定を解説。

はじめに

この記事は、Sunrise Advent Calendar 2019の3日目になります。

便利なコマンド

bass

自分は普段fishを使っているので、bashコマンドがそのまま使えなくて困ることがあります。そんな時、bassコマンドを使えば、fishシェルのままbashコマンドが使用できます。

使い方は、

$ bass export X=3

のような感じでbassの後にbashコマンドを入力するだけです。

GitHubリポジトリ:

FisherFundleOh My Fishのどれでも導入可能です。

bat

batコマンドは、多数のプログラミング・マークアップ言語の構文強調表示Git統合を備えたcatコマンドのようなものになります。

GitHubリポジトリ:

batコマンド
batコマンド

他の主な機能

Homebrewでのインストールコマンド

$ brew install bat

exa

GitHubリポジトリ:

exaコマンドは、ファイルの種類・メタデータを区別し色をつけ表示してくれるものになります。

exaコマンド
exaコマンド

lsコマンドとの違い

  • -gitオプションでGitのステータスも表示できる点です。
$ exa -ahl --git

のようにすると、以下のようにステータス表示されます。

exaコマンドでGitステータスを表示している様子
exaコマンドでGitステータスを表示している様子

Homebrewでのインストールコマンド

$ brew install exa

ターミナルのカスタム設定

alias以外のところでは、config.fishの以下の設定が気に入っています。

cdした後にls

  • config.fish
# cdした後にls
function cd
    if test (count $argv) -eq 0
        cd $HOME
        return 0
    else if test (count $argv) -gt 1
        printf "%s\n" (_ "Too many args for cd command")
        return 1
    end
    # Avoid set completions.
    set -l previous $PWD

    if test "$argv" = "-"
        if test "$__fish_cd_direction" = "next"
            nextd
        else
            prevd
        end
        return $status
    end
    builtin cd $argv
    set -l cd_status $status
    # Log history
    if test $cd_status -eq 0 -a "$PWD" != "$previous"
        set -q dirprev[$MAX_DIR_HIST]
        and set -e dirprev[1]
        set -g dirprev $dirprev $previous
        set -e dirnext
        set -g __fish_cd_direction prev
    end

    if test $cd_status -ne 0
        return 1
    end
    pwd
    ls -A
    return $status
end

おわりに

生産性を更に上げるためのシェル設定は奥が深いですよね〜

このコマンド・設定便利だよ!!などなどありましたらTwitterにでもコメントしてくれると嬉しいです😀

AIを仕事の仕組みに変えたい20代へ

AIを使うだけでなく、1業務をチームの仕組みへ

社会人1〜3年目が身近な1業務を選び、人とAIの役割を分け、7日で試し、成果を共有する5ステップをまとめました。

若手社員のAI業務改善5ステップを見る
カフェ・オンライン30分の日時を見る