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

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

6
ฉันจะแยกรหัสเครื่อง 16 บิต x86 ดิบได้อย่างไร
ฉันต้องการแยกชิ้นส่วน MBR (512 ไบต์แรก) ของดิสก์ x86 ที่สามารถบู๊ตได้ที่ฉันมี ฉันคัดลอก MBR ไปยังไฟล์โดยใช้ dd if=/dev/my-device of=mbr bs=512 count=1 ข้อเสนอแนะสำหรับยูทิลิตี้ Linux ที่สามารถแยกไฟล์ได้mbrหรือไม่?
91 linux  assembly  x86  x86-16  mbr 


3
เรียกใช้สคริปต์ Python ผ่าน crontab
ฉันพยายามที่จะดำเนินการสคริปต์ Python ใช้ลินุกซ์crontab ฉันต้องการเรียกใช้สคริปต์นี้ทุกๆ 10 นาที ฉันพบวิธีแก้ปัญหามากมายและไม่มีวิธีใดได้ผล ตัวอย่างเช่น: แก้ไข anacron ที่/etc/cron.dcrontab -eหรือการใช้งาน ฉันวางบรรทัดนี้ไว้ที่ส่วนท้ายของไฟล์ แต่มันไม่ได้เปลี่ยนแปลงอะไรเลย ฉันต้องเริ่มบริการใหม่หรือไม่? */2 * * * * /usr/bin/python /home/souza/Documets/Listener/listener.py ไฟล์ใดที่ฉันต้องแก้ไขเพื่อกำหนดค่านี้ นี่คือสคริปต์ #!/usr/bin/python # -*- coding: iso-8859-15 -*- import json import os import pycurl import sys import cStringIO if __name__ == "__main__": name_server_standart = "Server created by script …
91 python  linux  cron 

16
tar: เพิ่มไฟล์และไดเร็กทอรีทั้งหมดในไดเร็กทอรีปัจจุบันซึ่งรวมถึง. svn และอื่น ๆ
ฉันพยายาม tar.gz ไดเรกทอรีและใช้ tar -czf workspace.tar.gz * tar ที่ได้จะมี.svnไดเร็กทอรีในไดเร็กทอรีย่อย แต่ไม่อยู่ในไดเร็กทอรีปัจจุบัน (เนื่องจาก*ขยายเป็นไฟล์ 'มองเห็นได้' เท่านั้นก่อนที่จะถูกส่งไปยัง tar ฉันพยายามที่จะ tar -czf workspace.tar.gz .แต่แล้วฉันก็ได้รับข้อผิดพลาดเนื่องจาก "." มีการเปลี่ยนแปลงขณะอ่าน: tar: ./workspace.tar.gz: file changed as we read it มีเคล็ดลับในการ*จับคู่ไฟล์ทั้งหมด (รวมถึงจุดที่นำหน้า) ในไดเรกทอรีหรือไม่ (ใช้ bash บน Linux SLES-11 (2.6.27.19)


5
ข้อผิดพลาด "ไม่มีข้อมูลเวอร์ชัน" จาก linux dynamic linker หมายความว่าอย่างไร
ในผลิตภัณฑ์ของเราเราจัดส่งไบนารีลินุกซ์บางตัวที่เชื่อมโยงกับไลบรารีระบบแบบไดนามิกเช่น "libpam" ในระบบลูกค้าบางระบบเราได้รับข้อผิดพลาดต่อไปนี้บน stderr เมื่อโปรแกรมทำงาน: ./authpam: /lib/libpam.so.0: no version information available (required by authpam) แอปพลิเคชันทำงานได้ดีและรันโค้ดจากไลบรารีไดนามิก นี่ไม่ใช่ข้อผิดพลาดร้ายแรง แต่เป็นเพียงคำเตือน ฉันคิดว่านี่เป็นข้อผิดพลาดมาจากตัวเชื่อมโยงแบบไดนามิกเมื่อไลบรารีที่ติดตั้งระบบขาดสิ่งที่เรียกใช้งานได้ของเรา ฉันไม่รู้อะไรมากเกี่ยวกับภายในของกระบวนการลิงก์แบบไดนามิก ... และการเข้าสู่หัวข้อนั้นไม่ได้ช่วยอะไรมาก :( ใครทราบสาเหตุของข้อผิดพลาดนี้ ... จะวินิจฉัยสาเหตุได้อย่างไร? ... และเราจะเปลี่ยนไฟล์ปฏิบัติการเพื่อหลีกเลี่ยงปัญหานี้ได้อย่างไร? อัปเดต: ลูกค้าอัปเกรดเป็น "การทดสอบ" เดเบียนเวอร์ชันล่าสุดและเกิดข้อผิดพลาดเดียวกัน ดังนั้นจึงไม่ใช่ไลบรารี libpam ที่ล้าสมัย ฉันเดาว่าฉันต้องการที่จะเข้าใจสิ่งที่ผู้เชื่อมโยงกำลังบ่น? ฉันจะตรวจสอบสาเหตุที่แท้จริง ฯลฯ ได้อย่างไร
91 linux  linker 

8
ฉันจะตั้งค่า 'แบ็กเอนด์' ใน matplotlib ใน Python ได้อย่างไร
ฉันเป็นผู้ใช้ matplotlib ใหม่แพลตฟอร์มของฉันคือ Ubuntu 10.04 Python 2.6.5 นี่คือรหัสของฉัน import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt plt.plot([1,2,3]) ข้อผิดพลาดคือ: /usr/local/lib/python2.6/dist-packages/matplotlib/backends/__init__.py:41: UserWarning: Your currently selected backend, 'agg' does not support show(). Please select a GUI backend in your matplotlibrc file ('/usr/local/lib/python2.6/dist-packages/matplotlib/mpl-data/matplotlibrc') or with matplotlib.use() (backend, matplotlib.matplotlib_fname())) ฉันติดตั้งไลบรารี Anti-Grain Geometry apt-get install libaggแต่ใช้ไม่ได้ ฉันพยายามใช้อาร์กิวเมนต์อื่น …

3
<random> สร้างหมายเลขเดียวกันใน Linux แต่ไม่ใช่ใน Windows
รหัสด้านล่างนี้มีไว้เพื่อสร้างรายการตัวเลขสุ่มหลอกห้าหมายเลขในช่วงเวลา [1,100] ฉันเมล็ดdefault_random_engineด้วยtime(0)ซึ่งจะส่งกลับเวลาของระบบในเวลายูนิกซ์ เมื่อฉันรวบรวมและเรียกใช้โปรแกรมนี้บน Windows 7 โดยใช้ Microsoft Visual Studio 2013 มันทำงานได้ตามที่คาดไว้ (ดูด้านล่าง) อย่างไรก็ตามเมื่อฉันทำใน Arch Linux ด้วยคอมไพเลอร์ g ++ มันทำงานแปลก ๆ ใน Linux จะมีการสร้างตัวเลข 5 ตัวในแต่ละครั้ง ตัวเลข 4 ตัวสุดท้ายจะแตกต่างกันในแต่ละการดำเนินการ (ซึ่งมักจะเป็นเช่นนั้น) แต่ตัวเลขแรกจะยังคงเหมือนเดิม ตัวอย่างผลลัพธ์จากการดำเนินการ 5 ครั้งบน Windows และ Linux: | Windows: | Linux: --------------------------------------- Run 1 | 54,01,91,73,68 | 25,38,40,42,21 Run 2 …

4
จะแสดงรายการไฟล์ในไดเร็กทอรีในโปรแกรม C ได้อย่างไร?
ฉันพยายามเขียนเซิร์ฟเวอร์ ftp บน Linux ในเรื่องนี้ฉันจะแสดงรายการไฟล์ในไดเร็กทอรีบนเทอร์มินัลโดยโปรแกรม C ได้อย่างไร? บางทีฉันอาจใช้ฟังก์ชัน exec เพื่อเรียกใช้คำสั่ง find แต่ฉันต้องการชื่อไฟล์เป็นสตริงเพื่อส่งโปรแกรมไคลเอนต์ ฉันจะทำเช่นนี้ได้อย่างไร? ขอบคุณสำหรับคำตอบ
91 c  linux 

5
ฉันจะเพิ่ม dir ใน $ PATH ใน Makefile ได้อย่างไร
ฉันต้องการเขียน Makefile ซึ่งจะเรียกใช้การทดสอบ การทดสอบอยู่ในไดเร็กทอรี "./tests" และไฟล์ปฏิบัติการที่จะทดสอบอยู่ในไดเร็กทอรี "./bin" เมื่อฉันเรียกใช้การทดสอบพวกเขาไม่เห็นไฟล์ exec เนื่องจากไดเร็กทอรี. / bin ไม่อยู่ใน $ PATH เมื่อฉันทำสิ่งนี้: EXPORT PATH=bin:$PATH make test ทุกอย่างใช้งานได้ อย่างไรก็ตามฉันต้องการเปลี่ยน $ PATH ใน Makefile เนื้อหา Makefile อย่างง่าย: test all: PATH=bin:${PATH} @echo $(PATH) x มันพิมพ์เส้นทางอย่างถูกต้อง แต่ไม่พบไฟล์ x เมื่อฉันทำสิ่งนี้ด้วยตนเอง: $ export PATH=bin:$PATH $ x ทุกอย่างเรียบร้อยแล้ว ฉันจะเปลี่ยน $ PATH ใน Makefile …
91 linux  makefile 

5
ฉันจะอ่าน sed จากอินพุตมาตรฐานได้อย่างไร [ซ้ำ]
คำถามนี้มีคำตอบอยู่แล้วที่นี่ : ตัวเลือกที่ไม่รู้จักเพื่อ `s 'ใน bash script [ซ้ำกัน] (4 คำตอบ) ปิดเมื่อ4 เดือนที่แล้ว . ฉันกำลังพยายาม grep searchterm myfile.csv | sed 's/replaceme/withthis/g' และได้รับ unknown option to `s' ผมทำอะไรผิดหรือเปล่า? แก้ไข: ตามความคิดเห็นรหัสถูกต้องจริง รหัสเต็มของฉันมีลักษณะดังต่อไปนี้ grep searchterm myfile.csv | sed 's/replaceme/withthis/g' # my comment และดูเหมือนว่าด้วยเหตุผลบางประการความคิดเห็นของฉันจึงถูกป้อนเข้าสู่ sed ที่แปลกมาก.
91 linux  bash  shell 

5
จะทำให้ backtrace () / backtrace_symbols () พิมพ์ชื่อฟังก์ชันได้อย่างไร?
ลินุกซ์เฉพาะbacktrace()และbacktrace_symbols()อนุญาตให้คุณสร้างการติดตามการโทรของโปรแกรม อย่างไรก็ตามมันพิมพ์เฉพาะที่อยู่ของฟังก์ชันไม่ใช่ชื่อของโปรแกรมของฉัน ฉันจะทำให้พวกเขาพิมพ์ชื่อฟังก์ชันด้วยได้อย่างไร ฉันได้ลองรวบรวมโปรแกรมด้วย-gเช่นเดียวกับ-ggdb. กรณีทดสอบด้านล่างเพียงแค่พิมพ์สิ่งนี้: พื้นหลัง ------------ ./a.out () [0x8048616] ./a.out () [0x8048623] /lib/libc.so.6(__libc_start_main+0xf3) [0x4a937413] ./a.out () [0x8048421] ---------------------- ฉันต้องการให้ 2 รายการแรกแสดงชื่อฟังก์ชันด้วยfooและmain รหัส: #include &lt;execinfo.h&gt; #include &lt;string.h&gt; #include &lt;errno.h&gt; #include &lt;unistd.h&gt; #include &lt;stdlib.h&gt; static void full_write(int fd, const char *buf, size_t len) { while (len &gt; 0) { ssize_t ret …
90 c  linux  debugging  backtrace 

8
สถานะกระบวนการของ Linux
ใน Linux จะเกิดอะไรขึ้นกับสถานะของกระบวนการเมื่อต้องอ่านบล็อกจากดิสก์ ถูกบล็อกหรือไม่? ถ้าเป็นเช่นนั้นกระบวนการอื่นถูกเลือกให้ดำเนินการอย่างไร
90 linux  process  kernel  cpu  states 

11
วิธีรับการใช้หน่วยความจำในรันไทม์โดยใช้ C ++
ฉันต้องการรับ VIRT การใช้งาน mem และ RES ณ เวลาทำงานของโปรแกรมของฉันและแสดง สิ่งที่ฉันพยายามจนถึงตอนนี้: getrusage ( http://linux.die.net/man/2/getrusage ) int who = RUSAGE_SELF; struct rusage usage; int ret; ret=getrusage(who,&amp;usage); cout&lt;&lt;usage.ru_maxrss; แต่ฉันจะได้ 0 เสมอ

3
cp -r โดยไม่มีไฟล์ที่ซ่อนอยู่
ฉันมีสองไดเรกทอรีและหนึ่งว่างเปล่า ไดเร็กทอรีแรกมีไดเร็กทอรีย่อยจำนวนมากที่มีไฟล์ซ่อนอยู่ เมื่อฉันcp -rเนื้อหาจากไดเร็กทอรีแรกไปยังไดเร็กทอรีที่สองไฟล์ที่ซ่อนอยู่จะถูกคัดลอกไปด้วย วิธีแก้ปัญหาใด ๆ เพื่อหลีกหนีพวกเขา?
90 linux  bash  cp 

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