Unix & Linux

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

2
dhcpcd ไม่สามารถเริ่มต้นเมื่อบูต
เมื่อฉันรันdhcpcdหลังจากบู๊ตทุกอย่างทำงานได้ดี แต่เมื่อฉันพยายามเพิ่มให้เริ่มโดยอัตโนมัติsystemctl enable dhcpcd@eth0.serviceหลังจากการบู๊ตแต่ละครั้งมันไม่ทำงาน dhcpcd@eth0.service loaded inactive dead start dhcpcd on eth0

6
backspace ในโหมดแทรกไม่ลบอักขระ
ฉันยังใหม่กับviจริง ๆ แล้วฉันได้เริ่มเรียนรู้ vi จากวันนี้และฉันติดอยู่กับพฤติกรรมของปุ่มBackspace ที่จริงแล้วเมื่อฉันติดเครื่อง vi บน Ubuntu 12.04 ของฉันเป็นครั้งแรกที่ปุ่ม backspace ของฉันทำงานได้ตามปกติ แต่หลังจากนั้นมันก็เริ่มทำงานผิดปกติ เมื่อใดก็ตามที่ฉันกด backspace ในโหมดแทรกมันก็แค่ย้ายที่เดียวไปทางซ้ายแทนที่จะลบตัวละคร ฉันจะรับฟังก์ชั่นแบ็คสเปซเริ่มต้นได้อย่างไร โปรดทราบว่าฉันไม่ต้องการติดตั้งเป็นกลุ่มหรือตั้งค่า nocompatibilty
10 vi 

4
IPTables - พอร์ตไปยัง ip & พอร์ตอื่น (จากด้านใน)
ขณะนี้ฉันมีกล่อง NAS ที่ทำงานภายใต้พอร์ต 80 ในการเข้าถึง NAS จากภายนอกฉันได้แมปพอร์ต 8080 กับพอร์ต 80 บน NAS ดังต่อไปนี้: iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 10.32.25.2:80 มันใช้งานได้อย่างมีเสน่ห์ อย่างไรก็ตามสิ่งนี้ใช้ได้เฉพาะเมื่อฉันเข้าถึงเว็บไซต์จากนอกเครือข่าย (ที่ทำงานที่บ้านที่แตกต่างกัน ฯลฯ ) ดังนั้นเมื่อฉันพิมพ์mywebsite.com:8080, IPTables ทำงานได้อย่างถูกต้องและทุกอย่างทำงานได้ดี ตอนนี้ปัญหาที่ฉันมีคือฉันจะเปลี่ยนเส้นทางพอร์ตนี้จากภายในเครือข่ายได้อย่างไร ชื่อโดเมนของฉันmywebsite.comชี้ไปที่เราเตอร์ของฉัน (เซิร์ฟเวอร์ linux ของฉัน) จากด้านใน (10.32.25.1) แต่ฉันต้องการเปลี่ยนเส้นทางพอร์ต 8080 ไปยังพอร์ต 80 บน 10.32.25.2 จากด้านใน เบาะแสใด ๆ …

3
วิธีลบบรรทัดว่างที่เริ่มต้นจากบรรทัดที่ 5
ฉันมีสิ่งนี้: sed -i '/^$/d' temp_spec.rb ซึ่งลอกบรรทัดว่างและทำงานได้ดี ฉันจะทำให้มันใช้งานได้เฉพาะกับบรรทัดที่ 5-999 (หรือ 5 ถึงจุดสิ้นสุดของไฟล์) ฉันเหนื่อย: sed -n5,999 -i '/^$/d' temp_spec.rb sed '5,999!d/^$/d' temp_spec.rb แต่ไม่ทำงาน (ไม่มีข้อผิดพลาด)
10 sed 

5
วิธีทำ 'cd dir / filename` พาฉันไป dir /?
ฉันคิดว่ามันสะดวกที่จะใช้cdกับอาร์กิวเมนต์ไฟล์ cd myDirectory/anyname.anyExtension จะเทียบเท่า cd myDirectory/ อะไรคือนามแฝงหรือหน้าที่ที่ดีที่สุดเพื่อให้บรรลุพฤติกรรมนี้ แก้ไข : ขอโทษฉันไม่ได้พูดถึงมันในสถานที่ที่ 1: ฉันใช้zsh
10 shell  cd-command 

2
คำสั่งเหล่านี้มีไว้เพื่ออะไร?
เมื่อวานฉันต้องติดตั้ง Windows ด้วย Grub override ดีก็ไม่ใช่ครั้งแรกที่ผมต้องแก้ไขด้วง, ดังนั้นผมจึงใช้ LiveCD ติดตั้งพาร์ทิชันราก (ผมไม่ได้มีการบูตเพียง/และhome) grub-install --root-directory=/mnt/ /dev/sdaและวิ่ง อย่างไรก็ตามมันใช้งานไม่ได้ หลังจาก Googling ในขณะที่ผมพบว่าการกวดวิชาที่แทนเพียงแค่ติดตั้งพาร์ทิชันลินุกซ์นอกจากนี้เขายังได้และmount --bind /mnt/dev /dev mount --bind /mnt/proc /proc/หลังจากนั้นchrootถึง/mntและจากนั้นจึงติดตั้ง Grub และใช้วิธีนี้ สิ่งที่เป็นmount --bindคำสั่งหรือไม่? ฉันคุ้นเคยกับการใช้งาน--bind used(man page) แต่ฉันไม่รู้ว่าทำไมมันจึงถูกใช้กับตัวอย่างนี้
10 linux  mount  grub2 

4
วิธี จำกัด เวลาที่โปรแกรมรันใน Linux?
python simulate.py <parameter list>ฉันมีหลายแบบจำลองในการทำแต่ละถูกเรียกด้วย ปัญหาเกี่ยวกับการจำลองเหล่านี้คือบางส่วนหยุดทำงานโดยไม่ต้องพูดถึงซึ่งทำให้ฉันไม่สามารถเรียกใช้งานเป็นชุดด้วยสคริปต์อย่างง่าย สิ่งที่ฉันต้องการคือรูปแบบของคำสั่ง "รันไทม์ - ข้อ จำกัด " ซึ่งจะฆ่ากระบวนการโดยอัตโนมัติ (ควรกดCtrl + C จริงๆ แต่ฉันคิดว่าการฆ่าแบบง่ายจะทำได้เช่นกัน) หลังจากเวลาที่กำหนดถ้า กระบวนการไม่ได้สิ้นสุดอย่างสง่างาม แน่นอนผมสามารถเขียนสคริปต์เช่นตัวเอง แต่ฉันสงสัยว่าคนที่ได้ทำมันแล้วก่อนที่ฉันดังนั้นฉันไม่จำเป็นต้องบูรณาการล้อใช้เวลากับps, timeและคู่มือทุบตี

2
แต่ละกระบวนการมีไดเรกทอรีปัจจุบันหมายความว่าอย่างไร
ฉันกำลังอ่าน "สภาพแวดล้อมการเขียนโปรแกรม Unix" แต่ฉันไม่เข้าใจไดเรกทอรีแนวคิดปัจจุบันของกระบวนการ แต่ละกระบวนการมีไดเรกทอรีปัจจุบันและชื่อไฟล์ทั้งหมดจะถูกสันนิษฐานโดยปริยายว่าเริ่มต้นด้วยชื่อของไดเรกทอรีนั้นเว้นแต่ว่าพวกเขาจะเริ่มต้นโดยตรงด้วยเครื่องหมายทับ หมายความว่าทุกกระบวนการมีการลงชื่อเข้าใช้ในไดเรกทอรีใดที่ถูกสร้างขึ้น? ตัวอย่างเช่นหากโปรแกรม/bin/sedถูกเรียกใช้จาก/home/reneนั้นกระบวนการที่สร้างขึ้นจากการเรียก sed มีไดเรกทอรีปัจจุบัน/home/reneหรือไม่
10 process 

4
รับ stdin จากไปป์ที่มีชื่อ
สิ่งที่ฉันพยายามทำคือใช้ python ในหน้าต่างเทอร์มินัลและเปลี่ยนเส้นทางมันเป็น stdin จากไพพ์ที่มีชื่อ จากนั้นฉันเขียนไปที่ไปป์ที่มีชื่อในเทอร์มินัลอื่นและมีคำสั่งที่รันบนหลาม อาคาร 1: mkfifo p1 python < p1 อาคาร 2: echo -n "print \"Hello World\"" > p1 สิ่งที่เกิดขึ้นคือ - หลามพิมพ์Hello Worldและออกจาก สิ่งที่ฉันต้องการจะทำคือให้หลามใช้คำสั่งถัดไป ฉันจะทำสิ่งนี้ในเปลือกได้อย่างไร

4
รหัสไฮบริดในเชลล์สคริปต์ การแชร์ตัวแปร
คำตอบนี้กล่าวถึงวิธีการเรียกใช้ข้อมูลโค้ด Python หลายบรรทัดจากบรรทัดคำสั่งในเทอร์มินัล ฉันสังเกตว่าคำตอบนั้นใช้งานได้ดีในเชลล์สคริปแม้จะมีการเยื้องซ้อนกันซึ่งดีมากเช่น #!/bin/bash some_text="Hello world" echo $some_text cat <<EOF | python - import sys; for r in range(3): print r for a in range(2): print "hello" EOF พิมพ์: 0 hello hello 1 hello hello 2 hello hello อย่างไรก็ตามฉันมีช่วงเวลาที่ยากลำบากในการแชร์ตัวแปรระหว่างเชลล์สคริปต์และข้อมูลโค้ดของ Python ฉันจะรวบรวมเอาต์พุตของตัวห้อย python ในสคริปต์ทุบตีได้อย่างไร (เช่นในตัวแปรเช่น$output) ฉันจะส่งตัวแปร bash (เช่น$some_text) ไปยังสคริปต์ Python …
10 bash  scripting  zsh  python 

3
หลังจากการค้นคว้ายังคงสับสนเกี่ยวกับการตรวจสอบการใช้ RAM
ฉันอ่านบทความนี้ซึ่งอธิบายวิธีการต่าง ๆ ในการตรวจสอบการใช้ RAM ของคุณ อย่างไรก็ตามฉันไม่สามารถปรับวิธีการต่าง ๆ และไม่ทราบว่าวิธีใดถูกต้อง เมื่อฉันเข้าสู่ระบบครั้งแรกฉันได้รับการต้อนรับด้วยหน้าจอเช่นนี้: System information as of Sun Apr 28 21:46:58 UTC 2013 System load: 0.0 Processes: 76 Usage of /: 15.6% of 7.87GB Users logged in: 1 Memory usage: 41% IP address for eth0: Swap usage: 0% สิ่งนี้ชี้ให้เห็นว่าฉันใช้ RAM 41% ซึ่งค่อนข้างสูงเนื่องจากเซิร์ฟเวอร์ไม่ค่อยทำอะไร หรือหมายเลขนั้นอ้างถึงบางสิ่งบางอย่างนอกเหนือจาก RAM? …
10 linux  memory 

1
ฉันจะบังคับให้เคอร์เนล Ubuntu ล้มเหลวในการติดตั้ง / และวางลงในเชลล์ช่วยเหลือ initramfs ได้อย่างไร
ฉันกำลังพยายามปรับแต่งสภาพแวดล้อมการช่วยเหลือของ initramfs และต้องการบังคับให้เคอร์เนลล้มเหลวในการติดตั้ง/และวางลงใน(initramfs)เชลล์กู้ภัยซึ่งตรงข้ามกับโหมดผู้ใช้คนเดียว ฉันจะทำสิ่งนั้นได้อย่างไร หมายเหตุ: ฉันรู้วิธีการขอinitramfs-toolsให้ทำตามขั้นตอนการปรับแต่ง แต่ฉันต้องสามารถตรวจสอบผลลัพธ์ได้

2
ssh-agent: อย่าส่งต่อการตรวจสอบสิทธิ์สำหรับพวงกุญแจทั้งหมด
ฉันมีสองคีย์ ssh ส่วนตัว: หนึ่งในการเข้าถึงของฉันบุคลากรเครื่อง หนึ่งในการเข้าถึงเซิร์ฟเวอร์ที่ฉันงาน ฉันจะเพิ่มคีย์ทั้งสองเพื่อตัวแทน ssh ssh-addของฉันด้วย ตอนนี้เมื่อฉันssh -A root@jobsrvต้องการส่งต่อการรับรองความถูกต้องของตัวแทนสำหรับคีย์งานของฉันเท่านั้น (อันที่ฉันใช้เชื่อมต่อjobsrv) ฉันต้องการสิ่งนี้เพราะทุกคนที่มีสิทธิ์เข้าถึงรูทjobsrvสามารถใช้เอเจนต์ของฉันเพื่อพิสูจน์ตัวตนกับเครื่องส่วนตัวของฉัน มีวิธีที่จะบรรลุความโดดเดี่ยวนี้ได้หรือไม่?

1
ส่วนไหนของเอลฟ์ที่ปฏิบัติการได้ถูกโหลดเข้าสู่หน่วยความจำและที่ไหน
สิ่งที่ฉันรู้แล้ว: ปฏิบัติการของ ELF นั้นมีหลายส่วนโดยเฉพาะอย่างยิ่งส่วน. text และ. data ที่ถูกโหลดเข้าสู่หน่วยความจำเนื่องจากเป็นส่วนหลักของโปรแกรม แต่สำหรับโปรแกรมที่ทำงานมันต้องการข้อมูลเพิ่มเติมโดยเฉพาะเมื่อเชื่อมโยงแบบไดนามิก สิ่งที่ฉันสนใจคือส่วนต่างๆเช่น. plt, .got, .dynamic, .dynsym, .dynstr etcetera ส่วนต่างๆของเอลฟ์ที่รับผิดชอบการเชื่อมโยงฟังก์ชั่นไปยังที่อยู่ จากสิ่งที่ฉันสามารถคิดได้จนถึงตอนนี้ก็คือสิ่งต่าง ๆ เช่น. symtab และ. strtab ไม่ได้รับการโหลด (หรือไม่อยู่) ในหน่วยความจำ แต่ .dynsym และ. dynstr ถูกใช้โดย linker หรือไม่ พวกเขาอยู่ในความทรงจำหรือไม่? ฉันสามารถเข้าถึงได้จากรหัสโปรแกรมหรือไม่ และมีส่วนใดของปฏิบัติการที่อยู่ในหน่วยความจำเคอร์เนล? ความสนใจของฉันในเรื่องนี้ส่วนใหญ่เป็นนิติวิทยาศาสตร์ แต่ข้อมูลใด ๆ ในหัวข้อนี้จะช่วยได้ ทรัพยากรที่ฉันได้อ่านเกี่ยวกับตารางเหล่านี้และการเชื่อมโยงแบบไดนามิกอยู่ในระดับสูงมากขึ้นพวกเขาอธิบายเฉพาะการทำงานไม่ใช่สิ่งที่เป็นประโยชน์เกี่ยวกับเนื้อหาในหน่วยความจำ แจ้งให้เราทราบหากมีข้อสงสัยเกี่ยวกับคำถามของฉัน

3
นิพจน์ทั่วไปสำหรับค้นหาอักขระสองตัวใน Bash
ฉันกำลังมองหานิพจน์ทั่วไปที่ค้นหาการเกิดขึ้นของอักขระสองตัวในข้อความรายชื่อและอื่น ๆ บนบรรทัดคำสั่ง (Bash) หลักคำถาม : มีวิธีง่ายๆในการมองหาลำดับเช่นaa, ll, tttttฯลฯ ที่หนึ่งกำหนดนิพจน์ปกติที่จะมองหาที่ปรากฏ n ของตัวละครเดียวกันด้วย? สิ่งที่ฉันกำลังมองหาคือการบรรลุเป้าหมายในระดับพื้นฐานมาก ๆ บนบรรทัดคำสั่ง ใน Linux Shell หลังจากงานวิจัยบางอย่างฉันมาถึงคำตอบต่อไปนี้ - และคำถามที่เกิดจากพวกเขาดังนั้นพวกเขาเพียงแค่ให้คำแนะนำแก่ฉันว่าคำตอบอาจอยู่ที่ใด แต่: ก) (e) grep และปัญหาแบ็กสแลช grep 'a\{2\}' มองหา aa egrep'a{2}' มองหา aa คำถาม: ความจำเป็นของการตั้ง backlashes นั้นผูกพันกับคำสั่งที่ฉันใช้หรือไม่? ถ้าเป็นเช่นนั้นทุกคนสามารถให้คำแนะนำฉันกับฉันได้อย่างไรเมื่อใช้ (e) grep ที่นี่? b) ฉันพบคำตอบนี้ที่นี่สำหรับคำถามของฉันแม้ว่าจะไม่ใช่สิ่งที่ฉันกำลังมองหา: grep -E '(.)\1' filenameมองหารายการที่มีลักษณะเดียวกันที่ปรากฏมากกว่าหนึ่งครั้ง แต่ไม่ได้ถามบ่อยแค่ไหน ใกล้กับสิ่งที่ฉันกำลังมองหา แต่ฉันยังต้องการตั้งค่าการทำซ้ำจำนวนมาก …

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