Linuxコマンドは実は・・・
Linuxコマンド、たとえばpwd
を打ってみる
これはあたりまえ。
では、which pwd
を打ってみる
これは一体?何?
そうなんです。
pwd
は実は/usr/bin/pwdを実行しているのです。
ためしに/usr/bin/pwd
を打ってみます。
予想通りです。
念のため、/usr/bin
ディレクトリも覗いてみましょう。
cd /usr/bin
を打ってみます。
大量ですが右下の方にありましたね。
ただ、pwd.exe
です。
本来は/usr/bin/pwd.exe
と打つべきなはずです。
一旦/usr/bin/pwd.exe
と打ってみます。
予想通りです。
つまりpwd
の本当の姿は/usr/bin/pwd.exe
なのです。
なぜ省略できるのか?
printenv PATHEXT
コマンドを打ってみましょう。
これは変数PATHEXT
に登録されているもの一覧を表示するコマンドです。
この一覧で出てきた;
で区切られた拡張子11個は省略してもよい拡張子として登録されているのです。
printenv PATH
コマンドを打ってみましょう。
これは変数PATH
に登録されているもの一覧を表示するコマンドです。
大量に出てきましたが、この一覧で出てきた:
で区切られたディレクトリ以下の実行ファイル(〇〇〇.exe
みたいなやつ)は、ディレクトリ部分を省略できるのです。
なので、/usr/bin/pwd.exe
をpwd
に省略することができるのです。
PATHの追加とか削除は?
では当然、PATH
やPATHEXT
への追加登録や削除したくなってきますよね。
その方法を説明します。
どうせなら今流行り?のMecab
でやってみましょう。
1. MeCabのダウンロード
https://github.com/ikegami-yukino/mecab/releases/tag/v0.996
のmecab-0.996-64.exe
をダウンロードして実行します。
2. mecabコマンドを試す
/c/'Program Files'/
以下にmecabがインストールされます。
※各PCにより異なるケースがあります。
そしてMeCab実行ファイルのmecab.exe
は/c/'Program Files'/mecab/bin/
以下にあります。
つまり/c/'Program Files'/mecab/bin/mecab.exe
だと実行可能なはず。
そして.exe
は省略可なので/c/'Program Files (x86)'/mecab/bin/mecab
だと実行可能なはず。
$ /c/'Program Files (x86)'/mecab/bin/mecab
ちゃうちゃうちゃうんちゃう?
ち 動詞,自立,*,*,五段・ラ行,体言接続特殊2,ちる,チ,チ
ゃうちゃうちゃうんちゃう 名詞,一般,*,*,*,*,*
? 記号,一般,*,*,*,*,?,?,?
EOS
予想通り!
でもmecab
だと反応しません。
$ mecab
bash: mecab: command not found
3. ~/.bashrcに登録したい変数の命令文を書き込む
まずは~/.bashrc
を作りましょう。
touch ~/.bashrc
ですね。
$ touch ~/.bashrc
中身見てみましょう。もちろん何も書かれていません。
$ cat ~/.bashrc
では書き込みましょう。
$ echo 'export PATH="$PATH:/c/'Program Files'/mecab/bin"' >> ~/.bashrc
$ echo 'alias mecab="mecab.exe"' >> ~/.bashrc
echo '書き込みたい文字列' >> 書き込みたいファイル
です。
export PATH="$PATH:
の後ろに登録したいパスを続けます。
$PATH
は現状のPATHです。
念のためちゃんと書き込まれているか確認しましょう。
$ cat ~/.bashrc
export PATH="$PATH:/c/'Program Files'/mecab/bin"
大丈夫そうです。
4. ~/.bashrcを実行してPATHに登録する
まだ~/.bashrc
に書き込んだだけです。
printenv PATH
コマンドを打ってみましょう。登録されていないことが確認できます。
※printenv PATH
コマンド実行結果は省略します。私のPCには、はずかしPATHが多量に含まれているため。
~/.bashrc
を実行しましょう。
$ source ~/.bashrc
するとprintenv PATH
コマンドで新たにPATHが増えていることが確認できます。
5. mecabコマンドを試してみる。
PATHが追加登録されたのでmecab
で実行可能なはずです。
やってみましょう。
$ mecab
ちゃうちゃうちゃうんちゃう?
ち 動詞,自立,*,*,五段・ラ行,体言接続特殊2,ちる,チ,チ
ゃうちゃうちゃうんちゃう 名詞,一般,*,*,*,*,*
? 記号,一般,*,*,*,*,?,?,?
EOS
いけました!