当前位置: 首页 > Linux

如何SSH到Linux服务器中的特定目录并执行命令?

时间:2023-04-06 11:30:11 Linux

你遇到过这样的场景吗?使用SSH命令进入服务器,然后使用cd命令进入相应目录,然后继续你的工作。这种操作对于新手来说很常见,在梁旭之前也是如此。本文老司机带你进行更高效的操作,一步搞定你想要的效果。而且,不仅是快速进入Linux服务器的具体目录,还可以在连接服务器的时候执行相应的命令。低效的操作方法如果你不知道本文介绍的方法,你大概分为两步:第一步:使用SSH命令进入远程服务器sshuser@remote-system第二步:使用cd命令enterinto你想要的目录cd快速进入服务器指定目录的命令上面说的方法当然可以,但是效率太低了。你需要使用两条命令来完成,但实际上你可以使用一条命令来达到你想要的效果,例如:ssh-tpi@192.168.0.116'cd/home/pi/tests;bash'通过这个命令,我们可以直接进入树莓派(远程服务器)中的相应目录(即/home/pi/tests)。然后您可以继续您的工作。这里,-t选项是强制伪终端分配,即使标准输入不是终端。如果不添加,可能会有如下提示:伪终端不会被分配,因为stdin这里我们用一个动画来直观的演示一下这个过程:另外,还可以使用如下命令:ssh-tpi@192.168.0.116'cd/home/pi/测试;execbash'或:ssh-tpi@192.168.0.116'cd/home/pi/tests&&execbash-l'这里,-l选项为登录shell设置此bash。上面三个命令中,最后一个参数是bash,因为我的远程服务器默认的shell解释器是bash。如果您不知道远程服务器使用的shell解释器,可以使用以下命令:ssh-tpi@192.168.0.116'cd/home/pi/tests&&exec$SHELL'远程执行服务器的命令文章开头提到的command说到这里,我们不仅可以使用命令进入远程服务器的指定目录,还可以使用命令远程执行服务器命令。甚至,我们可以使用命令进入远程服务器的指定目录,然后执行命令。其实用的方法都是一样的。比如我们要进入树莓派的/home/pi/tests目录,然后执行ls-al命令,可以这样输入命令:ssh-tpi@192.168.0.116'cd/home/pi/tests&&ls-al&&exec$SHELL'执行结果如下:[Alvin.Alvin-computer]?ssh-tpi@192.168.0.116'cd/home/pi/tests&&ls-al&&exec$SHELL'total48drwxr-xr-x4pipi4096Apr514:36.drwxr-xr-x21pipi4096Apr2119:26..drwxrwxrwx7pipi4096Apr517:28GICdrwxrwxrwxpi30964Apr517:37gitchat-rw-r--r--1pipi474Apr511:21liangxu.json-rwxr-xr-x1pipi8184Mar1715:34test-rwxr-xr-x1pipi8184Mar1715:34test2-rwxr-xr-x1pipi8184Mar1715:34test3-rw-r--r--1pipi131Mar1715:34test.c一个妥协的解决方案如果你觉得这个命令太长打不出来,得先进入服务器,然后cd到对应的目录。那么,我们可以修改远程服务器的.bashrc文件。vim~/.bashrc把你要执行的命令写在里面。比如这个场景,我们可以添加:cd/home/pi/tests>&/dev/null然后执行:wq保存文件,然后执行如下命令使修改生效:source~/.bashrc或.~/.bashrc这样,一旦我们进入服务器,就会自动进入/home/pi/tests目录。如下动画所示:但是,这样有一个明显的缺点,就是我们只能进入我们指定的目录。如果我们想换到别的目录,只能改.bashrc文件。最后,最近有很多朋友找我要一份Linux学习路线图,所以我结合自己的经验,利用业余时间熬夜一个月,整理了一本电子书。无论你是面试还是自我提升,相信都会对你有所帮助!免费送给大家,只求大家给我点个赞!电子书|LinuxDevelopmentLearningRoadmap也希望有小伙伴可以加入我的行列,把这本电子书做得更加完美!获得?希望老铁们来个三连击,让更多人看到这篇文章。推荐阅读:干货|程序员和高级架构师免费发送工件的必备资源|支持搜索的资源网站