簡體   English   中英

如何通過網絡完全控制終端?

[英]How to have full control over terminal with networking?

有沒有一種方法可以通過網絡完全控制終端。 例如,我有一個用C編寫的服務器和客戶端,我想向服務器發送rm filecd directory類的命令(在這種情況下,服務器是一台linux計算機),並將終端輸出返回給客戶端。 我目前正在使用popen()使用ls但它無法更改目錄或執行其他復雜的命令。 是否有更好的方法來執行此操作,也許使用fork() pipe()和其他函數以便使用任何命令並從終端獲取完整輸出。

您要求的是通過SSH完成的。

例如,我有一個用C編寫的服務器和客戶端,我想向服務器發送rm文件或cd目錄之類的命令(在這種情況下,服務器是一台linux計算機),並將終端輸出返回給客戶端。

我強烈不鼓勵自己實現這種功能。 您自己的方法將有幾個安全問題的可能性很高。

SSH是遠程終端的事實上的標准,具有強大的加密功能,經過真實世界測試的身份驗證和強大的維護支持。 此外,還有出色的開源實現,例如OpenSSH。

不知道您的確切設置是什么,但是為什么不從遠端的外殼上拔錢呢? 然后,您可以執行命令行中可以執行的任何操作。

如果可以選擇真正的交互式連接,請查看pty(“ pseudo-ttys”)。 這就是真正的終端應用程序的工作方式。

如果可以從ls獲得輸出,那么您ls對了。

接下來的事情是能夠發送輸入 ,與輸出沒有太大的不同。 您可以使用命令cat來檢查輸入和輸出是否同時正確執行。

然后,只需運行您最喜歡的shell命令(例如bash ,就可以將命令寫入輸入流並讀取每個命令的輸出。

請注意, cd不是程序。 這是一個shell命令,因此您必須運行一個shell才能使其具有任何含義。 對於重定向以及似乎要執行的其他復雜操作也是如此。

PS:請注意,這可能是一個嚴重的安全問題,您應該認真考慮已經采用的替代方法,例如ssh,正如其他人所說的那樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM