答案1
在远程计算机上安装您最喜欢的 shell。您不需要任何管理员权限即可执行此操作,您可以在主目录中安装程序,只是不太方便。看无需root即可在debian 5 32位上安装,如何在没有 sudo 权限的情况下本地安装程序?,跟踪程序和其他问题。
如果您想自动登录到您自己安装的 shell 而不是默认的 shell,请参阅使 zsh 默认 shell 无需 root 访问权限
如果您只想操作远程文件,您可以使用SSHFS将远程目录树安装到本地计算机上。
mkdir ~/remote.d
sshfs remote.example.com:/ ~/remote.d
ls ~/remote.d/
…
fusermount -u ~/remote.d
如果您的主目录中没有空间或者它是共享帐户,您可以设置一个反向 SSH 隧道并将本地目录树挂载到远程计算机上SSHFS,假设两台机器运行相同的体系结构(相同处理器类型上的相同 UNIX 变体)。如果两台机器的架构不兼容,您甚至可以将远程架构的程序安装在本地主目录中。这可能不是很方便,因为您必须正确设置程序的路径才能找到其库、配置文件和其他数据文件。
答案2
简单的回答:不,您不能在远程盒子上使用未安装在远程盒子上的程序。
解决方法:您不需要管理员权限即可在远程系统上安装 shell。您可以将其安装在主目录中,但可能必须从源代码编译它。通常使用类似的东西configure --prefix=${HOME}/local
最后注意:您不能将默认 shell 更改为非“官方”shell(请参阅 参考资料/etc/shells
),但您可以exec fish
在您的.bashrc
答案3
用户可以使用sshfs将远程 $HOME 安装到本地计算机上。在这样的场景下,用户不会直接在远程计算机上使用他选择的 shell,但仍然比没有好。
答案4
显而易见的答案是“在远程计算机上安装命令”,这是最干净的解决方案,因此我们不应该忽略它:
如果可以以 root 身份安装该命令,例如使用
sudo apt-get install fish
,则
可以像这样运行该命令:
ssh remote -t fish
问题是当我们无法安装远程计算机上的命令。
或者更具体地说,是关于我们的案例无法以 root 身份安装命令。
这并不意味着我们根本无法安装!
仍然可以的是安装命令主目录内通过构建它从源头。
这样做的好处是它可以处理所有相关的事情支持文件可能带有命令,以及程序如何找到它们。在fish
shell 示例中,这些是完成功能等等,如果我们只复制二进制文件,所有这些都不可用fish
。
从源代码构建命令需要开发工具和所使用库的开发文件,这可能过于复杂。
但许多程序都将所需的所有内容都捆绑在源中,因此这可能很容易。以前很难说,但可以尝试一下。
要将命令安装到主目录中,configure
请提供安装路径- 需要在构建说明中检查。例如:
mkdir ~/local
./configure --prefix=~/local
make
make install
请注意,这并不sudo make install
像平常那样 - 因为它是整点在本地安装它不需要 sudo 。
有关从源安装程序的一般信息,请参阅askubuntu.SE:如何安装 .tar.gz(或 .tar.bz2)文件?