Unix & Linux

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


5
การแปลงไฟล์ UTF-8 เป็น ASCII (ความพยายามอย่างดีที่สุด)
ฉันมีไฟล์ใน UTF-8 ที่มีข้อความเป็นหลายภาษา ส่วนใหญ่เป็นชื่อของผู้คน ฉันต้องแปลงเป็น ASCII และฉันต้องการผลลัพธ์เพื่อให้ดูเหมาะสมที่สุด มีวิธีการแปลงจากการเข้ารหัสที่กว้างขึ้นเป็นวิธีที่แคบกว่า การแปลงที่ง่ายที่สุดคือการแทนที่อักขระที่ไม่ใช่ ASCII ทั้งหมดด้วยตัวยึดตำแหน่งบางตัวเช่น '_' ถ้าฉันรู้ภาษาที่ไฟล์นั้นเขียนมีความเป็นไปได้เพิ่มเติมเช่นโรมัน เครื่องมือ Unix หรือไลบรารีภาษาการเขียนโปรแกรมที่มีอยู่ใน Unix สามารถให้การแปลงที่ดี (พยายามที่สุด) จาก UTF-8 เป็น ASCII ได้ไหม ข้อความส่วนใหญ่เป็นภาษาที่ใช้ภาษาละตินยุโรป

8
สิ่งที่เขียนทับ /etc/resolv.conf ในทุก ๆ การบู๊ต?
ผมได้รับไฟล์สำหรับมินิที่รองเท้าโดยตรงในlinux firefoxมันทำงานได้ดีสำหรับทุกสิ่งที่ควรทำเท่านั้นที่ฉันไม่ได้รับการเชื่อมต่ออินเทอร์เน็ต เรามีเซิร์ฟเวอร์ DNS 3 ตัวในเครือข่ายซึ่งใช้งานได้ทั้งหมด ฉันสามารถปิงได้เช่นกัน แต่เมื่อพยายามping google.deหรือwget google.deฉันได้รับbad addressข้อผิดพลาด nslookup google.de ทำงานด้วยเหตุผลบางอย่าง ฉันติดตามปัญหาที่เกิดขึ้นกับresolv.confระบบบูทที่ไม่มีเนื้อหาเดียวกันกับresolv.confที่ฉันใส่ลงใน.isoไฟล์ resolv.confผมพยายามทำความเข้าใจปัจจัยทั้งหมดที่ไปในการสร้างและการปรับเปลี่ยน ฉันไม่แน่ใจว่าฉันได้รับทั้งหมด แต่ฉันไม่พบวิธีแก้ไขปัญหาของฉันที่นั่น ดังนั้นในความพยายามครั้งสุดท้ายฉันจึงพยายามทำให้การใช้resolv.confไฟล์ไม่เปลี่ยนรูป :~# chattr +i /etc/resolv.conf เมื่อสร้างขึ้นมาใหม่และทำการบูทอีกครั้งเพื่อทำให้ฉันประหลาดใจไฟล์ของฉันถูกเปลี่ยนชื่อเป็นresolv.conf~และมันก็เป็นไฟล์มาตรฐานเดียวกันกับที่หลอกหลอนฉัน เนื้อหาของไฟล์ทำให้ฉันเชื่อว่าได้รับข้อมูลจากเครือข่ายเอง เมื่อเริ่มต้น.isoใน Virtualbox โดยไม่ใช้อินเทอร์เน็ตไฟล์ของฉันจะถูกเก็บไว้เหมือนเดิม ฉันพยายามเปลี่ยน/etc/dhcp/dhclient.confเพื่อไม่รับข้อมูลจากเน็ตโดยการลบdomain-name-serverและdomain-name-searchจากrequestส่วนของไฟล์ ไม่ได้ทำงานอย่างน่าเสียดาย ฉันไม่ได้ติดตั้ง NetworkManager มาตรฐาน iso นั้นใช้ Ubuntu 14.04 อาจมีข้อมูลสำคัญขาดหายไป ฉันยินดีที่จะให้มัน UPDATE: ฉันคิดว่าฉันพบไฟล์ที่ลบresolv.confแล้ว มันน่าจะเป็น /usr/share/udhcpc/default.script #!/bin/sh # udhcpc script edited by Tim …

8
ปัญหาในการติดตั้ง nginx-full บน debian 8
ฉันมีปัญหาในการติดตั้ง nginx pkg (nginx-full) บน debian jessie # apt-get install nginx-full Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: nginx-common Suggested packages: fcgiwrap nginx-doc The following NEW packages will be installed: nginx-common nginx-full 0 upgraded, 2 newly installed, 0 to …
23 debian  nginx 

5
ฉันจะใช้การตัดเพื่อคั่นด้วยช่องว่างหลายช่องได้อย่างไร
ฉันต้องการรับคอลัมน์สุดท้ายของตัวอย่างนี้: [ 3] 1.0- 2.0 sec 1.00 MBytes 8.39 Mbits/sec [ 3] 2.0- 3.0 sec 768 KBytes 6.29 Mbits/sec [ 3] 3.0- 4.0 sec 512 KBytes 4.19 Mbits/sec [ 3] 4.0- 5.0 sec 256 KBytes 2.10 Mbits/sec ... ถ้าฉันใช้ cut -d\ -f 13 ฉันเข้าใจ Mbits/sec 6.29 4.19 2.10 เพราะบางครั้งมีช่องว่างเพิ่มเติมในระหว่าง

5
ค้นหาหมายเลขเป็นกลุ่มที่มีจำนวนหลักเฉพาะ
ฉันต้องการค้นหาหมายเลขความยาวเฉพาะในเอกสารขนาดใหญ่ ฉันพยายามใช้ regex สำหรับสิ่งนี้ ตัวอย่างเช่นหากฉันต้องการค้นหาตัวเลขด้วยตัวเลข 2 หลักฉันจะใช้\d\d(เช่น / d สองครั้งตามด้วยช่องว่าง) มันใช้งานได้ดี แต่สำหรับการค้นหาตัวเลข 10 หลักนั้นเป็นไปไม่ได้ที่จะพิมพ์ใน\d10 ครั้ง พยายาม\d{2}พูดว่า ' E486: ไม่พบรูปแบบ: \ d {2} ' มีวิธีที่เร็วกว่า / ง่ายกว่าในการบรรลุเป้าหมายนี้หรือไม่?

3
copy-on-write in fork () จัดการหลาย fork อย่างไร
ตาม Wikipedia (ซึ่งอาจผิด) เมื่อมีการออกการเรียกระบบ fork () สำเนาของหน้าทั้งหมดที่เกี่ยวข้องกับกระบวนการหลักจะถูกสร้างขึ้นโหลดลงในตำแหน่งหน่วยความจำแยกต่างหากโดยระบบปฏิบัติการสำหรับกระบวนการลูก แต่นี่ไม่จำเป็นในบางกรณี พิจารณากรณีที่เมื่อเด็กรัน " exec" ระบบโทร (ที่ใช้ในการเรียกใช้ไฟล์ปฏิบัติการใด ๆ จากภายในโปรแกรม C) หรือออกในเร็ว ๆ fork()นี้หลังจากที่ เมื่อเด็กต้องการเพียงแค่เรียกใช้คำสั่งสำหรับกระบวนการหลักไม่จำเป็นต้องคัดลอกเพจกระบวนการหลักเนื่องจากexecแทนที่พื้นที่ที่อยู่ของกระบวนการที่เรียกใช้งานด้วยคำสั่งที่จะดำเนินการ ในกรณีเช่นนี้จะใช้เทคนิคที่เรียกว่า copy-on-write (COW) ด้วยเทคนิคนี้เมื่อมีการแยกหน้าเพจของกระบวนการหลักจะไม่ถูกคัดลอกสำหรับกระบวนการลูก แต่จะมีการแชร์หน้าระหว่างเด็กและกระบวนการหลักแทน เมื่อใดก็ตามที่กระบวนการ (พาเรนต์หรือชายด์) แก้ไขเพจสำเนาที่แยกต่างหากของเพจนั้นจะถูกสร้างขึ้นสำหรับกระบวนการนั้น (พาเรนต์หรือชายด์) ซึ่งดำเนินการแก้ไข กระบวนการนี้จะใช้เพจที่คัดลอกใหม่แทนที่จะเป็นเพจที่แชร์ในการอ้างอิงในอนาคตทั้งหมด กระบวนการอื่น (กระบวนการที่ไม่ได้แก้ไขเพจที่ใช้ร่วมกัน) ยังคงใช้สำเนาต้นฉบับของหน้าต่อไป (ซึ่งตอนนี้ไม่ได้ถูกแชร์อีกต่อไป) เทคนิคนี้เรียกว่า copy-on-write เนื่องจากหน้าจะถูกคัดลอกเมื่อบางกระบวนการเขียนไป ดูเหมือนว่าเมื่อกระบวนการอย่างใดอย่างหนึ่งพยายามที่จะเขียนไปยังหน้าสำเนาใหม่ของหน้าได้รับการจัดสรรและกำหนดให้กับกระบวนการที่สร้างความผิดหน้า หน้าเดิมได้รับการทำเครื่องหมายว่าสามารถเขียนได้ในภายหลัง คำถามของฉันคือจะเกิดอะไรขึ้นหากการfork()เรียกถูกเรียกหลายครั้งก่อนที่กระบวนการใด ๆ พยายามเขียนลงในเพจที่ใช้ร่วมกัน?
23 linux  c  fork 

3
grep: แบ็กสแลชต่อท้าย
ฉันต้องการจะทำ grep \resources\สำหรับ ฉันจะทำสิ่งนี้ได้อย่างไร ฉันได้พยายาม: grep \resources\ grep \\resources\\ grep "\resources\" grep "\\resources\\" ไม่มีของเหล่านี้ทำงาน

6
cat ไฟล์จำนวนมากเข้าด้วยกันตามลำดับที่ถูกต้อง
ฉันมีประมาณ 15,000 ไฟล์ที่มีชื่อfile_1.pdb, file_2.pdbฯลฯ ฉันสามารถแมวประมาณไม่กี่พันเหล่านี้ในการสั่งซื้อโดยการทำ: cat file_{1..2000}.pdb >> file_all.pdb อย่างไรก็ตามหากฉันทำสิ่งนี้กับไฟล์ 15,000 ไฟล์ฉันจะได้รับข้อผิดพลาด -bash: /bin/cat: Argument list too long ฉันได้เห็นปัญหานี้ได้รับการแก้ไขโดยการทำfind . -name xx -exec xxแต่จะไม่รักษาลำดับที่ไฟล์เข้าร่วม ฉันจะบรรลุสิ่งนี้ได้อย่างไร

2
ฉันจะเชื่อมต่อสองอินเตอร์เฟสกับ ip / iproute2 ได้อย่างไร
ฉันรู้วิธีสร้างสะพานโดยใช้brctlแต่ฉันได้รับคำแนะนำว่าจะไม่ใช้สิ่งนี้อีกต่อไปและใช้iproute2หรือipแทน (เนื่องจากbrctlเลิกใช้แล้วน่าจะเป็นไปได้) สมมติว่านี่เป็นคำแนะนำที่ดีฉันจะสร้างสะพานที่ใช้ได้ipอย่างไร ตัวอย่างเช่นสมมติว่าผมต้องการที่จะสร้างสะพานเชื่อมและeth0eth1

7
ทุบตีถ้าไม่ได้หลายเงื่อนไขโดยไม่ต้อง subshell?
ฉันต้องการรวมหลายเงื่อนไขในเชลล์ถ้าคำสั่งและปฏิเสธการรวมกัน ฉันมีรหัสการทำงานต่อไปนี้สำหรับการรวมกันของเงื่อนไขง่าย ๆ : if [ -f file1 ] && [ -f file2 ] && [ -f file3 ] ; then # do stuff with the files fi มันใช้งานได้ดี ถ้าฉันต้องการที่จะปฏิเสธฉันสามารถใช้รหัสการทำงานต่อไปนี้: if ! ( [ -f file1 ] && [ -f file2 ] && [ -f file3 ] ) ; then …

5
`zstyle 'ทำอะไร
zstyleดูเหมือนว่ามันเป็นเพียงศูนย์กลางในการจัดเก็บและดึงข้อมูลเช่นทางเลือกในการexportเชลล์พารามิเตอร์ มันเป็นเรื่องจริงหรือมีมากกว่านั้น?
23 zsh 

5
เซสชัน tmux ถูกฆ่าเมื่อตัดการเชื่อมต่อจาก ssh
คำถามนี้ถูกย้ายจาก Server Fault เนื่องจากสามารถตอบได้ใน Unix & Linux Stack Exchange อพยพ 5 ปีที่ผ่านมา สรุป : ฉันกำลังพยายามหาสาเหตุว่าทำไมเซสชัน tmux ของฉันถึงตายเมื่อฉันตัดการเชื่อมต่อจาก ssh รายละเอียด : ฉันติดตั้ง tmux ไว้ในระบบ Arch Linux แล้ว เมื่อฉันเริ่มเซสชัน tmux ฉันสามารถแยกออกจากมันแล้วแนบอีกครั้งในขณะที่เซสชัน ssh ใช้งานอยู่ แต่ถ้าฉันจบเซสชัน ssh ของฉันดังนั้นเซสชัน tmux จะถูกฆ่า ฉันรู้ว่านี่ไม่ใช่พฤติกรรมปกติเพราะฉันมีระบบอื่นที่เซสชัน tmux ยังคงทำงานแม้ว่าจะสิ้นสุดเซสชัน ssh และฉันสามารถแนบกับเซสชัน tmux หลังจากสร้างการเชื่อมต่อ ssh ใหม่ ระบบที่มีปัญหาและระบบที่ทำงานอย่างถูกต้องมีการกำหนดค่าที่คล้ายกันมากดังนั้นฉันไม่แน่ใจว่าจะตรวจสอบอะไร ฉันใช้ tmux เวอร์ชั่น 1.9a …
23 tmux  sshd 

3
tcp6 ในเอาต์พุต netstat
คอลัมน์ 'tcp6' หมายถึงอะไรในเอาต์พุต netstat ใครก็ได้โปรดอธิบายผลลัพธ์ต่อไปนี้ของ netstat: tcp6 0 0 dmz.local.net:www 5.140.235.6%14631:49964 ESTABLISHED 21393/apache2 อะไรtcp6หมายความว่าอย่างไร
23 tcp  netstat 

3
ย้ายไฟล์และเปลี่ยนความเป็นเจ้าของเมื่อ sametime
บน Linux (Debian, Ubuntu Mint ... ), มีคำสั่งตัวเลือกหรือสิ่งที่ฉันสามารถใช้เพื่อถ่ายโอนไฟล์ไปยังผู้ใช้รายอื่นโดยไม่ต้องทำ: sudo mv /home/poney/folderfulloffiles /home/unicorn/ sudo chown -R unicorn:unicorn /home/unicorn/folderfulloffiles
23 linux  files  rename  chown 

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