Unix & Linux

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

3
ความแตกต่างระหว่าง ping -w และ ping -W คืออะไร
อะไรคือสิ่งที่-w(กำหนดเส้นตาย) ธงในpingหา? ฉันไม่พบคำอธิบายในpingหน้า man; ใช้สำหรับ-Wพารามิเตอร์วินาทีเท่านั้น อะไรคือความแตกต่างระหว่างพวกเขาและฉันจะตั้งค่าการหมดเวลา ping (ถ้าโฮสต์ไม่ตอบสนอง) ถึง 200ms อย่างไร
15 shell  ping  timeout 

7
bash loop ผ่านรายการของสตริง
เป็นไปได้หรือไม่ที่จะจัดรูปแบบตัวอย่างนี้: for i in string1 string2 stringN do echo $i done สิ่งที่คล้ายกับนี้: for i in string1 string2 stringN do echo $i done แก้ไข: ขออภัยในความสับสนไม่ทราบว่ามีวิธีการดำเนินการสคริปต์ที่แตกต่างกัน - sh <scriptname>เทียบกับbash <scriptname>และสิ่งที่ฉันไม่สามารถตั้งชื่อได้ตอนนี้ - #!/bin/shและ#!/bin/bash:)

1
Systemctl ลบยูนิตออกจากรายการที่ล้มเหลว
ฉันจะลบหน่วยออกจากsystemctl --failedรายการโดยไม่ต้องรีบูตเครื่องได้อย่างไร ความเป็นมา: ฉันมีรายการต่อไปนี้ในรายการ: ● openvpn-server@intranert.service loaded failed failed OpenVPN service for intranert สิ่งนี้เกิดขึ้นเพราะฉันสะกดคำผิดintranetซึ่งเป็นอินสแตนซ์ที่ใช้งานได้จริงในการเปิดใช้งานเทมเพลตหน่วยเมื่อไม่นานมานี้ อย่างไรก็ตามตอนนี้ฉันมักจะสับสนเมื่อมองอย่างรวดเร็วเมื่อฉันตรวจสอบหน่วยที่ล้มเหลวของเซิร์ฟเวอร์เนื่องจากดูเหมือนว่าบริการที่ได้ผลจริง ๆ จะล้มเหลวจนกว่าฉันจะรับรู้ถึงข้อผิดพลาดในการสะกดคำและจดจำการพิมพ์ผิดของฉัน

2
เอกสารประกอบของ = - (เท่ากับลบ) ในไฟล์ systemd unit
บนระบบ Archlinux ของฉัน /usr/lib/systemd/system/mdmonitor.serviceไฟล์มีบรรทัดเหล่านี้: [Service] Environment= MDADM_MONITOR_ARGS=--scan EnvironmentFile=-/run/sysconfig/mdadm ExecStartPre=-/usr/lib/systemd/scripts/mdadm_env.sh ExecStart=/sbin/mdadm --monitor $MDADM_MONITOR_ARGS ฉันสงสัย (ยืนยันโดย googling บางคน) ว่า=-หมายความว่าบริการไม่ควรล้มเหลวหากไฟล์ที่ระบุไม่มีอยู่ อย่างไรก็ตามฉันไม่พบพฤติกรรมดังกล่าวใน manpage ของไฟล์ systemd unit เอกสารอย่างเป็นทางการสำหรับการ=-มอบหมายอยู่ที่ไหน

3
ทำไม df และ Finder แสดงพื้นที่ดิสก์ที่แตกต่างกัน?
ในไดเรกทอรีบ้านdf -h $HOMEแสดง Filesystem Size Used Avail Use% Mounted on /dev/disk1 231G 177G 54G 77% / แต่ในตัวค้นหา ความคิดใด ๆ แก้ไข df -hเอาท์พุทที่แนบมา /dev/disk1 231G 177G 54G 77% / # this is memory disk /dev/disk2 7.0G 677M 6.4G 10% /Users/HOME/Library/Caches # this is an encrypted dmg /dev/disk3s2 9.3G 7.0G 2.3G 76% …
15 osx  disk-usage  finder 

1
แสดงการตั้งค่าแบบเต็มของ sshd
OpenSSH daemon มีหลายค่า "เริ่มต้น" สำหรับการตั้งค่า ดังนั้นการดูที่ sshd_config อาจไม่ทำให้ใครบางคนได้รับการตั้งค่าที่สมบูรณ์ วิธีการแสดงการกำหนดค่า sshd แบบเต็ม (สำหรับ OpenSSH)

1
ใน / dev, / proc และ / sys คืออะไร
หลังจากmountมีการแสดงรายการระบบไฟล์บางส่วน ฉันต้องการที่จะรู้ว่าสิ่งที่อยู่ใน/dev, และ/proc /sysตัวอย่างบางส่วนจะดีมาก!

2
อธิบายไฟล์และทางแยก
เมื่อเด็กถูกแยกแล้วมันจะสืบทอดตัวบ่งชี้ไฟล์ของผู้ปกครองถ้าเด็กปิดตัวอธิบายไฟล์จะเกิดอะไรขึ้น? หากเด็กเริ่มเขียนสิ่งที่จะเกิดขึ้นกับไฟล์ที่ส่วนท้ายของผู้ปกครอง? ใครเป็นผู้จัดการความไม่สอดคล้องกันเคอร์เนลหรือผู้ใช้เหล่านี้ เมื่อกระบวนการเรียกใช้closeฟังก์ชันเพื่อปิดไฟล์ที่เปิดเฉพาะผ่าน file descriptor ในตารางไฟล์ของกระบวนการจำนวนการอ้างอิงจะลดลงหนึ่งรายการ แต่เนื่องจากพาเรนต์และชายด์กำลังถือไฟล์เดียวกันการนับการอ้างอิงคือ 2 และหลังจากปิดจึงลดลงเหลือ 1 เนื่องจากกระบวนการไม่เป็นศูนย์กระบวนการยังคงใช้ไฟล์ต่อโดยไม่มีปัญหาใด ๆ ดูที่การเขียนโปรแกรมระบบ UNIX ของ Terrence Chan (รองรับเคอร์เนล Unix สำหรับไฟล์)

2
ตั้งค่าสีแท็บ tmux ที่แอ็คทีฟ
เป็นไปได้หรือไม่ที่จะเปลี่ยนพื้นหลังของแท็บ tmux ปัจจุบัน (ปัจจุบัน)? ฉันใช้tmux 1.9บน Ubuntu 15.04 $ tmux -V tmux 1.9 ฉันพยายามทำ: set-option -g pane-active-border-fg red แต่ผลลัพธ์ไม่เปลี่ยนแปลง: ฉันคาดว่า3-bash*จะมีพื้นหลังสีแดง

1
ทำให้ Debian Bleeding Edge
ฉันติดตั้ง Debian 6 ไว้ในคอมพิวเตอร์ของฉันและเมื่อฉันติดตั้งเมื่อปีที่แล้วฉันรู้ว่ามีระบบที่เสถียรสำหรับความต้องการของฉัน ฉันไม่สนใจเกี่ยวกับความใหม่ของแพ็คเกจ ตอนนี้ความคิดเห็นของฉันกลับด้านฉันรู้สึกว่าฉันต้องการเลือดออกมากกว่าความมั่นคง มีวิธีใดที่จะทำให้ Debian Bleeding Edge? สำหรับ Ubuntu ฉันพบ PPAs สองสามรุ่นที่อัปเดตแพ็กเกจบางอย่าง แต่ไม่พบคำแนะนำที่ดีสำหรับ Debian เคล็ดลับใด ๆ
14 debian 

3
ความสัมพันธ์ระหว่างการเรียกของระบบการส่งข้อความและการขัดจังหวะคืออะไร?
ฉันอ่านบทความวิกิพีเดียสำหรับการจัดการกระบวนการ ฉันมุ่งเน้นไปที่ Linux ฉันไม่สามารถหาความสัมพันธ์และความแตกต่างระหว่างการเรียกของระบบการส่งข้อความและขัดจังหวะในแนวคิดและวัตถุประสงค์ของพวกเขา พวกเขาทั้งหมดสำหรับกระบวนการในการร้องขอเคอร์เนลสำหรับทรัพยากรและบริการ? บางคำพูดจากบทความและอื่น ๆ : มีสองวิธีที่เป็นไปได้สำหรับระบบปฏิบัติการที่จะได้รับการควบคุมของหน่วยประมวลผลในระหว่างการดำเนินการของโปรแกรมเพื่อให้ระบบปฏิบัติการที่จะทำการจัดสรรหรือการจัดสรร: กระบวนการออกสายระบบ (บางครั้งเรียกว่าซอฟต์แวร์ขัดจังหวะ); ตัวอย่างเช่นคำขอ I / O เกิดขึ้นเพื่อขอให้เข้าถึงไฟล์บนฮาร์ดดิสก์ การขัดจังหวะของฮาร์ดแวร์เกิดขึ้น ตัวอย่างเช่นมีการกดแป้นบนแป้นพิมพ์หรือตัวจับเวลาหมด (ใช้ในมัลติทาสก์แบบ pre-emptive) มีสองเทคนิคที่โปรแกรมดำเนินการในโหมดผู้ใช้สามารถร้องขอบริการของเคอร์เนลได้: * System call * Message passing อินเทอร์รัปต์เป็นสัญญาณอะซิงโครนัสที่ระบุถึงความต้องการความสนใจหรือเหตุการณ์ซิงโครนัสในซอฟต์แวร์ที่ระบุถึงความต้องการการเปลี่ยนแปลงในการดำเนินการ ฮาร์ดแวร์ขัดจังหวะทำให้โปรเซสเซอร์บันทึกสถานะของการดำเนินการและเริ่มต้นการดำเนินการของตัวจัดการขัดจังหวะ การขัดจังหวะของซอฟต์แวร์มักจะนำมาใช้เป็นคำแนะนำในชุดคำสั่งซึ่งทำให้การสลับบริบทเป็นตัวจัดการขัดจังหวะคล้ายกับการขัดจังหวะฮาร์ดแวร์

2
การล้างหน้าจอ GNU หลังจากแอปพลิเคชันเต็มหน้าจอ
เมื่อทำงานที่ xterm ปกติ (ไม่แน่ใจเกี่ยวกับเทอร์มินัล "ของจริง") เมื่อปิดโปรแกรมแบบเต็มหน้าจอเช่น man หรือ vim โปรแกรมจะหายไปออกจากหน้าจอเพื่อให้คุณเห็นข้อความแจ้งเตือนและหน้าจอก่อนหน้าของคุณ เปิดตัวโปรแกรมที่ปิด เมื่อฉันทำงานภายในหน้าจอ GNU แต่เมื่อปิดโปรแกรมแล้วมันไม่ชัดเจน แต่เลื่อนขึ้นเพื่อให้สามารถแสดงพรอมต์ได้ สำหรับฉันนี่น่าเกลียดและฉันต้องการทราบว่าพฤติกรรม "ปกติ" สามารถกลับมาทำงานต่อได้หรือไม่ ฉันรู้ว่าฉันสามารถล้างหน้าจอด้วยตนเองได้ด้วยตนเอง แต่ a) ฉันไม่ต้องการและ b) ที่จะส่งผลให้หน้าจอที่ชัดเจนโดยสิ้นเชิงไม่ใช่สิ่งที่ฉันหลังจาก (แม้ว่าอาจจะดีกว่าถ้าเป็นสิ่งที่ดีที่จะได้รับ) .

3
จะเกิดอะไรขึ้นเมื่อไฟล์ที่เพจได้ 100% ในเพจแคชได้รับการแก้ไขโดยกระบวนการอื่น
ฉันรู้ว่าเมื่อมีการแก้ไขหน้าแคชหน้ามันมีการทำเครื่องหมายสกปรกและต้องมีการเขียนกลับ แต่สิ่งที่เกิดขึ้นเมื่อ สถานการณ์จำลอง: ไฟล์ / apps / EXE ซึ่งเป็นไฟล์ที่เรียกทำงานได้ถูกทำเพจไว้ในแคชของเพจอย่างสมบูรณ์ (เพจทั้งหมดอยู่ในแคช / หน่วยความจำ) และถูกดำเนินการโดยกระบวนการ P ปล่อยอย่างต่อเนื่องแล้วแทนที่ / apps / EXE ด้วยปฏิบัติการใหม่ล่าสุด ข้อสันนิษฐานที่ 1: ฉันถือว่ากระบวนการ P (และทุกคนที่มีตัวอธิบายไฟล์ที่อ้างอิงถึงไฟล์ปฏิบัติการเก่า) จะยังคงใช้ไฟล์เก่าต่อไปในหน่วยความจำ / แอป / EXE โดยไม่มีปัญหาและกระบวนการใหม่ที่พยายามเรียกใช้เส้นทางนั้น ปฏิบัติการใหม่ ข้อสันนิษฐานที่ 2: ฉันสมมติว่าหากไม่มีการแมปหน้าไฟล์ทั้งหมดในหน่วยความจำสิ่งต่าง ๆ ก็จะถูกต้องจนกว่าจะมีข้อผิดพลาดของหน้าซึ่งต้องใช้หน้าจากไฟล์ที่ถูกแทนที่และอาจเป็น segfault หรือไม่ คำถามที่ 1: ถ้าคุณ mlock ทุกหน้าของไฟล์ด้วย vmtouch สิ่งนั้นเปลี่ยนแปลงสถานการณ์ได้หรือไม่? คำถามที่ 2: หาก / …

1
เหตุใดฉันจึงต้องแทรก 12 อักขระเพื่อล้างบรรทัดคำสั่ง bash นี้
ฉันเปิดสถานี xterm (80 คอลัมน์ x 24 สาย) จากนั้นก็วิ่ง$ bash --norc --noprofileแล้ว$ ttyจะได้รับชื่อไฟล์ของขั้ว: /dev/pts/9ออกเป็น จากเทอร์มินัลอื่นฉันรัน: $ printf foo >/dev/pts/9 fooถูกพิมพ์ลงบนบรรทัดคำสั่งของเชลล์ในเทอร์มินัลแรก หากฉันกดC-uเพื่อเรียกใช้unix-line-discard(ชื่อฟังก์ชั่นที่กำหนดโดย$ bind -P | grep -i c-u) fooจะไม่ถูกลบออก ถ้าผมใส่ 11 ช่องว่างและกดC-uช่องว่างจะถูกลบออก fooแต่ไม่ ถ้าผมใส่ 12 ช่องว่างและกดช่องว่างจะถูกลบออกเช่นเดียวกับC-ufoo ทำไมฉันไม่สามารถลบออกได้fooเมื่อฉันกดC-uในขณะที่เคอร์เซอร์อยู่ข้างหลังและทำไมฉันต้องแทรก 12 ตัวอักษรเพื่อลบออก? สิ่งแวดล้อม: $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: …

2
ทำไมฉันถึงได้ผลลัพธ์ที่ไม่สม่ำเสมอเมื่อใช้ $ RANDOM
ฉันอ่านเกี่ยวกับ RNGs บนWikipediaและ$RANDOMฟังก์ชั่นบนTLDPแต่มันไม่ได้อธิบายผลลัพธ์นี้: $ max=$((6*3600)) $ for f in {1..100000}; do echo $(($RANDOM%max/3600)); done | sort | uniq -c 21787 0 22114 1 21933 2 12157 3 10938 4 11071 5 ทำไมค่าด้านบนประมาณ 2 เท่ามีแนวโน้มที่จะเป็น 0, 1, 2, 3, 4, 5 แต่เมื่อฉันเปลี่ยนโมดูโลสูงสุดพวกมันเกือบจะกระจายไปทั่วทั้ง 10 ค่าเท่ากัน? $ max=$((9*3600)) $ for f in {1..100000}; …
14 random 

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