Mac:自作コマンドの使い方と置き場所

ターミナルアイコン

「自作したコマンドは財産です」
このように昔の偉い人が言ったのか、言っていないのか知りませんし、正直に申し上げますと今かめねこが思いついただけです。
そんなこんなで自作したコマンドをターミナルで簡単に呼び出して使うために実行許可を渡して、PATHを通してしまいましょう。
サクッとコマンド名だけで使える方が便利ですし、自作のコマンドをカタカタっと使っていると何となくほんの少〜しだけ進歩したような気分になる、それが自作コマンド!知らんけど。
新しく自作コマンドが増えた時のことを考えつつ、自作したコマンドを把握・管理しやすいように運用できたら良いなと試行錯誤したメモ。

はじめに

普段、ターミナルで使用しているlsやdd、cpやrmのようなコマンドのようにパスを指定することなく自作コマンドを使えるようにしてしまおう、というのがこの記事の主旨です。
今までコマンドやワンライナーはクリップボード拡張ツールにスニペットとして置いていたり、ターミナルのhistoryを追いかけて使ったりしていたんですが今日で終わりです、早速準備しましょう。
自作コマンドをコマンドとして使うには色々と方法が有るようです、PATHの通ったディレクトリに実体を置いたり、シンボリックリンクを置いたりする事で使えるようになりますが管理する上で少し面倒なのと、かめねこ的に「あれ?このシンボリックリンク何だっけ?」とか、実体を置いたことを忘れてしまうような事になると思うんです。
そこで、新しく自作コマンド用のフォルダを作成して、PATHを通す方法を採用しました、これならバックアップも忘れないし一石二鳥。
早速、やってしまいましょう。
ひよこ画像

PATH(パス)を通すとは

ターミナルでコマンドを使用する時、コマンド名だけで実行することができると思います、これはコマンドの置き場所を”ここに有ります”と宣言している(PATHを通している)からなんですって、例えば”cdコマンド”は/usr/bin/cdというようにUnix実行ファイルが有るわけです。
“事前に宣言している場所の実行ファイルを検索して実行”してくれるわけですね、PATHを通していない場所のコマンドを実行する時は実行ファイルの場所をパス指定して実行しなくてはならないのも納得です。
もちろんPATHの通っている場所に有るコマンドを実行するときに上記パスを指定して実行しても同じ結果になります。
PATHの通っているディレクトリを確認する場合はターミナルで下のコマンドを実行すると確認できます。

また、それぞれのコマンドがどこに有るのか確認したいならwhichコマンドが使えます。
whichコマンド
このようにコマンドが/sbinや/binに有ることが確認できます。
それでは、自作コマンドを置くためのフォルダを作成してPATHに追加してしまいましょう。

まずはフォルダの作成

これがないと始まらないのでフォルダを作ります。
任意の場所で良いのですが、メンテ性とバックアップを(かめねこが)忘れないようにホームディレクトリ直下にkamenekoToolsというフォルダを作成する事にしました、もちろんどのような名前でも構いません。
ターミナルで作業します

あ、もちろんコンテキストメニューの”新規フォルダ”から作成しても問題ありません。
何となく場所を明示しておきたかったのですー><
さて、次は作ったフォルダにPATHを通してしまいましょう。

PATHを通す

まずはbash_profileというドットファイル(不可視ファイル)をホームディレクトリ直下に作成してbashrcを呼び出す設定を書きます。
すでにその他の設定で作成している場合は追記して保存します。

次に下記の内容を書きます、これはbashrcを呼び出すよ!って内容です。

次に、bashrcというドットファイルを同じくホームディレクトリ直下に作成して追加するPATHを書きます。
同じく他の設定でbashrcを作成している場合は追記して保存します。

同じように下記を書きます、これはPATHに追加してねー!って内容となっています。

ここまで出来たらsourceを再読み込みするかターミナルを再起動して完了。
パスの確認は下のコマンドでどうぞ

これで追加したパスが表示されていれば大丈夫です。
今回作成したそれぞれのファイルは、bashを使う上でそれぞれ意味のあるファイルになっていて、起動時や端末ログオン時に”そのファイルが有れば”読み込まれるようになっている設定ファイルです、先人達に慣いbashrcをbash_profileから呼び出すようにしています。
次は自作コマンドを作ったフォルダに放り込んでしまいましょう。
お勉強

自作コマンドに実行属性を付ける

さてPATHの通ったフォルダも用意できたので早速コマンドをフォルダに入れて実験してみましょう。
前回の記事で書いたコマンドを使うことにします。

ダウンロードしたファイルは悪意のあるクラッカーな人たちによって改変、改ざんされている可能性が有るわけです。 "ねこ"画像のリンクからダウンロードしたのに"かめ"画像だった、これくらいなら良いですが、ツールをダウンロードして実行したらウィルスだった!とか辛いです。 そこでファイルの配布側は改変、改ざんされていない"ファイルのハッシュ値"を前もって公開しておく事で、ユーザーのダウンロードしたファイルが"本物かチェック"できるようにしてくれているわけです、優しい世界。 と、言うわけで簡単に確認できる方法をメモしておきます。
下のようなコマンドを適当なテキストファイルにでも書きます、viでもテキストエディットでも何でも良いので書いてしまいましょう。
なんならecho “hello かめねこ”でも良いので書きます。

コマンドをかく

そして拡張子なしでデスクトップとかに保存します、このファイル名が実行時のコマンドになりますのでユニークな名前をつけましょう。
コマンドのアイコン
今後の運用を考えると一定のルールを作った方が楽になると思います、ちなみにかめねこの作ったルールは後述します。

実行属性を付けるchmod

そして作成したファイルに実行属性を付けます、今回はデスクトップに保存したkameneko-hashというファイルに実行属性を付けましょう。

アイコンが変わったと思います、情報を表示すると”Unix実行ファイル”になっているでしょう。
実行ファイルのアイコン
今回は所有者だけに実行権限を付けましたが、全ユーザーに付けるならa+xにしてください。
(もちろん数字で指定しても同じです)

フォルダに移動する

実行権限を付けた先ほどのファイルを同じく先ほど作成してPATHを通したフォルダに移動します。
そして、おもむろにターミナルを起動してからかっこよくkameneko-hashコマンドを実行してみましょう。
コマンドが実行されるはずです、今回のコマンドは前回の記事と同じですが同様の結果になりました、成功ですね。
実行結果

かめねこの自作コマンドルール

  • コメントで何のコマンドなのか書いておく
    あとで見直した時に何のために作ったのか忘れてしまったら困るので。
  • ファイル名は”kameneko-コマンド名”にする。
    自作コマンドが増えてくるとコマンド名を覚えていられないのでkameneko-と入力してタブを2回押すことで一覧が表示されるから楽かなと。

タブを二回押すとこのようにターミナルが検索してくれて教えてくれるんです、とっても便利な仕様になっているので、ありがたく使います。
ターミナル補完

おしまい

今回の場合はコマンドの1行目に書いている!/bin/shは無くても動くんですが、どうも書いておくのがマナーというか、実は良く分かっていないというか、書いても書かなくても動くのでとりあえず書こうかなと。(適当)

かめねこ広告
かめねこ広告




かめねこ広告




かめねこをシェア