Unix & Linux

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


11
วิธีสุ่มตัวอย่างชุดย่อยของไฟล์
มีคำสั่ง Linux ใดบ้างที่สามารถใช้เพื่อตัวอย่างชุดย่อยของไฟล์? ตัวอย่างเช่นไฟล์มีหนึ่งล้านบรรทัดและเราต้องการสุ่มตัวอย่างเพียงหนึ่งพันบรรทัดจากไฟล์นั้น สำหรับการสุ่มฉันหมายความว่าทุก ๆ เส้นมีความน่าจะเป็นเหมือนกันในการเลือกและไม่มีเส้นใดที่เลือกซ้ำ headและtailสามารถเลือกไฟล์ย่อย แต่ไม่สุ่ม ฉันรู้ว่าฉันสามารถเขียนสคริปต์ python ได้ตลอดเวลา แต่สงสัยว่าจะมีคำสั่งสำหรับการใช้งานนี้หรือไม่

3
ฉันจะลบคำสั่งการพิมพ์“ สิทธิ์ที่ถูกปฏิเสธ” ออกจากโปรแกรม find ได้อย่างไร
รหัส find / -name netcdf เอาท์พุต find: `/root/.dbus': Permission denied find: `/root/.gconf': Permission denied find: `/root/.gconfd': Permission denied find: `/root/.gnome': Permission denied find: `/root/.gnome2': Permission denied find: `/root/.gnome2_private': Permission denied
38 find 

8
rm ไม่ได้รายงานเมื่อไฟล์หายไปหรือไม่
ฉันมีสคริปต์ทุบตีที่ฉันต้องการลบไฟล์จากไดเรกทอรีต่าง ๆ บ่อยครั้งที่พวกเขาจะไม่อยู่ที่นั่นเพราะพวกเขาไม่ได้สร้างขึ้นและก็ไม่เป็นไร มีวิธีที่จะทำให้สคริปต์ไม่รายงานข้อผิดพลาดนั้นได้หรือไม่ แต่ถ้า rm มีเอาต์พุตอื่นเพื่อรายงานสิ่งนั้น นอกจากนี้ยังมีคำสั่งที่ดีกว่าให้ใช้เพื่อลบไฟล์ที่มีเสียงดังน้อยลงหรือไม่
38 rm 


3
สามารถสร้างไฟล์โดยกำหนดสิทธิ์ในบรรทัดคำสั่งได้หรือไม่
เมื่อสร้างไดเรกทอรีmkdir -m <mode> <dir>ให้สำหรับการสร้างหนึ่งหรือหลายไดเรกทอรีด้วยชุดโหมด / การอนุญาตที่กำหนด (ตามปกติ) มีการสร้างไฟล์ที่เทียบเท่าในบรรทัดคำสั่งหรือไม่ คล้ายกับ: open("file", O_WRONLY | O_APPEND | O_CREAT, 0777); ใช้touchตามด้วยchmodตัวเลือกเดียวของฉันที่นี่? แก้ไข:หลังจากลองใช้คำแนะนำของ teppic เพื่อใช้installฉันก็วิ่งผ่านstraceเพื่อดูว่ามันใกล้กับอะตอมมากแค่ไหน คำตอบคือไม่มาก: $ strace install -m 777 /dev/null newfile ... open("newfile", O_WRONLY|O_CREAT|O_EXCL, 0666) = 4 fstat(4, {st_mode=S_IFREG|0666, st_size=0, ...}) = 0 ... fchmod(4, 0600) = 0 close(4) = 0 ... chmod("newfile", …

3
เหตุใดแพ็คเกจ Debian รุ่นก่อนหน้าจึงหายไปในที่เก็บแพ็คเกจ (มีความเกี่ยวข้องสูงสำหรับการกำหนดค่าระบบที่ควบคุมเวอร์ชัน)
สถานการณ์จำลอง: ในการกำหนดค่าระบบที่ควบคุมเวอร์ชันตาม Puppet, Chef เป็นต้นจำเป็นต้องสร้างสถานะระบบขึ้นใหม่ สิ่งนี้ทำได้โดยการระบุรุ่นของแพ็คเกจระบบอย่างชัดเจน เมื่อเร็ว ๆ นี้เราพบปัญหาที่แพ็คเกจบางรุ่นหายไปในที่เก็บ Debian ตัวอย่างหนึ่ง: แพ็คเกจ "แพทช์" จำเป็นต้องมีในรุ่น 2.7.5-1 + deb9u1 แต่มีเฉพาะ 2.7.5-1 + deb9u2 เท่านั้น อีกตัวอย่างที่รุนแรงยิ่งกว่า: ต้องการ "linux-headers-4.9.0-9-common" (เนื่องจากเคอร์เนลที่เกี่ยวข้องถูกติดตั้ง) และมีเพียง "linux-headers-4.9.0-11-common" เท่านั้น สิ่งนี้ทำให้ไม่สามารถสร้างสถานะของระบบได้อีกครั้ง แพคเกจข้างต้นเป็นเพียงตัวอย่าง (ซึ่งในความเป็นจริงฉันพบ) ฉันสนใจที่จะเข้าใจและแก้ไขปัญหาทั่วไป แนวคิดเบื้องหลังการปรับปรุง 'แพ็คเกจ' และแพ็คเกจรุ่นเหล่านี้คืออะไร ฉันจะรับรุ่นก่อนหน้า (ไม่ใช่รุ่นเก่าจริง ๆ แต่รุ่นที่มีอายุสองสัปดาห์) ของแพ็คเกจ Debian ได้ที่ไหน มันควรจะเป็นไปได้โดยอัตโนมัติกระบวนการติดตั้งโดยทั่วไป

6
มีวิธีหยุดกระบวนการทำงานชั่วคราวบนระบบ Linux และกลับมาทำงานต่อในภายหลังหรือไม่?
ฉันต้องคัดลอกไฟล์บนเครื่อง และข้อมูลมีขนาดใหญ่มาก ตอนนี้เซิร์ฟเวอร์จำเป็นต้องให้บริการตามปกติและโดยปกติจะมีช่วงเวลาที่ยุ่งเหยิงในช่วงนั้น ดังนั้นมีวิธีการเรียกใช้คำสั่งดังกล่าวในลักษณะที่ว่าถ้าเซิร์ฟเวอร์ไม่ว่างชั่วโมงมันหยุดกระบวนการและเมื่อออกจากช่วงที่มันจะดำเนินการต่อหรือไม่ ตั้งใจ-ผล cp src dst if time between 9:00-14:00 pause process After 14:00 resume cp command.

7
`~ / Documents` เป็นญาติหรือเส้นทางที่แน่นอน?
นี่เป็นเพียงคำถามเกี่ยวกับคำศัพท์เท่านั้น มันมาจากการสอบปฏิบัติจากหนังสือเตรียมการของLPIC คำตอบที่ถูกต้องตามหนังสือคือนั่น~/Documentsคือไดเรกทอรีที่สัมพันธ์กันเพราะมันสัมพันธ์กับไดเรกทอรีบ้าน อย่างไรก็ตามหนังสือเล่มนี้มีอัตราส่วนของความผิดพลาดและความผิดพลาดที่น่านับถือดังนั้นฉันจึงไม่สามารถรับทุกสิ่งที่เขียนไว้ที่นั่นได้ ที่นี่ฉันไม่เห็นด้วยเพราะสำหรับฉัน~ทำหน้าที่เป็นตัวแปรที่ขยายโดยเชลล์ในเนื้อหาของ$HOMEตัวแปรหรือเส้นทางไดเรกทอรีบ้านของผู้ใช้ปัจจุบัน (cf. man bash) ดังนั้นเส้นทาง/home/myuser/Documentsที่แท้จริงจึงเป็นไดเรกทอรีแน่นอน แม้แต่Wikipediaครั้งเดียวก็ดูเหมือนว่าฉันไม่ได้ช่วยในหัวข้อนี้ (แม้ว่ามันจะยืนยันว่าหนังสือเล่มนี้ผิดกับเรื่องนี้): พา ธ สัมบูรณ์หรือพา ธ เต็มไปยังตำแหน่งเดียวกันในระบบไฟล์โดยไม่คำนึงถึงไดเร็กทอรีการทำงานปัจจุบัน หากต้องการทำเช่นนั้นจะต้องมีไดเรกทอรีราก ในทางตรงกันข้ามเส้นทางสัมพัทธ์จะเริ่มต้นจากไดเรกทอรีทำงานที่ให้มาโดยหลีกเลี่ยงความจำเป็นที่จะต้องระบุเส้นทางที่สมบูรณ์ ที่นี่อีกครั้งฉันไม่เห็นด้วย: ตามคำนิยามนี้เส้นทาง/opt/kde3/bin/../libที่ไม่ขึ้นอยู่กับไดเรกทอรีงานปัจจุบันควรเป็นสิ่งที่แน่นอน แต่ความเข้าใจในปัจจุบันของฉันตรงกับผู้เขียนหนังสือทำให้เส้นทางนี้เป็นญาติ ค้นหาเว็บอย่างรวดเร็วเป็นเพียงการเพิ่มความยุ่งยากของฉันตามพจนานุกรมเว็บสเตอร์ : absolute path - พา ธ ที่สัมพันธ์กับไดเร็กทอรีรูท อักขระตัวแรกต้องเป็นตัวคั่นชื่อพา ธ ดังนั้น$HOME/Documentsหรือเพียงแค่$HOMEจะไม่ถือว่าเป็นไดเรกทอรีที่แน่นอน? คำจำกัดความนี้หมายถึงการขยายตัวของตัวแปรหรือไม่? ~ตัวละครของเชลล์ล่ะ? มีคำจำกัดความที่น่าเชื่อถือของไดเรกทอรีเปรียบเทียบกับสัมบูรณ์ที่ฉันสามารถหาที่ไหนสักแห่งและฉันผิดไปตลอดทาง?
37 shell  filenames 

4
วิธีการรับ N คำสั่งสุดท้ายจากประวัติ
historyผมต้องการที่จะเห็นสิ่งที่เป็นคำสั่งที่ไม่มีข้อความสุดท้ายในของฉัน ฉันคิดว่าhistory | tail -n 5จะทำ แต่ฉันสังเกตเห็นว่าคำสั่งหลายบรรทัดนับเป็นหลายบรรทัดตามที่มี $ echo "hello how are you" $ history | tail -2 how are you" 1051 history | tail -2 ดังนั้นคำถามของฉันคือฉันต้องแยกวิเคราะห์ผลลัพธ์ของคำสั่งเพื่อทำสิ่งนี้ให้สำเร็จหรือไม่?

7
วิธีตั้งค่าความละเอียดที่กำหนดเองโดยใช้ xrandr เมื่อไม่มีความละเอียดใน 'การตั้งค่าการแสดงผล'
ฉันเป็นผู้ใช้ Linux รายใหม่ที่พยายามเปลี่ยนความละเอียดของหน้าจอเนื่องจากไม่มีตัวเลือกในการแสดงผล ฉันได้ทำการจัดการเพิ่มความละเอียดใหม่โดย fluke โดยปฏิบัติตามคำแนะนำออนไลน์ ฉันไม่มี GPU ฉันไม่รู้ว่านี่เป็นปัญหาหรือไม่ ด้านล่างคือxrandr -qผลลัพธ์ของฉัน root@kali:~# xrandr -q xrandr: Failed to get size of gamma for output default Screen 0: minimum 1280 x 1024, current 1280 x 1024, maximum 1280 x 1024 default connected 1280x1024+0+0 0mm x 0mm 1280x1024 0.0* 1920x1200_60.00 (0x145) 193.2MHz h: …

3
systemd: ปัญหาการอนุญาตกับ mkdir & ExecStartPre
ฉันมีปัญหากับไฟล์ serviced นี้ (สั้นลง) systemd: [Unit] Description=control FOO daemon After=syslog.target network.target [Service] Type=forking User=FOOd Group=FOO ExecStartPre=/bin/mkdir -p /var/run/FOOd/ ExecStartPre=/bin/chown -R FOOd:FOO /var/run/FOOd/ ExecStart=/usr/local/bin/FOOd -P /var/run/FOOd/FOOd.pid PIDFile=/var/run/FOOd/FOOd.pid [Install] WantedBy=multi-user.target ให้อาหารเป็นชื่อผู้ใช้และFOO/usr/local/bin/FOOdชื่อกลุ่มซึ่งมีอยู่แล้วสำหรับภูตของฉัน ฉันต้องสร้างไดเรกทอรี/var/run/FOOd/ก่อนที่จะเริ่มกระบวนการภูตผ่าน/usr/local/bin/FOOd # systemctl start FOOd.serviceสิ่งนี้ล้มเหลวเนื่องจาก mkdir ไม่สามารถสร้างไดเรกทอรีได้เนื่องจากการอนุญาต: ... Jun 03 16:18:49 PC0515546 mkdir[2469]: /bin/mkdir: cannot create directory /var/run/FOOd/: permission denied Jun …

4
เหตุใดหลายคำสั่งจึงมีตัวเลือก“ เงียบ”?
เหตุใดหลายคำสั่งจึงมีตัวเลือก-qหรือ--quietระงับเอาต์พุตเมื่อคุณสามารถทำสิ่งเดียวกันได้อย่างง่ายดายโดยเปลี่ยนเส้นทางเอาต์พุตมาตรฐานไปยังไฟล์ null
37 shell 

5
ตัวเลือกการบีบอัด -z พร้อมการสำรองข้อมูล rsync เร็วขึ้นหรือไม่
ในrsync, -zจะบีบอัดไฟล์ข้อมูลระหว่างการถ่ายโอน ถ้าฉันเข้าใจถูกต้องให้-zบีบอัดไฟล์ก่อนถ่ายโอนแล้วแตกไฟล์หลังจากถ่ายโอน เวลาที่ลดลงระหว่างการถ่ายโอนเนื่องจากการบีบอัดมีน้ำหนักเกินกว่าเวลาสำหรับการบีบอัดและการคลายการบีบอัดหรือไม่ คำตอบสำหรับคำถามนั้นขึ้นอยู่กับว่าฉันสำรองข้อมูลไปยัง HDD ภายนอกผ่าน usb (2.0 หรือ 3.0) หรือไปยังเซิร์ฟเวอร์โดย ssh ผ่านทางอินเทอร์เน็ตหรือไม่
37 rsync 

1
วิธีการทำ btrfs snapshot สามารถเขียนได้?
ตามการแก้ไขสแนปชอตของสแน็ปช็อต btrfsเป็นไปได้ที่จะ "ตั้งสแนปชอตแบบอ่านอย่างเดียว / เขียนได้ทันที" ดังนั้นฉันควรจะสามารถเปิดสแนปชอตแบบอ่านอย่างเดียว (สร้างขึ้นด้วยbtrfs snapshot -r) เขียนได้ แต่อย่างใด แต่ทั้งสองbtrfs subvolume manpageหรือส่วนอื่น ๆ ของ manpage นั้นไม่ได้ให้วิธีการทำเช่นนั้น
37 linux  btrfs 

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