Unix & Linux

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

1
ข้อความเคอร์เนลต่อไปนี้หมายความว่าอย่างไร
ข้อความต่อไปนี้ปรากฏขึ้น / var / log / ข้อความหมายความว่าอะไร? Feb 19 22:51:20 kernel: [ 187.819487] non-matching-uid symlink following attempted in sticky world-writable directory by sh (fsuid 1001 != 0) มันเกิดขึ้นเมื่องาน cron กำลังจะทำงาน
12 filesystems  cron 

2
จำนวนแบ็กสแลชที่จำเป็นสำหรับการหลบหนีแบ็กสแลช regex บนบรรทัดรับคำสั่ง
ฉันเพิ่งมีปัญหากับ regex บางอย่างในบรรทัดคำสั่งและพบว่าสำหรับการจับคู่แบ็กสแลชสามารถใช้อักขระต่าง ๆ ได้ หมายเลขนี้ขึ้นอยู่กับการอ้างอิงที่ใช้สำหรับ regex (ไม่มีเครื่องหมายคำพูดเดี่ยว, เครื่องหมายคำพูดคู่) ดูเซสชั่นทุบตีต่อไปนี้สำหรับสิ่งที่ฉันหมายถึง: echo "#ab\\cd" > file grep -E ab\cd file grep -E ab\\cd file grep -E ab\\\cd file grep -E ab\\\\cd file #ab\cd grep -E ab\\\\\cd file #ab\cd grep -E ab\\\\\\cd file #ab\cd grep -E ab\\\\\\\cd file #ab\cd grep -E ab\\\\\\\\cd file …

3
การแยกการอ้างอิงชื่อตัวแปร
ฉันสามารถทำสิ่งนี้ได้ แต่มันต้องมีการสร้างสตริงของตัวแปรแล้วทำการพิจารณาอีกครั้ง มีวิธีการย่อให้สั้นลงในคำสั่งที่ง่ายขึ้น #!/bin/bash FRUITS="BANANA APPLE ORANGE" BANANA_COLOUR="Yellow" APPLE_COLOUR="Green or Red" ORANGE_COLOUR="Blue" for fruit in $( echo $FRUITS ); do fruit_colour="${fruit}_COLOUR" echo $fruit is ${!fruit_colour} done ฉันได้ลองหลายสิ่งหลายอย่างเช่น${!"${fruit}_COLOUR"}หรือ\$${fruit}_COLOURตัวแปรอื่น ๆ อีกมากมาย แต่วิธีเดียวที่ทำงานได้คือการใช้สตริง

3
ทำไมมิเตอร์ htop ถึงแสดง> 90% ในขณะที่ตารางเป็น 0.0%
เหตุใดมิเตอร์วัดความคืบหน้าผ่านด้านบนของหน้าจอในการhtopแสดงการใช้งาน CPU อย่างสม่ำเสมอสูงกว่า> 90% ในขณะที่ตัวเลขในตารางด้านล่างแสดงระบบที่ไม่ทำงานพร้อมการใช้งาน CPU และโหลดเฉลี่ยอยู่ที่ 0.0%
12 top  htop 

2
วิธีเริ่มต้นปรับแต่งไฟล์ที่ยังไม่ได้สร้าง
ฉันใช้tailในการตรวจสอบความคืบหน้าของงานที่ฉันรู้ว่าจะเขียนความคืบหน้าของพวกเขาไปยังดิสก์ เกือบตลอดเวลาฉันรู้ว่าไฟล์ใดที่พวกเขาจะสร้างก่อนที่จะเริ่มทำงาน (งานถูกส่งโดยตัวจัดตารางเวลาในซูเปอร์คอมพิวเตอร์) มีวิธีในการtailไฟล์เหล่านี้ก่อนที่จะสร้าง? ฉันต้องการทำเช่นนั้นในขณะที่หลีกเลี่ยงสภาพการแข่งขันและ / หรือการตั้งสมมติฐานเกี่ยวกับวิธีการหรือเมื่องานเขียนไปยังดิสก์

2
เป็นไปได้ไหมที่จะทำการค้นหา () กับการส่งคืนไพพ์ที่มีชื่อสำเร็จ
มีวิธีใดบ้างที่จะทำให้โปรแกรมพยายามดำเนินseek()การกับไพพ์ที่มีชื่อมันจะกลับมาประสบความสำเร็จ (แต่ทำราวกับว่าไพพ์เป็นไฟล์เปล่า) แทนที่จะเป็น 'Illegal แสวงหา'? ฉันมีการบันทึกในระบบของฉันเล็กน้อยทุกครั้งที่เก็บไว้ในฐานข้อมูล SQLite ฉันไม่มีไฟล์ทุกที่ อย่างไรก็ตามมีบางโปรแกรมที่มีปัญหากับสิ่งนี้ มี 2 ​​กรณีที่เฉพาะเจาะจง; โปรแกรมต้องการเขียนไปยังล็อกไฟล์ซึ่ง syslog-ng ได้สร้างขึ้นเป็นไพพ์ที่มีชื่อและกำลังอ่านจาก โปรแกรมต้องการดำเนินการseek()ด้วยเหตุผลบางอย่างแล้วล้มเหลว โปรแกรม (เช่น denyhosts หรือ fail2ban) ต้องการอ่านจากไฟล์บันทึกที่ syslog-ng สร้างขึ้นเป็นไพพ์ที่มีชื่อและกำลังเขียนถึง โปรแกรมต้องการดำเนินการseek()กับมันและล้มเหลว เป็นการดีที่ฉันต้องการให้สิ่งเหล่านี้พยายามทำตัวราวกับว่าไพพ์ที่มีชื่อเป็นเพียงไฟล์ว่างเปล่า ฉันไม่เห็นเหตุผลว่าทำไมโปรแกรมที่เขียนบันทึกจะต้องทำการค้นหาต่อไปมันควรเปิดไฟล์เพื่อผนวกและเริ่มเขียน ฉันสามารถดูได้ว่าเหตุใดการอ่านของโปรแกรมจึงต้องการค้นหาเพื่อให้มันสามารถกลับมาทำงานจากตำแหน่งสุดท้ายได้ดังนั้นฉันจึงอยากให้มันทำงานเหมือนกับว่าไฟล์นั้นว่างเปล่า (เหมือนถูกตัดทอน) ดังนั้นมีตัวเลือกที่สามารถตั้งค่าบน pipes ชื่อเพื่อให้พวกเขาทำงานแบบนี้? หากไม่มีโหมดที่สามารถตั้งค่าได้เมื่อ syslog-ng เปิดไปป์เพื่อให้มันทำงานแบบนี้ (ฉันเปิดเพื่อทำการเปลี่ยนแปลงรหัส)? หรือว่าฉันเป็นห้วย
12 pipe  syslog 

1
{} ในคำสั่ง find / path / -exec '{}' ทำอะไร
ฉันอยากรู้ว่าคำสั่งต่อไปนี้มีไว้เพื่ออะไร คำสั่งตัวอย่าง: find /foo/ -name "*.txt" -exec rm -v {} \; หน้า Man ให้การแจ้งเตือนเล็กน้อย แต่มันทำให้ฉันสับสนเล็กน้อย: สตริง '{}' ถูกแทนที่ด้วยชื่อไฟล์ปัจจุบันที่ถูกประมวลผลทุกที่ที่เกิดขึ้นในอาร์กิวเมนต์ของคำสั่งไม่ใช่เฉพาะในอาร์กิวเมนต์ที่อยู่คนเดียวเช่นเดียวกับในบางรุ่นของการค้นหา
12 find 

3
เหตุใด Linux จึงทำให้คอมพิวเตอร์ของฉันร้อน
ฉันใช้ Linux กับ Acer 5740 มาสองสามปีแล้ว เมื่อเร็ว ๆ นี้ฉันสังเกตเห็นว่าคอมพิวเตอร์ของฉันเริ่มร้อนขึ้นและมีอุณหภูมิประมาณ 70 องศา ถ้าฉันใช้ Eclipse หรือ ffmpeg หรืออะไรบางอย่างคอมพิวเตอร์จะยิงได้ถึง 85-90 องศา อาจเกิดขึ้นก่อนหน้านี้ แต่ฉันอาจจะไม่สนใจมัน ฉันมีดูอัลบูตด้วย Windows 7 และ 70 องศาเป็นระดับสูงสุดแม้เมื่อฉันเล่นเกม ฉันคาดว่า Linux จะร้อนขึ้นเล็กน้อยเนื่องจากไดรเวอร์ แต่ 70 degrees @ idling นั้นน้อยเกินไป งานวิจัยก่อนหน้าของฉันเกี่ยวกับการแสดงนี้: เพื่อนของฉันที่มีแล็ปท็อปเครื่องเดียวกัน แต่ใช้การ์ด ATI แทน Intel (ปัจจุบันอยู่ในเหมือง) กำลังดิ้นรนกับปัญหาเรื่องความร้อนที่มีความรุนแรงมากขึ้น เขาติดตั้ง fgrlx และแล็ปท็อปของเขานั้นเท่ห์เหมือนไซบีเรีย ฉันพยายามติดตั้งไดรเวอร์ Intel สำหรับการ์ดของฉัน ฉันมีรุ่นล่าสุดของ …
12 linux 

3
รักษา 100 อินสแตนซ์ของโปรแกรมที่ทำงานอยู่
ขณะนี้ฉันกำลังใช้ supervisord เพื่อรักษาสคริปต์ให้ทำงาน 100 อินสแตนซ์ ถ้ามีผู้ตายแล้วมันจะเริ่มขึ้นใหม่ อย่างไรก็ตามดูเหมือนว่าจะดิ้นรนรักษาจำนวนมากขึ้น (> 300 กระบวนการ) และฉันกำลังมองหาการทดแทน Monit ดูเหมือนจะไม่ทำสิ่งที่ฉันต้องการเพราะมันจะตรวจสอบสคริปต์แต่ละตัวและดูเหมือนจะไม่สามารถดูสคริปต์เดียวกันได้ 100 อินสแตนซ์ได้อย่างง่ายดาย มีข้อเสนอแนะเกี่ยวกับเครื่องมืออื่นที่ฉันสามารถใช้ได้ไหม?

1
ทำไม ramdisk เริ่มต้นของฉันใหญ่มาก
ผมใช้ Ubuntu 11.10 3.0.0-14ซึ่งมาพร้อมกับรุ่นเคอร์เนล ฉันดาวน์โหลดและสร้างเคอร์เนลจาก3.1.0สาขา หลังจากติดตั้งเคอร์เนลใหม่ฉันเห็นว่า/boot/initrd.img-3.1.0ไฟล์ของฉันมีขนาดใหญ่มาก มันคือ 114MB ในขณะที่ฉัน/boot/initrd.img-3.0.0-14-genericประมาณ 13MB ฉันต้องการกำจัดปมซึ่งไม่จำเป็นอย่างชัดเจน เมื่อสร้างเคอร์เนลใหม่ฉันคัดลอกของฉัน/boot/config-3.0.0-14-genericไปที่.configในไดเรกทอรีสร้างของฉันเพื่อเก็บการกำหนดค่าของเคอร์เนลเดิม ฉันวิ่งmake oldconfigเลือกค่าเริ่มต้นสำหรับตัวเลือกใหม่ทั้งหมดแล้วสร้างเคอร์เนล เมื่อดูที่ขนาดไฟล์ภายในแต่ละไฟล์เก็บถาวร cpio ของ initrd ฉันเห็นว่าโมดูล. ko ทั้งหมดของฉันมีขนาดใหญ่กว่าใน 3.1.0 ramdisk มากกว่า 3.0.0-14 ฉันสันนิษฐานว่ามีการตรวจสอบสถานะการดีบักที่ไม่จำเป็นในไฟล์กำหนดค่าของฉัน แต่ฉันไม่เห็นสิ่งอื่นที่ไม่ได้เปิดใช้งานในไฟล์กำหนดค่า 3.0.0-14 ฉัน/boot/config-3.0.0-14-genericอยู่ที่นี่: http://pastebin.com/UjH7nEqd และฉัน/boot/config-3.0.1อยู่ที่นี่: http://pastebin.com/HyT0M2k1 ทุกคนสามารถอธิบายได้ว่าการขยายตัวที่ไม่จำเป็นมาจากไหน?

1
การแจ้งเตือนเหตุการณ์ที่ปรากฏขึ้นใน Korganizer เมื่อทำข้อมูลให้ตรงกับ Google ปฏิทิน
ฉันมี "เชื่อมต่อ" Google Calendar กับ KOrganizer แล้ว ฉันสร้างกิจกรรมภายในบัญชี Google ของฉัน ฉันต้องการให้การแจ้งเตือนป๊อปอัปปรากฏขึ้นเมื่อฉันกลับบ้านแม้ว่ากิจกรรมที่ KOrganizer ไม่ได้สร้างขึ้น แต่ถูกซิงค์ ฉันไม่รู้ว่าฉันทำอะไรผิดหรือเปล่า แต่เหตุการณ์ที่สร้างโดย KOrganizer ไม่มีป๊อปอัปเหมือนกัน ฉันตรวจสอบการสลับสลับเพื่อเตือน ความคิดใด ๆ

3
การบันทึกเอาต์พุต stderr ทั้งหมดของ crontab ไปยังไฟล์
ตัวอย่างเช่นฉันสามารถบันทึกstderrหนึ่งสคริปต์ด้วยวิธีนี้: * * * * * run_script.sh > /var/log.txt 2>&1 แต่ฉันต้องการบันทึกstderrสคริปต์ทั้งหมดใน crontab ของฉัน ฉันสามารถผนวก> /var/log.txt 2>&1สคริปต์ทั้งหมด cronแต่มันไม่ดีถ้าผมมีหลายร้อยของสคริปต์ใน มีวิธีอื่นที่ง่ายกว่านี้หรือไม่?

4
รีเซ็ตอุปกรณ์ PCI ใน Linux
มีวิธีทั่วไปในการรีเซ็ตอุปกรณ์ PCI ใน Linux จากบรรทัดคำสั่งหรือไม่ นั่นคือทำให้บัส PCI ออกคำสั่งรีเซ็ต
12 linux  pci 

2
จะค้นหาระบบไดรเวอร์ X11 ที่ใช้อยู่ได้อย่างไร?
จะค้นหาระบบไดรเวอร์ X11 ที่ใช้อยู่ได้อย่างไร? สำหรับชิปของฉันopenchromeเป็นไดรเวอร์ที่ดีที่สุด แต่ฉันสงสัยว่าระบบไม่ได้ใช้งาน ฉันต้องการการเร่งความเร็วอย่างน้อย 2D ฉันจะตรวจสอบได้อย่างไร นี่คือสิ่งที่ฉันพบจากcat /var/log/Xorg.7.log | grep driver: [ 54.147] X.Org XInput driver : 12.3 [ 55.167] (==) Matched openchrome as autoconfigured driver 0 [ 55.167] (==) Matched vesa as autoconfigured driver 1 [ 55.167] (==) Matched fbdev as autoconfigured driver 2 [ 55.167] (==) …
12 ubuntu  drivers  x11  graphics 

1
ทำการแมป Ctrl-l ในการทุบตี
หนึ่งสามารถ remap Ctrl- lในทุบตีในการดำเนินการมากกว่าเพียงแค่ล้าง? ฉันรู้ว่าปกติมันแค่ล้างหน้าจอ ฉันต้องการเปลี่ยนสิ่งนั้นเพื่อล้างหน้าจอและรายการสิ่งที่ฉันpwdชอบ: Ctrl- l:clear;ls;

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