Unix & Linux

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

2
ทำไม tar ดูเหมือนจะข้ามเนื้อหาไฟล์เมื่อไฟล์ที่ส่งออกเป็น / dev / null?
ฉันมีไดเรกทอรีที่มีข้อมูลมากกว่า 400 GiB ฉันต้องการตรวจสอบว่าไฟล์ทั้งหมดสามารถอ่านได้โดยไม่มีข้อผิดพลาดดังนั้นวิธีที่ง่าย ๆ ที่ฉันคิดก็คือการนำtarไป/dev/nullใช้ แต่ฉันกลับเห็นพฤติกรรมต่อไปนี้แทน: $ time tar cf /dev/null . real 0m4.387s user 0m3.462s sys 0m0.185s $ time tar cf - . > /dev/null real 0m3.130s user 0m3.091s sys 0m0.035s $ time tar cf - . | cat > /dev/null ^C real 10m32.985s user 0m1.942s sys 0m33.764s …
21 tar  null 

2
เหตุใดแบ็กสแลชจึงรวมอยู่ในเชลล์สคริปต์นี้
ในสำเนาconda.shสคริปต์ของฉันฉันเห็นบรรทัดต่อไปนี้: if [ -n "${_CE_CONDA}" ] && [ -n "${WINDIR+x}" ]; then SYSP=$(\dirname "${CONDA_EXE}") else SYSP=$(\dirname "${CONDA_EXE}") SYSP=$(\dirname "${SYSP}") fi ผมอยากรู้ว่าทำไมถึงมีการทับขวาในด้านหน้าในd dirnameฉันไม่เชื่อว่ามีความจำเป็น การใช้แบ็กสแลชนี้ปรากฏในที่อื่นในไฟล์ต้นฉบับ มีเหตุผลในการทำสิ่งนี้ที่ฉันหายไปหรือไม่?

3
จะเกิดอะไรขึ้นถ้าคุณลบไฟล์อุปกรณ์
ฉันรู้เกี่ยวกับไฟล์ที่อยู่ใต้ / dev คร่าวๆ ฉันรู้ว่ามีสองประเภท (ตัวอักษร / บล็อก) การเข้าถึงไฟล์เหล่านี้สื่อสารกับไดรเวอร์ในเคอร์เนล ฉันต้องการทราบว่าจะเกิดอะไรขึ้นหากฉันลบไฟล์หนึ่ง - โดยเฉพาะสำหรับไฟล์ทั้งสองประเภท ถ้าฉันลบไฟล์อุปกรณ์บล็อกให้พูดว่า/dev/sdaมันจะมีผลกระทบอะไร - ถ้ามี - มีอะไรบ้าง ฉันเพิ่ง unmount ดิสก์หรือไม่ ในทำนองเดียวกัน/dev/mouse/mouse0จะเกิดอะไรขึ้นถ้าฉันลบ- จะเกิดอะไรขึ้น เมาส์หยุดทำงานหรือไม่ มันจะแทนที่ตัวเองโดยอัตโนมัติหรือไม่ ฉันสามารถลบไฟล์เหล่านี้ได้หรือไม่? ถ้าฉันตั้งค่า VM ฉันจะลอง

3
Linux บอกเธรดนอกเหนือจากกระบวนการย่อยได้อย่างไร
task_structลินุกซ์ไม่จริงความแตกต่างระหว่างกระบวนการและหัวข้อและการดำเนินการทั้งสองเป็นโครงสร้างข้อมูล ดังนั้นลินุกซ์ให้อะไรกับบางโปรแกรมเพื่อบอกเธรดของกระบวนการจากกระบวนการลูก? ตัวอย่างเช่นมีวิธีดูรายละเอียดของเธรดทั้งหมดที่กระบวนการมีใน Linux หรือไม่? ขอบคุณ
21 linux  process  thread 


10
Shell: เป็นไปได้ไหมที่จะชะลอคำสั่งโดยไม่ใช้ `sleep '?
มีการทดแทนทางเลือกหรือเทคนิคทุบตีสำหรับการชะลอคำสั่งโดยไม่ใช้sleepหรือไม่? ตัวอย่างเช่นการแสดงคำสั่งด้านล่างโดยไม่ใช้สลีปจริง: $ sleep 10 && echo "This is a test"

2
คำศัพท์เกี่ยวกับบรรทัดคำสั่ง: ส่วนใดบ้างของคำสั่งที่เรียกว่า
ที่บรรทัดคำสั่งฉันมักจะใช้คำสั่ง "ง่าย" เช่น mv foo/bar baz/bar แต่ฉันไม่รู้ว่าจะเรียกทุกส่วนของสิ่งนี้: ┌1┐ ┌──2───┐ git checkout master │ └──────3──────┘ └───────4─────────┘ ผม (คิดว่าฉัน) รู้ว่า1เป็นคำสั่งและ2เป็นข้อโต้แย้งและผมอาจจะเรียก3รายการอาร์กิวเมนต์ (คือว่าถูกต้องหรือไม่) แต่ผมไม่ทราบว่าจะเรียก4 ป้ายกำกับ "คำสั่ง" ที่ซับซ้อนมากขึ้นอย่างไร find transcripts/?.? -name '*.txt' | parallel -- sh -c 'echo $1 $2' {} {/} ฉันขอขอบคุณคำตอบที่แยกสิ่งที่จะเรียก 1,2,3,4 และสิ่งที่เรียกส่วนต่างๆของเช่น "คำสั่ง" ด้านบนนี้ มันจะเป็นการดีที่ได้เรียนรู้เกี่ยวกับสิ่งอื่น ๆ ที่ไม่เหมือนใคร / แปลกใจที่ฉันไม่ได้รวมอยู่ที่นี่

1
`I '(i ตัวพิมพ์ใหญ่) หมายถึงอะไรใน` ps aux`?
ในหน้าคนของpsภายใต้กระบวนการรหัสรัฐที่Iธง (เมืองหลวง i) ไม่ได้กล่าวถึง แต่ps auxการแสดงIธงในกระบวนการบางอย่างที่แสดงโดยภาพด้านล่าง การตั้งค่าสถานะฉันหมายถึงอะไร
21 ps 

1
คำสั่ง gpg - รายการคีย์จะแสดงผลลัพธ์ uid [ไม่ทราบ] หลังจากนำเข้าคีย์ส่วนตัวไปยังการติดตั้งใหม่ทั้งหมด
ฉันทำการติดตั้ง Arch Linux ใหม่ทั้งหมดและนำเข้าคีย์ส่วนตัว gpg ที่สำรองไว้ ในฐานะที่เป็นสติตรวจสอบฉันวิ่ง: gpg —list-keys ทุกอย่างปรากฏขึ้นตามปกติยกเว้นuidตอนนี้อ่าน: uid [ unknown ] User < user@useremail.com > เมื่อฉันสร้างคีย์นี้ขึ้นก่อนที่การติดตั้งจะอ่าน: uid [ ultimate ] User < user@useremail.com > ทำไมมันเปลี่ยนจาก[ ultimate ]เป็น[ unknown ]หลังจากนำเข้าสู่การติดตั้งใหม่ทั้งหมด? ขอบคุณล่วงหน้า.
21 gpg  gnu 

1
อะไรคือความแตกต่างระหว่าง Ubuntu 16.04 และ Ubuntu 16.04 LTS
อะไรคือความแตกต่างระหว่าง Ubuntu 16.04 และ Ubuntu 16.04 LTS เอกสารบางอย่างที่ฉันอ่านบอกว่าพวกเขาสามารถรองรับ Ubuntu 16.04 ได้ แต่เมื่อฉันสร้างภาพบน Ubuntu 16.04ฉันเพิ่งพบ Ubuntu 16.04 LTS
21 ubuntu 

5
มีวิธีที่ง่ายกว่าในการ grep ไฟล์ทั้งหมดภายใต้ไดเรกทอรีหรือไม่?
เมื่อฉันต้องการค้นหาเนื้อหาทั้งหมดฉันจะใช้ต้นไม้ find . -type f -print0 | xargs -0 grep <search_string> มีวิธีที่ดีกว่าในการทำเช่นนี้ในแง่ของประสิทธิภาพหรือความกะทัดรัด?
21 grep  find 

6
Apache SSL: ใบรับรองเซิร์ฟเวอร์ไม่รวม ID ที่ตรงกับชื่อเซิร์ฟเวอร์
ฉันพยายามตั้งค่า SSL บนเว็บเซิร์ฟเวอร์ apache2 ของฉัน แต่ดูเหมือนว่ามันจะไม่ทำงานเลย ฉันได้ทำตามบทช่วยสอนเพื่อสร้างไฟล์ใบรับรองด้วย openssl และกำหนดค่า/etc/apache2/sites-available/default-ssl.confอย่างเหมาะสม ทุกครั้งที่ฉันพยายามเปิดเว็บไซต์ด้วย https เบราว์เซอร์ของฉันปฏิเสธที่จะเชื่อมต่อเนื่องจากปัญหาด้านความปลอดภัย มีข้อความระบุว่าฉันไม่ได้กำหนดค่าเว็บไซต์ของฉันอย่างถูกต้อง ใน/var/log/apache2/error.logฉันได้รับคำเตือนซึ่งบอกว่าใบรับรองเซิร์ฟเวอร์ของฉันไม่รวม ID ที่ตรงกับชื่อเซิร์ฟเวอร์ [Mon Apr 10 11:03:24.041813 2017] [mpm_prefork:notice] [pid 1222] AH00169: caught SIGTERM, shutting down [Mon Apr 10 11:03:30.566578 2017] [ssl:warn] [pid 661] AH01909: 127.0.0.1:443:0 server certificate does NOT include an ID which matches the server …

7
ใช้การเปลี่ยนเส้นทางเอาต์พุตโดยไม่ได้ตั้งใจ> แทนที่จะไปป์ |
เดือนที่แล้วฉันเขียนสคริปต์ Python เพื่อจับคู่ MAC และที่อยู่ IP จาก stdin และเมื่อสองวันก่อนฉันจำได้และเคยกรองเอาท์พุทของtcpdumpแต่มันผิดไปเพราะการพิมพ์ผิด ฉันพิมพ์ tcpdump -ne > ./mac_ip.py และผลลัพธ์คืออะไร แต่ผลลัพธ์ควรเป็น "ไม่ทราบ" หากไม่สามารถแยกวิเคราะห์อินพุตดังนั้นฉันได้cat ./mac_ip.pyและพบข้อมูลทั้งหมดtcpdumpแทนที่จะเป็นโปรแกรม จากนั้นฉันก็ตระหนักว่าฉันควรใช้ tcpdump -ne | ./mac_ip.py มีวิธีใดบ้างที่จะนำโปรแกรมของฉันกลับคืนมา อย่างไรก็ตามฉันสามารถเขียนโปรแกรมของฉันอีกครั้ง แต่ถ้ามันเกิดขึ้นอีกครั้งด้วยโปรแกรมที่สำคัญกว่าฉันควรจะทำอะไรบางอย่าง หรือมีวิธีใดที่จะบอกการเปลี่ยนเส้นทางเอาต์พุตเพื่อตรวจสอบไฟล์และเตือนว่าไฟล์นั้นรันได้หรือไม่?

2
น้อยกว่า file1 file2 | แมว - ทำไมจึงใช้งานได้
เมื่อฉันใช้less file1 file2ฉันจะได้รับทั้งไฟล์ที่แสดงใน "less buffer viewer" แต่less file1 file2 | catพิมพ์เนื้อหาของไฟล์ทั้งสองต่อท้าย stdout จะทราบได้อย่างไรว่าควรแสดง "โปรแกรมดูบัฟเฟอร์น้อย" หรือสร้างเอาต์พุตไปยัง stdout สำหรับคำสั่งถัดไป มีกลไกอะไรที่ใช้ในการทำสิ่งนี้?
21 pipe  cat  less 

2
+/- หลังจากงานในพื้นหลังเสร็จสิ้น
รันงานในพื้นหลัง $ command & เมื่อเสร็จสิ้นเครื่องจะพิมพ์ออกมา [n]+ command หรือ [n]- command ดังนั้นบางครั้งมันเป็นบวกและครั้งอื่น ๆ [n]มันเป็นดังต่อไปนี้ลบ บวก / ลบหมายความว่าอย่างไร

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