Unix & Linux

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

6
ทำไม“ ls” จึงต้องการกระบวนการแยกต่างหากสำหรับการดำเนินการ
เหตุใดจึงlsต้องมีกระบวนการแยกต่างหากสำหรับการดำเนินการ ฉันรู้ว่าสาเหตุที่คำสั่งเช่นcdไม่สามารถดำเนินการได้โดยกลไกการฟอร์กกิ้ง แต่มีอันตรายใด ๆ หากlsถูกสั่งการโดยไม่ฟอร์กกิ้ง?
14 ls  cd-command  fork 

3
ทำการแมปปุ่มเปิด / ปิดเพื่อลบ
ฉันมี macbook pro ที่ใช้ Ubuntu 13.10 กับ FluxBox น่าเสียดายที่ปุ่มเปิดปิดอยู่เหนือ Backspace ซึ่งฉันคาดว่าจะมีปุ่มลบอยู่ใน OS X โปรแกรม PowerKeyสามารถใช้เพื่อทำการแมปปุ่มเปิดปิดใหม่เพื่อลบ ฉันจะทำสิ่งที่คล้ายกันใน X Windows ได้อย่างไร ฉันปิดการใช้งานปุ่มเปิดปิดโดยการแก้ไข/etc/systemd/logind.confและการตั้งค่าHandlePowerKey = ignore ปุ่มเปิดปิดหลังจากนี้ฉันสามารถกดปุ่มเปิดปิดโดยไม่ต้องปิดแล็ปท็อป การเรียกใช้xev -event keyboardแสดงให้เห็นว่า KeyPress สำหรับปุ่มเปิด / ปิดเครื่องกำลังถูกกินโดยกระบวนการอื่น: MappingNotify event, serial 36, synthetic NO, window 0x0, request MappingKeyboard, first_keycode 8, count 248 KeymapNotify event, serial 36, synthetic NO, …

2
เป้าหมายของ symlink นั้นสัมพันธ์กับไดเรกทอรีหลักของปลายทางหรือไม่และถ้าใช่ทำไม
ฉันมีโครงสร้างไฟล์ต่อไปนี้: build/ client/ –> index.js และเมื่อฉันพยายามสร้างลิงค์สัญลักษณ์ชื่อ "ลูกค้า" ในไดเรกทอรีสร้างที่อ้างถึงไดเรกทอรีลูกค้าใน cwd เช่นนั้น // Fails $ pwd /home/user/ $ ln -s client build/client $ stat build/client/index.js stat: build/client/index.js: stat: Too many levels of symbolic links ฉันพบข้อผิดพลาด ELOOP ที่แสดงด้านบน เมื่อฉันเปลี่ยนเส้นทางเป้าหมายให้สัมพันธ์กับเส้นทางปลายทางทั้งหมดจะดี: // Works $ pwd /home/user/ $ ln -s ../client build/client $ stat build/client/index.js stat: …
14 symlink 

2
ตรวจสอบว่ากระบวนการเฉพาะเป็น 32- หรือ 64- บิต
ให้เคอร์เนล 2.6.x หรือใหม่กว่า Linux และ userland ที่มีอยู่ซึ่งสามารถใช้งานทั้ง ELF32 และ ELF64 ไบนารี (เช่นที่ผ่านมาฉันจะรู้ได้อย่างไรว่า CPU ของฉันรองรับระบบปฏิบัติการ 64 บิตภายใต้ Linux? ) ฉันจะทราบได้อย่างไรว่ากระบวนการที่กำหนด โดย PID) กำลังทำงานในโหมด 32- หรือ 64- บิต? วิธีแก้ปัญหาไร้เดียงสาจะทำงาน: file -L /proc/pid/exe | grep -o 'ELF ..-bit [LM]SB' แต่ข้อมูลนั้นถูกเปิดเผยโดยตรง/procโดยไม่ต้องพึ่งพาlibmagicหรือไม่
14 linux  64bit  proc  elf 

1
แสดงส่วนของบรรทัดที่ถูกรวมเป็นกลุ่มแทนการซ่อนด้วยอักขระ @
ฉันใช้vimไม่เพียง แต่สำหรับการเข้ารหัส แต่ยังสำหรับการเขียนข้อความ ในบริบทนี้ฉันใช้ตัวเลือกการตัดและการเรียงบรรทัดเพื่อตัดข้อความของฉัน เนื่องจากบรรทัด - ย่อหน้าที่ขึ้นต้นด้วยการเขียนข้อความ - อาจมีความยาวมากบรรทัดที่ถูกพันได้ง่ายไม่พอดีในส่วนล่างของหน้าจอดังนั้นvimซ่อนบรรทัดที่ล้อมรอบทั้งหมดแทนที่ส่วนที่มองเห็นได้ด้วยสัญลักษณ์ @ มีโอกาสที่จะหลีกเลี่ยงปัญหานี้หรือไม่เพื่อที่vimจะแสดงเฉพาะส่วนของเส้นที่ถูกพันที่ยังคงอยู่ที่ด้านล่างของหน้าจอ
14 vim 

2
การแก้ไข UUID ระบบไฟล์ BTRFS
ผมได้ทำสำรองข้อมูลของระบบแฟ้มของฉัน BTRFS ใช้ Clonezilla 2013-11-29.sda3.imgและมีการเรียกคืนหนึ่งของการสำรองข้อมูลเหล่านั้นไปยังไฟล์ชื่อ ฉันต้องการลบไฟล์บางไฟล์ออกจากการสำรองข้อมูลนี้ แต่มีข้อผูกมัด ตั้งแต่การสำรองข้อมูลของเครื่องนี้ฉันไม่สามารถติดตั้งได้ทุกที่การสำรองข้อมูลในระบบแฟ้มของฉันเป็น UUID ตรงกับ UUID /ของ มีวิธีที่ฉันสามารถเปลี่ยน UUID ของไดรฟ์ข้อมูลสำรองหรือไม่ ตามที่ฉันเข้าใจ BTRFS จะเก็บข้อมูล UUID ในทุก ๆ บล็อกในระบบไฟล์ซึ่งทำให้สิ่งต่าง ๆ ซับซ้อนตามวัตถุประสงค์ของฉัน อย่างไรก็ตามมีวิธีที่ฉันสามารถแก้ไขได้หรือไม่ ฉันเข้าใจว่าอาจใช้เวลานานในการทำ แต่นั่นไม่เกี่ยวข้องกับฉัน ความกังวลหลักของฉันคือการทำให้เซิร์ฟเวอร์ออนไลน์ การสำรองข้อมูลมีขนาดค่อนข้างใหญ่ดังนั้นการถ่ายโอนไปยังเครื่องอื่นอาจใช้เวลาสักครู่ ตัวเลือกของฉันคืออะไร?
14 btrfs  uuid 

4
ทำมิเรอร์บานหน้าต่างระหว่างสองหน้าต่าง
เป็นไปได้หรือไม่ที่จะมีบานหน้าต่างเดียวกันปรากฏในสองหน้าต่างที่แตกต่างกันของเซสชัน tmux เดียว? ฉันมักจะมีการแบ่งแนวนอนเดียวในหน้าต่างหลักของฉันด้วยเป็นกลุ่มในบานหน้าต่างด้านบน (ประมาณ 80-90% ของความสูงของสถานี) และบรรทัดคำสั่งในบานหน้าต่างด้านล่างที่ฉันเรียกใช้โปรแกรมที่ฉันกำลังทำงานอยู่ เนื่องจากหน้าต่างด้านล่างมีขนาดเล็กมากฉันมักจะไม่เห็นข้อผิดพลาดในการแสดงผลและการใช้แป้นพิมพ์ลัดของ tmux เพื่อเลื่อนกลับมาน่าเบื่อ ฉันต้องการให้หน้าต่างที่สองของฉันแนบกับบานหน้าต่างเดียวกันเพื่อที่ว่าถ้าฉันต้องการดูผลลัพธ์ข้อผิดพลาดมากขึ้นฉันสามารถสลับไปที่หน้าต่างที่สองได้อย่างรวดเร็วโดยไม่จำเป็นต้องจัดการกับ scrollback เป็นไปได้ไหม (ฉันเดาว่าทางเลือกหนึ่งจะใช้สิ่งที่ต้องการทีออฟเพื่อเขียน stdout ไปยังล็อกไฟล์และท้ายว่าในหน้าต่างที่สองของฉันฉันหวังว่ามันไม่จำเป็นเลย)
14 tmux 

2
วิธีที่สอดคล้องกับ POSIX ในการทำงานกับรายการชื่อไฟล์ที่อาจมีช่องว่าง
ฉันได้เห็นคำแนะนำในการเขียนสคริปต์ของ Bash แนะนำให้ใช้อาร์เรย์สำหรับทำงานกับชื่อไฟล์ที่มีช่องว่าง แต่DashAsBinShชี้ให้เห็นว่าอาร์เรย์ไม่สามารถเคลื่อนย้ายได้ดังนั้นฉันกำลังมองหาวิธีการทำงานร่วมกับ POSIX ในการทำงานกับรายการชื่อไฟล์ที่อาจมีช่องว่าง ฉันต้องการแก้ไขสคริปต์ตัวอย่างด้านล่างเพื่อที่จะได้ echo foo/target/a.jar foo/target/b.jar bar/target/lol whitespace.jar นี่คือสคริปต์ #!/usr/bin/env sh INPUT="foo/target/a.jar foo/target/b.jar bar/target/b.jar bar/target/lol whitespace.jar" # this would be produced by a 'ls' command # We can execute the ls within the script, if it helps dostuffwith() { echo $1; }; F_LOCATIONS=$INPUT ALL_FILES=$(for f in …

4
อันตรายของการสร้างผู้ใช้ปกติด้วย UID <500 คืออะไร
อันตรายของการสร้างผู้ใช้ปกติด้วย UID &lt;500 คืออะไร สมมติว่า UID นั้นไม่ใช่ของ UID ที่มีอยู่ซ้ำสิ่งที่ผิดพลาด? นี่ไม่ใช่สิ่งที่ฉันต้องการทำ แต่สิ่งที่ฉันได้เห็นและต้องการทราบว่าทำไมไม่ควรทำ ในตัวอย่างนี้มันอยู่ใน RHEL5
14 rhel  users 

3
ฉันจะเขียน“ idempotent” .Xmodmap ได้อย่างไร
ขณะนี้ฉันมี.Xmodmapไฟล์ที่มีการเปลี่ยนแปลงของฉันCommandไปCtrlแล้วการเปลี่ยนแปลงของฉันCtrlไปSuper(ฉันใช้ Linux บน Mac) มันทำงานได้ค่อนข้างดีเมื่อรันเพียงครั้งเดียว แต่ทำงานต่อเนื่อง (เช่นเมื่อฉันรีสตาร์ทสภาพแวดล้อมเดสก์ท็อปของฉัน (Cinnamon) จะโหลด.Xmodmapไฟล์ซ้ำ) มันจะรีเซ็ตการตั้งค่าโดยการย้อนกลับการเปลี่ยนแปลง สลับระหว่างการตั้งค่าที่ฉันต้องการและการตั้งค่าดั้งเดิมได้อย่างมีประสิทธิภาพ ฉันจะเขียน.Xmodmapไฟล์ที่กำหนดการตั้งค่าได้เพียงครั้งเดียว แต่ไม่สามารถเปลี่ยนกลับมาทำงานต่อเนื่องได้อย่างไร นี่คือ.Xmodmapไฟล์ที่ฉันมีอยู่: clear control clear mod4 keycode 105 = keycode 206 = keycode 133 = Control_L NoSymbol Control_L keycode 134 = Control_R NoSymbol Control_R keycode 37 = Super_L NoSymbol Super_L add control = Control_L add control = Control_R
14 xorg  keyboard  xmodmap 

5
วิธีใช้การตั้งค่า `~ / .ssh / config` สำหรับแต่ละเซิร์ฟเวอร์โดยใช้ 'rsync'
ตอนนี้ฉันใช้ rsync พร้อม-e 'ssh -p 10022'ตัวเลือกเพื่อระบุพอร์ต ฉันมีการตั้งค่า SSH ~/.ssh/configแล้วใน Host myvps HostName example.com User ironsand Port 10022 ฉันสามารถใช้ config นี้จาก rsync ได้อย่างง่ายดายหรือไม่? หรือฉันสามารถสร้าง~/.rsyncและตั้งค่าพอร์ตเริ่มต้นสำหรับเซิร์ฟเวอร์ระบุได้หรือไม่?
14 ssh  rsync 

2
วิธีการพกพามากที่สุดในการเปิดตัวเครื่องจำลองเทอร์มินัลคืออะไร?
ว่าฉันต้องเขียนสคริปต์ที่จะเปิดตัว terminal และรันคำสั่งและฉันต้องการที่จะทำงานในระบบต่างๆ ฉันจะทำอย่างปลอดภัยและพกพาได้อย่างไร มีการxtermติดตั้งเสมอ? ฉันคิดว่า * nix ที่มี GUI ต้องมีเทอร์มินัลอีมูเลเตอร์บ้าง ฉันจะไปถึงได้อย่างไร ระบบเดเบียนมี x-terminal-emulatorแต่ที่เห็นได้ชัดว่าไม่ได้ทำงานใน Red Hat นับประสา non-Linux * nixes

2
สคริปต์เพื่อทดสอบแป้นคีย์บอร์ดอย่างรวดเร็วทั้งหมด
ฉันต้องตรวจสอบโน้ตบุ๊กบางตัวเพื่อหาแป้นคีย์บอร์ดที่ไม่ดีดังนั้นฉันจึงอยากเร่งความเร็วให้มากที่สุด ฉันไม่พบสิ่งใดสำหรับงานนี้ดังนั้นความคิดของฉันคือสคริปต์ที่อ่านคีย์ที่กดและรู้ว่าแป้นคีย์บอร์ดทั้งหมดดังนั้นฉันจึงสามารถทุบตีมันได้อย่างรวดเร็วและรายงานว่ายังไม่ได้กด ฉันคิดว่าฉันจะประสบความสำเร็จที่มีทั้งshowkeyหรือxev, grepping เอาท์พุท: xev | grep keysym ตัวอย่างผลลัพธ์: state 0x10, keycode 46 (keysym 0x6c, l), same_screen YES, state 0x10, keycode 33 (keysym 0x70, p), same_screen YES, state 0x11, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES, state 0x10, keycode 51 (keysym 0x5d, bracketright), same_screen YES, state 0x10, keycode 36 …
14 bash  grep  awk  keyboard  stdout 

1
วิธีเรียกใช้สคริปต์ในเชลล์เมื่อกดปุ่มทางลัด
ฉันจะรันสคริปต์ใน Shell ได้อย่างไรเมื่อกดปุ่มทางลัด โดยพื้นฐานแล้วสิ่งที่ฉันต้องการคือเมื่อกดคีย์ลัดสคริปต์ควรอ่านจากไฟล์และแสดงเนื้อหานั้นในเทอร์มินัล


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