Rebex


Terminal Emulation Tutorial

Applies to: Rebex Total Pack, Rebex SSH Pack, Rebex Terminal Emulation

Table of content

#About Rebex Terminal Emulation

Rebex Terminal Emulation component is an SSH shell, Telnet and terminal emulation library for .NET languages (such as C# or VB.NET). It makes it easy to execute commands on Unix/Windows SSH or telnet servers and add terminal emulation capabilities to your applications.

SSH is nearly ubiquitous on Unix and Unix-like systems, with OpenSSH being the most common implementation. There is also a growing number of SSH servers for Windows as well.

Most SSH servers also implement SFTP - a powerful secure file transfer protocol. To take advantage of it, use our SFTP component. An SFTP + SSH bundle is also available.

back to top...


#Namespaces and assemblies

To use the features of Terminal Emulation described here, you have to reference the Rebex.Common.dll, Rebex.Networking.dll, Rebex.Telnet.dll, Rebex.SshShell.dll and Rebex.Terminal.dll assemblies in your project. These contain Ssh, Shell, TerminalControl/SshTerminalControl, VirtualTerminal and other classes in Rebex.Net and Rebex.TerminalEmulation namespaces.

In your source files, import the following namespace:

C#

using Rebex.Net;
using Rebex.TerminalEmulation;

VB.NET

Imports Rebex.Net
Imports Rebex.TerminalEmulation;

back to top...


#Executing simple commands

Executing simple commands using SSH is very easy - just connect to the server, authenticate and call RunCommand method.

C#

using (var ssh = new Ssh())
{
    // connect and log on
    ssh.Connect(serverName);
    ssh.Login(username, password);

    // execute a simple command
    string response = ssh.RunCommand("echo Hello world!");

    // display the response
    Console.WriteLine(response);
}

VB.NET

Using ssh = New Ssh()
    ' connect and log on
    ssh.Connect(serverName)
    ssh.Login(username, password)

    ' execute a simple command
    Dim response As String = ssh.RunCommand("echo Hello world!")

    ' display the response
    Console.WriteLine(response)
End Using

Tip: RunCommand can only be used to execute commands that don't require any user input. To script advanced commands, use Scripting object instead.

back to top...


#Scripting complex commands

To execute more commands using a single shell, or to execute commands that actually need some kind of user input, use the powerful Scripting object:

C#

using (var ssh = new Ssh())
{
    // connect and log on
    ssh.Connect(serverName);
    ssh.Login(username, password);

    // start a scripting session
    Scripting scripting = ssh.StartScripting();

    // automatically detect remote prompt
    scripting.DetectPrompt();

    // execute command
    scripting.SendCommand("echo Hello world!");

    // read its response
    string response = scripting.ReadUntilPrompt();

    // execute more commands
    // ...

    // display the response
    Console.WriteLine(response);
}

VB.NET

Using ssh = New Ssh()
    ' connect and log on
    ssh.Connect(serverName)
    ssh.Login(username, password)

    ' start a scripting session
    Dim scripting As Scripting = ssh.StartScripting()

    ' automatically detect remote prompt
    scripting.DetectPrompt()

    ' execute command
    scripting.SendCommand("echo Hello world!")

    ' read its response
    Dim response As String = scripting.ReadUntilPrompt()

    ' execute more commands
    ' ...

    ' display the response
    Console.WriteLine(response)
End Using

Tip: Check out the list of Scripting features.

Tip: The Scripting object can be used to script TerminalControl or VirtualTerminal objects as well.

back to top...


#More sample code

back to top...


Back to tutorial list...