Unix & Linux

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

6
คุณจะตรวจสอบว่าไฟล์มีอยู่ใน awk ได้อย่างไร? [-d 'filename'] ล้มเหลว
ฉันกำลังพยายามสร้างรายชื่อผู้ใช้ที่มีชุดโฮมไดเรกทอรีซึ่งไม่มีอยู่จริง ดูเหมือนว่าฉันควรทำสิ่งนี้ด้วย awk แต่มีบางอย่างผิดปกติกับไวยากรณ์ของฉัน มันบอกฉันว่า "ไวยากรณ์ไม่ถูกต้อง" ที่] ผมทำอะไรผิดหรือเปล่า? awk -F: '{ if(![ -d "$6"]){ print $1 " " $3 " " $7}}' /etc/passwd รหัสสุดท้ายที่ฉันอาจจะใช้คือ: awk -F: '{if(system( "[ -d " $6 " ]") == 1 && $7 != "/sbin/nologin" ) {print "The directory " $6 " does not exist for …
10 bash  awk  directory 

1
ตัวเลือกการเมาท์ 'seclabel' ทำอะไร
ฉันใช้ Nagios และ check_mk เพื่อตรวจสอบเซิร์ฟเวอร์บางตัว ฉันได้รับคำเตือนหลายครั้งเกี่ยวกับตัวเลือกการเมานต์ของเซิร์ฟเวอร์สองสามตัว ข้อความคือ: 'ตกลง - ขาดหายไป: seclabel' ฉันหาเอกสารเกี่ยวกับ seclabel ไม่พบ สิ่งเดียวที่ฉันพบได้คือมันอาจเกี่ยวข้องกับ selinux บางทีฉันอาจเพิ่ม seclabel ลงในตัวเลือกการเมานท์ แต่ฉันอยากรู้ว่ามันทำอะไรและทำไมมันถึงมีอยู่ก่อน ดังนั้นคำถามของฉันคือตัวเลือกเมาท์ seclabel มีไว้เพื่ออะไร
10 linux  mount 

1
นักเทียบท่า - วิธีการเรียกใช้ x สก์ท็อปในภาชนะบรรจุหรือไม่?
ฉันพยายามตั้งค่าเครื่องลีนุกซ์ของฉันให้ใช้งานระบบปฏิบัติการ guest หลายระบบหนึ่งในนั้นคือ Windows VM และอีกหนึ่งคอนเทนเนอร์ Linux เป้าหมายที่นี่คือการป้องกันไม่ให้ฉันทำระบบโฮสต์ในขณะที่มีอิสระในการใช้งานระบบปฏิบัติการพื้นฐานและเล่นกับฮาร์ดแวร์โฮสต์ ในที่สุดบนรันเดสก์ท็อปของฉันในคอนเทนเนอร์ฉันหวังว่าจะเรียกใช้การจำลองด้วยกราฟิกเร่งความเร็ว ฯลฯ เนื่องจาก Docker มีเวอร์ชันในตัวที่คล้ายกับคอมไพล์เช่นคอมไพล์มันจึงเป็นความคิดที่ดีที่จะใช้มัน บางที libvirt อาจทำได้ดีเช่นเดียวกับ LXC แต่โหมดสิทธิพิเศษของนักเทียบท่าช่วยให้ไม่ต้องกำหนดค่าอุปกรณ์กับคอนเทนเนอร์ ฉันทำวิจัยเล็กน้อยและได้คำตอบสองสามข้อแล้ว แต่ฉันมีปัญหาในการรวมมันเข้าด้วยกัน พื้นหลังใน LXC การรัน X จาก LXCช่วยให้ฉันเห็นว่าฉันสามารถกำหนดค่าคอนเทนเนอร์ด้วย (เช่น) ได้อย่างไร: lxc.cgroup.devices.allow = c 226:0 rwm และการใช้ mknod -m 666 dri/card0 c 226 0 ภายในคอนเทนเนอร์เพื่อเชื่อมต่อกับอุปกรณ์โฮสต์ นักเทียบท่า จากcuda - การใช้ GPU จากตู้เทียบท่าฉันเห็นว่าฉันสามารถตั้งค่าแบบเดียวกันให้ทำงานใน Docker ด้วยแบ็กเอนด์ …


2
เขียนทับโค้ดสองสามตัวด้วย XKB
ฉันต้องการสับเปลี่ยนปุ่มสองสามปุ่มด้วย XKB (เพราะเหตุใดบนแล็ปท็อปที่มีปุ่มบางปุ่มอยู่ไม่สะดวก) ปัจจุบันฉันใช้ xmodmap: keycode 110 = Prior keycode 115 = Delete keycode 112 = Next keycode 117 = Insert keycode 119 = End keycode 118 = Home แต่ฉันต้องการใช้ XKB และกำหนดชื่อสัญลักษณ์ที่แตกต่างกันสำหรับฟิสิคัลคีย์บางตัวแทนที่จะกำหนด keysyms ที่แตกต่างให้กับคีย์โค้ดบางตัว ( นี่คือเหตุผลว่าทำไม.) ฉันต้องการ keycode 110 เพื่อส่งPGUPแทนHOME, keycode 115 เพื่อส่งDELEแทนENDฯลฯ ส่วนที่เหลือของการกำหนดค่าจะต้องไม่ได้รับผลกระทบ (ดังนั้นPGUPเพื่อให้การส่ง keysym Priorฯลฯ และกุญแจอื่น ๆ ทั้งหมดยังคงอยู่ …

3
การแทนที่คำสั่งสามารถซ้อนในการแทนที่ตัวแปรได้หรือไม่?
ฉันต้องการใช้การทดแทนตัวแปรบนสตริงเฉพาะที่ฉันเข้าถึงผ่านคำสั่ง ตัวอย่างเช่นหากฉันคัดลอกบางสิ่งลงในคลิปบอร์ดของฉันฉันสามารถเข้าถึงได้เช่นนี้ $ xclip -o -selection clipboard Here's a string I just copied. หากฉันกำหนดให้กับตัวแปรดังนั้นฉันสามารถทำการทดแทนตัวแปรได้ $ var=$(xclip -o -selection clipboard) $ echo $var Here's a string I just copied. $ echo ${var/copi/knott} Here's a string I just knotted. อย่างไรก็ตามมีวิธีการเปลี่ยนตัวแปรโดยไม่ต้องกำหนดให้กับตัวแปรหรือไม่? แนวคิดบางอย่างเช่นนี้ $ echo ${$(xclip -o -selection clipboard)/copi/knott} bash: ${$(xclip -o -selection clipboard)/copi/knott}: …

3
การแก้ไขไบนารีระหว่างการประมวลผล
ฉันมักจะเจอสถานการณ์เมื่อพัฒนาซึ่งฉันกำลังทำงานกับไฟล์ไบนารีพูดa.outในพื้นหลังเพราะมันทำงานได้ยาวมาก ในขณะที่ทำเช่นนั้นฉันทำการเปลี่ยนแปลงรหัส C ซึ่งผลิตa.outและรวบรวมa.outอีกครั้ง จนถึงตอนนี้ฉันไม่ได้มีปัญหาใด ๆ กับเรื่องนี้ กระบวนการที่ทำงานอยู่a.outดำเนินต่อไปตามปกติไม่เคยล้มเหลวและจะเรียกใช้รหัสเดิมที่เริ่มต้น อย่างไรก็ตามการพูดa.outเป็นไฟล์ขนาดใหญ่อาจเทียบได้กับขนาดของ RAM จะเกิดอะไรขึ้นในกรณีนี้ และบอกว่ามันเชื่อมโยงกับไฟล์วัตถุที่ใช้ร่วมกันจะเกิดlibblas.soอะไรขึ้นถ้าฉันแก้ไขlibblas.soในช่วงรันไทม์? อะไรจะเกิดขึ้น? คำถามหลักของฉันคือ - ไม่รับประกัน OS ที่ว่าเมื่อผมทำงานa.outแล้วรหัสเดิมมักจะทำงานได้ตามปกติตามเดิมไบนารีโดยไม่คำนึงถึงขนาดของไบนารีหรือ.soไฟล์มันเชื่อมโยงไปแม้ในขณะที่เหล่านั้น.oและ.soไฟล์ modfied ระหว่าง Runtime? ฉันรู้ว่ามีคำถามเหล่านี้ที่จัดการปัญหาที่คล้ายกัน: /programming/8506865/when-a-binary-file-runs-does-itoes-copy-its-entire-binary-data-into-memory -At ครั้งเดียว จะเกิดอะไรขึ้นถ้าคุณแก้ไขสคริปต์ในระหว่างการดำเนินการ? เป็นไปได้อย่างไรที่จะทำการอัพเดทสดขณะที่โปรแกรมกำลังทำงานอยู่? ซึ่งช่วยให้ฉันเข้าใจเพิ่มเติมเกี่ยวกับเรื่องนี้เล็กน้อย แต่ฉันไม่คิดว่าพวกเขาจะถามสิ่งที่ฉันต้องการอย่างแน่นอนซึ่งเป็นกฎทั่วไปสำหรับผลที่ตามมาของการปรับเปลี่ยนไบนารีในระหว่างการดำเนินการ
10 linux  binary 

4
การแลกเปลี่ยนสามารถปิดการใช้งานในระดับแอปพลิเคชันหรือไม่
ขณะนี้ฉันใช้ธันเดอร์เบิร์ดกับ gnupg เพื่ออ่านอีเมลที่เข้ารหัส หากฉันเข้าใจพฤติกรรมการสลับอย่างถูกต้องหน้าหน่วยความจำที่มีอีเมลที่ถอดรหัสอาจถูกสลับออกและทิ้งร่องรอยไว้ในฮาร์ดดิสก์ซึ่งในทางทฤษฎีอาจถูกกู้คืนในทางนิติเวชในภายหลัง แม้ว่าจะเป็นไปได้ที่จะใช้เพียงแค่ swapfile ที่เข้ารหัสหรือปิดการแลกเปลี่ยนทั่วโลกในช่วงระยะเวลาของการใช้ไฟล์ที่ละเอียดอ่อน แต่ก็ส่งผลกระทบต่อประสิทธิภาพการทำงานอาจถูกลืมและต้องใช้สิทธิ์พิเศษ เป็นไปได้หรือไม่ที่จะทำเครื่องหมายไฟล์หรือโปรแกรมบางอย่างว่าไม่ต้องการสลับ แม้ไม่มีการเข้าถึงรูท ใครสามารถเขียนแอปพลิเคชันที่สามารถแจกจ่ายให้กับผู้ใช้ที่ไร้เดียงสาในทางเทคนิคและเนื้อหาของหน่วยความจำที่ไม่เคยถูกสับเปลี่ยนไปยังดิสก์ได้หรือไม่?
10 encryption  swap 

3
ไพพ์สคริปต์ด้วย“ อ่าน” เพื่อทุบตี
ฉันต้องการเรียกใช้สคริปต์โดยการไพพ์สคริปต์ผ่านbashด้วยwget(แทนที่จะรันสคริปต์โดยตรงด้วยการทุบตี) $ wget -O - http://example.com/my-script.sh | bash มันไม่ทำงานเพราะสคริปต์ของฉันมีreadข้อความอยู่ ด้วยเหตุผลบางอย่างสิ่งเหล่านี้ใช้ไม่ได้เมื่อไปป์เพื่อทุบตี: # Piping to bash works in general $ echo 'hi' hi $ echo "echo 'hi'" | bash hi # `read` works directly $ read -p "input: " var input: <prompt> # But not when piping - returns immediately $ echo …
10 bash  shell  pipe  read 

4
กลับมาทำงาน DD ของดิสก์ทั้งหมด
ฉันเขียนทับฮาร์ดไดรฟ์ของฉันด้วยข้อมูลแบบสุ่มโดยใช้เครื่องมือตัวเก่าdd: dd if=/dev/urandom of=/dev/disk/by-uuid/etc bs=512 มันเป็นอาร์เรย์ขนาด 2TB และ MacBook ของฉัน (ใช้ Linux ได้ไหม?) สามารถเขียนข้อมูลได้ที่ประมาณ 3.7MB / s เท่านั้นซึ่งเป็นเรื่องที่น่าสมเพชเพราะฉันเห็นเดสก์ท็อปของฉันอยู่ที่ 20MB / s เมื่อฉันกลับบ้านคืนนี้ฉันต้องการหยุดการddวิ่งที่นี่พากลับบ้านและดูความคืบหน้าของเครื่องจักรที่ทรงพลังมากขึ้นในชั่วข้ามคืน ฉันได้รับการตรวจสอบความคืบหน้าโดยใช้ลูปง่าย ๆ : while true; do kill -USR1 $PID ; sleep 10 ; done ผลลัพธ์มีลักษณะดังนี้: 464938971+7 records in 464938971+7 records out 238048755782 bytes (238 GB) copied, 64559.6 s, …
10 dd 

1
ไม่สามารถกำหนดค่า eth1 และ eth2 ได้อย่างถูกต้องบน Ubuntu
ฉันใหม่สำหรับการบริหารเครือข่ายอย่างสมบูรณ์และฉันก็พบว่ามันค่อนข้างยาก ฉันมีเครื่องที่มี 1 อินเตอร์เฟสฉันต้องตั้งค่าเป็น subnet 10.0.20.0/24, อีก 10.1.0.0/24 และที่สามเป็น 10.128.0.0/24 eth0 ของฉันกำลังทำงานอยู่และคำสั่ง ifconfig แสดงผลลัพธ์: eth0 Link encap:Ethernet HWaddr fa:16:3e:31:bc:c9 inet addr:10.0.20.3 Bcast:10.0.20.255 Mask:255.255.255.0 inet6 addr: fe80::f816:3eff:fe31:bcc9/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1454 Metric:1 RX packets:8941 errors:0 dropped:0 overruns:0 frame:0 TX packets:5324 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:5662823 (5.6 …
10 networking 

3
เมาส์บลูทู ธ ตัดการเชื่อมต่อ
ฉันใช้ Debian Jessie (ทดสอบ) ฉันมีเมาส์บลูทู ธ (Microsoft Sculpt Comfort) และฉันสามารถจับคู่และใช้งานได้ แต่หลังจากไม่มีการใช้งาน (ประมาณ 10 นาที) มันหยุดทำงานฉันต้องกดปุ่มตั้งค่าที่ค้นพบบนเมาส์ด้วยตนเองและอีกครั้ง จับคู่บนบรรทัดคำสั่ง เมาส์ตัวเดียวกับที่ฉันลองบน OS X และใช้งานได้ดังนั้นจึงไม่ใช่ปัญหาฮาร์ดแวร์ เคอร์เนล 3.14.12-1 (2014-07-11) ฉันจับคู่เมาส์กับคำสั่งนี้: sudo hidd --connect 30:59:B7:72:A5:A7 เมื่อจับคู่อย่างถูกต้องนี่คือเอาต์พุต/ var / log / syslog Jan 7 15:22:42 desktop hidd: New HID device 30:59:B7:72:A5:A7 (Microsoft Bluetooth Mouse ) Jan 7 15:22:42 …
10 debian  usb  mouse  bluetooth 

6
วิธีการแทนที่รูปแบบที่ N เกิดขึ้นในไฟล์ได้อย่างไร
วิธีแทนที่สตริงที่สามในไฟล์โดยใช้sedคำสั่ง ตัวอย่าง: เปลี่ยนเฉพาะเหตุการณ์ที่สามของisเป็นusในไฟล์ ไฟล์อินพุตของฉันประกอบด้วย: hai this is linux. hai this is unix. hai this is mac. hai this is unchanged. ฉันคาดหวังผลลัพธ์คือ: hai this is linux. hai thus is unix. hai this is mac. hai this is unchanged.

4
reinit NFS ไคลเอนต์โดยไม่ต้องเริ่มต้นใหม่
ฉันทำงานบนเซิร์ฟเวอร์ของฉันซึ่งฉันส่งออกหนึ่งไดเรกทอรีโดยใช้ NFS แน่นอนว่าในช่วงหนึ่งสัปดาห์หรือมากกว่านั้นในการรีบูทเซิร์ฟเวอร์ฉันลืมไปหลายครั้งumountว่าระบบไฟล์ส่งออกในเวิร์กสเตชันของฉัน (ซึ่งติดตั้งจากการ/etc/fstabบูต) ในระหว่างที่ฉันสามารถumountหลังจากข้อเท็จจริงและจำนวนใหม่ (ฉันไม่ได้ใช้autofs): umount -fl /data0 mount /data0 แต่มันใช้งานไม่ได้อีกต่อไป ฉันไม่สามารถเมานท์ไดเร็กทอรีที่เอ็กซ์พอร์ตจากเซิร์ฟเวอร์บนไดเร็กทอรีอื่น (mount hangs) แต่ฉันสามารถเมานต์ nfs ที่ส่งออก dir บนเครื่องเสมือนที่ทำงานบนเวิร์กสเตชันของฉัน สิ่งที่ฉันพยายามที่เป็นลบ ( rmmod) nfsและnfsv3โมดูล (ซึ่งจะไม่ทำงาน: Resource temporarily unavailable) lsofแฮงค์ ไม่ได้แสดงอะไรที่ติดตั้งผ่านทางmount nfsนี่อาจเป็นผลมาจากการใช้ 'umount -l' หลายครั้ง แต่สองครั้งแรกนี้ทำงานได้โดยไม่มีปัญหา ฉันรีสตาร์ทเซิร์ฟเวอร์ในเวลาเฉลี่ยหลังจากไม่สามารถเมานต์โดยไม่ทำอะไรเลย service nfs-kernel-server restartฉันยังใช้ ฉันสงสัยว่าทุกอย่างจะกลับมาเป็นปกติถ้าฉันรีสตาร์ทเวิร์กสเตชันลูกค้า มีวิธีการกู้คืนจากนี้และกำหนดค่าด้านไคลเอนต์ nfs บนเวิร์กสเตชันของฉันโดยไม่ต้องรีบูตหรือไม่ หากฉันไม่สามารถแก้ไขได้หากไม่รีบูตเครื่องนี่จะไม่เกิดขึ้นอีกหากฉันเริ่มใช้งานautofsหรือไม่ lsof -b แฮงค์ด้วยบรรทัดสุดท้ายเป็น: lsof: avoiding readlink(/run/user/1001/gvfs): …
10 nfs 

4
ตรวจสอบว่าไฟล์ถูกแก้ไขหรือไม่
ใน Linux (ปัจจุบันใช้ระบบไฟล์ ext4) จะสามารถตรวจสอบได้อย่างรวดเร็วว่าเนื้อหาของไฟล์ถูกแก้ไขโดยไม่อ่านเนื้อหาใด ๆ ของมันอย่างไร เป็นstatคำสั่งวิธีการที่แนะนำ? ฉันกำลังทำ $ stat --format "%Y" hello.txt และต่อมาฉันสามารถตรวจสอบว่าคำสั่งเดียวกันให้ผลลัพธ์เดียวกันหรือไม่ หากเป็นเช่นนั้นฉันสรุปได้ว่า hello.txt ไม่ได้เปลี่ยนไป ความรู้สึกของฉันคือคนต้องการที่จะโยนพารามิเตอร์เพิ่มเติมเพื่อให้แน่ใจยิ่งขึ้น ตัวอย่างเช่นจะเพิ่มขนาดไฟล์ชื่อไฟล์ ฯลฯ ให้ "ลายนิ้วมือ" ของไฟล์ที่ดียิ่งขึ้นหรือไม่ ในหัวข้อนี้ฉันจำได้ว่าไดรฟ์ข้อมูล TrueCrypt ที่ฉันเคยได้รับมักจะถูกละเว้นโดยโปรแกรมสำรองข้อมูลส่วนเพิ่มของฉันอาจเป็นเพราะ TrueCrypt ทำให้แน่ใจว่าไม่มีการเปลี่ยนแปลงข้อมูลเมตา ฉันคิดว่ามันเป็นไปได้จริง ๆ ที่จะเปลี่ยนแปลงข้อมูลทั้งหมดที่ส่งคืนโดยstatดังนั้นจึงไม่สามารถรับประกันได้ว่าจะรับทุกการเปลี่ยนแปลงที่เป็นไปได้ของไฟล์หรือไม่
10 files  timestamps  stat 

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