WSL (Windows Subsystem for Linux) を使ってWindows 10でopenSUSEを動作させみた  (tcsh編)

# WSL (Windows Subsystem for Linux) を使ってWindows 10でopenSUSEを動作させみた シリーズ
 * 第1弾 : [openSUSEインストール編](http://qiita.com/ApricotSugar/items/a5df80629a743738e3f6)
 * 第2弾 : [ユーザ追加編] (http://qiita.com/ApricotSugar/items/8a6f1057939e50492a94)
 * 第3弾 : 本記事
 * 番外編1 : [SDカード領域の参照](http://qiita.com/ApricotSugar/items/d0afc32754fc78b4ad9c)

#1. はじめに
 さて，みんな大好きtcshの時間だよ！
WSL (Windows Subsystem for Linux)でtcshを使いたいと思っている皆々様の参考になればと思います．


#2. tcshのインストール
まずは，tcshのインストールをします．
インストールは，以下のコマンドを実行します．

```txt:WSL
$su -
# zypper install tcsh
```

インストールが完了しましたら，以下のコマンドを実行しtcshが実行できているかを確認しましょう．

```txt:WSL
# 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のインストールと動作確認の完了です．

<img width="974" alt="Desktop-201702211546.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/42242/d2bb6d52-9155-5ab4-ec1e-10897df94cee.png">


#3. デフォルトシェルの変更
tcshをインストールしただけでは，余り意味がありません．
普段から利用する物ですからデフォルトシェルに設定しておく必要があります．

まず初めに，tcshのPATHを確認します．
確認は以下のコマンドで行います．

```txt:WSL
# which tcsh
/bin/tcsh
```

whichコマンドがインストールされていない場合は，以下のコマンドでインストールしてください．

```txt:WSL
# zypper install which
```

確認したところ，tcshは，「/bin/tcsh」であることが分かります．
シェルの変更は，以下のコマンドで行います．

```txt:WSL
# chsh -s /bin/tcsh <ユーザ名>
```

<img width="974" alt="Desktop-201702211617.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/42242/33a56445-d6a8-1e19-a50a-0244955a0805.png">


これで完了です．


・・・あれ？

<img width="974" alt="Desktop-201702211619.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/42242/d38b1dbe-6b2c-4fa7-10fa-2cd1d1f915c5.png">

変更されていない・・・(^_^;)
どうしてだ？
chshが動いてない？
でも/etc/passwdファイルは変更されてるし．．．


#4. いろいろ調べてみました．
Qiitaの先人の知恵はすごいですね，すぐに解答っぽいのを見つけました．（直接的な解答ではないです．）
「[Windows10のbashをzshで起動するように変更する](http://qiita.com/yutaszk/items/ca0425456b5027d2ee0e#_reference-7953d3a908beb019e5c7)」によれば，「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」にしましょう．

<img width="590" alt="Desktop-201702211638.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/42242/527765de-0aac-42ff-effc-34767e6c3119.png">

「tcsh on SUSE on Windows」のプロパティを開き，リンク先を以下のように変更します．

```txt:変更前
C:\Windows\System32\bash.exe ~
```

```txt:変更後
C:\Windows\System32\bash.exe ~ -c tcsh
```

<img width="315" alt="Desktop-201702211640.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/42242/b9145caa-011c-c5d4-39ee-95e1c01e05ae.png">

設定後，「tcsh on SUSE on Windows」を開くとデフォルトシェルがtcshに変わっていることが確認できます．

<img width="734" alt="Desktop-201702211643.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/42242/34c4cd66-66e9-fb9e-29b1-3f00f069774b.png">


##4.2. PowerShellにtcshコマンドの追加
私は，普段からPowerShellを利用することが多いので，tcshコマンドでtcsh on SUSE on Windowsが起動するようにするモジュールを作成します．
エクスプローラーで「%userprofile%\Documents\WindowsPowerShell\Modules」を開き，「tcsh」ディレクトリを作成します．

<img width="590" alt="Desktop-201702211710.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/42242/678cc1f8-00c0-d138-df6f-8251c335afbf.png">

「tcsh」ディレクトリを開き，「tcsh.psm1」ファイルを作成します．

<img width="590" alt="Desktop-201702211711.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/42242/8579a199-b651-e8e1-8db3-71adda27b560.png">

「tcsh.psm1」には，以下の内容を記述します．

```ps1:tcsh.psm1
function tcsh
{
    bash -c tcsh
}

Export-ModuleMember -Function tcsh
```

<img width="758" alt="Desktop-201702211716.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/42242/2d90785d-6fdb-7a64-b28b-9779c7f20be8.png">


以上で，tcshコマンドの実装が完了しました．
PowerShellよりtcshが起動したのを確認します．

<img width="974" alt="Desktop-201702211718.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/42242/8509efb5-5a6d-2730-8236-c6dc2e7905c2.png">





#5. まとめ
今回は，WSLのデフォルトシェルをtcshに変更してみました．
少し，つまずいた箇所もありましたが動作の確認ができました．

ちまたでは，zshがはやっているようですが，zshをデフォルトシェルに変更する方法も，今回紹介した手順を読み替えて頂ければ実現可能かと思います．

次回の予定は未定ですが，何か面白そうなことがありましたらいろいろと試していこうと思います．



#6. 参考文献
 * [Bash on Ubuntu On Windowsのデフォルトシェルをzsh、あるいはtmuxにする（別解）](http://qiita.com/sengoku/items/dd3f0f6a13a6e0b925e8#_reference-1b7a2165cfcad08174bd)
 * [Ubuntu on Windows で zshをデフォルトシェルにする](http://qiita.com/nsmr0604@github/items/7dd38faed1abd9189a83)
 * [Windows10のbashをzshで起動するように変更する](http://qiita.com/yutaszk/items/ca0425456b5027d2ee0e#_reference-7953d3a908beb019e5c7)