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

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

14
วิธีพกพาในการรับขนาดไฟล์ (เป็นไบต์) ในเชลล์?
บน Linux ฉันใช้stat --format="%s" FILEแต่ Solaris ที่ฉันเข้าถึงไม่มีคำสั่ง stat ฉันควรใช้อะไร? ฉันกำลังเขียนสคริปต์ Bash และไม่สามารถติดตั้งซอฟต์แวร์ใหม่ในระบบได้ ฉันพิจารณาแล้วว่าใช้: perl -e '@x=stat(shift);print $x[7]' FILE หรือแม้กระทั่ง: ls -nl FILE | awk '{print $5}' แต่สิ่งเหล่านี้ดูไม่สมเหตุสมผล - ใช้ Perl เพื่อรับขนาดไฟล์? หรือรัน 2 คำสั่งทำเหมือนกัน?
121 linux  bash  shell  solaris 

5
Linux bash: การกำหนดตัวแปรหลายตัว
มีอยู่ใน linux bash ซึ่งคล้ายกับโค้ดต่อไปนี้ใน PHP: list($var1, $var2, $var3) = function_that_returns_a_three_element_array() ; กล่าวคือคุณกำหนดค่าที่สอดคล้องกันให้กับตัวแปร 3 ตัวในประโยคเดียว สมมติว่าฉันมีฟังก์ชัน bash myBashFuntionที่เขียนเพื่อ stdout สตริง "qwert asdfg zxcvb" เป็นไปได้ไหมที่จะทำสิ่งต่างๆเช่น: (var1 var2 var3) = ( `myBashFuntion param1 param2` ) ส่วนที่อยู่ทางซ้ายของเครื่องหมายเท่ากับไม่ใช่ไวยากรณ์ที่ถูกต้องแน่นอน ฉันแค่พยายามอธิบายสิ่งที่ฉันขอ สิ่งที่ได้ผลมีดังต่อไปนี้: array = ( `myBashFuntion param1 param2` ) echo ${array[0]} ${array[1]} ${array[2]} แต่อาร์เรย์ที่จัดทำดัชนีจะไม่สามารถอธิบายได้เหมือนกับชื่อตัวแปรธรรมดา อย่างไรก็ตามฉันสามารถทำได้: var1 = …

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

14
วิธีปิด Spring Boot Application ด้วยวิธีที่ถูกต้อง?
ในเอกสาร Spring Boot พวกเขากล่าวว่า 'SpringApplication แต่ละตัวจะลงทะเบียน hook การปิดระบบกับ JVM เพื่อให้แน่ใจว่า ApplicationContext ปิดอย่างเรียบร้อยเมื่อออกจากระบบ' เมื่อฉันคลิกctrl+cที่คำสั่งเชลล์แอปพลิเคชันสามารถปิดได้อย่างสวยงาม java -jar ProApplicaton.jarถ้าผมเรียกใช้โปรแกรมประยุกต์ในเครื่องการผลิตที่ผมต้องใช้คำสั่ง แต่ฉันปิดเทอร์มินัลเชลล์ไม่ได้มิฉะนั้นจะปิดกระบวนการ ถ้าฉันเรียกใช้คำสั่งเช่นnohup java -jar ProApplicaton.jar &ฉันไม่สามารถใช้ctrl+cเพื่อปิดได้อย่างสง่างาม วิธีที่ถูกต้องในการเริ่มและหยุด Spring Boot Application ในสภาพแวดล้อมการผลิตคืออะไร?

8
วิธีการแตกไฟล์ filename.tar.gz
ฉันต้องการแยกไฟล์เก็บถาวรชื่อfilename.tar.gz. การใช้tar -xzvf filename.tar.gzไม่แตกไฟล์ มันให้ข้อผิดพลาดนี้: gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error exit delayed from previous errors
120 linux  file  gzip  tar 


7
กระบวนการใดที่ใช้ IO ดิสก์ทั้งหมดของฉัน
ถ้าฉันใช้ "top" ฉันจะเห็นว่า CPU ตัวไหนไม่ว่างและกระบวนการใดที่ใช้ CPU ทั้งหมดของฉัน ถ้าฉันใช้ "iostat -x" ฉันสามารถดูไดรฟ์ที่ไม่ว่าง แต่ฉันจะดูได้อย่างไรว่ากระบวนการใดใช้ปริมาณงานทั้งหมดของไดรฟ์

3
DESTDIR และ PREFIX ของ make
ฉันกำลังพยายามติดตั้งซอฟต์แวร์ไปยังไดเร็กทอรีเฉพาะ ฉันพบหลายวิธี แต่ไม่แน่ใจว่ามีความแตกต่างกันอย่างไร ./configure --prefix=*** make install DESTDIR=*** make install prefix=*** ฉันสับสนเกี่ยวกับการทำงานของทั้งสามอย่างนี้ พวกเขาบรรลุเป้าหมายเดียวกันหรือไม่?
120 c  linux  bash  makefile  configure 


6
เหตุใดจึงต้องใช้เซ็กเมนต์. bss
สิ่งที่ฉันรู้คือตัวแปรส่วนกลางและตัวแปรคงถูกเก็บไว้ใน.dataเซ็กเมนต์และข้อมูลที่ไม่ได้กำหนดค่าเริ่มต้นจะอยู่ใน.bssเซ็กเมนต์ สิ่งที่ฉันไม่เข้าใจคือเหตุใดเราจึงมีเซ็กเมนต์เฉพาะสำหรับตัวแปรที่ไม่ได้กำหนดค่าเริ่มต้น หากตัวแปรที่ไม่ได้เริ่มต้นมีค่าที่กำหนดในขณะรันตัวแปรจะยังคงอยู่ใน.bssเซ็กเมนต์เท่านั้นหรือไม่ ในโปรแกรมต่อไปนี้ aอยู่ใน.dataกลุ่มและbอยู่ใน.bssกลุ่ม ถูกต้องหรือไม่ กรุณาแก้ไขฉันหากความเข้าใจของฉันไม่ถูกต้อง #include <stdio.h> #include <stdlib.h> int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9}; int b[20]; /* Uninitialized, so in the .bss and will not occupy space for 20 * sizeof (int) */ int main () { ; } นอกจากนี้ให้พิจารณาโปรแกรมต่อไปนี้ …

6
การทำซ้ำในแต่ละบรรทัดของเอาต์พุต ls -l
ฉันต้องการทำซ้ำในแต่ละบรรทัดในผลลัพธ์ของ: ls -l /some/dir/* ตอนนี้ฉันกำลังพยายาม: for x in $(ls -l $1); do echo $x; done อย่างไรก็ตามสิ่งนี้จะวนซ้ำในแต่ละองค์ประกอบในบรรทัดแยกกันดังนั้นฉันจึงได้รับ: -r--r----- 1 ivanevf eng 1074 Apr 22 13:07 File1 -r--r----- 1 ivanevf eng 1074 Apr 22 13:17 File2 แต่ฉันต้องการทำซ้ำในแต่ละบรรทัดโดยรวม ฉันจะทำอย่างไร?
120 linux  shell 

9
คำสั่ง Linux (เช่น cat) เพื่ออ่านจำนวนอักขระที่ระบุ
มีคำสั่งเช่นเดียวกับcatใน linux ซึ่งสามารถส่งคืนจำนวนอักขระที่ระบุจากไฟล์ได้หรือไม่? เช่นฉันมีไฟล์ข้อความเช่น: Hello world this is the second line this is the third line และฉันต้องการบางอย่างที่จะคืนค่าอักขระ 5 ตัวแรกซึ่งจะเป็น "สวัสดี" ขอบคุณ

13
พิมพ์ call stack ใน C หรือ C ++
มีวิธีใดในการถ่ายโอนข้อมูลการโทรในกระบวนการทำงานใน C หรือ C ++ ทุกครั้งที่เรียกใช้ฟังก์ชันบางอย่าง สิ่งที่ฉันคิดไว้มีดังนี้: void foo() { print_stack_trace(); // foo's body return } สถานที่print_stack_traceทำงานคล้ายกับcallerใน Perl หรือสิ่งนี้: int main (void) { // will print out debug info every time foo() is called register_stack_trace_function(foo); // etc... } ที่register_stack_trace_functionวางเบรกพอยต์ภายในบางประเภทที่จะทำให้การติดตามสแต็กถูกพิมพ์เมื่อใดก็ตามที่fooถูกเรียก สิ่งนี้มีอยู่ในไลบรารี C มาตรฐานหรือไม่? ฉันทำงานบน Linux โดยใช้ GCC พื้นหลัง ฉันมีการทดสอบที่ทำงานแตกต่างกันไปตามสวิตช์บรรทัดคำสั่งบางอย่างที่ไม่ควรส่งผลต่อพฤติกรรมนี้ รหัสของฉันมีตัวสร้างตัวเลขสุ่มหลอกที่ฉันคิดว่าถูกเรียกแตกต่างกันไปตามสวิตช์เหล่านี้ ฉันต้องการเรียกใช้การทดสอบกับสวิตช์แต่ละชุดและดูว่าตัวสร้างตัวเลขสุ่มถูกเรียกแตกต่างกันหรือไม่สำหรับแต่ละอัน
120 c++  c  linux  callstack 

10
ไม่รวมไดเร็กทอรีเมื่อสร้างไฟล์. tar.gz
ฉันมี/public_html/โฟลเดอร์ในโฟลเดอร์นั้นมี/tmp/โฟลเดอร์ที่มีไฟล์ 70GB ซึ่งฉันไม่ต้องการจริงๆ ตอนนี้ผมกำลังพยายามที่จะสร้าง.tar.gzของ/public_html/ไม่รวม/tmp/ นี่คือคำสั่งที่ฉันเรียกใช้: tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp/" tar ยังคงถูกสร้างขึ้นและจากการทำls -shฉันเห็นว่าMyBackup.tar.gzมีอยู่แล้วประมาณ 30gb และฉันรู้แน่นอนว่า/public_html/ไม่มี/tmp/ไฟล์เกิน 1GB ฉันทำอะไรผิด?
119 linux  gzip  tar  compression 

15
ไม่พบการแก้ไข Build Tools 23.0.1
ฉันกำลังพยายามสร้างแอปแรกด้วย react-native ฉันกำลังติดตามบทช่วยสอน 2 ข้อนี้: https://facebook.github.io/react-native/docs/getting-started.html#content https://facebook.github.io/react-native/docs/android-setup.html ฉันแน่ใจว่าฉันได้ติดตั้งข้อกำหนดทั้งหมดจากลิงค์ที่สอง แต่เมื่อฉันลองใช้แอพของreact-native run-androidฉันฉันได้รับข้อผิดพลาดต่อไปนี้: ฉันดำเนินการคำสั่งนี้ในขณะที่เรียกใช้ genymotion นี่คือทั้งหมดที่ฉันติดตั้งใน Android SDK: ฉันพยายามติดตั้งเครื่องมือสร้าง Android 23.0.1 แต่ได้รับข้อผิดพลาดนี้: ฉันควรทำอย่างไรดี?

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