use*_*326 5 ssh command-line nautilus nemo 13.10
在 Nautilus 中,可以通过密码建立与远程服务器的 ssh 连接。然后您可以为该地址添加书签并快速到达那里。这在运行 Ubuntu 13.10 的 Nemo 中仍然有效。
但是,通过右键单击并使用“在终端中打开”选项,用户可以打开一个显示远程服务器提示的终端。这样你就可以立即开始在那里工作。
在 Ubuntu 13.10 中不再使用 Nemo 而不是 Nautilus,这似乎不再起作用。我发现我可以使用脚本:
#!/bin/sh
gnome-terminal --execute /usr/bin/ssh user@myserver.net
Run Code Online (Sandbox Code Playgroud)
但我更愿意恢复原来的行为。这有可能吗?
小智 2
您可以在 ~/.local/share/nemo/actions 中创建两个操作。
\n\n文件remote_terminal1.nemo_action:
\n\n[Nemo Action]\nName=Open in remote terminal\nComment=Open current folder in remote terminal\nName[de]=Im entfernten Terminal \xc3\xb6ffnen\nComment[de]=Aktuellen Ordner im entfernten Terminal \xc3\xb6ffnen\nExec=<remote_terminal.py %F>\nIcon-Name=terminal\nSelection=none\nExtensions=dir;\nDependencies=ssh;\n
Run Code Online (Sandbox Code Playgroud)\n\n文件remote_terminal2.nemo_action:
\n\n[Nemo Action]\nName=Open in remote terminal\nComment=Open this folder in remote terminal\nName[de]=Im entfernten Terminal \xc3\xb6ffnen\nComment[de]=Diesen Ordner im entfernten Terminal \xc3\xb6ffnen\nExec=<remote_terminal.py %F>\nIcon-Name=terminal\nSelection=s\nExtensions=dir;\nDependencies=ssh;\n
Run Code Online (Sandbox Code Playgroud)\n\n最后是一个Python脚本remote_terminal.py(必须是可执行的):
\n\n#!/usr/bin/env python2\n# -*- coding: utf-8 -*-\n\nimport sys\nimport subprocess\n\npath = sys.argv[1]\n\nif \'/sftp:\' in path:\n sftp = path.split(\'/sftp:\', 1)[1]\n settings = {}\n options, sep, settings[\'path\'] = sftp.partition(\'/\')\n for opt in options.split(\',\'):\n name, sep, value = opt.partition(\'=\')\n settings[name] = value\n\n cmd = [\'gnome-terminal\', \'-e\',\n \'ssh %(user)s@%(host)s -t "cd /%(path)s && bash --login"\' % settings]\nelse:\n cmd = [\'gnome-terminal\', \'--working-directory\', path]\n\nsubprocess.call(cmd)\n
Run Code Online (Sandbox Code Playgroud)\n
小智 1
在写下这些文字时,我与尼莫的关系进一步破裂。迁移到 Ubuntu 14.04 (Mate) 的 64 位版本时,我发现 python 脚本停止工作。我发现 %F 不再拒绝传递参数。所以我切换到%U(仍然有效)并将脚本改编为Bash(我不是Python的粉丝,可能是个人口味):
\n\n#! /bin/bash\n\n\n# $1 enth\xc3\xa4lt den ersten Parameter\n\n# Testweise Ausgabe aller \xc3\xbcbergebenen Parameter \n# echo $*\n# exit\n\n# der Regex schneidet "sftp://" ab und \xc3\xbcbergibt den Rest an $sftp\n# sftp://root@debbie/var/databases -> root@debbie/var/databases\nsftp=`echo $1 | sed \'s#^[sftp://]*##\'`\n# echo $sftp\n\n# Abschneiden des Domain\n# root@debbie/var/databases -> root@debbie\ndomain=`echo $sftp | sed \'s#\\/.*##\'`\n# echo $domain\n\n# Abschneiden des Pfades\n# root@debbie/var/databases -> var/databases\npath=`echo $sftp | sed \'s#[^\\/]*.##\'`\n# echo $path\n# ssh=\'ssh \'$domain\' -t "cd /\'$path\' && bash --login"\'\n# echo $ssh\n\n# Der \xc3\xbcbergebene Pfad startet vom Wurzelverzeichnis / \ngnome-terminal -e \'ssh \'$domain\' -t "cd /\'$path\' && bash --login"\'\n\nread exit \n
Run Code Online (Sandbox Code Playgroud)\n\n该脚本的功能与 python 脚本基本相同,但让我更好地掌握我想做的事情。
\n 归档时间: |
|
查看次数: |
2829 次 |
最近记录: |