我已经安装赛格威v1.7.28。
问题很快得到解释:基本上,当通过远程登录启动 CygWin shell 时,$HOME未处于应有的位置,并由此导致所有(不良)后果。本地控制台运行正常。
现在细节:
如果在 GUI(Windows XP)上我执行以下操作:
c:\CygWin\bin\bash.exe --login -i
或(实际上同样的方式):
c:\CygWin\Cygwin.bat
我从正确的开始$HOME包含我的所有配置文件:
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
现在Bash Shell没有从应该开始的地方开始:
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 主目录中启动了 shell,所以我没有我的个性化设置(.bashrc,.bash_配置文件...等等),就像别名一样。
也许这种奇怪的行为只是由于某种缺失的环境变量(存在于 GUI 上,但不存在于远程控制台上)引起的,但我无法找到它。
我该怎么做才能让我的远程控制台启动Bash Shell包括在赛格威应该在哪里?
- 编辑:根据要求,这里有一些额外的数据:
在本地 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在起始路径(无论该路径在哪里)处读取 OK赛格威启动其 shell 时。该信息现已被删除。
编辑 3:我的测试只针对 SSH 远程登录,而不是 Telnet。因此问题就出现了:正是 Bitvise SSH 服务器的某些行为导致的(请参阅下面的回复)。
答案1
问题概括起来就是:Bitvise SSH 服务器(Windows)添加一个(据称不合逻辑;似乎不需要的)环境变量%家%等于%主页路径%。
解决方案:Bitvise SSH Server 为每个 SSH 客户端添加管理环境变量的可能性(油灰,经典的 GNU 命令行SSH...等等)。据我研究,该程序没有此功能。我会继续寻找。
解决方法:
致电Bash Shell通过命令首先删除的文件%家%环境变量。例如:
@ 设置 HOME=
@ c:\CygWin\bin\bash.exe --login -i开始Bash Shell通过改变$HOME值,然后重新启动它:
c:\CygWin\bin\bash.exe --login -i -c "export HOME=/home/%USERNAME%;cd /home/%USERNAME%; exec /bin/bash"
只需复制所有配置文件即可c:\CygWin\home\%用户名%到c:\Users\%用户名%。似乎运行正常(有人知道这个方法存在什么问题吗?)。
感谢@user1147688(以上)提供的想法和解决方案链接类似问题。
答案2
对我来说,问题不是由于我能够删除的 Windows 环境变量 %HOME% 造成的。环境变量对话框中没有列出 %HOME% 变量。
相反,我能够通过取消选中高级设置中的“允许环境变量”来解决 Bitvise 中的问题。我还删除了字段中的“%HOME%”初始终端 shell 目录,但这本身还不够。