Unix & Linux

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

2
วิธีการแยกการตั้งค่า `rc.lua` ของ Awesome ออกเป็นหลาย ๆ ไฟล์?
ฉันเพิ่งย้ายไป Awesome WM จาก OpenBox ฉันชอบที่มันสามารถขยายได้มากปรับแต่งได้และฉันมีการควบคุมขนาดใหญ่เกี่ยวกับเค้าโครงหน้าต่าง ฉันชอบสิ่งที่มีโครงสร้างและเป็นระเบียบและฉันต้องการแยก.config/awesome/rc.luaการกำหนดค่าขนาดใหญ่ออกเป็นหลายไฟล์

2
chown ลบ setuid bit: bug หรือคุณสมบัติ?
ขั้นตอนในการทำซ้ำ: germar@host:~$ cd /tmp/ germar@host:/tmp$ touch test && chmod u+s test && ls -la test -rwSr--r-- 1 germar germar 0 Nov 2 20:11 test germar@host:/tmp$ chown germar:germar test && ls -la test -rw-r--r-- 1 germar germar 0 Nov 2 20:11 test ทดสอบกับ Debian squeeze และ Ubuntu 12.04

3
จะทำอย่างไรถึงจะมีเพียงพื้นที่ว่างที่ไฟล์ใช้ซึ่งไม่ได้เชื่อมโยงไปถึงที่อื่น?
การใช้สrsync --link-destแนปชอตแบบประหยัดพื้นที่ฉันจะทราบได้อย่างไรว่าฉันได้บันทึกพื้นที่ว่างจำนวนเท่าใด หรือมากกว่าทั่วไป: ทำอย่างไรจึงจะทราบได้ว่าไดเรกทอรีใช้พื้นที่เท่าใดในการพิจารณาเฉพาะไฟล์ที่ไม่ได้เชื่อมโยงกับที่อื่นนอกโครงสร้างไดเรกทอรี คำถามที่แตกต่าง: จำนวนพื้นที่จริงจะเป็นอิสระหลังจากการลบไดเรกทอรีนั้นหรือไม่ ( du -hsจะโกหกพื้นที่ที่จำเป็นสำหรับการเชื่อมโยงอาจรวมอยู่ด้วย)

1
ทำความเข้าใจกับเอาต์พุตของคำสั่ง `who -a`
ฉันถามคำถามนี้เพราะในขณะที่มีคำตอบมากมายบนอินเทอร์เน็ตที่แสดงว่าwho -aเป็นตัวเลือกไม่มีใครอธิบายวิธีการอ่านผลลัพธ์ หากคุณสามารถให้ลิงค์ไปยังเว็บไซต์ออนไลน์ที่อธิบายสิ่งนี้ได้นั่นก็จะเป็นคำตอบที่ยอดเยี่ยมพอ ๆ กัน นี่คือตัวอย่างของสิ่งที่ฉันต้องการถอดรหัส: [bo@hostname ~]$ who -a Jun 17 03:47 590 id=si term=0 exit=0 system boot Jun 17 03:47 run-level 3 Jun 17 03:47 last=S Jun 17 03:48 4424 id=l3 term=0 exit=0 LOGIN tty1 Jun 17 03:48 5503 id=1 LOGIN tty2 Jun 17 03:48 5504 id=2 LOGIN …
14 sshd  utilities 

2
เหตุใด Linux จึงล้างแคชหน่วยความจำเมื่อเกือบเต็มแล้ว
นี่คือรูปกราฟหน่วยความจำบน VPS ที่รัน CentOS พร้อม RAM ขนาด 512MB และ nginx / php-fpm / mysqld ที่แสดงเนื้อหา (ส่วนใหญ่เป็นแบบคงที่) ต่อผู้เข้าชมสองพันคนต่อวัน (นั่นคือวันบนแกน x) อย่างที่คุณเห็นมันค่อนข้างน่ากลัวในพื้นที่แคชและบัฟเฟอร์ แคชหน่วยความจำถูกกำจัดในช่วงเวลาที่ไม่สม่ำเสมอ (พิจารณางาน cron ที่รับผิดชอบ) มันมักจะถูกกวาดล้างไปยังจุดที่ไม่สามารถเติบโตได้ บางครั้งก็ล้างเกือบทั้งหมดในบางครั้งบางครั้งลงครึ่งหนึ่งเท่านั้น ฉันพยายามที่จะเข้าใจตรรกะที่อยู่เบื้องหลังการล้างเหล่านี้ ฉันคาดว่าข้อมูลไฟล์จะถูกแคชนานกว่า & ไม่เห็นโปรแกรมอื่น ๆ ที่ใช้หน่วยความจำมากกว่าปกติเมื่อล้างแคชหน่วยความจำ นี่เป็นพฤติกรรมปกติหรือฉันขาดอะไรไป? UPDATE: การอัพเกรดหน่วยความจำดูเหมือนว่าจะทำให้กราฟเสถียร ยังคงเห็นหยดเล็ก ๆ แต่ไม่มีอะไรสำคัญเท่าก่อนการอัพเกรด
14 linux  memory  cache 

2
ตรวจสอบการอัพเดตของแพ็คเกจที่ติดตั้งผ่าน yaourt
อย่างไรก็ตามมีการอัพเดทแพ็คเกจที่ติดตั้งด้วย yaourt หรือไม่? yaourt -Syuดูเหมือนว่าจะทำเช่นเดียวกับpacman -Syuที่ดูแลเฉพาะเกี่ยวกับแพคเกจในพื้นที่เก็บข้อมูลอย่างเป็นทางการ

7
จะลดความโลภของนิพจน์ทั่วไปใน AWK ได้อย่างไร?
ฉันต้องการจะทำรูปแบบไม่โลภ (regular expression) awkการจับคู่ใน นี่คือตัวอย่าง: echo "@article{gjn, Author = {Grzegorz J. Nalepa}, " | awk '{ sub(/@.*,/,""); print }' เป็นไปได้ไหมที่จะเขียนนิพจน์ทั่วไปที่เลือกสตริงที่สั้นกว่า? @article{gjn, แทนที่จะเป็นสายยาวนี้: @article{gjn, Author = {Grzegorz J. Nalepa}, ฉันต้องการผลลัพธ์นี้: Author = {Grzegorz J. Nalepa}, ฉันมีตัวอย่างอื่น: echo " ,บทความ {gjn, ผู้แต่ง = {Grzegorz J. Nalepa}," | awk '{sub (/ , [^,] …

6
เป็นความคิดที่ดีหรือไม่ที่จะใช้การ์ด SD สำหรับโฮมไดเร็กตอรี่?
ฉันวางแผนที่จะสร้างการ์ด SD (หรือแฟลชไดรฟ์) ไดเรกทอรีบ้านของฉันเพื่อให้สามารถทำงานกับพีซีที่แตกต่างกันได้โดยไม่ต้องยุ่งยากอะไรมาก นี่เป็นความคิดที่ไม่ดีด้วยเหตุผลบางอย่าง?
14 home  sd-card 

3
ฉันจะได้รับ Ctrl + Alt + t เพื่อเปิดเทอร์มินัลนั้นใน Linux Mint 13 MATE ได้อย่างไร
การกดCtrl+ Alt+ tดูเหมือนว่าจะไม่ทำอะไรกับ Linux Mint 13 MATE ของฉัน ฉันจะตั้งค่าทางลัดนี้เพื่อเปิดหน้าต่างเทอร์มินัลได้อย่างไร ดังรายละเอียดดูเหมือนว่าขั้วคือมากกว่าmate-terminalgnome-terminal

3
เคอร์เนลของ Linux จัดการ IRQ ที่แชร์ได้อย่างไร
ตามที่ฉันได้อ่านจนถึง "เมื่อเคอร์เนลได้รับการขัดจังหวะตัวจัดการที่ลงทะเบียนทั้งหมดจะถูกเรียกใช้" ฉันเข้าใจว่าตัวจัดการที่ลงทะเบียนสำหรับ IRQ แต่ละตัวสามารถดูได้ผ่านทาง/proc/interruptsและฉันยังเข้าใจว่าตัวจัดการที่ลงทะเบียนนั้นมาจากไดรเวอร์ที่เรียกใช้การrequest_irqส่งผ่านในรูปแบบการติดต่อกลับโดยประมาณ: irqreturn_t (*handler)(int, void *) จากสิ่งที่ฉันรู้ควรเรียกใช้ตัวจัดการอินเทอร์รัปต์เหล่านี้ที่เกี่ยวข้องกับ IRQ เฉพาะและขึ้นอยู่กับตัวจัดการเพื่อพิจารณาว่าควรจัดการอินเทอร์รัปต์จริงหรือไม่ IRQ_NONEถ้าจัดการไม่ควรจัดการกับการขัดจังหวะโดยเฉพาะอย่างยิ่งจะต้องกลับแมโครเคอร์เนล สิ่งที่ฉันมีปัญหาในการทำความเข้าใจคือคาดว่าไดรเวอร์แต่ละตัวจะตัดสินว่าควรจัดการกับอินเทอร์รัปต์หรือไม่ ฉันคิดว่าพวกเขาสามารถติดตามภายในถ้าพวกเขาควรจะคาดหวังว่าการขัดจังหวะ ถ้าเป็นเช่นนั้นฉันไม่รู้ว่าพวกเขาจะสามารถรับมือกับสถานการณ์ที่ไดรเวอร์หลายตัวที่อยู่เบื้องหลัง IRQ เดียวกันคาดว่าจะเกิดการขัดจังหวะได้อย่างไร เหตุผลที่ฉันพยายามเข้าใจรายละเอียดเหล่านี้ก็เพราะฉันยุ่งกับkexecกลไกในการเรียกใช้เคอร์เนลอีกครั้งในระหว่างการทำงานของระบบในขณะที่เล่นด้วยหมุดรีเซ็ตและรีจิสเตอร์ต่าง ๆ บนสะพาน PCIe เช่นเดียวกับ PCI ดาวน์สตรีม เครื่อง และในการทำเช่นนั้นหลังจากรีบูตฉันอาจได้รับความตื่นตระหนกของเคอร์เนลหรือไดรเวอร์อื่น ๆ บ่นว่าพวกเขาได้รับการขัดจังหวะแม้ว่าจะไม่มีการดำเนินการเกิดขึ้น ผู้จัดการตัดสินใจว่าควรจัดการกับอินเทอร์รัปต์อย่างไรจึงเป็นเรื่องลึกลับ แก้ไข: ในกรณีที่เกี่ยวข้องกับสถาปัตยกรรม CPU ที่เป็นx86ปัญหา
14 linux  kernel  pci  interrupt  irq 

5
sed แปลง 4 ช่องว่างเป็น 2
วิธีหนึ่งจะแปลง 4 ช่องว่างเป็น 2 ช่องว่างด้วยsed? เป็นไปได้ไหม? ฉันพบสิ่งนี้ แต่มันแปลงแท็บเป็นช่องว่าง: sed -r ':f; s|^(\t*)\s{4}|\1\t|g; t f' file
14 sed 

2
เปลี่ยนเส้นทาง stderr จากสคริปต์ที่รันอยู่แล้ว
ฉันใช้สคริปต์มาหลายวันแล้ว ฉันเปลี่ยนเส้นทาง stdout ไป$HOME/mylogแล้ว แต่ไม่เปลี่ยนเส้นทาง stderr เนื่องจากฉันคิดว่าจะไม่มีอะไรเกิดขึ้น ทันใดนั้นหลายพันบรรทัดก็เริ่มปรากฏบน stderr ดังนั้นฉันจึงหยุดงานชั่วคราว มีวิธีที่ฉันสามารถเปลี่ยนเส้นทาง stderr $HOME/myerrจากนี้ไปโดยไม่ต้องรีสตาร์ทสคริปต์หรือไม่ ฉันเข้าถึง sudo บนกล่องได้และเป็น OS X บางทีมีบางอย่างที่ใช้ dtools trapping? ฉันไม่สามารถทำงานที่สคริปต์ทำหายไปและเริ่มต้นใหม่ตั้งแต่ต้น มีวิธีการ "ถ่ายโอนข้อมูลวัตถุในหน่วยความจำ" บนดิสก์ตรึงโปรแกรมแก้ไขตัวแปร (เช่นตัวอธิบายไฟล์) และดำเนินการต่อด้วยบริบทใหม่หรือไม่

3
เหตุใด $ SHELL จึงไม่เปลี่ยนแปลงเมื่อฉันเรียกใช้เชลล์ใหม่
$ echo $SHELL /bin/bash $ /bin/ksh93 $ echo $SHELL /bin/bash $ file /bin/ksh93 /bin/ksh93: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped $ getent passwd test111 test111:x:1008:1008:,,,:/tmp:/bin/ksh93 $ ssh test@localhost test@localhost's password: $ echo $SHELL /bin/ksh93 $ bash $ echo $SHELL …

8
วิธีการลบเฉพาะเนื้อหาของไดเรกทอรี?
ฉันอยู่ในโฟลเดอร์: /var/myfolder. ข้างในมีโฟลเดอร์อื่น ๆ เช่น: /var/myfolder/A/ /var/myfolder/B/ `/var/myfolder/C/เป็นต้น ในแต่ละไฟล์มีชื่อสุ่ม ฉันจะลบไฟล์ทั้งหมดออกจากโฟลเดอร์ทั้งหมดภายในได้/var/myfolderอย่างไร โครงสร้าง (ไดเรกทอรีทั้งหมดเช่น., A, B, C, ฯลฯ/var/myfolder) ภายในควรจะยังคงเหมือนเดิม
14 shell  files 

2
tmux เทียบเท่ากับหน้าจอ GNU: โหมดการตัดคำ
ฉันเป็นผู้ใช้หน้าจอเป็นเวลานานพยายามที่จะข้ามไปยัง tmux คุณสมบัติหน้าจอเดียวที่ฉันใช้คือความสามารถในการตัดทอนCtrla :set wrapผลลัพธ์ สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อทำการปรับแต่งล็อกไฟล์หรือติดตามเซสชันที่มีบรรทัดที่มีความยาวหลายร้อยตัวอักษร ฉันได้อ่านmanหน้าและ googled อย่างกว้างขวางและไม่สามารถหาคำสั่งที่เทียบเท่าหรือทำงานได้โดยใช้คำสั่งเชลล์ สิ่งที่ใกล้เคียงที่สุดที่ฉันสามารถทำได้คือการวางท่อทุกอย่างเพื่อให้less -Sน้อยลงในโหมด "ติดตาม"
14 tmux 

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