Linuxの自分だけのコマンドを作ってみる
コマンドの中身を作るディレクトリを決める
- 今回選択したのは以下のディレクトリ
/home/vagrant/.self
コマンドで実行する処理を作成する
- ファイル内は先頭に
#!/bin/sh
を書くようにする
$ vim .self/hello #!/bin/sh echo "HelloWorld!"
権限を変える
- 誰でもつかえるようにする
chmod a+x .self/hello
パスってなんだろう
というかそもそも$PATHとは何なのか。 何気なく打ち込んでいるコマンド。もちろんLinux内にあるファイルを実行することを示しているが、全ファイルを検索して実行しているのか。 そんな馬鹿なわけがない。 環境変数である$PATHで指定されたディレクトリ限定で検索して実行している。 例えばechoコマンドだって実際は/bin/echoが実行されているわけで、/root/echo があったところで見向きもされない。 だが、逆を返せば$PATHで指定されたところにファイルを置けばコマンドとして認識されるわけだ。 ちなみに、コマンドの場所をフルパスで調べたい場合はwhich command_nameでエンターキーカッターンしよう。
パスが通っている場所を確認する
- 今の環境では以下のように表示される
echo $PATH /home/vagrant/.phpenv/shims:/home/vagrant/.phpenv/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/vagrant/.local/bin:/home/vagrant/bin
- 見難いので分かりやすく並び替えると以下になる
- :が区切りになっている
/home/vagrant/.phpenv/shims: /home/vagrant/.phpenv/bin: /usr/local/bin: /usr/bin: /usr/local/sbin: /usr/sbin: /home/vagrant/.local/bin: /home/vagrant/bin
- 今回は以下のパスを利用する
/usr/local/bin
コマンド化する
- シンボリックリンクでパスの通っているところに設置するのがキレイ
sudo ln -si ~/.self/hello /usr/local/bin
作成したコマンドを叩いてみる
[vagrant@localhost ~]$ hello HelloWorld!
おもったこと
- コマンド作るだけならめっちゃ簡単
- ファイル名がコマンドになるみたい
- 問題は何をコマンドで処理させるか
- 自分が楽できること考えてコマンドを作りたい
参考元