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

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

10
gettimeofday () รับประกันความละเอียดระดับไมโครวินาทีหรือไม่
ฉันกำลังพอร์ตเกมซึ่งเดิมเขียนขึ้นสำหรับ Win32 API ไปยัง Linux (ดีคือพอร์ต OS X ของพอร์ต Win32 ไปยัง Linux) ฉันได้ดำเนินการQueryPerformanceCounterโดยให้ uSeconds ตั้งแต่เริ่มกระบวนการ: BOOL QueryPerformanceCounter(LARGE_INTEGER* performanceCount) { gettimeofday(&currentTimeVal, NULL); performanceCount->QuadPart = (currentTimeVal.tv_sec - startTimeVal.tv_sec); performanceCount->QuadPart *= (1000 * 1000); performanceCount->QuadPart += (currentTimeVal.tv_usec - startTimeVal.tv_usec); return true; } สิ่งนี้ควบคู่ไปกับการQueryPerformanceFrequency()ให้ความถี่คงที่ 1000000 ทำงานได้ดีบนเครื่องของฉันทำให้ฉันมีตัวแปร 64 บิตที่มีuSecondsตั้งแต่เริ่มต้นโปรแกรม ดังนั้นนี้เป็นแบบพกพา? ฉันไม่ต้องการที่จะค้นพบว่ามันทำงานแตกต่างออกไปหากเคอร์เนลถูกคอมไพล์ด้วยวิธีใดวิธีหนึ่งหรืออะไรทำนองนั้น อย่างไรก็ตามฉันสบายดีที่ไม่สามารถพกพาไปยังสิ่งอื่นที่ไม่ใช่ Linux ได้

4
ไม่สามารถฟ้องผู้ใช้เจนกินส์ได้หลังจากติดตั้งเจนกินส์
ฉันติดตั้งเจนกินส์แล้วและฉันกำลังพยายามเข้าเชลล์ในฐานะเจนกินส์เพื่อเพิ่มคีย์ ssh ฉันไม่สามารถมองเข้าไปในผู้ใช้เจนกินส์: [root@pacmandev /]# sudo su jenkins [root@pacmandev /]# whoami root [root@pacmandev /]# echo $USER root [root@pacmandev /]# ผู้ใช้ jenkins มีอยู่ในไฟล์ / etc / passwd ของฉัน รันนินsu jenkinsขอรหัสผ่าน แต่ปฏิเสธรหัสผ่านปกติของฉัน sudo su jenkinsดูเหมือนจะไม่ทำอะไรเลย เหมือนกันสำหรับsudo su - jenkins. ฉันใช้ CentOS
97 linux  unix  jenkins 

3
sed ด้วยสตริงตามตัวอักษร - ไม่ใช่ไฟล์อินพุต
สิ่งนี้ควรจะง่าย: ฉันต้องการเรียกใช้sedกับสตริงตัวอักษรไม่ใช่ไฟล์อินพุต หากคุณสงสัยว่าทำไมตัวอย่างเช่นแก้ไขค่าที่เก็บไว้ในตัวแปรไม่จำเป็นต้องเป็นข้อมูลข้อความ เมื่อฉันทำ: sed 's/,/','/g' "A,B,C" โดยที่ A, B, C คือตัวอักษรที่ฉันต้องการเปลี่ยนเป็น A ',' B ',' C ฉันเข้าใจ Can't open A,B,C ราวกับว่ามันคิดว่า A, B, C เป็นไฟล์ ฉันลองวางท่อเพื่อสะท้อน: echo "A,B,C" | sed 's/,/','/g' ฉันได้รับข้อความแจ้ง วิธีที่ถูกต้องทำอย่างไร?
97 linux  unix  sed 

1
PostgreSQL: การรีเซ็ตรหัสผ่านของ PostgreSQL บน Ubuntu [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน7 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ใน Ubuntu ฉันติดตั้งฐานข้อมูล PostgreSQL และสร้าง superuser สำหรับเซิร์ฟเวอร์ หากฉันลืมรหัสผ่านของ postgresql superuser ฉันจะรีเซ็ต (รหัสผ่าน) สำหรับผู้ใช้นั้นได้อย่างไร ฉันลองถอนการติดตั้งแล้วติดตั้งอีกครั้ง แต่ superuser ที่สร้างไว้ก่อนหน้านี้จะยังคงอยู่
97 postgresql  unix 

3
ฉันจะไพพ์การเรียกกระบวนการย่อยไปยังไฟล์ข้อความได้อย่างไร
subprocess.call(["/home/myuser/run.sh", "/tmp/ad_xml", "/tmp/video_xml"]) ตอนนี้ฉันมีสคริปต์ที่ฉันเรียกใช้ เมื่อฉันเรียกใช้และมันมาถึงบรรทัดนี้มันจะเริ่มพิมพ์สิ่งต่างๆเพราะ run.sh มีการพิมพ์อยู่ในนั้น ฉันจะไพพ์สิ่งนี้ไปยังไฟล์ข้อความได้อย่างไร (และพิมพ์ด้วยถ้าเป็นไปได้)

7
ฉันจะเปลี่ยนทิศทางผลลัพธ์ของคำสั่ง“ เวลา” ได้อย่างไร
ฉันพยายามเปลี่ยนทิศทางผลลัพธ์ของคำสั่งเวลา แต่ไม่สามารถ: $time ls > filename real 0m0.000s user 0m0.000s sys 0m0.000s ในไฟล์ฉันเห็นผลลัพธ์ของlsคำสั่งไม่ใช่ของtime. โปรดอธิบายว่าทำไมฉันถึงทำไม่ได้และทำอย่างไร

9
แสดงสองไฟล์เคียงข้างกัน
ไฟล์ข้อความที่ไม่เรียงลำดับ 2 ไฟล์ที่มีความยาวต่างกันจะแสดงเคียงข้างกันได้อย่างไร(ในคอลัมน์)ในไฟล์shell ให้one.txtและtwo.txt: $ cat one.txt apple pear longer line than the last two last line $ cat two.txt The quick brown fox.. foo bar linux skipped a line แสดง: apple The quick brown fox.. pear foo longer line than the last two bar last line linux skipped a …

5
วิธีทำรัง Bash backticks อย่างถูกต้อง
ไม่ว่าฉันจะพลาดฟันเฟืองหรือแบ็กแลชบางอย่างก็ดูเหมือนจะไม่ได้ผลกับการวนซ้ำของโปรแกรมเมอร์ - ใบเสนอราคามากเกินไป $ echo "hello1-`echo hello2-\`echo hello3-\`echo hello4\`\``" hello1-hello2-hello3-echo hello4 ต้องการ hello1-hello2-hello3-hello4-hello5-hello6-...
95 bash  shell  unix  quoting 

4
จัดเรียงไฟล์ CSV ตามลำดับความสำคัญของคอลัมน์โดยใช้คำสั่ง "sort"
ฉันมีไฟล์ csv และต้องการจัดเรียงตามลำดับความสำคัญของคอลัมน์เช่น "เรียงตาม" ตัวอย่างเช่น: 3;1;2 1;3;2 1;2;3 2;3;1 2;1;3 3;2;1 หากสถานการณ์นี้เป็นผลมาจาก "เลือก" "ลำดับตาม" จะเป็นดังนี้: เรียงลำดับตามคอลัมน์ 2 คอลัมน์ 1 คอลัมน์ 3 ผลลัพธ์จะเป็น: 2;1;3 3;1;2 1;2;3 3;2;1 1;3;2 2;3;1 ฉันต้องการทราบวิธีรับผลลัพธ์เดียวกันนี้โดยใช้คำสั่ง "sort" ใน Unix

6
grep สำหรับอักขระพิเศษใน Unix
ฉันมีไฟล์บันทึก (application.log) ซึ่งอาจมีสตริงอักขระปกติและอักขระพิเศษต่อไปนี้ในหลายบรรทัด: *^%Q&$*&^@$&*!^@$*&^&^*&^& ฉันต้องการค้นหาหมายเลขบรรทัดที่มีสตริงอักขระพิเศษนี้ grep '*^%Q&$*&^@$&*!^@$*&^&^*&^&' application.log คำสั่งดังกล่าวไม่ส่งคืนผลลัพธ์ใด ๆ อะไรคือไวยากรณ์ที่ถูกต้องในการรับหมายเลขบรรทัด?

10
จะสร้าง "นามแฝง" สำหรับเส้นทางที่ยาวได้อย่างไร?
ฉันพยายามสร้าง "นามแฝง" สำหรับเส้นทางที่ฉันใช้บ่อยในขณะที่ใช้เชลล์สคริปต์ ฉันลองทำบางอย่างแล้ว แต่ล้มเหลว: myFold="~/Files/Scripts/Main" cd myFold bash: cd: myFold: No such file or directory ฉันจะทำให้มันทำงานได้อย่างไร? อย่างไรก็ตามการcd ~/Files/Scripts/Mainทำงาน
95 linux  bash  unix  scripting 

5
ดูกระบวนการที่ใช้ไฟล์ใน Mac OS X
ฉันต้องการติดตามไฟล์และดูว่ากระบวนการใดที่สัมผัสไฟล์นั้น เป็นไปได้หรือไม่ ฉันรู้ว่าฉันสามารถดูรายการของกระบวนการที่เปิดอยู่ในตัวตรวจสอบกิจกรรม แต่ฉันคิดว่ามันเกิดขึ้นอย่างรวดเร็วเพื่อให้ฉันเห็น เหตุผลนี้คือฉันใช้เฟรมเวิร์กและฉันคิดว่าเวอร์ชันระบบของเฟรมเวิร์กกำลังถูกใช้แทนเวอร์ชันดีบักและฉันต้องการดูว่ากระบวนการใดสัมผัสได้
95 macos  unix  terminal  audit  lsof 

10
แทนที่สตริงในเชลล์สคริปต์โดยใช้ตัวแปร
ฉันใช้โค้ดด้านล่างเพื่อแทนที่สตริงภายในเชลล์สคริปต์ echo $LINE | sed -e 's/12345678/"$replace"/g' แต่มันถูกแทนที่ด้วย$replaceแทนค่าของตัวแปรนั้น มีใครบอกได้ไหมว่าเกิดอะไรขึ้น?
94 unix  shell  sed 

2
จะเรียงไฟล์ตามการประทับเวลาในยูนิกซ์ได้อย่างไร? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน9 ปีที่ผ่านมา ปรับปรุงคำถามนี้ จะเรียงไฟล์ตามการประทับเวลาในยูนิกซ์ได้อย่างไร? ฉันต้องการจัดเรียงไฟล์และตามเวลาที่สร้างขึ้นด้วย

12
ฉันจะแสดงสคริปต์โดยพลการใน unix ได้อย่างไร
ฉันต้องการ daemonizer ที่สามารถเปิดโดยพลสคริปต์ทั่วไปหรือสั่งเข้ามาเป็นภูต มีสองกรณีทั่วไปที่ฉันต้องการจัดการ: ฉันมีสคริปต์ที่ควรรันตลอดไป หากเคยตาย (หรือรีบูต) ให้รีสตาร์ท อย่าปล่อยให้สำเนาสองชุดทำงานพร้อมกัน (ตรวจสอบว่าสำเนาทำงานอยู่แล้วและไม่เปิดใช้ในกรณีนั้น) ฉันมีสคริปต์หรือคำสั่งบรรทัดคำสั่งง่ายๆที่ฉันต้องการดำเนินการซ้ำ ๆ ตลอดไป (โดยหยุดชั่วคราวระหว่างการรัน) อีกครั้งอย่าปล่อยให้สคริปต์สองสำเนาทำงานพร้อมกัน แน่นอนว่ามันเป็นเรื่องเล็กน้อยที่จะเขียน "while (true)" วนรอบสคริปต์ในกรณีที่ 2 จากนั้นใช้โซลูชันสำหรับกรณีที่ 1 แต่วิธีแก้ปัญหาทั่วไปจะแก้ปัญหากรณีที่ 2 โดยตรงเนื่องจากใช้กับสคริปต์ในกรณีที่ 1 เป็น ดี (คุณอาจต้องการหยุดชั่วคราวให้สั้นลงหรือไม่มีเลยหากสคริปต์ไม่ได้ตั้งใจที่จะตาย (แน่นอนว่าถ้าสคริปต์ไม่มีวันตายจริงๆการหยุดชั่วคราวก็ไม่สำคัญ)) โปรดทราบว่าโซลูชันไม่ควรเกี่ยวข้องกับการเพิ่มรหัสล็อกไฟล์หรือการบันทึก PID ลงในสคริปต์ที่มีอยู่ โดยเฉพาะอย่างยิ่งฉันต้องการโปรแกรม "daemonize" ที่สามารถเรียกใช้งานได้ % daemonize myscript arg1 arg2 หรือตัวอย่างเช่น % daemonize 'echo `date` >> /tmp/times.txt' ซึ่งจะทำให้รายการวันที่เพิ่มขึ้นต่อท้าย times.txt …

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