Unix & Linux

คำถาม & คำตอบสำหรับผู้ใช้ Linux, FreeBSD และระบบปฏิบัติการ Un * x อื่น ๆ


4
ฉันจะบันทึกคำสั่งสุดท้ายไปยังไฟล์ได้อย่างไร?
เมื่อฉันใช้การวิเคราะห์โดยใช้ bash shell ฉันมักจะต้องการบันทึกคำสั่งที่ฉันใช้ซึ่งให้ผลลัพธ์ที่ดีกับไฟล์ในไดเรกทอรีเดียวกัน ("LOGBOOK" ของฉันซึ่งเรียกว่า) เพื่อให้ฉันสามารถตรวจสอบสิ่งที่ ฉันได้รับผลลัพธ์เหล่านั้น จนถึงตอนนี้มีความหมายว่าฉันทั้ง copy.pasting คำสั่งจาก terminal หรือกด "up" การปรับเปลี่ยนคำสั่งเป็นecho"my command" >> LOGBOOKหรือการแสดงตลกที่คล้ายกันอื่น ๆ ผมพบว่ามีhistoryเครื่องมือในวันอื่น ๆ getlast >> LOGBOOKแต่ฉันไม่สามารถหาวิธีการใช้มันเพื่อให้ได้คำสั่งดำเนินการก่อนหน้านี้เพื่อที่ฉันสามารถทำสิ่งที่ต้องการ มีวิธีง่าย ๆ ที่ดีในการทำเช่นนี้ หรือมิฉะนั้นคนอื่น ๆ จะจัดการกับการบันทึกคำสั่งสำหรับผลลัพธ์ที่ได้อย่างไร

6
เป็นกลุ่มอินเทอร์เฟซบนเขตข้อมูลเว็บเบราว์เซอร์หรือไม่
ฉันกำลังมองหาปลั๊กอินของเบราว์เซอร์ที่อินพุต textin ของกล่องอินพุตด้วยอินเทอร์เฟซแป้นพิมพ์เดียวกันของโปรแกรมแก้ไขข้อความ Vim ฉันได้ใช้Vimiumซึ่งทำให้การนำทางทั่วไปมีประสิทธิภาพมากขึ้น แต่ฉันมักจะพบว่าตัวเองต้องการฉันก็มีส่วนต่อประสาน Vim ในขณะที่ฉันเลือกฟิลด์อินพุต (เช่นขณะที่ฉันกำลังสร้างโพสต์นี้) ฉันอยากนำทางข้อความในแบบเดียวกับที่ฉันแก้ไขไฟล์ด้วย vim text editor และฉันอยากรู้อยากเห็นว่ามีปลั๊กอินดังกล่าวหรือไม่?
29 vim  browser  chrome 

2
การขอ rsync เพื่อลบไฟล์ทางด้านการรับที่ไม่มีอยู่ทางด้านการส่งโดยมีข้อยกเว้นด้านการรับ
ฉันได้อ่านหัวข้อเหล่านี้: rsync --delete --files-from = list / dest / ไม่ลบไฟล์ที่ไม่ต้องการ ลบไฟล์ที่ไม่เกี่ยวข้องจาก dest dir ผ่าน rsync หรือไม่ แต่เท่าที่ฉันสามารถบอกได้ (บางทีฉันอาจพลาดบางสิ่ง) พวกเขาไม่ได้ครอบคลุมคำถามต่อไปนี้: คุณrsyncจะขอให้คัดลอกไฟล์และลบไฟล์ในด้านการรับที่ไม่มีอยู่ในด้านการส่งโดยมีข้อยกเว้นได้อย่างไร? (เช่นอย่าลบที่เก็บ Mercurial .hgที่ด้านการรับแม้ว่าจะไม่มีที่เก็บในฝั่งการส่ง) ความเป็นไปได้หนึ่งอย่าง? การยืมจากคำตอบของ @Richard Holloway ด้านล่าง พูดว่าฉันมีบรรทัดต่อไปนี้: rsync -av --exclude=dont_delete_me --delete /sending/path /receiving/path เท่าที่ผมเข้าใจบรรทัดนี้จะทำให้ทุกอย่างลบบนเส้นทางที่ได้รับที่ไม่ได้อยู่บนเส้นทางการส่งยกเว้นสิ่งเหล่านั้นจับคู่โดยrsync dont_delete_meคำถามของฉันตอนนี้คือ: rsync จะเก็บไฟล์ในด้านการรับที่ถูกจับคู่dont_delete_me แม้ว่าจะไม่มีอะไรในด้านการส่งdont_delete_meหรือไม่
29 rsync 


1
ข้อความการใช้งานควรไปที่ stderr หรือ stdout หรือไม่
ควรข้อความการใช้งานที่พิมพ์ด้วยเช่น command -? ของคำสั่ง Unix ไปที่ stderr หรือ stdout และทำไม? มันควรจะไปที่เดียวกันถ้าผู้ใช้ทำผิดพลาดกับตัวเลือก?

10
Shell Script สำหรับการเข้าสู่เซิร์ฟเวอร์ ssh
ฉันพยายามเขียนเชลล์สคริปต์ซึ่งสามารถล็อกอินอัตโนมัติไปยังเซิร์ฟเวอร์ ssh โดยใช้รหัสผ่านที่กล่าวถึงในสคริปต์ ฉันได้เขียนรหัสต่อไปนี้: set timeout 30 /usr/bin/ssh -p 8484 root@172.31.72.103 expect { "root@172.31.72.103's password" { send "password\r" } } รหัสนี้ทำงานไม่ถูกต้อง แต่จะขอรหัสผ่าน ใครช่วยได้โปรดช่วยฉันแก้ปัญหานี้ด้วย
29 ssh  password  expect 

3
วิธีเข้ารหัสข้อความ / ข้อความด้วย RSA & OpenSSL
ฉันมีกุญแจสาธารณะของอลิซ ฉันต้องการส่งข้อความเข้ารหัสของ RSA ของอลิซ ฉันจะทำมันโดยใช้opensslคำสั่งได้อย่างไร ข้อความคือ: สวัสดีอลิซ! กรุณานำmalacpörköltมาทานอาหารเย็นด้วย!

2
การขัดจังหวะของการโทรของระบบเมื่อจับสัญญาณ
จากการอ่าน man page บนread()และการwrite()โทรปรากฏว่าการโทรเหล่านี้ถูกขัดจังหวะด้วยสัญญาณโดยไม่คำนึงว่าพวกเขาจะต้องปิดกั้นหรือไม่ โดยเฉพาะสมมติว่า กระบวนการสร้างตัวจัดการสำหรับสัญญาณบางอย่าง อุปกรณ์ถูกเปิด (พูดเทอร์มินัล) โดยที่O_NONBLOCK ไม่ได้ตั้งค่า (เช่นทำงานในโหมดบล็อก) กระบวนการนี้ทำให้การread()เรียกระบบอ่านจากอุปกรณ์และผลลัพธ์จะดำเนินการพา ธ ควบคุมเคอร์เนลในเคอร์เนลพื้นที่ ในขณะที่กระบวนการดำเนินการอยู่read()ใน kernel-space สัญญาณที่ติดตั้งตัวจัดการไว้ก่อนหน้านี้จะถูกส่งไปยังกระบวนการนั้นและตัวจัดการสัญญาณถูกเรียกใช้ การอ่าน man man และส่วนที่เหมาะสมในSUSv3 'System Interfaces volume (XSH)' , หนึ่งพบว่า: ผม. หาก a read()ถูกขัดจังหวะโดยสัญญาณก่อนที่จะอ่านข้อมูลใด ๆ (นั่นคือต้องปิดกั้นเพราะไม่มีข้อมูล) จะส่งกลับ -1 ด้วยการerrnoตั้งค่าเป็น [EINTR] ii หาก a read()ถูกขัดจังหวะโดยสัญญาณหลังจากอ่านข้อมูลเรียบร้อยแล้ว (เช่นเป็นไปได้ที่จะเริ่มให้บริการตามคำขอทันที) มันจะส่งคืนจำนวนไบต์ที่อ่าน คำถาม A): ฉันถูกต้องหรือไม่ที่จะสมมติว่าในกรณีใด ๆ (บล็อก / ไม่มีบล็อก) …

1
วิธีการตั้งค่าต่อการแลกเปลี่ยนกระบวนการสำหรับลินุกซ์?
/proc/sys/vm/swappinessเป็นสิ่งที่ดี แต่ฉันต้องการลูกบิดที่เป็นไปตามกระบวนการเหมือน/proc/$PID/oom_adjกัน เพื่อให้ฉันสามารถทำให้กระบวนการบางอย่างมีโอกาสน้อยกว่าผู้อื่นที่จะสลับหน้าของพวกเขาออกไป ซึ่งแตกต่างจากmemlock()นี้ไม่ได้ป้องกันโปรแกรมจากการถูกสลับออก เช่นเดียวniceกับผู้ใช้โดยค่าเริ่มต้นไม่สามารถทำให้โปรแกรมของพวกเขามีโอกาสน้อยลง แต่มีแนวโน้มที่จะเปลี่ยนเป็น /proc/$PID/swappiness_adjผมคิดว่าผมต้องเรียกสิ่งนี้ว่า
29 linux  process  swap 

9
วิธีทำ firefox อ่าน stdin
echo '<h1>hello, world</h1>' | firefox cat index.html | firefox คำสั่งเหล่านี้ไม่ทำงาน หาก firefox สามารถอ่าน stdin ได้ฉันสามารถส่ง html ไปยัง firefox ผ่านไพพ์ได้ เป็นไปได้หรือไม่ที่จะทำให้ firefox อ่าน stdin?
29 firefox 

9
วิธีที่เร็วที่สุดในการเพิ่มข้อความไปยังไฟล์จากบรรทัดคำสั่งคืออะไร
บางครั้งฉันมีความคิดว่าฉันต้องการเขียนลงในไฟล์ขณะที่ฉันอยู่ที่สถานี ฉันต้องการให้โน้ตเหล่านี้ทั้งหมดอยู่ในไฟล์เดียวกันโดยจะแสดงไว้ทีละรายการ ฉันต้องการแท็กวันที่ / เวลาในแต่ละรายการด้วย เป็นไปได้ไหมที่จะทำได้โดยไม่ต้องเปิดไฟล์ในแต่ละครั้ง? ฉันสามารถป้อนมันลงในเทอร์มินัลแล้วต่อท้ายไฟล์ด้วยคำสั่งหรือสคริปต์ได้หรือไม่? ฉันใช้ GNU BASH

3
bash คำสั่งหลายบรรทัดพร้อมกับข้อคิดเห็นหลังจากอักขระต่อเนื่อง
พิจารณา echo \ # this is a comment foo สิ่งนี้ให้: $ sh foo.sh # this is a comment foo.sh: line 2: foo: command not found หลังจากค้นหาบนเว็บฉันพบวิธีแก้ปัญหาโดย DigitalRossใน Stack Overflow ของเว็บไซต์น้อง ดังนั้นเราสามารถทำได้ echo `: this is a comment` \ foo หรืออีกวิธีหนึ่ง echo $(: this is a comment) \ foo อย่างไรก็ตาม DigitalRoss …
29 bash  shell 

3
ฉันจะจองพอร์ตสำหรับแอปพลิเคชันของฉันได้อย่างไร
ฉันจะจองรายการพอร์ตสำหรับแอปพลิเคชันที่กำหนดเองได้อย่างไร ความเฉพาะเจาะจงผลิตภัณฑ์ที่ฉันสร้างมีกระบวนการมากมายและการสื่อสารระหว่างกันมากมาย ปัญหาที่ฉันมีคือทุกครั้งที่ระบบปฏิบัติการขโมยพอร์ตของฉัน มันหายาก แต่มันเกิดขึ้น อาจเป็นเพราะแอปพลิเคชันอื่นใช้ ":: bind" โดยไม่ได้ระบุพอร์ต หรือบางครั้งแอปพลิเคชันของฉันเองขโมยพอร์ตเมื่อฉันเรียกว่า ":: connect" ด้วยซ็อกเก็ตที่ไม่ได้ผูกไว้ เท่าที่เห็นจากหน้าคน: หากซ็อกเก็ตยังไม่ได้ถูกผูกไว้กับที่อยู่ในท้องถิ่นเชื่อมต่อ () จะผูกไว้กับที่อยู่ซึ่งเว้นแต่ครอบครัวที่อยู่ของซ็อกเก็ตคือ AF_UNIX เป็นที่อยู่ในท้องถิ่นที่ไม่ได้ใช้ ดังนั้นคำถามของฉันคือฉันสามารถจองพอร์ตที่ฉันต้องการเพื่อให้ระบบปฏิบัติการไม่ได้ใช้งานได้หรือไม่? สามารถทำได้ด้วย / etc / services หรือไม่ หรือมีวิธีที่แตกต่างกันอย่างไร
29 tcp  udp  socket 

2
จะหลีกเลี่ยงการโจมตีแบบ escape sequence ในเทอร์มินอลได้อย่างไร?
การอ่านรายละเอียดของ CVE-2009-4487 (ซึ่งเกี่ยวกับอันตรายของลำดับการหลบหนีในล็อกไฟล์)ฉันรู้สึกประหลาดใจเล็กน้อย ในการอ้างอิงCVE-2009-4487 : nginx 0.7.64 เขียนข้อมูลลงในไฟล์บันทึกโดยไม่ต้องฆ่าตัวละครที่ไม่สามารถพิมพ์ได้ซึ่งอาจทำให้ผู้โจมตีจากระยะไกลสามารถแก้ไขชื่อของหน้าต่างหรืออาจเรียกใช้คำสั่งตามอำเภอใจหรือเขียนทับไฟล์ผ่านคำขอ HTTP ที่มีลำดับการหลบหนี เห็นได้ชัดว่านี่ไม่ได้เกี่ยวกับรูความปลอดภัยใน nginx แต่ในเทอร์มินัลอีมูเลเตอร์ แน่นอนว่าบางทีcatการบันทึกไฟล์ไปยังเครื่องเทอร์มินัลนั้นเกิดขึ้นโดยบังเอิญเท่านั้น แต่grepการใช้ไฟล์บันทึกนั้นเป็นเรื่องปกติ lessบางที sanitizes escape sequences แต่ใครจะรู้ว่าคำสั่ง shell ใดไม่เปลี่ยนลำดับ escape ... ฉันมักจะเห็นด้วยกับการตอบสนองวานิช : ภูมิปัญญาของเทอร์มินัล - การตอบสนอง - การหลบหนีโดยทั่วไปถูกตั้งคำถามอย่างสม่ำเสมอ แต่ก็ยังไม่มีโปรแกรมการจำลองเทอร์มินัลใหญ่ ๆ ที่เห็นว่าเหมาะสมที่จะละทิ้งลำดับเหล่านี้ซึ่งอาจเป็นไปได้ [.. ] แทนที่จะโทษใด ๆ และทุกโปรแกรมที่เขียน logfiles มันจะมีประสิทธิผลมากขึ้นจากมุมมองด้านความปลอดภัยเพื่อให้โปรแกรมการจำลอง terminal หยุดหยุดทำสิ่งที่โง่และแก้ไขปัญหาความปลอดภัยนี้และอื่น ๆ อีกครั้ง และสำหรับทุกคน ดังนั้นคำถามของฉัน: ฉันจะรักษาความปลอดภัย xterm ของฉันได้อย่างไรซึ่งจะไม่สามารถดำเนินการคำสั่งหรือเขียนทับไฟล์ผ่านทางลำดับการหลีกเลี่ยงได้อีกต่อไป? …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.