วิธีรันคำสั่งระยะไกลใน PuTTY หลังจากเข้าสู่ระบบ & ให้เชลล์ทำงานต่อไป?


35

สิ่งที่ฉันพยายามทำ: เริ่มเซสชัน PuTTY จากบรรทัดคำสั่งล็อกอินไปยังเครื่องระยะไกลและcdไปยังไดเรกทอรีที่ให้ไว้

putty.exe -agent -ssh some.host

นั่นจะเป็นการเปิดเซสชัน & ล็อกอินด้วยชื่อล็อกอินเริ่มต้น & คีย์ส่วนตัว

echo cd /some/remote/path/ > c:/stuff/cmd.txt
putty.exe -agent -ssh some.host -m 'c:/stuff/cmd.txt'

ที่จะเปิดเซสชั่นเข้าสู่ระบบดำเนินการคำสั่ง ( cdในกรณีนี้) และออก

ฉันจะเปิดเซสชันลงชื่อเข้าใช้cdและเปิดเซสชันได้อย่างไร

พื้นหลัง: ฉันใช้ emacs ใต้ windows และมักจะแก้ไขไฟล์ในเครื่อง Unix ระยะไกลโดยใช้แทร็กและ plink ฉันต้องการสร้างฮอตคีย์ที่เปิดเซสชัน PuTTY สำหรับเครื่องระยะไกลและ chdirs ไปยังไดเรกทอรีของไฟล์นั้น ไม่ใช่เรื่องใหญ่ในด้าน emacs แต่ฉันติดอยู่กับ PuTTY

คำตอบ:


33

สิ่งที่-mทำคือทำให้ PuTTY สั่งให้เซิร์ฟเวอร์ SSH เริ่มต้นคำสั่งแทนคำสั่งของเชลล์ ดังนั้นเมื่อคำสั่งของคุณเสร็จสิ้นเซสชันก็เช่นกัน

หากคุณต้องการรันเชลล์หลังจากcdคำสั่งคุณจะต้องเพิ่มเชลล์ลงในของคุณอย่างชัดเจนcmd.txtเช่น:

cd /my/path ; /bin/bash

นอกจากนี้ยัง-mหมายถึงโหมด "nopty" ​​/ ไม่ใช่แบบโต้ตอบ ที่จะใช้เปลือกโต้ตอบคุณต้องแทนที่ว่าการใช้สวิทช์-t

putty.exe -ssh example.com -m "c:\path\cmd.txt" -t

หรือใช้KiTTYกับ-cmdสวิตช์ซึ่งทำสิ่งที่คุณต้องการ (และไม่ต้องการไฟล์ชั่วคราว)


ฉันพยายาม (เพิ่ม / bin / bash ไปยัง cmd.txt) และไม่สามารถใช้งานได้ เท่าที่ฉันเข้าใจทุบตีเริ่มต้นในโหมดที่ไม่โต้ตอบและไม่มีรหัสในการดำเนินการออกจาก มีวิธีในการเริ่มเชลล์แบบโต้ตอบหรือไม่?
Artyom V. Kireev

ในขณะเดียวกันฉันพยายามเริ่ม mc :-) ไม่ได้และให้ผลลัพธ์บางอย่าง:Cannot get terminal settings: Invalid argument (22) TERM environment variable needs set.
Artyom V. Kireev

ขอบคุณสำหรับแนวทางที่นี่ แต่ฉันดูเหมือนจะมีปัญหาพยายามใช้ผงสำหรับอุดรู-m "myfile.sh" -tเพื่อเชื่อมต่อกับ tinycorelinux vm (/ bin / ash) ฉันจะได้รับข้อผิดพลาดดังต่อไปนี้: i.imgur.com/QN5oRXC.png (สคริปต์ของฉันเริ่มต้นด้วยecho ".."มันจะแสดงตัวอักษรตัวแรกในสคริปต์ของฉันเสมอหลังจากตัวละครที่ผิดกฎหมาย
Vincent De Smet

ถ้าฉันใช้กำหนดค่าคำสั่งระยะไกลในโปรไฟล์โป๊วมันทำงาน
Vincent De Smet

-1

เซสชั่นคนจรจัดที่คุณเริ่มต้นใน emacs และเซสชั่นเชลล์ที่คุณใช้ผ่านผงสำหรับอุดรูเป็นกระบวนการที่แยกจากกันโดยสิ้นเชิง

คุณน่าจะดีกว่าการตรวจสอบตัวเลือกการกำหนดค่าสำหรับคนจรจัดเพื่อดูว่ามีวิธีการตั้งค่าไดเรกทอรีเริ่มต้นต่อโฮสต์ภายในการกำหนดค่า emacs ของคุณหรือไม่ อาจจะเริ่มต้นด้วยการtramp-remote-pathกำหนดค่าตัวเลือกเป็นเอกสารที่นี่

หากคุณต้องการใช้ผงสำหรับอุดรูเพื่อสร้างการเชื่อมต่อคุณอาจต้องการตั้งค่าอุโมงค์ ssh และให้ emacs / คนจรจัดเชื่อมต่อผ่านสิ่งนั้น


Emacs & คนจรจัดไม่เกี่ยวข้องที่นี่ฉันเสริมว่าเพียงแค่สำหรับพื้นหลัง ไม่เกี่ยวกับการแก้ไขไฟล์ใน emacs มันเกี่ยวกับการเปิดเชลล์เพื่อทำอย่างอื่นกับไฟล์นั้น (เช่นเรียกใช้สคริปต์) ฉันเบื่อที่จะ "เริ่มฉาบเลือกโฮสต์คุณแล้ว cd ไปยังเส้นทางที่คุณต้องการ" และต้องการทำให้มันเป็นแบบอัตโนมัติ
Artyom V. Kireev
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.