質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

fish

fish(friendly interactive shell)は、Unix系OSのシェルの一つです。無設定で多くの機能を利用することが可能。カラフルな表示で見やすく、TAB補完にも優れています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

1回答

1986閲覧

dConEmu と fish でキー入力の不具合 (Windows10, Bash on Ubuntu on Windows)

tf23yh8df3

総合スコア60

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

fish

fish(friendly interactive shell)は、Unix系OSのシェルの一つです。無設定で多くの機能を利用することが可能。カラフルな表示で見やすく、TAB補完にも優れています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2017/10/23 12:23

編集2017/10/23 23:24

ConEmu 上でキー入力すると以下のようなエラーがときどき発生

bash

1# 成功する時 2~> cd var/ 3/var > 4 5# 失敗する時 6> c<W> fish: Error while searching for command 7 '/mnt/c/Program Files (x86)/Common Files/Sony SharedeliCaNFCLibrar]y/cd' 8 0access: 無効;な引数です

解決策

  • レジストリエディタに追加

イメージ説明

環境

  • ConEmu 161206 [64]
  • fish : 2.6.0
  • win os : Windows 10 Home(10.0.16299)
  • linux os : Ubuntu 16.04.3 LTS

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

fishは強力なコマンド補完機能を持っており、その処理は複雑です。コマンドの途中でも補完しようとして、全てのPATHにあるコマンドを確認するところでエラーになっていると思われます。考えられる原因は二つです。

  • 環境変数PATHが壊れている。(アクセスできない場所やおかしな値がPATHにある)
  • スペースや()等の記号が含まれている環境変数PATHにfishが対応していない。

いずれも、WindowsのPATHをBoW(Bash on Ubuntu on Windows)側で引き継いでいるため、Linuxライクでは無いPATHが含まれているからだと思われます。

解決方法は三つです。

###PATHの内容を見直す。

アクセスできないなど、おかしなPATHがあれば修正して下さい。これでなおれば十分かも知れません。

###WidowsのPATHを引き継がない。

下記レジストリを設定するとWindowsでのPATHをBoWでは引き継ぎません。

Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss] "AppendNtPath"=dword:00000000

ただ、BoW上でもWindowsコマンドを使いたいと言う場合はできなくなってしまいますので、設定するかどうかは一長一短です。(私は、変にWindows側の見に行かないように設定していますが)

【追記】
ストアで配付されている正式版では仕様が変わったため上記方法ではうまくいきません。それらについてまとめたものをQiitaに書きましたので、正式版を利用している場合は下記を参考にしてください。
WSLでWindowsのPATHを引き継がないようにする方法 - Qiita

###細かい原因を調べてfish側に修正依頼を投げる。

WindowsのPATHにはどうしてもスペースや()等が含まれます。それらがあっても問題ないようにfish側に修正を依頼します。

投稿2017/10/23 22:10

編集2018/03/17 00:43
raccy

総合スコア21733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tf23yh8df3

2017/10/23 23:22

解説ありがとうございます。 確かに $PATH を見たら、 windows 側のパスが含まれていました。 $path に含まれる windows 側のパスだけ削除する方法はありますか。 レジストリエディタの設定について質問があります。 16進数ですか。 添付した画像のような「DWORD (32bit) 値」ですか。
raccy

2017/10/24 09:51

DWORDです。レジストリを設定するとWindows側で設定するPATHが読み込まれず、BoWで設定させるPATHだけ設定されます。
tf23yh8df3

2017/10/24 12:03

なるほど。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問