Unix & Linux

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

4
แยกไฟล์และวางไว้ในโครงสร้างข้อมูลที่สอดคล้องกัน?
ฉันมีไฟล์ที่มีบรรทัดเดียวด้านล่าง: {machineA=[0, 1024, 4, 1028], machineB=[1, 1025, 5, 1029]} ที่ฉันมีสองชุดข้อมูล: machineA=[0, 1024, 4, 1028] machineB=[1, 1025, 5, 1029] ตอนนี้ฉันต้องอ่านไฟล์ข้างต้นและแยกมันในแบบที่ฉันสามารถดึงข้อมูลของเครื่องแต่ละเครื่องตามที่กล่าวไว้ข้างต้นและเก็บไว้ในโครงสร้างข้อมูลบางอย่าง ขณะนี้ฉันสับสนโครงสร้างข้อมูลที่ฉันควรใช้ใน bash shell script ถ้าฉันทำสิ่งนี้ใน Java ฉันจะใช้Map<String, Set<String>>แต่ฉันไม่แน่ใจว่าฉันควรใช้อะไรในเชลล์สคริปต์ และหลังจากเก็บไว้ในโครงสร้างข้อมูลฉันต้องวนซ้ำและพิมพ์ผลลัพธ์ ฉันสามารถอ่านไฟล์ด้านบนโดยใช้เชลล์สคริปต์ด้านล่าง: #!/bin/bash while read -r line; do echo "$line" done < data.txt แต่ฉันไม่แน่ใจว่าจะแยกข้อมูลบรรทัดข้างต้นด้วยวิธีดังกล่าวอย่างไรเพื่อให้ฉันสามารถดึงข้อมูลแต่ละเครื่องจากนั้นจัดเก็บไว้ในโครงสร้างข้อมูลบางส่วนได้ UPDATE: - ด้านล่างนี้คือเชลล์สคริปต์ที่ฉันได้รับหลังจากทำตามคำแนะนำที่ได้รับจากเกล็น - #!/bin/bash while read -r line; …

1
จะเกิดอะไรขึ้นกับการดำเนินการต่อเนื่องถ้าเราทำ ssh แล้วยกเลิกการเชื่อมต่อ?
ฉันกำลังย้ายไดเรกทอรีหนึ่งไปยังอีกไดเรกทอรีหนึ่งโดยใช้คำสั่ง mv อย่างไรก็ตามฉันถูกบังคับให้ปิดเครื่องคอมพิวเตอร์ซึ่งหมายความว่าการเชื่อมต่อกับเซิร์ฟเวอร์ขาดหายไป เกิดอะไรขึ้นกับคำสั่ง mv? หมายเหตุ: หลังจากฉัน relogin ฉันเห็นว่าไฟล์ทั้งหมดถูกย้ายอย่างถูกต้องแม้ว่าฉันแน่ใจว่ามันไม่ได้ถูกย้ายเมื่อฉันปิดการเชื่อมต่อ ดูเหมือนว่า mv จะยังคงทำงานต่อไป นี่คือฉัน ssh ถึงเครื่อง centosh ในเซิร์ฟเวอร์คลาวด์ steadfast.net
10 ssh 

2
ฉันจะสร้างกระบวนการที่ยากต่อการฆ่าได้อย่างไร
ฉันต้องการสร้างโปรแกรมที่ยากต่อการหยุด (แม้กระทั่งสำหรับผู้ดูแลระบบ) เมื่อมันเริ่มขึ้น (ด้วยสิทธิ์ของรูท) เมื่อเริ่มต้นกระบวนการควรเริ่มต้นเองต่อเมื่อเริ่มต้นจนกว่าจะขอให้หยุด กระบวนการหยุดควรใช้เวลาสักครู่ (เช่นควรมีราคาแพง) ฉันรู้ว่านี่อาจฟังดูเหมือนซอฟต์แวร์ที่เป็นอันตราย แต่ฉันต้องการด้วยเหตุผลของแท้ ฉันต้องการเรียกใช้ตัวบล็อกไซต์บนแล็ปท็อปของฉัน (ซึ่งฉันเป็นผู้ดูแล) และฉันต้องการทำให้มันยากสำหรับตัวฉันที่จะหยุดพวกเขา ทางออกที่ฉันคิดว่าเป็นดังต่อไปนี้ - กระบวนการควรรันด้วยชื่อแตกต่างกันในแต่ละครั้งที่รันดังนั้นฉันไม่สามารถคาดการณ์ชื่อกระบวนการและฆ่ามันได้ กระบวนการจะบันทึกตัวเองใน /etc/rc5.d เมื่อปิดเครื่อง กระบวนการนี้จะเข้ารหัสชื่อโดยใช้เลขศูนย์ในบางตำแหน่งที่ทราบ กระบวนการหยุดจะต้องใช้ bruteforce เพื่อกู้คืนชื่อโปรแกรมและฆ่ามัน ฉันต้องการค้นหาวิธีแก้ปัญหาที่ดีสำหรับภารกิจนี้
10 security  process  kill 

3
รายการฉันสามารถยกเว้นการสำรองข้อมูลได้อย่างปลอดภัย
ฉันวางแผนกลยุทธ์การสำรองข้อมูลบนพื้นฐานของrsnapshot ฉันต้องการสำรองข้อมูลระบบเต็มรูปแบบไม่รวมไฟล์และไดเรกทอรีที่จะไม่มีประโยชน์สำหรับการกู้คืนเพื่อให้ระบบทำงานอีกครั้ง ฉันได้ยกเว้นแล้ว: # System: exclude /dev/* exclude /proc/* exclude /sys/* exclude /tmp/* exclude /run/* exclude /mnt/* exclude /media/* exclude /lost+found # Application: exclude /*.pyc exclude /*.pyo ฉันสงสัยว่ารายการอื่นใดที่ฉันสามารถเพิ่มลงในรายการยกเว้นได้โดยไม่กระทบกับระบบที่เรียกคืน เมื่อพูดถึงระบบ Linux "ทั่วไป" คุณสามารถแนะนำส่วนขยาย glob เพิ่มเติมไดเรกทอรีชั่วคราวแคช ฯลฯ ฉันสามารถยกเว้นได้อย่างปลอดภัยหรือไม่

3
mutt: กำหนดส่วนหัวที่จะแสดง (ในการเขียน)
เมื่อเขียนข้อความmuttฉันเห็นหัวข้อต่อไปนี้: From: To: Cc: Bcc: Subject: Reply-To: Fcc: ~/.mail/sent Mix: <no chain defined> Security: None ฉันไม่รู้ว่าMix:ส่วนหัวนั้นมีไว้เพื่ออะไรและฉันคิดว่าฉันจะไม่ต้องการมันอีกเลย ในทำนองเดียวกันฉันไม่จำเป็นต้องแก้ไขReply-To:ส่วนหัว เส้นสองเส้นที่ไร้ประโยชน์เหล่านี้กำลังใช้พื้นที่อันมีค่า เป็นไปได้ไหมที่จะลบส่วนหัวเหล่านี้โดยสิ้นเชิง? ฉันสามารถระบุส่วนหัวที่จะแสดงในเมนูการเขียนได้หรือไม่
10 mutt 

3
วิธีการกู้คืนจากเดสก์ท็อปตรึงโดยไม่สูญเสียการเรียกใช้ windows?
บางครั้ง VirtualBox ทำให้เกิดการหยุดชะงักของ Mint 16 Cinnamon Desktop 64 บิตของฉันแบบสุ่ม ฉันไม่สามารถระบุสิ่งที่ผิดจริงได้และถึงแม้จะกรอกรายงานข้อผิดพลาด แต่ชีวิตยังคงดำเนินต่อไปและฉันต้องการวิธีการเริ่มต้นระบบย่อยหน้าต่างใหม่อีกครั้งโดยไม่สูญเสียงานที่ฉันทำกับแอปพลิเคชั่นที่มีอยู่ เมื่อฉันเรียกsudo service mdm restartใช้แอปพลิเคชันที่ทำงานอยู่ทั้งหมดถูกฆ่าอย่างไร้ความปราณี cinnamon --replace -d :0สะกดไม่ได้ทำอะไร; มันแค่แฮงค์ ฉันเดาว่าเป็นเพราะมันต้องการความร่วมมือในรูปแบบบางอย่างกับอบเชยที่กำลังทำงานอยู่ซึ่งฉันเดาว่าไม่ตอบสนองต่อสิ่งนั้น คำสั่งที่ป้อนด้วย Alt + F2 จะถูกละเว้นเช่นเดียวกับคำสั่ง "r" ที่ใช้ในการรีสตาร์ท Cinnamon หน้าจอไม่ได้รับการอัพเดตและดูเหมือนว่าการกดแป้นจำนวนมากจะถูกละเว้น ตัวเลือกอื่น ๆ ของฉันคืออะไร? อาการที่เกิดจากการแช่แข็ง: ข้อผิดพลาดปรากฏขึ้นโดยเพียงแค่แช่แข็งการปรับปรุงหน้าจอของ terminal กราฟิก; เม้าส์เคลื่อนที่ไม่เป็นไรแม้กระทั่งเปลี่ยนไอคอนเมื่อวางเมาส์เหนือส่วนต่าง ๆ ของหน้าจอ ปัญหาคือฉันไม่สามารถทำอะไรกับมันได้ นอกจากหน้าจอจะไม่อัปเดตและแป้นพิมพ์ก็ไม่ทำอะไรเช่นกัน แต่ฉันสามารถสลับไปที่คอนโซลข้อความและฉันเห็นได้ว่ากระบวนการของ Windows ทำงานได้ดี ฉันสามารถโต้ตอบกับแอปพลิเคชั่นซึ่งให้การโต้ตอบแบบ cli (เช่น VBoxManage) บางรูปแบบ …

1
การย้ายไฟล์ไปยังไฟล์ที่กำลังอ่าน
เมื่อไฟล์ถูกย้ายและไฟล์ปลายทางมีอยู่แล้วและกำลังอ่านอยู่การดำเนินการจะสำเร็จหรือไม่ มันจะขึ้นอยู่กับระยะเวลาที่การอ่านไฟล์ปลายทางนานเท่าไร?
10 io  concurrency 

5
แยกไฟล์ข้อความที่คั่นด้วยทุบตีเป็นข้อโต้แย้งคำสั่ง
ฉันมีไฟล์ข้อความแยกย่อยดังนี้: field1,field2,field3 xield1,xield2,xield3 dield1,dield2,dield3 gield1,gield2,gield3 แต่ละคอลัมน์เหล่านี้จะเป็นพารามิเตอร์ของโปรแกรมและฉันต้องการให้โปรแกรมถูกเรียกสำหรับแต่ละบรรทัด ฉันหวังว่าจะวนซ้ำบางอย่างเช่น: for $i in file command $field2 -x $field3 -PN -$field1 >> output done อะไรจะเป็นวิธีที่ดีที่สุดในการบรรลุสิ่งนี้ในทุบตี?

2
การจับภาพอินพุตที่สำคัญจากอุปกรณ์ของเหตุการณ์และการแมปมัน (สลับปุ่ม TouchPad เป็น unmapped)
ฉันมี Lenovo IdeaPad Yoga 13 ที่ติดตั้ง Ubuntu 13.10 อุปกรณ์มีปุ่ม "Toggle TouchPad" บนแป้นพิมพ์ ( F5) F*ปุ่มของแป้นพิมพ์กลับด้าน (เพื่อรับF5ฉันต้องกดFn+ F5และF5จริง ๆ แล้วเป็นปุ่มสลับ) ฉันได้พบว่าปุ่มจะอ่านจริงโดยแป้นพิมพ์ (มากกว่าทัชแพดเช่นเดียวกับอุปกรณ์บางอย่าง) /dev/input/event3ซึ่งอยู่ที่ ดังนั้นการใช้sudo input-events 3ฉันสามารถคิดออกว่าปุ่มส่งรหัสสแกน 190: ผลลัพธ์ของsudo lsinput: /dev/input/event3 bustype : BUS_I8042 vendor : 0x1 product : 0x1 version : 43907 name : "AT Translated Set 2 keyboard" phys : …
10 kernel  drivers  input  events 


2
cp --backup = หมายเลขสำหรับโฟลเดอร์
ในการสำรองไฟล์ที่มีอยู่ด้วยคำต่อท้ายตัวเลขฉันสามารถทำสิ่งต่อไปนี้: cp --backup=numbered afile /path/to/dest แต่นี่ใช้ไม่ได้เมื่อฉันพยายามทำเช่นเดียวกันกับโฟลเดอร์: cp -R --backup=numbered afolder /path/to/dest ฉันจะบรรลุสิ่งนี้ได้อย่างไร บางทีฉันควรจะแสดงให้เห็นถึงสิ่งที่ฉันต้องการบรรลุ ครั้งแรกเรามี dirs สอง: ls -ld source container drwxrwxr-x 6 kaiyin kaiyin 4096 Nov 29 22:11 container drwxrwxr-x 2 kaiyin kaiyin 4096 Nov 29 22:09 source จากนั้นเราทำสิ่งนี้: myPerfectCp -R --backup=numbered source container/ myPerfectCp -R --backup=numbered source container/ myPerfectCp …
10 file-copy 

2
ฉันจะรับความเร็วแบนด์วิธปัจจุบันของอินเตอร์เฟสจากเทอร์มินัลได้อย่างไร
ฉันต้องการรับแบนด์วิดธ์ปัจจุบันของอินเทอร์เฟซว่า "eth0" จากเทอร์มินัล มันจะง่ายกว่านี้มากที่สุด พูดขึ้น 10 dn 30 แทนที่จะให้ข้อความจำนวนมากเช่น "vnstat" ออกมา แก้ไข: ฉันต้องการสิ่งนี้สำหรับโปรแกรมบรรทัดคำสั่งสำหรับการตรวจสอบอัตโนมัติไม่ต้องดูด้วยตนเอง

3
แยกไฟล์ข้อความเป็นบรรทัดสั้น ๆ เพื่ออ่าน?
มีโปรแกรมที่สามารถใช้ไฟล์ข้อความธรรมดาที่มีบรรทัดยาวและเพิ่มบรรทัดใหม่หลังจากจำนวนอักขระที่แน่นอนเพียงแค่แยกคำเพื่อให้อ่านได้หรือไม่? ตัวอย่างเช่นใช้สิ่งนี้: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vel lectus ac enim venenatis porttitor in et est. Curabitur ut eros quis risus consequat dictum a a lectus. Integer ut risus quis augue lobortis molestie vel id nibh. Aliquam sit amet mattis lorem, vel ornare felis. Donec pulvinar …

2
ฉันจะรู้ได้อย่างไรว่าพอร์ตอนุกรมกำลังส่งข้อมูลโดยไม่ต้องเปิดอุปกรณ์หรือไม่
ฉันมีคลัสเตอร์ที่มีความพร้อมใช้งานสูง (Heartbeat) เชื่อมต่อผ่านสายอนุกรมและอีเธอร์เน็ต NIC สองตัว ฉันต้องการตั้งค่าสคริปต์การตรวจสอบความสามารถในการรับรู้ถึงการเชื่อมต่อสายอนุกรม (โดยทั่วไปแล้วคำถามเดียวกันตอบที่ SOแต่ฉันไม่พอใจกับคำตอบทั่วไปดังกล่าว) ฉันไม่สามารถเปิดอุปกรณ์อนุกรมและอ่านข้อมูลด้วยตัวเองได้เนื่องจาก Heartbeat เปิดบรรทัดอนุกรม ดังนั้นฉันจึงเริ่มมองหาเบาะแสทางอ้อม /proc/tty/driver/serialแตกต่างเพียงฉันได้พบเพื่อให้ห่างไกลอยู่ในเนื้อหาของ นี่คือลักษณะที่ปรากฏเมื่อเชื่อมต่อ: # cat /proc/tty/driver/serial serinfo:1.0 driver revision: 0: uart:16550A port:000003F8 irq:4 tx:2722759 rx:2718165 brk:1 RTS|CTS|DTR|DSR|CD และเมื่อตัดการเชื่อมต่อ: # cat /proc/tty/driver/serial serinfo:1.0 driver revision: 0: uart:16550A port:000003F8 irq:4 tx:2725233 rx:2720703 brk:1 RTS|DTR ฉันไม่มั่นใจพอที่จะตัดสินใจได้ว่าสัญญาณที่แสดงในตอนท้ายของบรรทัดมีความหมายอย่างมากต่อสายเคเบิลที่ถูกเชื่อมต่อ / ตัดการเชื่อมต่อเนื่องจากฉันไม่พบเอกสารใด ๆ เกี่ยวกับเนื้อหาของ / proc …

2
เมื่อใช้ zypper ฉันจะลบแพ็กเกจทั้งหมดที่ติดตั้งจากที่เก็บเฉพาะได้อย่างไร
zypper arบอกว่าผมได้เพิ่มพื้นที่เก็บข้อมูลโดยใช้ จากนั้นฉันไปแล้วและติดตั้งหลายแพคเกจจากที่เก็บ แต่ตอนนี้ฉันต้องการลบทั้งหมด มีคำสั่งที่อนุญาตให้ฉันลบแพ็กเกจทั้งหมดที่ฉันติดตั้งจากที่เก็บเฉพาะนั้นหรือไม่?
10 opensuse  rpm  zypper 

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