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

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

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

26
ฉันจะส่งไฟล์เป็นไฟล์แนบอีเมลโดยใช้บรรทัดคำสั่ง Linux ได้อย่างไร
ฉันได้สร้างสคริปต์ที่ทำงานทุกคืนบนเซิร์ฟเวอร์ Linux ของฉันที่ใช้mysqldumpในการสำรองฐานข้อมูล MySQL ของฉันแต่ละไฟล์เป็น. sql และจัดทำแพคเกจรวมกันเป็นไฟล์. tar ที่บีบอัด ขั้นตอนต่อไปที่ฉันต้องการทำให้สำเร็จคือการส่งไฟล์ tar ผ่านอีเมลไปยังเซิร์ฟเวอร์อีเมลระยะไกลเพื่อความปลอดภัย ฉันสามารถส่งสคริปต์ดิบในอีเมลโดยการไพพ์ไฟล์ข้อความสำรองmailxให้เป็นดังนี้: $ cat mysqldbbackup.sql | mailx backup@email.com catechoes ข้อความของไฟล์สำรองข้อมูลซึ่งถูกส่งเข้าไปในmailxโปรแกรมโดยที่อยู่อีเมลของผู้รับถูกส่งเป็นอาร์กิวเมนต์ แม้ว่าสิ่งนี้จะบรรลุสิ่งที่ฉันต้องการ แต่ฉันคิดว่ามันน่าจะดีขึ้นไปอีกขั้นหนึ่งมีวิธีใช้เชลล์สคริปต์หรือส่งไฟล์. tar ที่บีบอัดไปยังข้อความอีเมลขาออกเป็นไฟล์แนบหรือไม่ เรื่องนี้จะต้องจัดการกับข้อความอีเมลที่ยาวมากซึ่งมีข้อมูลส่วนหัวและมักจะมีปัญหาการตัดคำ

9
UnicodeDecodeError: ตัวแปลงสัญญาณ 'utf8' ไม่สามารถถอดรหัสไบต์ 0x9c
ฉันมีซ็อกเก็ตเซิร์ฟเวอร์ที่ควรจะได้รับอักขระที่ถูกต้อง UTF-8 จากลูกค้า ปัญหาคือลูกค้าบางราย (ส่วนใหญ่แฮกเกอร์) กำลังส่งข้อมูลผิดประเภททั้งหมด ฉันสามารถแยกความแตกต่างไคลเอนต์ของแท้ได้อย่างง่ายดาย แต่ฉันเข้าสู่ไฟล์ข้อมูลทั้งหมดที่ส่งเพื่อให้ฉันสามารถวิเคราะห์ได้ในภายหลัง บางครั้งฉันได้รับตัวละครเช่นนี้œทำให้เกิดUnicodeDecodeErrorข้อผิดพลาด ฉันต้องสามารถสร้างสตริง UTF-8 โดยมีหรือไม่มีอักขระเหล่านั้น ปรับปรุง: สำหรับกรณีของฉันบริการซ็อกเก็ตเป็น MTA และฉันคาดหวังว่าจะได้รับคำสั่ง ASCII เช่น: EHLO example.com MAIL FROM: <john.doe@example.com> ... ฉันบันทึกทั้งหมดนี้ใน JSON จากนั้นบางคนก็ออกไปที่นั่นโดยไม่มีเจตนาดีตัดสินใจขายขยะทุกชนิด นั่นเป็นเหตุผลสำหรับกรณีเฉพาะของฉันมันเป็นเรื่องที่ดีที่จะตัดอักขระที่ไม่ใช่ ASCII ออก

4
วิธีเพิ่มพา ธ รวมเริ่มต้นสำหรับ GCC ใน Linux
ฉันต้องการ GCC จะรวมไฟล์จาก$HOME/includeที่นอกเหนือไปจากปกติรวมถึงไดเรกทอรี $LD_LIBRARY_PATHแต่มีไม่ดูเหมือนจะเป็นแบบอนาลอก ฉันรู้ว่าฉันสามารถเพิ่มไดเรกทอรีรวมที่บรรทัดคำสั่งเมื่อรวบรวม (หรือใน makefile) แต่ฉันชอบวิธีการที่เป็นสากลที่นี่เช่นในกรณีห้องสมุด


8
จะเพิ่มผู้ใช้ในคอนเทนเนอร์ Docker ได้อย่างไร?
ฉันมีตัวเทียบท่าที่มีกระบวนการบางอย่าง (uwsgi และขึ้นฉ่าย) ที่ทำงานอยู่ภายใน ฉันต้องการสร้างผู้ใช้คื่นฉ่ายและผู้ใช้ uwsgi สำหรับกระบวนการเหล่านี้รวมถึงกลุ่มผู้ปฏิบัติงานที่พวกเขาจะเป็นของทั้งคู่เพื่อกำหนดสิทธิ์ ฉันพยายามเพิ่มRUN adduser uwsgiและRUN adduser celeryการ Dockerfile ของฉัน แต่นี้จะก่อให้เกิดปัญหาตั้งแต่เหล่านี้คำสั่งพรอมต์สำหรับการป้อนข้อมูล (ผมเคยโพสต์ตอบจากการสร้างด้านล่าง) วิธีที่ดีที่สุดในการเพิ่มผู้ใช้ลงในคอนเทนเนอร์ Docker คือการตั้งค่าการอนุญาตสำหรับพนักงานที่ทำงานในคอนเทนเนอร์ ภาพของฉันเทียบท่าที่ถูกสร้างขึ้นอย่างเป็นทางการจากฐาน Ubuntu14.04 นี่คือเอาต์พุตจาก Dockerfile เมื่อรันคำสั่ง adduser: Adding user `uwsgi' ... Adding new group `uwsgi' (1000) ... Adding new user `uwsgi' (1000) with group `uwsgi' ... Creating home directory `/home/uwsgi' ... Copying …
285 linux  ubuntu  dockerfile 

25
ตั้งค่าอุปกรณ์สำหรับการพัฒนา (ไม่มีสิทธิ์)
ฉันใช้โทรศัพท์ Samsung Galaxy Nexus ( แพลตฟอร์มAndroid 4.0 ) ฉันกำลังพัฒนาแอพ Android บน Ubuntu linux OS ฉันต้องการเรียกใช้แอปพลิเคชันของฉันโดยตรงบนอุปกรณ์มือถือซัมซุงดังนั้นฉันจึงทำตามขั้นตอนการตั้งค่าต่อไปนี้: ในAndroidManifest.xmlไฟล์โครงการของฉันเพิ่มลงandroid:debuggable="true"ใน<application>องค์ประกอบ บนอุปกรณ์ในการตั้งค่า> ความปลอดภัยเปิดใช้งานแหล่งที่ไม่รู้จัก บนอุปกรณ์ในการตั้งค่า> ตัวเลือกผู้พัฒนาเปิดใช้งานการแก้ไขข้อบกพร่อง USB บนคอมพิวเตอร์ของฉันสร้าง/etc/udev/rules.d/51-android.rulesไฟล์โดยมีเนื้อหาดังต่อไปนี้: SUBSYSTEM=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="plugdev" บนคอมพิวเตอร์ของฉันเรียกใช้chmod a+r /etc/udev/rules.d/51-android.rulesคำสั่ง จากนั้นในคอมพิวเตอร์ของฉันฉันเปิดเทอร์มินัลและดำเนินการadb devicesคำสั่งฉันได้รับ: List of devices attached ???????????? no permissions เนื่องจากฉันไม่เห็นอุปกรณ์ของฉัน แต่เพียงอย่างเดียว???????????? no permissionsฉันจึงเรียกใช้คำสั่งต่อไปนี้: adb kill-server adb start-server adb devices แต่ฉันยังคงได้รับ: List …
282 android  linux  ubuntu  adb  fastboot 

23
วิธีสร้าง CPU spike ด้วยคำสั่ง bash
ฉันต้องการสร้างการโหลดเกือบ 100% บนเครื่อง Linux มันเป็นระบบควอดคอร์และฉันต้องการให้แกนทั้งหมดเต็มความเร็ว เป็นการดีที่ภาระของ CPU จะคงอยู่ตามระยะเวลาที่กำหนดจากนั้นจึงหยุด ฉันหวังว่าจะมีเคล็ดลับในการทุบตี ฉันกำลังคิดวนรอบไม่สิ้นสุดบางอย่าง
281 linux  bash  load  cpu 

20
คำสั่ง Linux เพื่อแสดงรายการคำสั่งและนามแฝงที่มีอยู่ทั้งหมด
มีคำสั่ง Linux ที่จะแสดงรายการคำสั่งและนามแฝงที่มีอยู่ทั้งหมดสำหรับเทอร์มินัลเซสชันนี้หรือไม่ ราวกับว่าคุณพิมพ์แท็บ 'a' และกด แต่สำหรับตัวอักษรทุกตัว หรือเรียกใช้ 'นามแฝง' แต่กลับคำสั่ง ทำไม? ฉันต้องการเรียกใช้สิ่งต่อไปนี้และดูว่ามีคำสั่งอยู่หรือไม่: ListAllCommands | grep searchstr

20
ติดตั้ง tkinter สำหรับ Python
ฉันพยายามที่จะ import Tkinterฉันพยายามที่จะอย่างไรก็ตามฉันได้รับข้อผิดพลาดที่ระบุว่าTkinterยังไม่ได้ติดตั้ง: ImportError: No module named _tkinter, please install the python-tk package ฉันอาจจะติดตั้งโดยใช้ตัวจัดการ synaptic (ฉันสามารถ?) แต่ฉันจะต้องติดตั้งในทุกเครื่องฉันโปรแกรมบน เป็นไปได้ไหมที่จะเพิ่มห้องสมุด Tkinter ในพื้นที่ทำงานของฉันและอ้างอิงจากที่นั่น?
277 python  linux  tkinter  install 

11
หลักทิ้งแล้ว แต่ไฟล์หลักไม่ได้อยู่ในไดเรกทอรีปัจจุบัน?
ในขณะที่รันโปรแกรม C มันบอกว่า"(core dumped)"แต่ฉันไม่เห็นไฟล์ใด ๆ ภายใต้พา ธ ปัจจุบัน ฉันได้ตั้งค่าและตรวจสอบulimit: ulimit -c unlimited ulimit -a ฉันพยายามค้นหาไฟล์ชื่อ "core" แต่ไม่ได้รับไฟล์ทิ้งหลัก? ความช่วยเหลือใด ๆ ไฟล์หลักของฉันอยู่ที่ไหน
277 c  linux  coredump 

5
“ rc” หมายถึงอะไรในไฟล์จุด
ในโฟลเดอร์บ้านของฉันใน Linux ฉันมีไฟล์ปรับแต่งหลายอย่างที่มี "rc" เป็นนามสกุลไฟล์: $ ls -a ~/|pcregrep 'rc$' .bashrc .octaverc .perltidyrc .screenrc .vimrc "rc" ในชื่อเหล่านี้มีความหมายว่าอะไร?
277 linux  rc 

6
ห้ามฝากไดเรกทอรีไว้ แต่อย่าเก็บเส้นทางที่สมบูรณ์แบบไว้ในที่เก็บถาวร
ฉันมีคำสั่งต่อไปนี้ในส่วนของเชลล์สคริปต์สำรอง: tar -cjf site1.bz2 /var/www/site1/ เมื่อฉันแสดงรายการเนื้อหาของไฟล์เก็บถาวรฉันจะได้รับ: tar -tf site1.bz2 var/www/site1/style.css var/www/site1/index.html var/www/site1/page2.html var/www/site1/page3.html var/www/site1/images/img1.png var/www/site1/images/img2.png var/www/site1/subdir/index.html แต่ฉันต้องการที่จะลบส่วน/var/www/site1จากไดเรกทอรีและชื่อไฟล์ภายในที่เก็บเพื่อลดความยุ่งยากในการสกัดและหลีกเลี่ยงโครงสร้างไดเรกทอรีคงที่ไร้ประโยชน์ ไม่เคยรู้ในกรณีที่ฉันจะแยกเว็บไซต์ที่/var/wwwสำรองไว้ในที่ที่ไม่มีการจัดเก็บข้อมูลเว็บไว้ สำหรับตัวอย่างข้างต้นฉันต้องการ: tar -tf site1.bz2 style.css index.html page2.html page3.html images/img1.png images/img2.png subdir/index.html ดังนั้นเมื่อฉันแตกไฟล์จะถูกแตกในไดเรกทอรีปัจจุบันและฉันไม่จำเป็นต้องย้ายไฟล์ที่ถูกแยกหลังจากนั้นและเพื่อให้โครงสร้างไดเรกทอรีย่อยถูกเก็บรักษาไว้ มีคำถามมากมายเกี่ยวกับ tar และการสำรองข้อมูลในstackoverflowและที่อื่น ๆ บนเว็บ แต่ส่วนใหญ่ขอให้วางโครงสร้างไดเรกทอรีย่อยทั้งหมด (แบน) หรือเพียงแค่เพิ่มหรือลบชื่อเริ่มต้น / ในชื่อ (I don ' ไม่รู้ว่ามันจะเปลี่ยนไปเมื่อสกัด) แต่ไม่มาก หลังจากอ่านคำตอบบางส่วนที่พบที่นี่และที่นั่นพร้อมกับคู่มือแล้วฉันลอง: tar -cjf site1.bz2 -C …
277 linux  bash  backup  tar 

14
วิธีการใช้ Inode ฟรี
ฉันมีดิสก์ไดรฟ์ที่ใช้ inode 100% (ใช้df -iคำสั่ง) อย่างไรก็ตามหลังจากลบไฟล์อย่างมีนัยสำคัญการใช้งานยังคงอยู่ 100% แล้ววิธีที่ถูกต้องในการทำคืออะไร? เป็นไปได้อย่างไรที่ดิสก์ไดรฟ์ที่มีการใช้พื้นที่ดิสก์น้อยกว่าสามารถมีการใช้งานไอโหนดสูงกว่าดิสก์ไดรฟ์ที่มีการใช้พื้นที่ดิสก์มากขึ้น เป็นไปได้หรือไม่ถ้าฉันซิปไฟล์จำนวนมากที่จะลดจำนวน inode ที่ใช้ไป

17
มีวิธีทำให้ mv สร้างไดเรกทอรีที่จะย้ายไปหากไม่มีหรือไม่?
ดังนั้นถ้าฉันอยู่ในโฮมไดเร็กตอรี่ของฉันและฉันต้องการย้าย foo.c ไปที่ ~ / bar / baz / foo.c, แต่ไดเรกทอรีเหล่านั้นไม่มีอยู่, มีวิธีที่จะสร้างไดเร็กตอรี่เหล่านั้นโดยอัตโนมัติ, คุณจะต้องพิมพ์ mv foo.c ~/bar/baz/ และทุกอย่างจะทำงานออกมา? ดูเหมือนว่าคุณสามารถนามแฝง mv เป็นสคริปต์ทุบตีง่าย ๆ ที่จะตรวจสอบว่ามีไดเรกทอรีเหล่านั้นอยู่หรือไม่ถ้าไม่เรียก mkdir แล้ว mv แต่ฉันคิดว่าฉันจะตรวจสอบดูว่าใครมีความคิดที่ดีกว่า
275 linux  macos  unix  mkdir  mv 

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