%20%E3%81%AE%20CygWin%20%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%81%8C%E6%AD%A3%E3%81%97%E3%81%84%20%24HOME%20%E3%83%91%E3%82%B9%E3%81%A7%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%AA%E3%81%84.png)
インストールしましたシグウィンバージョン1.7.28。
問題はすぐに説明される: 基本的に、リモートログイン経由でCygWinシェルを起動すると、$ホームは、すべての派生的な(悪い)結果とともに、あるべき場所にありません。ローカル コンソールは正常に動作します。
さて、詳細:
GUI (Windows XP) の場合は次のようにします。
c:\CygWin\bin\bash.exe --login -i
または(実質的には同じ方法):
c:\CygWin\Cygwin.bat
私は正しいところから始めます$ホームすべての設定ファイル:
LuisRivas@portatilacer ~
$ pwd
/home/LuisRivas
LuisRivas@portatilacer ~
$ ls .* -la
-rw------- 1 LuisRivas Ninguno 108 mar 3 14:34 .bash_history
-rwxr-xr-x 1 LuisRivas Ninguno 1494 mar 3 03:00 .bash_profile
-rwxr-xr-x 1 LuisRivas Ninguno 6127 mar 3 14:28 .bashrc
-rwxr-xr-x 1 LuisRivas Ninguno 1919 mar 3 03:00 .inputrc
-rwxr-xr-x 1 LuisRivas Ninguno 1236 mar 3 03:00 .profile
$ echo $HOME
/home/LuisRivas
しかし、SSH経由でログインすると(Bitvise SSH サーバーv6 が Windows XP SP3 にインストールされている場合)、プロセスを繰り返します (同じユーザー):
c:\CygWin\bin\bash.exe --login -i
さて、バッシュシェル開始すべき場所から開始されません。
LuisRivas@portatilacer ~
$ echo $HOME
/cygdrive/c/Documents and Settings/LuisRivas
LuisRivas@portatilacer ~
$ pwd
/cygdrive/c/Documents and Settings/LuisRivas
LuisRivas@portatilacer ~
$ ls .* -la
-rw-------+ 1 LuisRivas Ninguno 197 mar 3 14:36 .bash_history
.:
total 1211
drwxrwx---+ 1 Administradores SYSTEM 0 mar 3 14:30 .
drwxrwxr-x+ 1 Administradores SYSTEM 0 mar 1 04:06 ..
-rw-------+ 1 LuisRivas Ninguno 197 mar 3 14:36 .bash_history
drwx------+ 1 LuisRivas Ninguno 0 mar 3 14:12 Configuración local
drwx------+ 1 LuisRivas Ninguno 0 dic 25 15:41 Cookies
drwx------+ 1 LuisRivas Ninguno 0 mar 3 14:17 Datos de programa
drwx------+ 1 LuisRivas Ninguno 0 dic 25 13:56 Entorno de red
drwx------+ 1 LuisRivas Ninguno 0 dic 25 13:56 Escritorio
drwx------+ 1 LuisRivas Ninguno 0 mar 3 14:12 Favoritos
drwx------+ 1 LuisRivas Ninguno 0 mar 3 14:02 IETldCache
drwx------+ 1 LuisRivas Ninguno 0 dic 25 13:56 Impresoras
drwx------+ 1 LuisRivas Ninguno 0 dic 25 13:56 Menú Inicio
drwx------+ 1 LuisRivas Ninguno 0 mar 3 14:12 Mis documentos
-rwx------+ 1 LuisRivas Ninguno 786432 mar 3 14:17 NTUSER.DAT
-rwx------+ 1 LuisRivas Ninguno 1024 mar 3 14:34 NTUSER.DAT.LOG
-rwxrwx---+ 1 Administradores SYSTEM 192 mar 3 14:03 ntuser.ini
drwx------+ 1 LuisRivas Ninguno 0 dic 25 15:33 Plantillas
drwx------+ 1 LuisRivas Ninguno 0 mar 3 14:12 Reciente
drwx------+ 1 LuisRivas Ninguno 0 mar 3 14:12 SendTo
あれは:シグウィンWindowsのホームディレクトリでシェルを起動したので、パーソナライズされていません(.bashrc、.bash_プロファイル...など、別名のような意味になります。
この奇妙な動作は、何らかの環境変数(GUIには存在するがリモートコンソールには存在しない)が欠落していることが原因である可能性がありますが、その原因を特定できませんでした。リモートコンソール
でバッシュシェル含まれるシグウィンどこにすべきでしょうか?
- 編集: リクエストに応じて追加データを以下に示します:
ローカル Bash Shell の場合:
LuisRivas@portatilacer ~
$ id
uid=1004(LuisRivas) gid=513(Ninguno) grupos=513(Ninguno),0(root),544(Administradores),545(Usuarios)
リモート Bash Shell の場合 (違いはありません):
LuisRivas@portatilacer ~
$ id
uid=1004(LuisRivas) gid=513(Ninguno) grupos=513(Ninguno),0(root),544(Administradores),545(Usuarios)
以下は /etc/passwd の内容です (ユーザー「LuisRivas」の行のみ表示)。
LuisRivas@portatilacer ~
$ cat /etc/passwd
[Lines not needed (I think)]
LuisRivas:unused:1004:513:U-PORTATILACER\LuisRivas,S-1-5-21-789336058-1957994488-1417001333-1004:/home/LuisRivas:/bin/bash
[Lines not needed (I think)]
編集2: 最初の文章では間違っていました: ファイル.bashrc開始パス(このパスがどこにあるかは関係ありません)は、シグウィンシェルを起動するときに、その情報は削除されます。
編集 3: 私のテストは、Telnet ではなく SSH リモート ログインでのみ実行されました。そのため、問題が発生しました。正確には、Bitvise SSH Server の動作によるものです (以下の応答を参照してください)。
答え1
問題を一言で言うと次のようになります:Bitvise SSH サーバー(Windows) 環境変数 (おそらく非論理的、必要ではないと思われる) を追加します%家%それは%ホームパス%。
解決策: Bitvise SSH ServerがすべてのSSHクライアントに追加する環境変数を管理する可能性(パテ、古典的なGNUコマンドラインパスワード...など。私が調べた限りでは、プログラムにこの機能はありません。引き続き調査します。
回避策:
電話するバッシュシェル経由.cmd最初に削除するファイル%家%環境変数。次のようになります:
@ HOME=
@ c:\CygWin\bin\bash.exe --login -i を設定します開始バッシュシェル変更することで$ホーム値を変更して再起動します。
c:\CygWin\bin\bash.exe --login -i -c "export HOME=/home/%USERNAME%;cd /home/%USERNAME%; exec /bin/bash"
すべての設定ファイルをコピーするだけでc:\CygWin\home\%ユーザー名%にc:\User\%ユーザー名%問題なく動作するようです (この方法の問題について知っている人はいますか?)。
アイデアと解決策へのリンクを提供してくれた@user1147688(上記)に感謝します。同様の質問。
答え2
私の場合、問題は削除できた Windows 環境変数 %HOME% が原因ではありませんでした。環境変数ダイアログ ボックスには %HOME% 変数は表示されませんでした。
代わりに、Bitviseの詳細設定で「環境変数を許可する」のチェックを外すことで問題を解決できました。また、フィールドの「%HOME%」も削除しました。初期ターミナルシェルディレクトリしかし、それだけでは十分ではありませんでした。