powershellのデフォルト設定ではスクリプトの実行が禁止されているので .bashrc 的な定義を使える様にするには
- 全てのスクリプトを実行出来るようにする
- 署名したスクリプトだけを実行出来るようにする
その上で、profile.ps1を編集することになります
で、多くの記事がとりあえず1を設定しますが、ここは安全性を高めるためにあえて2の方法をとったとします
詳しくはこちらから
https://qiita.com/fumi-m/items/9ea021511634020dca0c
この場合、ちょっとした修正を profile.ps1に追加する度にスクリプトに署名をし直す必要が出てくるのです・・・
で、署名をするためにはそれなりのコマンドを打ち込まないと行けないので、profile.ps1を編集する度に署名が必要なので方法をまとめて見ました
設定すべきファイルは?
profile.ps1 はどこにあるのでしょうか?
{{ユーザー別のホームドキュメントディレクトリ(c:\Users\ユーザー名\Documents とか)}}\WindowPowerShell\Microsoft.PowerShell_profile.ps1
長くて覚えていられないですよね?
このパスは変数 $profile で定義されているようです。
そして、メモ帳へのエイリアスが notepad で定義されているので、以下で起動出来る感じ
> notepad $profile
再度署名
$Cert = Get-ChildItem Cert:\CurrentUser\Root | ? {$_.Subject -eq "CN=CodeSigningForPS"}
Set-AuthenticodeSignature -Cert $Cert -Filepath $profile
aliasの設定について
1. パスが通っていないコマンドへのalias設定
Set-Alias sakura ("C:\Program Files (x86)\sakura\sakura.exe")
2. functionの作成
powershellのSet-Aliasは引数を受け取れないとかで、オプション指定が必要な場合は関数を作る必要がありそう
function dc(){
cd c:\dev\jobrainbow\docker-dev\recruit
docker-compose up
}
それぞれ、
> sakura
でサクラエディタが開くし
> dc
でディレクトリに移動してdocker-compose upをしてくれるようになります