Procházet zdrojové kódy

doc: Update examples.md (#1421)

* doc: Update examples.md

* tweaks

---------

Co-authored-by: Rob Hague <rob.hague00@gmail.com>
Paulus Lucas před 1 rokem
rodič
revize
bb51335b3b
1 změnil soubory, kde provedl 47 přidání a 8 odebrání
  1. 47 8
      docfx/examples.md

+ 47 - 8
docfx/examples.md

@@ -1,7 +1,25 @@
 Think this page is lacking? Help wanted! Click "Edit this page" at the bottom to begin contributing more examples.
 
+Getting Started
+=================
+
+### Run a command
+
+Establish an SSH connection and run a command:
+
+```cs
+using (var client = new SshClient("sftp.foo.com", "guest", new PrivateKeyFile("path/to/my/key")))
+{
+    client.Connect();
+    using SshCommand cmd = client.RunCommand("echo 'Hello World!'");
+    Console.WriteLine(cmd.Result); // "Hello World!\n"
+}
+```
+
 ### Upload and list files
 
+SFTP Connection / Exchange 
+
 ```cs
 using (var client = new SftpClient("sftp.foo.com", "guest", "pwd"))
 {
@@ -44,23 +62,44 @@ string expectedFingerPrint = "LKOy5LvmtEe17S4lyxVXqvs7uPMy+yF79MQpHeCs/Qo";
 using (var client = new SshClient("sftp.foo.com", "guest", "pwd"))
 {
     client.HostKeyReceived += (sender, e) =>
-        {
-            e.CanTrust = expectedFingerPrint.Equals(e.FingerPrintSHA256);
-        };
+    {
+        e.CanTrust = expectedFingerPrint.Equals(e.FingerPrintSHA256);
+    };
     client.Connect();
 }
 ```
 
-### Run a command
+### Open a Shell  
 
-Establish an SSH connection and run a command:
+```cs
+using (var client = new SshClient("sftp.foo.com", "user", "password"))
+{
+    client.Connect();
+    using ShellStream shellStream = client.CreateShellStream("ShellName", 80, 24, 800, 600, 1024);
+    client.Disconnect();
+}
+```
+
+### Switch to root with "su - root"
 
 ```cs
-using (var client = new SshClient("sftp.foo.com", "guest", new PrivateKeyFile("path/to/my/key")))
+using (var client = new SshClient("sftp.foo.com", "user", "password"))
 {
     client.Connect();
-    SshCommand cmd = client.RunCommand("echo 'Hello World!'");
-    Console.WriteLine(cmd.Result); // "Hello World!\n"
+    using ShellStream shellStream = client.CreateShellStream("ShellName", 80, 24, 800, 600, 1024);
+    // Get logged in and get user prompt
+    string prompt = shellStream.Expect(new Regex(@"[$>]"));
+    // Send command and expect password or user prompt
+    shellStream.WriteLine("su - root");
+    prompt = shellStream.Expect(new Regex(@"([$#>:])"));
+    // Check to send password
+    if (prompt.Contains(":"))
+    {
+        // Send password
+        shellStream.WriteLine("password");
+        prompt = shellStream.Expect(new Regex(@"[$#>]"));
+    }
+    client.Disconnect();
 }
 ```