ターミナルで使えるコマンドを自作する

普段から"vim"と呼ばれるエディタを使い作業をしているのだが、設定でタブを空白2文字にしている。そのせいで、catコマンドでファイルを閲覧する際には、tabが空白4文字になってしまい幅をとってしまう(→見づらい)。今までは、以下のように"sed"コマンドをパイプしていたが面倒なので、この度コマンドを自作することにした。




How to Make A COMMAND

まずホーム直下に任意のディレクトリを作成し、それを自作コマンド専用のディレクトリとしたい。
$ mkdir $HOME/my_command && cd $HOME/my_command
次にファイル名をコマンド名として、以下の要領でシェルスクリプトを書く。
(vimを使わなくても良い)
vim cattab
#!/bin/bash

if [[ $1 = "" ]]; then  #引数がない場合
  echo "Error : You nedd 1 argument" 1>&2
  exit 2

else
  cat $1 | sed 's/\t/  /g'  #catコマンドとsedコマンドの処理を書く
fi
 
そしてPATHを通すのだが、使用するシェル(bashzsh)で方法が異なる。
(自分がどちらを使用しているのか)
echo $SHELL
(1)bashの場合
sudo vim ~/.bashrc
export PATH=$HOME/my_command:$PATH
(2)zshの場合
sudo vim ~/.zshrc
export PATH=$HOME/my_command:$PATH
すると以下のように、自作コマンドを叩けるようになる。




余談

初めbashの方法で設定していたのだけれど、再起動時に反映されなくて(PATHが通らない)、毎回"source"コマンドで設定しなければいけなかった。色々と調べるうちに、そもそも"bash"を使っていないことがわかり、"zsh"のための設定ファイルの変更を行うことで、再起動時にも設定が反映されるようになった。