Windowsの環境変数「PATH」
初めに
PATHについての説明はいくらでも転がっているのですが、(いいことですが)丁寧な説明で長い記事になっているものが多く、読むのが面倒!という人のために「何ができるか」「なぜ必要なのか」を簡潔にまとめます。
それではどうぞ
PATHを通すことでできること
- プログラムを名前だけでどこからでも実行することができる
例:$notepad
-> メモ帳()が起動します
Pathが通ったプログラムを実行するときの内部的な動き
説明
ファイル名だけをコンソールから実行した場合、
登録してあるPATHの直下にある、拡張子にPATHEXTを持つファイルを実行する
という動きになります。 また、PATHやPATHEXTは登録されている順にファイル検索が行われ、最初に一致したものを実行します。(※後で補足します)
確認
試しに、メモ帳(notepad.exe)を起動します。
$notepad
はい、起動しますね。
ちなみにnotepad.exeは二種類の実行ファイルがあります。(私の環境だけ。。?)
$where notepad C:\Windows\System32\notepad.exe C:\Windows\notepad.exe
$where
は検索パターンに一致するファイルの場所を表示するコマンドです。
既定では、現在のディレクトリおよび PATH 環境変数によって指定されたパス内を検索します。
先ほど実行したnotepad.exeはC:\Windows\System32\notepad.exe
の方ですね。
C:\Windows\notepad.exe
を実行するには、フルパスで指定してやるか、C:\Windows\
の直下で$notepad
を実行する必要があります。
そもそもなぜPathが必要なのか?
一つは、冒頭でも書いた通り「ファイル名だけでどこからでも実行できると便利」ということが挙げられます。
そのほかの理由として、考えられるのは、アプリケーションの開発者側が、ユーザのコンピュータのアプリケーションを実行する際にアプリケーションがどこにあるのかを意識しなくてよい、というのもあるような気がしますね。
余談
「コマンドプロンプトから実行できるコマンドは何があるんだろう?」
そんな時に自分の環境でファイル名のみで利用可能なコマンドの一覧を確認したければ、powershellで
foreach ($a in ($env:PATHEXT).Split(";")) {Start-Process -FilePath "cmd" -ArgumentList " /c where *$a >> %userprofile%\Downloads\command.txt" -Wait }
を実行すると、%userprofile%\Downloads\command.txt
に使用可能なコマンドの一覧が出力されます。
※正確には、上記で出力できるのは外部コマンドと呼ばれる類のものです。cmd.exeには組み込みコマンドというものもあり、組み込みコマンドはコマンドプロンプトでhelp
と打てば全量が表示されます。
Gitでコマンドにalias(=別名)を設定し、爆速でコマンドをたたく
前提
gitについてある程度知っている前提です。 gitとはそもそも何か?ということについてはこちらをご覧ください
なぜalias(=別名)が必要か
例えば、 コンソールでgitを使用している人が一番使うであろうコマンドのこちら
$git status
リポジトリの状態を確認するコマンドですが、ほんとによく使います、、
$git add
から$git push
までの間に3,4回使ったりすることも稀によくあると思います。
使用頻度が高いくせして、'status'と6文字もタイピングする必要があるのは、なかなかめんどくさい。
そこで、別名を付けることで、タイピング量を減らしてやろう!というのが目的です。
それでは見ていきましょう。
aliasの設定
※ 前提(補足)
gitの設定にはスコープ(=設定の有効範囲)があり、次の3つに分かれます。
スコープについての詳しい説明はこちらが大変参考になります。
system | global | local |
---|---|---|
システム単位 | ユーザ単位 | リポジトリ単位 |
今回はglobalスコープにaliasを設定します。
alias設定
ここでは私も使用している設定を例として挙げます。
ちなみにタイトルでは「コマンドにaliasをつける」と言っていますが、実際はコマンド以外にもつけられます。
$git config --global alias.a "add" $git config --global alias.b "branch" $git config --global alias.c "checkout" $git config --global alias.ch "cherry-pick" $git config --global alias.d "diff" $git config --global alias.l "log --graph --all --format='%%x09%%C(cyan bold)%%an%%Creset%%x09%%C(yellow)%%h%%Creset %%C(magenta reverse)%%d%%Creset%%s' --branches" $git config --global alias.rmh "reset --mixed head" $git config --global alias.rhh "reset --hard head" $git config --global alias.s "status"
例だと、status
にはs
というaliasを付けています。
設定は%userprofile%\.gitconfig
に下記のように反映されます。
[alias] a = add b = branch c = checkout ch = cherry-pick d = diff l = log --graph --all --format='%x09%C(cyan bold)%an%Creset%x09%C(yellow)%h%Creset %C(magenta reverse)%d%Creset %s' --branches rmh = reset --mixed head rhh = reset --hard head s = status
動作確認
gitリポジトリで、$git status
と$git s
を試してみます。
同じ結果が得られればOKです。
$git status On branch temp Your branch is up to date with 'origin/temp'. nothing to commit, working tree clean
$git s On branch temp Your branch is up to date with 'origin/temp'. nothing to commit, working tree clean
大丈夫そうですね。
お読みいただきありがとうございました。
Markdownではてなブログを編集するときの、記述方法と実際の見た目
目的
※注意 初投稿テスト &Markdown練習用です。
タイトルの通りですが、markdownで書いた時の見た目と書き方が一目でわかるような記事があればいいなと思って書いてみました。
こちらの記事を参考にさせていただいています。
hero-rin.hatenablog.com
記載例について
以下のように、実際に読者がそのままコピペして編集中に使えるように書こうと思います。
太字:__太字__
↑コピーすればそのまま編集で使えます。「太字」部分を好きな文字に変えてください。
それでは始めましょう。
##### 見出し
太字:__太字__
改行:後ろに半角スペース二つ⇒
なおかつ、↑の文章を改行してこの文章を書く
余談
初投稿です。自分自身Markdownで書いていこうと思って今回の記事に至りました。
はてな記法というものもあるようなんですが、見送りました。
免責事項
当方は、当記事にコンテンツを掲載するにあたって、その内容、機能等について細心の注意を払っておりますが、コンテンツの内容が正確であるかどうか、最新のものであるかどうか、安全なものであるか等について保証をするものではなく、何らの責任を負うものではありません。また、当方は通知することなく当記事に掲載した情報の訂正、修正、追加、中断、削除等をいつでも行うことができるものとします。 また、当記事、またはコンテンツのご利用により、万一、ご利用者様に何らかの不都合や損害が発生したとしても、当方は何らの責任を負うものではありません。