LoginSignup
2
3

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-02-21

WSL (Windows Subsystem for Linux) を使ってWindows 10でopenSUSEを動作させみた シリーズ

1. はじめに

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

2. tcshのインストール

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

WSL
$su -
# zypper install tcsh

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

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のインストールと動作確認の完了です.

Desktop-201702211546.PNG

3. デフォルトシェルの変更

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

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

WSL
# which tcsh
/bin/tcsh

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

WSL
# zypper install which

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

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

Desktop-201702211617.PNG

これで完了です.

・・・あれ?

Desktop-201702211619.PNG

変更されていない・・・(^_^;)
どうしてだ?
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」にしましょう.

Desktop-201702211638.PNG

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

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

Desktop-201702211640.PNG

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

Desktop-201702211643.PNG

4.2. PowerShellにtcshコマンドの追加

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

Desktop-201702211710.PNG

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

Desktop-201702211711.PNG

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

tcsh.psm1
function tcsh
{
    bash -c tcsh
}

Export-ModuleMember -Function tcsh

Desktop-201702211716.PNG

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

Desktop-201702211718.PNG

5. まとめ

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

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

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

6. 参考文献

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3