Unix & Linux

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

2
ความแตกต่างระหว่าง. Xiitrc, .xsession และ. xsessionrc
ฉันพบไฟล์กำหนดค่าสามไฟล์ .xinitrc .xsession .xsessionrc ฉันรู้ว่าตัวแรกใช้สำหรับการใช้งานstartxและตัวที่สองและสามใช้เมื่อใช้ตัวจัดการการแสดงผล แต่ความแตกต่างระหว่างสองครั้งสุดท้ายคืออะไร?
55 x11  login  startx  xinit 

4
“ esac” หมายถึงอะไรในตอนท้ายของคำสั่ง bash case? จำเป็นหรือไม่
ฉันพบตัวอย่าง "esac" หลายรายการที่ท้ายคำสั่ง bash case แต่ฉันไม่พบเอกสารที่ชัดเจนเกี่ยวกับการใช้งาน หน้าคนใช้มันและยังมีดัชนีในคำว่า ( https://www.gnu.org/software/bash/manual/bashref.html#index-esac ) แต่ไม่ได้กำหนดให้ใช้ มันเป็นวิธีที่จำเป็นในการจบคำสั่งกรณีวิธีปฏิบัติที่ดีที่สุดหรือเทคนิคบริสุทธิ์
55 bash  case 

13
ทรัพยากรที่มีประสิทธิภาพมากที่สุดในการนับจำนวนไฟล์ในไดเรกทอรีคืออะไร?
CentOS 5.9 ฉันเจอปัญหาเมื่อวันก่อนที่ไดเรกทอรีมีไฟล์จำนวนมาก เมื่อต้องการนับฉันวิ่งls -l /foo/foo2/ | wc -l ปรากฎว่ามีมากกว่า 1 ล้านไฟล์ในไดเรกทอรีเดียว (เรื่องยาว - สาเหตุที่แท้จริงได้รับการแก้ไข) คำถามของฉันคือ: มีวิธีที่เร็วกว่าในการนับหรือไม่ อะไรจะเป็นวิธีที่มีประสิทธิภาพที่สุดในการนับ?
55 bash  shell  directory  ls 

4
ผู้จัดการ Windows เทียบกับผู้จัดการเข้าสู่ระบบ Vs ผู้จัดการแสดงผล Vs สภาพแวดล้อมเดสก์ทอป
ฉันโพสต์คำถามและสังเกตว่าผู้คนไม่ได้แยกแยะได้อย่างถูกต้องระหว่างสิ่งต่าง ๆ เหล่านี้: ผู้จัดการ Windows และผู้จัดการเข้าสู่ระบบ Vs ผู้จัดการแสดงผล Vs สภาพแวดล้อมเดสก์ทอป บางคนช่วยอธิบายเรื่องนี้ให้ชัดเจนได้เช่นบอกความแตกต่างระหว่างพวกเขากับพวกเขาว่าเกี่ยวข้องกันอย่างไร? Xorg อยู่ในประเภทใด แล้ว Gdm / Kdm / Xdm ล่ะ? ผู้คนยังพูดคุยเกี่ยวกับ X. X คืออะไร?

5
วิธีกระจายไฟล์โดยไม่คำนึงถึงความคิดเห็น (บรรทัดที่ขึ้นต้นด้วย #)
ฉันมีไฟล์กำหนดค่าสองไฟล์ต้นฉบับจากผู้จัดการแพ็กเกจและไฟล์ที่กำหนดเองที่แก้ไขด้วยตัวเอง ฉันได้เพิ่มความคิดเห็นเพื่ออธิบายพฤติกรรม ฉันจะรันdiffไฟล์กำหนดค่าโดยข้ามความคิดเห็นได้อย่างไร บรรทัดความคิดเห็นถูกกำหนดโดย: ช่องว่างนำหน้าตัวเลือก (แท็บและช่องว่าง) เครื่องหมายแฮช ( #) ตัวละครอื่น ๆ (ที่ง่ายที่สุด) #.*การแสดงออกปกติข้ามความต้องการแรกจะเป็น ฉันลองตัวเลือก--ignore-matching-lines=RE( -I RE) ของ GNU diff 3.0 แต่ฉันไม่สามารถทำงานกับ RE นั้นได้ ฉันยังพยายาม.*#.*และ.*\#.*ไม่มีโชค การวางบรรทัด ( Port 631) ตามตัวอักษรอย่างแท้จริงREไม่ตรงกับสิ่งใดเลยและไม่ช่วยให้วาง RE ระหว่างเครื่องหมายทับ ตามที่แนะนำในregex แล้วรสชาติของเครื่องมือ“ diff” นั้นขาดไปหรือไม่? ฉันพยายามgrep -G: grep -G '#.*' file นี้ดูเหมือนว่าจะตรงกับความเห็น diff -I '#.*' file1 file2แต่มันไม่ทำงานสำหรับ ดังนั้นควรใช้ตัวเลือกนี้อย่างไร ฉันจะdiffข้ามบางบรรทัดได้อย่างไร (ในกรณีของฉันความคิดเห็น) …

7
วิธีการเชื่อมต่ออุปกรณ์ USB ที่ถูกตัดการเชื่อมต่ออย่างมีเหตุผลอีกครั้ง?
เป็นไปได้ที่อุปกรณ์เก็บข้อมูล USB จะถูกตัดการเชื่อมต่ออย่างมีเหตุผล: อุปกรณ์ยังคงเสียบอยู่ แต่ไม่สามารถมองเห็นได้จากระบบปฏิบัติการ (เช่นไม่มีอยู่ในรายการ/proc/bus/usb) บางทีนี่อาจเกิดขึ้นกับ USB ชนิดอื่นหรืออุปกรณ์พกพาอื่น ๆ ได้เช่นกัน สิ่งนี้สามารถเกิดขึ้นได้เช่น: หลังจาก Nautilus ถอดอุปกรณ์เก็บข้อมูล USB ออกแล้ว หลังจาก VirtualBox ได้อ้างสิทธิ์อุปกรณ์เก็บข้อมูล USB (อุปกรณ์ดังกล่าวจะหายไปจากโฮสต์ Linux เมื่อเชื่อมต่อกับผู้เยี่ยมชมและจะไม่ปรากฏขึ้นอีกครั้งโดยอัตโนมัติหากไม่ได้เชื่อมต่อกับแขก) เกิดอะไรขึ้นกับไดรเวอร์หรือฮาร์ดแวร์และที่สำคัญที่สุดอุปกรณ์สามารถเชื่อมต่อใหม่ได้อย่างไร (โดยไม่ต้องเสียบปลั๊กกลับเข้าที่) โปรดทราบว่าคำถามนี้ไม่ได้เกี่ยวกับการติดตั้ง ในสถานะ“ ตัดการเชื่อมต่อแบบลอจิคัล” เคอร์เนลเชื่อว่าไม่มีสิ่งใดบนบัส USB (และแน่นอนว่าไม่มีรายการใต้/dev)
55 linux  usb  usb-drive 

5
การต่อท้ายวันที่ปัจจุบันจากตัวแปรไปยังชื่อไฟล์
ฉันพยายามต่อท้ายวันที่ปัจจุบันต่อท้ายชื่อไฟล์ดังนี้: TheFile.log.2012-02-11 นี่คือสิ่งที่ฉันมี: set today = 'date +%Y' mkdir -p The_Logs & find . -name The_Logs -atime -1 -type d -exec mv \{} "The_Logs_+$today" \; & อย่างไรก็ตามสิ่งที่ฉันได้รับคือชื่อของไฟล์และจะไม่มีการต่อท้าย ฉันจะต่อท้ายวันที่ปัจจุบันกับชื่อไฟล์ได้อย่างไร
55 bash  shell  rename  date 

6
ฉันจะได้รับทุบตีเพื่อออกจากความล้มเหลว backtick ในลักษณะที่คล้ายกับ pipefail ได้อย่างไร
ดังนั้นฉันชอบที่จะทำให้สคริปต์ทุบตีของฉันแข็งขึ้นทุกที่ที่ฉันสามารถทำได้ (และเมื่อไม่สามารถมอบหมายให้เป็นภาษาเช่น Python / Ruby) เพื่อให้แน่ใจว่าข้อผิดพลาดจะไม่หายไป ในหลอดเลือดดำนั้นฉันมีเคร่งครัด. sh ซึ่งมีสิ่งต่าง ๆ เช่น: set -e set -u set -o pipefail และแหล่งที่มาในสคริปต์อื่น ๆ อย่างไรก็ตามในขณะที่ pipefail จะรับ: false | echo it kept going | true มันจะไม่รับ: echo The output is '`false; echo something else`' ผลลัพธ์จะเป็น ผลลัพธ์คือ '' False ส่งคืนสถานะที่ไม่เป็นศูนย์และไม่มีการ stdout ในไปป์มันจะล้มเหลว แต่ที่นี่ไม่มีข้อผิดพลาดเกิดขึ้น เมื่อนี่เป็นการคำนวณที่เก็บไว้ในตัวแปรจริงในภายหลังและตั้งค่าเป็นค่าว่างนี่อาจทำให้เกิดปัญหาในภายหลัง ดังนั้น …


3
เหตุใดฉันจึงไม่สามารถชนระบบของฉันด้วยการวางระเบิดได้
เมื่อเร็ว ๆ นี้ฉันได้ขุดข้อมูลเกี่ยวกับกระบวนการใน GNU / Linux และฉันได้พบกับระเบิดที่น่าอับอาย: :(){ : | :& }; : ในทางทฤษฎีมันควรจะทำซ้ำตัวเองอย่างไม่มีที่สิ้นสุดจนกว่าระบบจะหมดทรัพยากร ... อย่างไรก็ตามฉันได้ลองทดสอบทั้งในCLI DebianและGUI Mint distro และดูเหมือนว่าจะไม่ส่งผลกระทบต่อระบบมากนัก ใช่มีกระบวนการมากมายที่ถูกสร้างขึ้นและหลังจากนั้นไม่นานฉันก็อ่านในข้อความคอนโซลเช่น: bash: fork: ทรัพยากรไม่สามารถใช้งานได้ชั่วคราว bash: fork: ลองอีกครั้ง: ไม่มีกระบวนการลูก แต่หลังจากเวลาผ่านไปกระบวนการทั้งหมดเพิ่งถูกฆ่าและทุกอย่างกลับสู่ปกติ ฉันได้อ่านว่าulimitตั้งค่าจำนวนสูงสุดของกระบวนการต่อผู้ใช้ แต่ฉันไม่สามารถยกมันได้ไกลนัก ระบบป้องกันการระเบิดจากส้อมคืออะไร? ทำไมมันไม่ทำซ้ำตัวเองจนกว่าทุกอย่างจะหยุดหรืออย่างน้อยก็ล่าช้ามาก? มีวิธีที่จะทำให้ระบบพังด้วยส้อมระเบิดหรือไม่?
54 linux  process  fork  ulimit 

2
เหตุใด printf“ umlaut” umlaut?
ถ้าฉันรันสคริปต์ง่าย ๆ ต่อไปนี้: #!/bin/bash printf "%-20s %s\n" "Früchte und Gemüse" "foo" printf "%-20s %s\n" "Milchprodukte" "bar" printf "%-20s %s\n" "12345678901234567890" "baz" มันพิมพ์: Früchte und Gemüse foo Milchprodukte bar 12345678901234567890 baz นั่นคือข้อความที่มีเครื่องหมาย umlauts (เช่นü) คือ "หด" โดยอักขระหนึ่งตัวต่อ umlaut แน่นอนฉันมีการตั้งค่าผิดบางแห่ง แต่ฉันไม่สามารถคิดได้ว่าจะเป็นแบบไหน สิ่งนี้จะเกิดขึ้นหากการเข้ารหัสไฟล์เป็น UTF-8 หากฉันเปลี่ยนการเข้ารหัสเป็น latin-1 การจัดตำแหน่งนั้นถูกต้อง แต่ umlauts แสดงผลไม่ถูกต้อง: Fr�chte und Gem�se …
54 bash  unicode  printf 

6
เปลี่ยนการเรียงลำดับของด้านบนกลับเป็น CPU
ผู้ร่วมงานเดิมทำบางสิ่งบางอย่างเพื่อtopทุกครั้งที่ทำงานในฐานะรูทข้อมูลจะถูกจัดเรียงตามการใช้งาน MEM แทนการใช้งาน CPU เริ่มต้น จากการค้นหาหลายครั้ง man page และแม้กระทั่งตัวเลือกในคอนโซลด้านบน (O) เพียงแค่กดkมันควรจะถูกจัดเรียงโดยซีพียู แต่เมื่อฉันกดkมันจะขอ pid ฆ่า ดังนั้นฉันจะกลับไปเริ่มต้นการเรียงลำดับไปยัง CPU ได้อย่างไร
54 top 

10
bash: ทดสอบว่า $ WORD อยู่ในชุดหรือไม่
ฉันกำลังมองหาโครงสร้างในbashการตัดสินใจว่าตัวแปร$WORDเป็นหนึ่งในคำที่กำหนด ฉันต้องการสิ่งนี้: if "$WORD" in dog cat horse ; then echo yes else echo no fi ทุบตีมีโครงสร้างเช่นนี้? ถ้าไม่สิ่งที่จะใกล้เคียงที่สุด?

7
ความหมายของ“ การเชื่อมต่อถูกปิดโดย xxx [preauth]” ในไฟล์บันทึก sshd
เรามีสคริปต์แบทช์ของ Windows ซึ่งเชื่อมต่อกับเซิร์ฟเวอร์ linux โดยอัตโนมัติผ่านทาง PLINK (putty) ไม่มีการรับรองความถูกต้องของกุญแจสาธารณะสาธารณะผู้ใช้และรหัสผ่านอยู่ในสคริปต์ บนเซิร์ฟเวอร์ linux ของเราเรามีรายการบันทึก sshd หลายรายการ (/ var / log / ข้อความ): sshd[7645]: Connection closed by xxx [preauth] อะไรคือสาเหตุของข้อความดังกล่าว "preauth" แปลว่า "การรับรองความถูกต้องล่วงหน้า" อย่างแน่นอนหรือไม่ บางครั้งในรายการ "ปิดโดย" มีที่อยู่ ip ของไคลเอนต์ windows อีกครั้งมีที่อยู่ IP ของเซิร์ฟเวอร์ linux ใน "ปิดโดย" ไม่มีใครรู้ถึงความแตกต่างระหว่างที่อยู่ IP ของลูกค้าและที่อยู่ IP ของโฮสต์ในข้อความหรือไม่

10
วิธีการ rsync ไฟล์ระหว่างรีโมทสองรีโมท?
ฉันต้องการถ่ายโอนไฟล์ระหว่างสองรีโมตโฮสต์โดยใช้บนโลคัลเชลล์ แต่ดูเหมือนว่า rsync ไม่สนับสนุนการซิงโครไนซ์หากมีการระบุรีโมตสองรายการดังนี้: $ rsync -vuar host1:/var/www host2:/var/www The source and destination cannot both be remote. วิธีแก้ปัญหา / คำสั่งอื่นใดที่ฉันสามารถใช้เพื่อให้ได้ผลลัพธ์ที่คล้ายกัน
54 shell  ssh  rsync 

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