首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用JSch获取远程bash shell,但自动完成不起作用

JSch是一个Java库,用于在Java程序中实现SSH连接和远程执行命令。它提供了一种简单而强大的方式来与远程服务器进行通信和交互。

在使用JSch获取远程bash shell时,自动完成可能不起作用的原因有多种可能性。以下是一些可能的解决方案和建议:

  1. 检查远程服务器的配置:确保远程服务器上的bash shell已正确配置,并且自动完成功能已启用。可以通过在远程服务器上手动执行命令来验证自动完成是否正常工作。
  2. 检查JSch的版本:确保使用的是最新版本的JSch库。有时旧版本的库可能存在一些已知的问题或限制,可能会影响自动完成的功能。
  3. 模拟用户输入:如果自动完成不起作用,可以尝试模拟用户输入来实现类似的效果。可以使用JSch的ChannelShell类来执行命令,并通过InputStreamOutputStream与远程shell进行交互。通过向OutputStream写入命令和按键,然后从InputStream读取输出,可以模拟用户的输入和输出。
  4. 使用Expect库:如果自动完成仍然不起作用,可以考虑使用Expect库。Expect是一个用于自动化交互式任务的工具,可以模拟用户输入和响应。您可以在Java程序中使用Expect4j或ExpectJ等Expect库的Java封装来实现自动完成。

总结起来,使用JSch获取远程bash shell时,自动完成不起作用可能是由于远程服务器配置、JSch版本、模拟用户输入或使用Expect库等原因引起的。根据具体情况,您可以尝试不同的解决方案来解决这个问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

通过JSch运行远程linux主机上的shell脚本

运行远程主机上的shell脚本 下面的例子是教给大家如何通过java程序,运行远程主机上的shell脚本。...(我讲的不是一个黑客学习教程,而是使用用户名密码去执行有用户认证资格的主机上的shell脚本)。并且通过java程序获得shell脚本的输出。...首先通过maven坐标引入JSch依赖库,我们正是通过JSch去执行远程主机上的脚本。.../version> 当然以下java代码可执行的的前提是,远程主机已经开通SSH服务(也就是我们平时登录主机所使用的服务)。...并且在远程主机上,为这个脚本设置可执行权限,方法如下: $ chmod +x hello.sh 本地java程序 我们可以使用下面的代码,去远程的linux 主机执行shell脚本,详细功能请看代码注释

2.1K00

SparkSQL项目中的应用

从Spark 1.0版本起,Spark开始支持Spark SQL,它最主要的用途之一就是能够直接从Spark平台上面获取数据。...故使用压缩文件进行数据的load.使用gzip进行压缩时,单个文件只能在一个节点上进行load,加载时间很长。...此次设计的ShellUtils类,通过jsch连接Linux服务器执行shell命令. private static JSch jsch;      private static Session session...由于执行Hadoop命令根据不同文件的大小所需占用的时间是不同的,在hadoop尚未将文件完全从hdfs上合并到本地时,本地会提前生成文件文件内容为空,至此这里需要多传入前台客户群探索出来的客户群数目与文件条数进行对比...解压完毕后通过执行hadoop文件合并命令将文件从hdfs上合并到本地服务器,合并完毕后由于解压缩后的文件会占用hdfs的空间,同时执行hadoop文件删除命令将解压后的文件删除,再通过ftp传到前台服务器,完成客户群清单下载

74530

mac php nginx mysql 环境搭建及eclipsephpstorm xdebug

(这点应该都很容易理解 ^_^) 然后安装了zsh ,那么你的shell 就已经变成zsh了。...~/.bash_profile 但是由于已经安装了zsh那么,如果配置到这个里面是bash的配置,完全不起作用。...需要修改的是 ~/.zshrc 文件. vim ~/.zshrc .zshrc 文件最后添加: . ~/.bash_profile 同理 alisa 命令不起作用的问题也可以这样解决。...xdebug.auto_trace = On ;开启异常跟踪 xdebug.show_exception_trace = On ;开启远程调试自动启动 xdebug.remote_autostart...这里在使用前面配置phpmyadmin的时候可能会有错误,错误没有截图,不过如果出现,可以试试将xdebug配置中 ;开启自动跟踪 ;xdebug.auto_trace = On 注销掉,这是可以解决。

1.4K30

Apache Ant 实现自动化部署

Apache Ant 实现自动化部署 这篇文章帮你解决下列问题: 源码获取,源码编译,处理配置文件,应用部署,远程备份,部署回撤,启动,服务器状态,停止 ---- 目录 1. 背景 2....安全角度,源码可以审查,编译文件无法审查,打包过程可能被植入恶意代码 经常出现生产环境与本地开发环境不一致,运行有差异 浪费人力,理论上代码写完,就跟开发人员一点关系都没有了,实际上每次升级过程开发与测试都需要在场...升级应该由自动化工具完成,而不是人工操作。 开发,测试,运维各司其职,这就是DevOps。 3. 怎样实现自动部署 实现自动化部署有很多方法,很多年前笔者就开始研究总结,下面是一些经验分享。...自动部署步骤 初始化 建立工作环境,例如目录,检查所需环境 获取 从版本库指定分支中获取代码并保存到本地 编译 编译可执行代码 配置 处理配置文件 备份 备份应用程序 停止 服务服务 部署 部署应用程序到目的主机...自动部署程序 自动部署程序完成上面的部署,还需要做下面一些事情。 日志功能 记录什么时间点做过部署 部署了那些文件 4. Apache Ant 实现自动化部署 4.1.

1.3K40

带妹玩转vulnhub(十一)

使用msf生成shell,并建立连接 ? ? 提权 接下来就是需要提权获取root权限了,中间有一下flag我就不进行获取了,反正最终的目的是为了获取root权限。...我测试了许多本地提权漏洞,好像都过于麻烦,并且不起作用,经过查看WP,我发现我们可以通过NSF来达到我们的目的。...-t nsf 192.168.43.236:/tmp /tmp/nsf 将远程文件夹挂在到本地 通过msf上传shell.c int main(void){ setresuid(0, 0..., 0); system("/bin/bash"); } 并生成gcc shell.c -o shell文件,通过挂载在kali中 chown root:root shell chmod...4代表setuid也就是告诉操作系统,你使用该程序所有者的权限去运行它,所以我们可以通过此获取到root权限。 总结 好好赚钱,挣钱养家?,包养萌妹,走向人生巅峰?

63010

【Java 基础篇】Java网络编程:实现远程文件访问与管理

然后,我们使用一个循环从输入流中读取数据,并将其写入输出流,直到文件下载完成。 3.2 文件上传 要上传文件到远程服务器,我们需要将本地文件的内容读取到输出流中,然后发送给服务器的输入流。...然后,我们使用循环从输入流中读取数据并将其写入输出流,从而完成文件的上传。 4. 列出远程目录 有时,我们需要列出远程目录中的文件和子目录,以便进行文件管理。...Apache Commons Net库来连接到FTP服务器,并获取远程目录中的文件列表。...以下是一个示例,演示了如何使用SSH协议删除远程服务器上的文件: import com.jcraft.jsch.*; public class RemoteFileAccess { public...JSch库来连接到SSH服务器,并执行删除远程文件的命令。

42620

Spark工程开发前台技术实现与后台函数调用

我们通过JDBC的方式通过前台业务逻辑执行相关sql的增删改查,通过远程连接linux对文件进行导入处理,使项目能够初步支持Spark平台,现如今已支持Spark1.6版本。...         ${jsch.version}       2、Parquet列式文件存储格式 我们使用Parquet...此次设计的ShellUtils类,通过jsch连接Linux服务器执行shell命令.需要引入jsch的jar包:         com.jcraft</groupId...可以使用describe table,从而获取HDFS上对应的表头信息,从而根据业务进行相应的业务逻辑处理。...JDBC连接问题 这里简要说一下执行的性能问题,我们通过JDBC方式提交SQL给spark,倘若SQL中含有大量的窗口函数像row_number over()一类的,在大数据量的情况下会造成任务执行完毕,前台

1.1K20

shell编程01【执行方式】

/bin/sh 第一行命令说明:   一个规范的Shell脚本在第一行会指出由哪个程序(解释器)来执行脚本中的内容,这一行内容在Linux bash的编程一般为: #!/bin/bash 或 #!...sh为bash的软链接,大多数情况下,脚本的开头使用“#!/bin/bash”和“#!/bin/sh”是没有区别的,更规范的写法是在脚本的开头使用“#!/bin/bash”。...2.bash来执行   执行此脚本 s3.sh: #!/bin/bash name2=bobo2 echo "hello shell"   不需要授权,可以直接执行 ?...子进程完成后,子进程中的各项变量或操作将会结束而不会传回到父进程中。比如我们在脚本中声明的变量name1和name2,我们在父进程中就获取不到,如下 ?...可以看到,执行后再看脚本中两个变量,在父进程中不起作用! 3.source或者小数点来执行   执行此脚本 s4.sh: #!

54720

Linux基础之cd无法进入xargs管道输出的目录问题解决方法

前言 今天在利用jenkins将项目部署到远程服务器,里面有个步骤涉及到切换目录,执行部署脚本的命令,原本思路是利用xargs和cd配合进行目录切换,执行的shell命令如下 ls -a | sort...为啥cd命令在管道符中不起作用 百度来的答案是xargs牵涉写管道,而cd是内部命令,所以不起作用。...答案是这样吗,这样吗,可能以前是,真正的原因是cd是通过终端的命令行读取数据的,不接受标准输入,而xargs管道命令右边必须能够接收标准输入。。。...因此cd在xargs中不起作用,这不是很正常吗 如何使cd能够切换到我们想要的目录?...1.cd 使用反单引号 '命令' [root@os4 1203]# cd 'ls -a | sort -r | head -n 1 | xargs -I {} basename {} .zip' -bash

2.6K20

read,source,mapfile命令与shell编程

Bash 是一种相当强大的编程语言,也很容易上手。这里有一些鲜为人知很有用的 bash 命令,它们将有助于使你编写的 shell 脚本更清晰、更易于维护。...这里有一些鲜为人知很有用的 bash 命令,它们将有助于使你编写的 shell 脚本更清晰、更易于维护。毕竟,它几乎是你打开终端时最经常看到的 shell。...Bash 中有一些你可能不知道的强大命令,即使你对该语言的使用相当熟练。但是,这些命令都是非常目的性,并且可以使你编写的 shell 脚本更清晰、更易于维护,并且比以前更强大。...,你可能会注意到以下内容不起作用: #!...shell 的环境变量中,这可以通过使用 source 命令非常简单地完成: source config.sh 然后,你可以检查变量是否按预期分配。

66510

DQpQZW5lbG9wZSAtIFNoZWxsIEhhbmRsZXI

主要功能包括: 自动shell 升级到 PTY(包括自动调整大小) 记录与目标的交互 从目标下载文件 上传文件到目标 将预设脚本上传到目标 生成备份壳 多个会话 多个听众 可以通过漏洞导入并在同一终端上获取...shell尚未实现自动升级。...此外,还包含一个 bash 脚本,可使用 xdotool 自动将 Unix shell 升级到 PTY。 特征 当前下载/上传/生成/升级命令仅在 Unix shell 上受支持。...转发端口 编辑命令:在本地打开远程文件,进行更改并保存后,将其上传到目标 能够指定在目标和/或主菜单上自动运行的命令列表 用于禁用所有日志记录的选项开关,而不仅仅是会话。...在目标上执行本地脚本并在本地文件上获取输出 短命令的主菜单自动完成 下载/上传进度条 下载/上传自动完成 IPv6 加密 UDP positional arguments: PORT

1.2K10

Shell脚本实用技巧,轻松实现自动化运维

一、使用Shell脚本实现自动化备份 在日常的运维工作中,备份是一个非常重要的环节。而使用Shell脚本可以让备份操作变得更加便捷。 下面是一个针对MySQL数据库备份的Shell脚本实例: #!...三、使用Shell脚本实现远程登录服务器 在管理多台服务器时,通常需要频繁地登录到远程服务器进行操作,使用Shell脚本可以让这个过程更加简单快捷。...四、使用Shell脚本自动化部署应用 使用Shell脚本可以很方便地实现应用的自动化部署。下面是一个使用Shell脚本自动化部署Java应用的实例: #!.../bin/catalina.sh start 这个脚本会备份应用、拷贝新应用、重启Tomcat来完成Java应用的自动化部署。.../bin/bash获取1秒内CPU的总使用率 cpu_usage=`top -b -n 1 | grep "Cpu(s)" | awk '{print $2+$4}' | cut -d.

32510

关于SSH远程执行命令和环境变量的问题

在利用Pycharm进行远程调试过程中,在配置好远程解释器后,运行代码是通过SSH直接执行的方式,远程进行命令和脚本调试。...这种方式会使用Bash的non-interactive + non-login shell模式,会创建一个shell,执行完脚本之后便退出,不再需要与用户交互。...系统执行Shell脚本的时候,就是属于这种non-interactive shellBash通过BASH_ENV环境变量来记录要加载的文件,默认情况下这个环境变量并没有设置。...解决方法 这个时候修改bash_profile不起作用,需要修改当前用户HOME目录下的.bashrc,添加需要的环境变量即可。...而bash_profile是在我们通过SSH登录后再执行的命令和脚本,这种方式会使用Bash的interactive + login shell模式,这里面有两个概念需要解释:interactive和login

77240

What?纯Java居然能实现Xshell!

和实现前端shell页面的xterm.js....xterm入门 可以看到页面已经出现了类似与shell的样式,那就根据这个继续深入,实现一个webssh。...后端实现 由于xterm只要只是实现了前端的样式,并不能真正地实现与服务器交互,与服务器交互主要还是靠我们Java后端来进行控制的,所以我们从后端开始,使用jsch+websocket实现这部分内容。...1.初始化连接 由于我们的底层是依赖jsch实现的,所以这里是需要使用jsch去建立连接的。而所谓初始化连接,实际上就是将我们所需要的连接信息,保存在一个Map中,这里并不进行任何的真实连接操作。...top命令 结语 这样我们就完成了一个webssh项目的实现,没有依赖其它任何的组件,后端完全使用Java实现,由于用了SpringBoot,非常容易部署。

2.4K10
领券