Unix & Linux

คำถาม & คำตอบสำหรับผู้ใช้ Linux, FreeBSD และระบบปฏิบัติการ Un * x อื่น ๆ

1
วิธีการตั้งค่า Linux สำหรับการสนับสนุนการจัดการพลังงาน AMD APU เต็มรูปแบบ: Turbo Core, Cool'n'Quiet, การจัดการพลังงานแบบไดนามิก?
วัตถุประสงค์ของฉันคือการตั้งค่าเซิร์ฟเวอร์ขนาดเล็ก (ไม่ใช่ HTPC) ด้วยการใช้พลังงานต่ำในโหมดว่าง แต่ให้ประสิทธิภาพที่ดีเมื่อใช้ เน้นความปลอดภัยของข้อมูลมากกว่าความพร้อมใช้งาน ในคำอื่น ๆ : ชิ้นส่วนที่มีคุณภาพ แต่ความซ้ำซ้อนเท่านั้นสำหรับการจัดเก็บ ไม่คิดว่าตัวเองจะลำเอียงหลังจากการวิจัยบางอย่างฉันรู้สึกว่า APU ของเดสก์ท็อป AMD บางตัวจะให้คุณค่าที่ดี คำถามที่เหลืออยู่คือ: สถานะว่างของ GPU จะลดการใช้พลังงานและปล่อยทรัพยากรสำหรับ CPU หรือไม่ Cool'n'Quiet และ Turbo Core จะนำไปสู่การใช้พลังงานต่ำในโหมดปกติ แต่มีประสิทธิภาพภายใต้การโหลดหรือไม่? Linux จะสนับสนุนสถานการณ์นี้ตามที่ตั้งใจไว้หรือไม่ คำถามสองสามข้อและการอภิปรายในฟอรัมดูเหมือนจะแนะนำว่าไม่จำเป็นต้องเป็นอย่างนั้น

2
/ usr / bin / install ทำอะไรนอกจากการคัดลอก?
การmake installใช้ Makefile ใช้เวลาส่วนใหญ่/usr/bin/installหรือไม่ ทำงานอะไรที่จำเป็น/usr/bin/installนอกเหนือจากการคัดลอกไฟล์ที่คอมไพล์แล้วไปยัง/usr/bin/local? หน้าคนบอกว่า/usr/bin/installคัดลอกไฟล์และตั้งค่าคุณลักษณะ คุณลักษณะใดที่มีความสำคัญต่อการตั้งค่า มันเพิ่งตั้งค่าโหมดการอนุญาตและเจ้าของ / กลุ่มซึ่งไม่จำเป็น?

6
ติดตั้ง Centos 7 หลังจาก Windows และไม่สามารถบูตเป็น CentOS ได้
ฉันต้องการเซ็ตอัพบูตคู่สำหรับ Windows 7 และ CentOS 7 ฉันมีเครื่อง Windows 7 ที่มีดิสก์ 500GB ฉันย่อขนาดพาร์ติชัน Windows เพื่อให้มีพื้นที่สำหรับ CentOS 7 (ประมาณ 230GB) ฉันสร้างติดตั้งเน็ตบุ๊ก USB CentOS 7 และบู๊ตจากนั้น ฉันรันการติดตั้งที่กำหนดค่าไว้อย่างดีที่สุดฉันรู้ว่าจะติดตั้ง CentOS 7 ลงในพื้นที่ว่าง (มากกว่าบนดิสก์ทั้งหมด) ฉันทำการติดตั้งเน็ตและดูเหมือนว่าจะไปได้ดี แต่เมื่อมันรีบูตฉันกลับเข้าสู่ Windows และไม่สามารถเข้าสู่ CentOS ได้ ฉันรีบูทจาก USB และพยายามแก้ไขสถานการณ์ (อย่างระมัดระวัง) โดยใช้cfdiskเช่นการเลือกสิ่งที่ฉันเชื่อว่าเป็นพาร์ติชันสำหรับบู๊ต CentOS แต่รายงานว่า "ระบบปฏิบัติการหายไป" ยังcfdiskบอกว่ามันไม่สามารถอ่านตารางพาร์ติชันเมื่อฉันเขียนมันด้วยการบู๊ต CentOS แต่การเริ่มต้นcfdiskอีกครั้งดูเหมือนว่าจะแสดงการตั้งค่าสถานะ ขณะนี้ USB CentOS 7 netinstall …

6
ฉันจะแสดงความแตกต่างระหว่าง 2 ไฟล์ได้อย่างไร
ไฟล์ของฉันประกอบด้วยสิ่งต่อไปนี้; ประมาณ: username:username:username:username:username บรรทัดด้านบนยังคงประมาณ 600 อักขระ ฉันใช้awkคำสั่งเพื่อใช้เป็นอาร์กิวเมนต์ในคำขอ API / HTTP ที่ส่งจากบรรทัดคำสั่ง ฉันกำลังใช้สคริปต์เพื่อรับรายการบัญชีผู้ใช้ 'ติดตาม' ฉันและทุก ๆ 24 ชั่วโมงหรือมากกว่านั้นเปรียบเทียบรายการต้นฉบับบนฮาร์ดดิสก์ของฉันกับรายการชื่อผู้ใช้ที่เพิ่งแสดงผลใหม่ (และแสดงว่าใครไม่ได้ติดตาม ฉัน . ฉันจะต้องสรุปตรรกะของฉันเป็นลูปโดยใช้ bash .. ทดสอบชื่อผู้ใช้แต่ละคน สคริปต์ปัจจุบันของฉัน: user=$(awk -F: '{ print $1 }' FILE) # Grab $User to use as an argument. following=$(exec CURRENT_FOLLOWERS) # Outputs the new file echo "X amount …

4
ฉันจะรู้ได้อย่างไรว่าสคริปต์ bash ที่กำลังเรียกใช้อยู่ในปัจจุบันได้รับการเรียกใช้ด้วย -x เพื่อการดีบั๊กหรือไม่
ฉันมีสคริปต์launch.shที่รันตัวเองเป็นผู้ใช้อื่นเพื่อสร้างไฟล์กับเจ้าของที่ถูกต้อง ฉันต้องการส่ง -x ไปยังการเรียกใช้นี้หากผ่านมาถึงสคริปต์แล้ว if [ `whoami` == "deployuser" ]; then ... bunch of commands that need files to be created as deployuser else echo "Respawning myself as the deployment user... #Inception" echo "Called with: <$BASH_ARGV>, <$BASH_EXECUTION_STRING>, <$->" sudo -u deployuser -H bash $0 "$@" # How to pass -x …
11 bash  debugging 

3
ฉันจะตั้งค่า mtime ของไฟล์ในรูปแบบของยุคได้อย่างไร?
ฉันรู้วิธีรับไฟล์ mtime ในรูปแบบ epoch: stat --format=%Y <file> แต่ฉันไม่สามารถหาวิธีกำหนด mtime ของไฟล์ในรูปแบบยุค หน้าสัมผัส (1) หน้าคนดูเหมือนจะยอมรับค่า "การประทับเวลา" เท่านั้น (รูปแบบคงที่มากกว่าหรือน้อยกว่าซึ่งใช้เดือน, วัน, ชั่วโมง, minues, ฯลฯ ) หรือ "สตริงรูปแบบวันที่มนุษย์อ่านได้ฟรีส่วนใหญ่" มียูทิลิตี้อื่นที่ฉันควรจะตรวจสอบหรือไม่? ขอบคุณ

2
เร็วที่สุด & วิธีที่สำคัญที่สุดในการแทนที่“ \ r \ n” ด้วย“ \ n” ในไฟล์?
ฉันคิดว่าtrเป็นวิธีหลักมากกว่าและอาจเป็นวิธีที่เร็วกว่าในการแทนที่สิ่งต่าง ๆ ในไฟล์ที่กำหนด อย่างไรก็ตาม tr สามารถแทนที่อักขระในจำนวนเท่ากันเท่านั้น ความหมาย ... 2 ตัวอักษรสามารถถูกแทนที่ด้วย 2 ตัวอักษรซึ่งหมายถึงการแทนที่ \r\nด้วยไม่\nอยู่คำถามtr ตัวเลือกที่ดีที่สุดต่อไปsedคืออะไร? เป็นวิธีที่สำคัญที่สุดและเร็วที่สุดในการแทนที่\r\nด้วย\nไฟล์เนื่องจากขาดความสามารถใน TR ต้องการตัวอย่างถ้าเป็นไปได้
11 sed  replace  tr 

2
bcache บน md หรือ md บน bcache
bcache ช่วยให้หนึ่งหรือดิสก์ไดรฟ์ได้อย่างรวดเร็วมากขึ้นเช่นแฟลชไดรฟ์ตามสถานะของแข็ง (SSDs) เพื่อทำหน้าที่เป็นแคชสำหรับหนึ่งหรือดิสก์ไดรฟ์มากขึ้นช้าลงอย่างหนัก ถ้าฉันเข้าใจถูกต้อง SSD *อาจจะกำหนดให้แคช HDDs สนับสนุนหลายแล้วอุปกรณ์ที่เก็บไว้ชั่วคราวที่เกิดขึ้นอาจจะมีการบุกเข้าไปในกับ mdadm หรือ HDD หลายตัวอาจถูกโจมตีเข้าไปในอุปกรณ์สำรอง md เดียวและ SSD ที่กำหนดให้กับแคชนั้น ฉันสงสัยว่าวิธีการของ saner คืออะไร มันเกิดขึ้นกับฉันว่าการเพิ่ม RAID5 / 6 นั้นอาจจะง่ายกว่าด้วยเทคนิคอย่างใดอย่างหนึ่ง แต่ฉันไม่แน่ใจว่าอันไหน! มีเหตุผลที่ดี (เช่นการเพิ่มที่เก็บข้อมูลสำรองหรือสิ่งอื่นใด) เพื่อเลือกวิธีหนึ่งเหนืออีกระบบหนึ่ง (สำหรับระบบไฟล์ที่ไม่ใช่รูทขนาดใหญ่ที่มีไฟล์สำรอง VM) * โดย "an SSD" ฉันหมายถึงอุปกรณ์ SSD ที่ซ้ำซ้อนบางชนิดเช่น RAID1 ของฟิสิคัล SSD สองตัว

3
การเรียงลำดับข้อมูลเร็วขึ้น
ฉันต้องเรียงลำดับbedไฟล์แบบสุ่ม 10,000 ครั้งและรับ 1,000 แถวสูงสุดในแต่ละครั้ง ขณะนี้ฉันกำลังใช้รหัสต่อไปนี้: for i in {1..100}; do for j in {1..100}; do sort -R myfile.bed_sorted | tail -n 1000 > myfile.bed.$i.$j.bed done done ใช้เวลาเกือบ 6 ชั่วโมงในการทำเช่นนี้สำหรับแต่ละไฟล์ ฉันมีประมาณ 150 คนที่จะออกกำลังกาย มีวิธีแก้ปัญหาที่เร็วกว่านี้หรือไม่? ตัวอย่างของข้อมูล (myfile.bed_sorted) ฉันมี: chr1 111763899 111766405 peak1424 1000 . 3224.030 -1 -1 chr1 144533459 144534584 peak1537 …
11 sort 

1
ทำไมไฟร์วอลล์ของฉัน (iptables) รบกวนในบริดจ์ของฉัน (brctl)
ฉันตั้งค่าบริดจ์br0"แนบ" เป็นสองอินเตอร์เฟส: eth0ส่วนต่อประสานทางกายภาพของฉันเชื่อมต่อกับ LAN จริง vnet0เป็นอินเตอร์เฟสเสมือน KVM (เชื่อมต่อกับ Windows VM) และฉันมีกฎไฟร์วอลล์เดียวนี้ในห่วงโซ่การส่งต่อ: iptables -A FORWARD -j REJECT ตอนนี้ ping เดียวที่ทำงานคือจาก VM ไปยังโฮสต์ br0อินเตอร์เฟซที่เป็นเจ้าของที่อยู่ IP ของเครื่องโฮสต์ของฉัน eth0และvnet0อย่า "เป็นเจ้าของ" IP ใด ๆ จากมุมมองโฮสต์ Windows VM มีการกำหนดค่า IP แบบคงที่ หากเปลี่ยนiptablesกฎของฉันเป็นACCEPT(หรือใช้ข้อ จำกัด มากขึ้นiptables -A FORWARD -o br0 -j ACCEPT) ทุกอย่างทำงานได้ดี! (เช่นฉันสามารถ ping เครื่อง LAN ใด …

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

1
ควรใช้“ invoke-rc.d” หรือ“ service” เพื่อเริ่มบริการใหม่หรือไม่
ฉันสับสนว่าอะไรดีที่สุดและในสถานการณ์ใด: invoke-rc.d apache2 restart หรือ service apache2 restart มีความแตกต่างจริงหรือไม่? man service มีบิตที่น่าสนใจดังต่อไปนี้: บริการเรียกใช้สคริปต์เริ่มต้น System V ในสภาพแวดล้อมที่สามารถคาดการณ์ได้มากที่สุดลบตัวแปรสภาพแวดล้อมส่วนใหญ่และตั้งค่าไดเรกทอรีการทำงานปัจจุบันเป็น / ฉันสนใจ Debian เป็นหลัก แต่ก็ยัง Mint (ตาม Debian ด้วย)

3
แทนที่สตริงจำนวนมากในการส่งผ่านครั้งเดียว
ฉันกำลังมองหาวิธีที่จะแทนที่สตริงตัวยึดตำแหน่งในไฟล์แม่แบบด้วยค่าที่เป็นรูปธรรมด้วยเครื่องมือ Unix ทั่วไป (ทุบตี, sed, awk, อาจ perl) เป็นสิ่งสำคัญที่การเปลี่ยนจะดำเนินการในรอบเดียวนั่นคือสิ่งที่สแกน / เปลี่ยนแล้วจะต้องไม่ถูกนำมาพิจารณาสำหรับการเปลี่ยนใหม่ ตัวอย่างเช่นความพยายามสองครั้งนี้ล้มเหลว: echo "AB" | awk '{gsub("A","B");gsub("B","A");print}' >> AA echo "AB" | sed 's/A/B/g;s/B/A/g' >> AA ผลลัพธ์ที่ถูกต้องในกรณีนี้คือหลักสูตร BA โดยทั่วไปการแก้ปัญหาควรเทียบเท่ากับการสแกนอินพุตจากซ้ายไปขวาสำหรับการจับคู่ที่ยาวที่สุดไปยังสตริงการแทนที่ที่กำหนดอย่างใดอย่างหนึ่งและสำหรับการแข่งขันแต่ละครั้งทำการแทนที่และดำเนินการต่อจากจุดนั้นบนอินพุต (ไม่มี อ่านอินพุตแล้วหรือการแทนที่ที่ดำเนินการควรพิจารณาให้ตรงกัน) ที่จริงแล้วรายละเอียดไม่สำคัญเพียงแค่ว่าผลของการเปลี่ยนจะไม่ถูกนำมาพิจารณาสำหรับการทดแทนอื่นทั้งหมดหรือบางส่วน หมายเหตุฉันกำลังมองหาโซลูชันทั่วไปที่ถูกต้องเท่านั้น โปรดอย่าเสนอวิธีแก้ปัญหาที่ล้มเหลวสำหรับอินพุตบางอย่าง (ไฟล์อินพุต, ค้นหาและแทนที่คู่) แต่ไม่น่าจะเป็นไปได้
11 bash  sed  awk  string  replace 

2
โดยไม่ใช้บรรทัดคำสั่งเครือข่ายใน linux จะรู้รายชื่อพอร์ตที่เปิดและกระบวนการที่เป็นเจ้าของได้อย่างไร
ฉันต้องการทราบว่าพอร์ตใดบ้างที่ใช้ในกระบวนการที่ฝังตัวในลินุกซ์ เนื่องจากเป็น Embedded-linux แบบเรียบง่ายจึงไม่มีบรรทัดคำสั่งเครือข่ายเช่น netstat, lsof (มีเพียงบรรทัดคำสั่งพื้นฐานเช่น cat, cp, echo ฯลฯ เท่านั้น) วิธีแก้ปัญหาบางส่วนดูเหมือนจะใช้บรรทัดคำสั่ง "cat / proc / net / tcp" และ "cat / proc / net / udp" อย่างไรก็ตามฉันไม่แน่ใจว่ารายการที่พิมพ์จากบรรทัดคำสั่งเหล่านั้นแสดงพอร์ตทั้งหมดที่ใช้งานอยู่และรายการไม่ได้แสดงว่ากระบวนการใดถูกผูกไว้กับพอร์ตที่แน่นอน ความคิดเห็นใด ๆ ที่จะได้รับการชื่นชม

2
stderr มากกว่า ssh -t
สิ่งนี้จะส่งเอาต์พุตไปยัง STDERR แต่ไม่แพร่กระจายCtrl+ C(เช่นCtrl+ Cจะฆ่าsshแต่ไม่ใช่รีโมตsleep): $ ssh localhost 'sleep 100;echo foo ">&2"' สิ่งนี้แพร่กระจายCtrl+ C(เช่นCtrl+ Cจะฆ่าsshและห่างไกลsleep) แต่ส่ง STDERR ไปยัง STDOUT: $ ssh -tt localhost 'sleep 100;echo foo ">&2"' ฉันจะบังคับให้วินาทีส่งเอาต์พุต STDERR ไปยัง STDERR ในขณะที่ยังคงแพร่กระจายCtrl+ ได้Cอย่างไร พื้นหลัง GNU ใช้ขนาน 'SSH -tt' เพื่อเผยแพร่+Ctrl Cสิ่งนี้ทำให้สามารถฆ่างานที่กำลังรันอยู่ในระยะไกลได้ แต่ข้อมูลที่ส่งไปยัง STDERR ควรไปยัง STDERR ต่อไปเมื่อสิ้นสุดการรับ

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