WSL (Windows Subsystem for Linux) を使ってWindows 10でopenSUSEを動作させみた シリーズ
- 第1弾 : openSUSEインストール編
- 第2弾 : [ユーザ追加編] (http://qiita.com/ApricotSugar/items/8a6f1057939e50492a94)
- 第3弾 : 本記事
- 番外編1 : SDカード領域の参照
#1. はじめに
さて,みんな大好きtcshの時間だよ!
WSL (Windows Subsystem for Linux)でtcshを使いたいと思っている皆々様の参考になればと思います.
#2. tcshのインストール
まずは,tcshのインストールをします.
インストールは,以下のコマンドを実行します.
$su -
# zypper install tcsh
インストールが完了しましたら,以下のコマンドを実行しtcshが実行できているかを確認しましょう.
# tcsh
# set | grep -ai version
version tcsh 6.18.01 (Astron) 2012-02-14 (x86_64-unknown-linux) options wide,nls,lf,dl,al,kan,sm,color,filec
上記のように表示されたら,tcshのインストールと動作確認の完了です.
#3. デフォルトシェルの変更
tcshをインストールしただけでは,余り意味がありません.
普段から利用する物ですからデフォルトシェルに設定しておく必要があります.
まず初めに,tcshのPATHを確認します.
確認は以下のコマンドで行います.
# which tcsh
/bin/tcsh
whichコマンドがインストールされていない場合は,以下のコマンドでインストールしてください.
# zypper install which
確認したところ,tcshは,「/bin/tcsh」であることが分かります.
シェルの変更は,以下のコマンドで行います.
# chsh -s /bin/tcsh <ユーザ名>
これで完了です.
・・・あれ?
変更されていない・・・(^_^;)
どうしてだ?
chshが動いてない?
でも/etc/passwdファイルは変更されてるし...
#4. いろいろ調べてみました.
Qiitaの先人の知恵はすごいですね,すぐに解答っぽいのを見つけました.(直接的な解答ではないです.)
「Windows10のbashをzshで起動するように変更する」によれば,「bash on windowsをwindowsから起動するとchshによるログインシェル変更が適用されず/bin/bashが呼ばれる」みたいです.なぜそのような仕様なのかは分かりませんが...
##4.1. スタートメニューのbashショートカットの変更
まずは,皆さんがよく起動に使うであろう,スタートメニューのショートカットから変更していきます.
エクスプローラーで「%AppData%\Microsoft\Windows\Start Menu\Programs」を開き,
「Bash on SUSE on Windows」のコピーを作成します.
コピー後のファイル名は,「tcsh on SUSE on Windows」にしましょう.
「tcsh on SUSE on Windows」のプロパティを開き,リンク先を以下のように変更します.
C:\Windows\System32\bash.exe ~
C:\Windows\System32\bash.exe ~ -c tcsh
設定後,「tcsh on SUSE on Windows」を開くとデフォルトシェルがtcshに変わっていることが確認できます.
##4.2. PowerShellにtcshコマンドの追加
私は,普段からPowerShellを利用することが多いので,tcshコマンドでtcsh on SUSE on Windowsが起動するようにするモジュールを作成します.
エクスプローラーで「%userprofile%\Documents\WindowsPowerShell\Modules」を開き,「tcsh」ディレクトリを作成します.
「tcsh」ディレクトリを開き,「tcsh.psm1」ファイルを作成します.
「tcsh.psm1」には,以下の内容を記述します.
function tcsh
{
bash -c tcsh
}
Export-ModuleMember -Function tcsh
以上で,tcshコマンドの実装が完了しました.
PowerShellよりtcshが起動したのを確認します.
#5. まとめ
今回は,WSLのデフォルトシェルをtcshに変更してみました.
少し,つまずいた箇所もありましたが動作の確認ができました.
ちまたでは,zshがはやっているようですが,zshをデフォルトシェルに変更する方法も,今回紹介した手順を読み替えて頂ければ実現可能かと思います.
次回の予定は未定ですが,何か面白そうなことがありましたらいろいろと試していこうと思います.
#6. 参考文献