คำถามติดแท็ก unix

แท็กนี้เป็นเอกสิทธิ์สำหรับคำถามการเขียนโปรแกรมที่เกี่ยวข้องโดยตรงกับ Unix; ปัญหาซอฟต์แวร์ทั่วไปควรถูกนำไปยังไซต์ Unix & Linux Stack Exchange หรือไปยัง Super User ระบบปฏิบัติการ Unix เป็นระบบปฏิบัติการอเนกประสงค์ที่พัฒนาโดย Bell Labs ในช่วงปลายทศวรรษ 1960 และปัจจุบันมีอยู่ในหลายเวอร์ชั่น

19
จะพิมพ์คอลัมน์ที่สามเป็นคอลัมน์สุดท้ายได้อย่างไร?
ฉันกำลังพยายามลบสองคอลัมน์แรก (ซึ่งฉันไม่สนใจ) ออกจากไฟล์บันทึก DbgView ดูเหมือนจะไม่พบตัวอย่างที่พิมพ์ตั้งแต่คอลัมน์ 3 เป็นต้นไปจนถึงท้ายบรรทัด โปรดทราบว่าแต่ละบรรทัดมีจำนวนคอลัมน์ที่แปรผัน

9
วิธีเลือกเส้นระหว่างรูปแบบเครื่องหมายสองรูปแบบซึ่งอาจเกิดขึ้นหลายครั้งด้วย awk / sed
ใช้awkหรือsedฉันจะเลือกเส้นที่เกิดขึ้นระหว่างรูปแบบเครื่องหมายสองแบบที่แตกต่างกันได้อย่างไร อาจมีหลายส่วนที่ทำเครื่องหมายด้วยรูปแบบเหล่านี้ ตัวอย่างเช่นสมมติว่าไฟล์มี: abc def1 ghi1 jkl1 mno abc def2 ghi2 jkl2 mno pqr stu และรูปแบบเริ่มต้นคือabcและรูปแบบสิ้นสุดคือmno ดังนั้นฉันต้องการผลลัพธ์เป็น: def1 ghi1 jkl1 def2 ghi2 jkl2 ฉันใช้ sed เพื่อจับคู่รูปแบบครั้งเดียว: sed -e '1,/abc/d' -e '/mno/,$d' <FILE> มีวิธีใดsedหรือawk ต้องทำซ้ำ ๆ จนจบไฟล์?

11
Spinlock กับ Semaphore
อะไรคือความแตกต่างพื้นฐานระหว่างเซมาฟอร์และสปินล็อค? เมื่อใดที่เราจะใช้เซมาฟอร์บนสปินล็อค?
119 c++  c  linux  unix  operating-system 

4
อะไรคือความแตกต่างระหว่างล็อคพิเศษและล็อคที่ใช้ร่วมกัน?
ตามวิกิพีเดีย การล็อกที่ใช้ร่วมกันบางครั้งเรียกว่า "read locks" และบางครั้งเรียกว่า "write locks" คุณช่วยอธิบายเหตุผลเบื้องหลังของคำว่า "แชร์" และ "เอกสิทธิ์เฉพาะตัว" ได้ไหม
119 unix  locking 


4
ทำไมต้อง. / กำหนดค่า; ทำให้; ทำการติดตั้ง เป็น 3 ขั้นตอนแยกกัน?
ทุกครั้งที่คุณรวบรวมข้อมูลจากแหล่งที่มาคุณจะต้องทำตาม 3 ขั้นตอนเดียวกัน: $ ./configure $ make $ make install ฉันเข้าใจว่ามันสมเหตุสมผลแล้วที่จะแบ่งขั้นตอนการติดตั้งออกเป็นขั้นตอนต่างๆ แต่ฉันไม่เข้าใจทำไมแต่ละ coder บนโลกนี้จึงต้องเขียนสามคำสั่งเดิมซ้ำแล้วซ้ำอีกเพื่อให้งานเดียวเสร็จ จากมุมมองของฉันมันจะสมเหตุสมผลอย่างยิ่งที่จะมีการ./install.shส่งสคริปต์โดยอัตโนมัติพร้อมกับซอร์สโค้ดซึ่งมีข้อความต่อไปนี้: #!/bin/sh ./configure make make install ทำไมคนถึงทำ 3 ขั้นตอนแยกกัน?

10
วิธีใช้หลายอาร์กิวเมนต์สำหรับ awk กับ shebang (เช่น #!)
ฉันต้องการเรียกใช้สคริปต์gawk--re-intervalโดยใช้ shebang แนวทาง "ไร้เดียงสา" ของ #!/usr/bin/gawk --re-interval -f ... awk script goes here ใช้งานไม่ได้เนื่องจาก gawk ถูกเรียกด้วยอาร์กิวเมนต์แรก"--re-interval -f"(ไม่ถูกแยกออกจากช่องว่าง) ซึ่งไม่เข้าใจ มีวิธีแก้ปัญหาสำหรับสิ่งนั้นหรือไม่? แน่นอนคุณไม่สามารถเรียก gawk ได้โดยตรง แต่รวมไว้ในเชลล์สคริปต์ที่แยกอาร์กิวเมนต์แรกหรือสร้างเชลล์สคริปต์ที่เรียกว่า gawk และใส่สคริปต์ลงในไฟล์อื่น แต่ฉันสงสัยว่ามีวิธีทำหรือไม่ นี้ภายในไฟล์เดียว ลักษณะการทำงานของเส้น Shebang แตกต่างกันไปในแต่ละระบบ - อย่างน้อยในCygwinจะไม่แบ่งอาร์กิวเมนต์ด้วยช่องว่าง ฉันแค่สนใจว่าจะทำอย่างไรกับระบบที่มีพฤติกรรมเช่นนั้น สคริปต์ไม่ได้มีไว้สำหรับพกพา
118 shell  unix  awk  gawk  shebang 

27
คำสั่งเทอร์มินัลใดที่จะได้รับเพียงที่อยู่ IP และไม่มีอะไรอื่น
ฉันพยายามใช้แค่ที่อยู่ IP (inet) เป็นพารามิเตอร์ในสคริปต์ที่ฉันเขียน มีวิธีง่ายๆใน Unix Terminal เพื่อรับเฉพาะที่อยู่ IP แทนที่จะมองผ่านifconfigหรือไม่?
118 shell  unix  ip-address 

6
บังคับให้ไลน์บัฟเฟอร์ของ stdout เมื่อส่งไปที่ที
โดยปกติจะstdoutเป็นบรรทัดบัฟเฟอร์ กล่าวอีกนัยหนึ่งคือตราบใดที่printfอาร์กิวเมนต์ของคุณจบลงด้วยการขึ้นบรรทัดใหม่คุณสามารถคาดหวังว่าจะพิมพ์บรรทัดได้ทันที teeนี้จะไม่ปรากฏการระงับเมื่อใช้ท่อเปลี่ยนเส้นทางไปยัง ฉันมีโปรแกรม C ++ aที่ส่งออกสตริงเสมอ - เทอร์มิ\nนนิ่งเป็นstdout. เมื่อรันด้วยตัวเอง ( ./a) ทุกอย่างจะพิมพ์ออกมาอย่างถูกต้องและในเวลาที่เหมาะสมตามที่คาด แต่ถ้าฉันท่อมันtee( ./a | tee output.txt) teeก็ไม่ได้พิมพ์อะไรจนกว่าจะจบการทำงานซึ่งขัดแย้งกับวัตถุประสงค์ของการใช้ ฉันรู้ว่าฉันสามารถแก้ไขได้โดยเพิ่มfflush(stdout)การดำเนินการหลังการพิมพ์แต่ละครั้งในโปรแกรม C ++ แต่มีวิธีที่ง่ายกว่านี้ไหม? มีคำสั่งที่ฉันสามารถรันได้ไหมตัวอย่างเช่นที่จะบังคับstdoutให้เป็นไลน์บัฟเฟอร์แม้ว่าจะใช้ไปป์
118 unix  buffer  pipe  stdout  tee 

6
ไฟล์เนื้อหาลงในตัวแปร unix พร้อมขึ้นบรรทัดใหม่
ฉันมีไฟล์ข้อความ test.txt ที่มีเนื้อหาต่อไปนี้: text1 text2 และฉันต้องการกำหนดเนื้อหาของไฟล์ให้กับตัวแปร UNIX แต่เมื่อฉันทำสิ่งนี้: testvar=$(cat test.txt) echo $testvar ผลลัพธ์คือ: text1 text2 แทน text1 text2 ใครช่วยแนะนำวิธีแก้ปัญหานี้ให้ฉันได้ไหม
118 bash  unix 

8
ฉันจะไปป์หรือเปลี่ยนทิศทางเอาต์พุตของ curl -v ได้อย่างไร
ด้วยเหตุผลบางประการผลลัพธ์จะถูกพิมพ์ไปยังเทอร์มินัลเสมอไม่ว่าฉันจะเปลี่ยนเส้นทางผ่าน 2> หรือ> หรือ | มีวิธีแก้ปัญหานี้หรือไม่? เหตุใดจึงเกิดขึ้น
117 linux  unix  curl 

9
mongodb กำลังทำงานอยู่หรือไม่?
ฉันได้ติดตั้ง mongodb และไดรเวอร์ php บนเซิร์ฟเวอร์ unix ของฉันแล้ว คำถามของฉันคือฉันจะรู้ได้อย่างไรว่า mongodb กำลังทำงานอยู่ มีแบบสอบถามบรรทัดคำสั่งง่ายๆเพื่อตรวจสอบสถานะหรือไม่? ถ้าฉันเริ่มครั้งเดียวจากเชลล์มันจะยังคงทำงานต่อไปถ้าฉันออกจากเชลล์ (ดูเหมือนจะไม่เป็นเช่นนั้น) ฉันจะทำให้การเชื่อมต่อ mongodb ต่อเนื่องและเริ่มอัตโนมัติเมื่อรีบูตเซิร์ฟเวอร์ได้อย่างไร ฉันวิ่งได้: -bash-3.2 $ su รหัสผ่าน: [root @ xxx] # cd / var / lib [root @ xxx] # ./mongodb-linux-i686-1.6.5/bin/mongod ./mongodb-linux-i686-1.6. 5 / bin / mongod - help สำหรับความช่วยเหลือและตัวเลือกการเริ่มต้น พ. 23 ก.พ. 08:06:54 MongoDB เริ่มต้น: …
117 mongodb  unix  database  nosql 


26
ตรวจสอบจากเชลล์สคริปต์ว่าไดเร็กทอรีมีไฟล์หรือไม่
จากเชลล์สคริปต์ฉันจะตรวจสอบได้อย่างไรว่าไดเร็กทอรีมีไฟล์หรือไม่ สิ่งที่คล้ายกับสิ่งนี้ if [ -e /some/dir/* ]; then echo "huzzah"; fi; แต่จะใช้งานได้ถ้าไดเร็กทอรีมีไฟล์เดียวหรือหลายไฟล์ (ไฟล์ด้านบนใช้ได้กับไฟล์ 0 หรือ 1 ไฟล์เท่านั้น)
117 bash  unix  shell 

10
วิธีรับรายชื่อไฟล์ในบรรทัดต่างๆ
ฉันต้องการที่จะได้รับรายชื่อของไฟล์ทั้งหมดในไดเรกทอรีเช่นเดียวกับเพื่อให้แต่ละชื่อไฟล์จะอยู่ในสายแยกที่ไม่มีรายละเอียดพิเศษที่จัดทำโดยls ls -lฉันมองls --helpแล้วไม่พบทางออก ฉันพยายามทำ ls -l | cut --fields=9 -d" " แต่lsไม่ใช้จำนวนช่องว่างคงที่ระหว่างคอลัมน์ มีความคิดอย่างไรในการทำเช่นนี้โดยเฉพาะในบรรทัดเดียว
116 unix  ls 

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