我想在服务器上运行 Fortran 代码。我可以使用命令登录服务器
ssh -X 用户名@IP地址
没有错误消息。它要求输入密码。提供密码后我得到
* 文档:help.ubuntu.com 487个包可以更新。 349更新是安全更新。 上次登录: 2017 年 11 月 20 日星期一 17:19:01 来自IP地址 mithu@mithu-Inspiron-3521:~$它不返回服务器的名称。
接下来,我想在服务器上创建一个目录。
我使用mkdir directoryname
命令创建一个目录。
但是当我输入命令时,ls
它会显示桌面上我的主目录中的所有文件夹。 (我使用的是 Ubuntu。)即,它在我的主文件夹中创建一个目录不是在服务器中。
在这种情况下,我应该如何复制服务器中的 Fortran 代码并从服务器运行它?
我如何知道我已经进入服务器并在那里创建了一个目录?
答案1
您提供的 IP 地址ssh
是您自己的客户端计算机的 IP 地址,而不是您想要访问的集群的 IP 地址。
最终结果是您实际上登录到了自己的计算机上。
当您要将文件复制到远程系统时,请记住不带前导的远程路径/
是相对于远程系统的主目录的。例如,此命令会将文件复制到远程系统上主目录的子目录localfile
中,如下所示new
remotecopy
scp -p localfile remoteuser@remoteip:new/remotecopy
remotecopy
如果目标文件名与源文件名相同,则可以省略。:
如果要将文件复制到远程服务器上的主目录,则可以省略冒号后面的所有内容。
该标志在( )-p
的手册页中记录为保留文件修改时间和文件权限。scp
man scp
答案2
它在我的主文件夹而不是服务器中创建一个目录。
实际上,假设您mkdir directoryname
在向命令提供密码后输入了命令行,您就成功地在您的主文件夹中创建了一个目录ssh -X [email protected]
在服务器。”
我应该如何在服务器中复制 Fortran 代码并从服务器运行它?
如果您想在那里复制 Fortran 程序/源代码,请发出以下命令:
scp -r /path/to/Fortran/program [email protected]:directoryname/
我如何知道我已经进入服务器并在那里创建了一个目录?
您可以输入hostname
,它应该返回服务器的名称。您还可以键入uname -a
这将为您提供有关服务器的更多信息,例如操作系统等。
现在,您没有透露您的桌面计算机上正在运行哪个系统(OS),因为您问这些问题,我怀疑它是Linux/unix系统,所以您可能必须为您的系统寻找一个scp客户端。 WinSCP 是一个 Windows 客户端,允许您将文件从 Windows 复制到服务器。
编辑:在op的评论之后:
$ ssh zuse
Password:
Last login: Mon Nov 20 12:57:33 2017 from 192.168.1.73
Have a lot of fun...
jdoe@zuse:~> mkdir stackexchange
jdoe@zuse:~> uname -a
Linux zuse 4.11.3-1-default #1 SMP Thu May 25 17:55:04 UTC 2017 (7262353) aarch64 aarch64 aarch64 GNU/Linux
jdoe@zuse:~> ls
agent bin jbs myProg.cpp stackexchange svn test tmp
jdoe@zuse:~>
这就是我在运行 Suse 64 位的 Raspberry pi 上创建一个目录的方法,我亲切地命名该目录zuse
(Suse 与 Zuse 无关,这只是我的双关语......)。
现在,如果在您的系统上您在桌面上看到一个同名的目录,则意味着您的主文件夹是网络共享,这意味着您可以从服务器访问主文件夹中的所有文件,很酷,嘿?这意味着,只要您的 Fortran 代码位于您的主目录中,就可以在服务器上访问它。
如果要将代码复制到服务器,则必须在服务器上创建一个目录,您可能需要向服务器管理员询问目录...请注意,这并不是真正需要的,因为您已经可以访问您的Fortran 代码,前提是您将其存储在主文件夹或主文件夹内的目录中;-)。