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

คำถามเกี่ยวกับลินุกซ์จะต้องมีการเขียนโปรแกรมที่เกี่ยวข้อง ใช้แท็กนี้เฉพาะเมื่อคำถามของคุณเกี่ยวข้องกับการเขียนโปรแกรมโดยใช้ Linux API หรือพฤติกรรมเฉพาะของ Linux ไม่ใช่เพียงเพราะคุณใช้งานโค้ดของคุณบน Linux เท่านั้น หากคุณต้องการการสนับสนุน Linux คุณสามารถลอง https://unix.stackexchange.com หรือเว็บไซต์ Stack Exchange ของ Linux ที่เผยแพร่เฉพาะเช่น https://askubuntu.com หรือ https://elementaryos.stackexchange.com/

5
จำลองการกดแป้น ENTER ในสคริปต์ทุบตี
ฉันได้สร้างสคริปต์ทุบตีที่เรียบง่ายซึ่งรันคำสั่งไม่กี่คำสั่ง หนึ่งในคำสั่งเหล่านี้ต้องการอินพุตของผู้ใช้ระหว่างรันไทม์ กล่าวคือถามผู้ใช้ว่า "do you want to blah blah blah?" ฉันต้องการเพียงแค่ส่งปุ่ม Enter ไปที่สิ่งนี้เพื่อให้สคริปต์เป็นไปโดยอัตโนมัติ ฉันไม่ต้องรออินพุตหรืออะไรเลยในระหว่างรันไทม์มันเพียงพอที่จะส่งการกดแป้นและบัฟเฟอร์อินพุตจะจัดการส่วนที่เหลือ
100 linux  bash  ubuntu  shell 

9
ข้อผิดพลาดในการคอมไพล์:“ g ++: เกิดข้อผิดพลาดขณะพยายาม exec 'cc1plus': execvp: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว "
เมื่อฉันรวบรวมโปรแกรม C / C ++ ด้วยpopenในphp... ฉันได้รับข้อผิดพลาดนี้: g++: error trying to exec 'cc1plus': execvp: No such file or directory แต่ถ้าฉันเรียกใช้โค้ด php ในเชลล์ .. ก็ใช้ได้ดี .. ใน Arch Linux .. รหัส PHP: <?php function rfile($fp) { $out=""; while (!feof($fp)) { $out.= fgets($fp, 1024000); } return $out; } $p = popen('g++ -Wall …
100 php  c++  c  linux  gcc 

3
บริบทจะเปลี่ยนช้าลงมากในเมล็ดลินุกซ์ใหม่
เรากำลังต้องการอัพเกรดระบบปฏิบัติการบนเซิร์ฟเวอร์ของเราจาก Ubuntu 10.04 LTS เป็น Ubuntu 12.04 LTS น่าเสียดายที่ดูเหมือนว่าเวลาในการตอบสนองในการรันเธรดที่รันได้นั้นเพิ่มขึ้นอย่างมีนัยสำคัญจาก 2.6 เคอร์เนลเป็น 3.2 เคอร์เนล ในความเป็นจริงตัวเลขเวลาแฝงที่เราได้รับนั้นยากที่จะเชื่อ ให้ฉันเจาะจงมากขึ้นเกี่ยวกับการทดสอบ เรามีโปรแกรมที่ทำงานสองเธรด เธรดแรกได้รับเวลาปัจจุบัน (ในเห็บโดยใช้ RDTSC) แล้วส่งสัญญาณตัวแปรเงื่อนไขวินาทีละครั้ง เธรดที่สองรอตัวแปรเงื่อนไขและตื่นขึ้นมาเมื่อมีการส่งสัญญาณ จากนั้นจะได้รับเวลาปัจจุบัน (ในเห็บโดยใช้ RDTSC) ความแตกต่างระหว่างเวลาในเธรดที่สองและเวลาในเธรดแรกจะถูกคำนวณและแสดงบนคอนโซล หลังจากนี้เธรดที่สองจะรอตัวแปรเงื่อนไขอีกครั้ง เธรดแรกจะส่งสัญญาณอีกครั้งหลังจากผ่านไปประมาณหนึ่งวินาที ดังนั้นโดยสรุปเราจะได้รับการสื่อสารแบบเธรดต่อเธรดผ่านการวัดเวลาแฝงตัวแปรเงื่อนไขหนึ่งวินาทีเป็นผล ในเคอร์เนล 2.6.32 เวลาแฝงนี้อยู่ที่ใดที่หนึ่งตามลำดับของ 2.8-3.5 us ซึ่งสมเหตุสมผล ในเคอร์เนล 3.2.0 เวลาแฝงนี้เพิ่มขึ้นเป็นที่ใดที่หนึ่งตามลำดับ 40-100 เรา ฉันได้ยกเว้นความแตกต่างใด ๆ ในฮาร์ดแวร์ระหว่างโฮสต์ทั้งสอง พวกเขาทำงานบนฮาร์ดแวร์ที่เหมือนกัน (โปรเซสเซอร์ซ็อกเก็ตคู่ X5687 {Westmere-EP} ที่ทำงานที่ 3.6 GHz พร้อมกับไฮเปอร์เธรดความเร็วขั้นตอนและสถานะ …

5
ตัวเลขจุดลอยตัวแบบแข็งและแบบอ่อนต่างกันอย่างไร
เมื่อฉันคอมไพล์โค้ด C ด้วย cross toolchain ตัวเชื่อมโยงจะพิมพ์หน้าคำเตือนโดยบอกว่าไฟล์ปฏิบัติการของฉันใช้ฮาร์ดโฟล แต่ libc ของฉันใช้ซอฟต์โฟล อะไรคือความแตกต่าง?
99 c  linux  floating-point  arm  libc 

9
เขียนเชลล์สคริปต์เพื่อ ssh ไปยังเครื่องระยะไกลและดำเนินการคำสั่ง
ฉันมีสองคำถาม: มีเครื่องลินุกซ์ระยะไกลหลายเครื่องและฉันต้องเขียนเชลล์สคริปต์ซึ่งจะดำเนินการชุดคำสั่งเดียวกันในแต่ละเครื่อง (รวมถึงการดำเนินการ sudo บางอย่าง) วิธีนี้สามารถทำได้โดยใช้เชลล์สคริปต์? เมื่อส่งไปยังเครื่องระยะไกลวิธีจัดการเมื่อมีข้อความแจ้งให้ตรวจสอบลายนิ้วมือ RSA เครื่องระยะไกลคือ VM ที่สร้างขึ้นในขณะทำงานและฉันมี IP ของพวกเขา ดังนั้นฉันจึงไม่สามารถวางไฟล์สคริปต์ล่วงหน้าในเครื่องเหล่านั้นและเรียกใช้งานจากเครื่องของฉันได้
99 linux  shell  ssh 

4
“ &” ที่ท้ายคำสั่ง linux หมายความว่าอย่างไร
ฉันเป็นผู้ดูแลระบบและถูกขอให้เรียกใช้สคริปต์ลินุกซ์เพื่อล้างระบบ คำสั่งคือ: perl script.pl > output.log & ดังนั้นคำสั่งนี้จึงลงท้ายด้วย&เครื่องหมายมีความสำคัญเป็นพิเศษหรือไม่? ฉันมีความรู้พื้นฐานเกี่ยวกับเปลือกหอย แต่ไม่เคยเห็นมาก่อน
99 linux  shell  unix 

3
การสร้างไดเร็กทอรีใหม่ใน C
ฉันต้องการเขียนโปรแกรมที่ตรวจสอบการมีอยู่ของไดเร็กทอรี หากไม่มีไดเร็กทอรีนั้นจะสร้างไดเร็กทอรีและล็อกไฟล์ภายในไดเร็กทอรี แต่ถ้ามีไดเร็กทอรีอยู่แล้วก็จะสร้างไฟล์บันทึกใหม่ในโฟลเดอร์นั้น ฉันจะทำสิ่งนี้ใน C กับ Linux ได้อย่างไร
99 c  linux  directory 

3
อะไรคือความแตกต่างระหว่าง MySQL Server และ MySQL Client
ใน Ubuntu ปกติฉันจะติดตั้งทั้งสองอย่าง แต่อะไรคือความแตกต่างระหว่างไคลเอนต์และเซิร์ฟเวอร์สำหรับ MySQL เป็นโบนัสเมื่อคำสั่งใหม่ระบุว่าต้องใช้ MySQL 5.x หมายความว่าไคลเอนต์เซิร์ฟเวอร์หรือทั้งสองอย่าง ตัวอย่างเช่นลิงค์นี้https://dev.mysql.com/doc/refman/5.7/en/json-search-functions.htmlระบุว่าต้องใช้ 5.7.x เพื่อรองรับ json_extract นี่หมายถึงไคลเอนต์เซิร์ฟเวอร์หรือ ทั้งคู่ต้องเป็น 5.7.x
99 mysql  linux  ubuntu 

5
เหตุใด find -exec mv {} ./target/ + จึงไม่ทำงาน
ฉันต้องการที่จะรู้ว่าสิ่งที่{} \;และ{} \+และ| xargs ...ทำ โปรดชี้แจงสิ่งเหล่านี้พร้อมคำอธิบาย คำสั่งด้านล่าง 3 คำสั่งรันและผลลัพธ์เดียวกัน แต่คำสั่งแรกใช้เวลาเล็กน้อยและรูปแบบก็แตกต่างกันเล็กน้อย find . -type f -exec file {} \; find . -type f -exec file {} \+ find . -type f | xargs file เป็นเพราะตัวแรกรันfileคำสั่งสำหรับทุกไฟล์ที่มาจากfindคำสั่ง โดยทั่วไปแล้วจะทำงานเป็น: file file1.txt file file2.txt แต่ 2 หลังพบด้วย-execคำสั่งเรียกใช้คำสั่งไฟล์หนึ่งครั้งสำหรับไฟล์ทั้งหมดเช่นด้านล่าง: file file1.txt file2.txt จากนั้นฉันเรียกใช้คำสั่งต่อไปนี้ซึ่งคำสั่งแรกทำงานโดยไม่มีปัญหา แต่คำสั่งที่สองให้ข้อความแสดงข้อผิดพลาด find . -type …
98 linux  find  cygwin  exec 

5
ฉันจะทำการ "git pull" โดยไม่ต้องป้อนรหัสผ่าน SSH ซ้ำได้อย่างไร
มันเป็นไปได้ในการกำหนดค่าgit/sshดังนั้นผมจึงไม่ต้องป้อนข้อความรหัสผ่านของฉันเวลาที่ฉันต้องการที่จะดำเนินการทุกgit pull? โปรดทราบว่า repo เป็นแบบส่วนตัวบน github หรืออีกวิธีหนึ่งคือแนวทางปฏิบัติที่ดีที่สุดในการปรับใช้โค้ดโดยอัตโนมัติจากที่เก็บ Github ส่วนตัวคืออะไร รายละเอียดเพิ่มเติม:อินสแตนซ์ EC2 ที่เรียกใช้ AMI สาธารณะที่ใช้ Fedora
98 linux  git  ssh  github 

8
จะเปลี่ยนคอมไพเลอร์ GCC เริ่มต้นใน Ubuntu ได้อย่างไร
ฉันติดตั้ง gcc-3.3 / g ++ - 3.3 บน ubuntu 11.04 ซึ่งมี gcc / g ++ - 4.4 อยู่แล้ว ดังนั้นในระบบของฉันจึงมีทั้ง gcc-3.3 และ 4.4 ฉันสามารถเรียกคอมไพเลอร์ทั้งสองได้ตามที่ฉันต้องการ ถ้าฉันแค่เรียกคำสั่งgccgcc-4.4 จะถูกเรียก ที่จะเรียก GCC-3.3 gcc-3.3ผมต้องใช้คำสั่ง ฉันจะเปลี่ยนคอมไพเลอร์เริ่มต้นเป็น gcc-3.3 ได้อย่างไร เมื่อฉันรันคำสั่งgccควรเรียกใช้ gcc-3.3 ไม่ใช่ gcc-4.4 นอกจากนี้ฉันจะเปลี่ยนตัวแปร CXX ในไฟล์ make เป็น gcc-3.3 ได้อย่างไร ฉันต้องการเปลี่ยนตำแหน่งส่วนกลางที่พบบ่อยในระบบแทนที่จะเปลี่ยนไฟล์ make ทั้งหมด
98 linux  ubuntu  gcc 

8
วิธีสร้าง python โปรแกรมบรรทัดคำสั่งเติมข้อความอัตโนมัติโดยพลการไม่ล่าม
ฉันทราบวิธีตั้งค่าการเติมข้อความอัตโนมัติของออบเจ็กต์ python ในตัวแปล python (บน unix) Google แสดงเพลงฮิตมากมายสำหรับคำอธิบายเกี่ยวกับวิธีการทำเช่นนี้ น่าเสียดายที่มีข้อมูลอ้างอิงมากมายทำให้ยากที่จะหาสิ่งที่ฉันต้องทำซึ่งแตกต่างกันเล็กน้อย ฉันต้องการทราบวิธีเปิดใช้งานแท็บ / การเติมรายการโดยพลการโดยอัตโนมัติในโปรแกรมบรรทัดคำสั่งที่เขียนด้วย python กรณีการใช้งานเฉพาะของฉันคือโปรแกรม python บรรทัดคำสั่งที่ต้องการส่งอีเมล ฉันต้องการเติมที่อยู่อีเมลอัตโนมัติ (ฉันมีที่อยู่ในดิสก์) เมื่อผู้ใช้พิมพ์บางส่วน (และกดปุ่ม TAB เป็นทางเลือก) ฉันไม่ต้องการให้มันทำงานบน windows หรือ mac เพียง แต่ linux

9
sed Beginner: เปลี่ยนเหตุการณ์ทั้งหมดในโฟลเดอร์
ฉันต้องทำการ regex ค้นหาและแทนที่ไฟล์ทั้งหมดในโฟลเดอร์ (และโฟลเดอร์ย่อย) คำสั่ง linux shell จะทำอย่างไร ตัวอย่างเช่นฉันต้องการเรียกใช้สิ่งนี้กับไฟล์ทั้งหมดและเขียนทับไฟล์เก่าด้วยข้อความใหม่ที่แทนที่ sed 's/old text/new text/g'
98 regex  linux  shell  sed 

6
เชลล์ - เขียนเนื้อหาตัวแปรลงในไฟล์
ฉันต้องการคัดลอกเนื้อหาของตัวแปร (ในที่นี้เรียกว่าvar) ลงในไฟล์ destfileชื่อของไฟล์จะถูกเก็บไว้ในตัวแปรอื่น ฉันมีปัญหาในการดำเนินการนี้ นี่คือสิ่งที่ฉันได้ลอง: cp $var $destfile ฉันได้ลองสิ่งเดียวกันกับคำสั่ง dd ด้วย ... เห็นได้ชัดว่าเชลล์คิดว่า$varอ้างถึงไดเร็กทอรีจึงบอกฉันว่าไม่พบไดเร็กทอรี ฉันจะหลีกเลี่ยงสิ่งนี้ได้อย่างไร?
98 linux  bash  shell 

16
Linux: คำนวณแฮชเดียวสำหรับโฟลเดอร์และเนื้อหาที่กำหนด?
ต้องมีวิธีทำง่ายๆแน่นอน! ฉันได้ลองใช้แอปบรรทัดคำสั่งของ Linux sha1sumแล้วmd5sumแต่ดูเหมือนว่าจะสามารถคำนวณแฮชของไฟล์แต่ละไฟล์และแสดงรายการค่าแฮชได้หนึ่งรายการสำหรับแต่ละไฟล์ ฉันต้องการสร้างแฮชเดียวสำหรับเนื้อหาทั้งหมดของโฟลเดอร์ (ไม่ใช่แค่ชื่อไฟล์) ฉันต้องการทำสิ่งที่ชอบ sha1sum /folder/of/stuff > singlehashvalue แก้ไข:เพื่อชี้แจงไฟล์ของฉันอยู่ในหลายระดับในแผนผังไดเรกทอรีไม่ใช่ทั้งหมดที่อยู่ในโฟลเดอร์รูทเดียวกัน
98 linux  bash  hash 

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