Unix & Linux

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

1
อย่าใช้โอเปอเรเตอร์ `-a` หรือ` -o 'กับ `['
Stéphane Chazelasเขียนว่า: กฎบางอย่างเช่น อ้างถึงตัวแปรเสมอ ไม่เคยใช้ตัวดำเนินการ-aหรือ-o(ใช้หลาย[คำสั่งและตัวดำเนินการ&&และ||เชลล์) สร้าง[ความน่าเชื่อถือด้วย POSIX shells ทำไม "ไม่เคยใช้-aหรือ-oโอเปอเรเตอร์" ฉันจะ "ใช้[คำสั่งหลายคำสั่งและตัวดำเนินการ&&และ||เชลล์)" ได้อย่างไร
11 bash  shell  test 

8
ย้าย N บรรทัดแรกของเอาต์พุตไปยังจุดสิ้นสุดโดยไม่ต้องใช้ไฟล์ชั่วคราว
ลองนึกภาพผลลัพธ์ของคำสั่งเช่น 44444 55555 11111 22222 33333 ฉันจะดึงบรรทัด N แรกออกมาได้อย่างไร (สองบรรทัดแรกในตัวอย่างด้านบน) และต่อท้ายบรรทัด แต่ไม่ต้องใช้ไฟล์ temp ( โดยใช้ไพพ์เท่านั้น) 11111 22222 33333 44444 55555 บางสิ่งบางอย่างตามแนวของ| sed -n '3,5p;1,2p'(ซึ่งเห็นได้ชัดว่าใช้งานไม่ได้เพราะความใจร้อนไม่สนใจคำสั่งของคำสั่ง)

3
เหตุใด sshd จึงไม่ใช้เทอร์มินัลเทียมหลอกเมื่ออาร์กิวเมนต์ของลูกค้า ssh ตามมาด้วยโปรแกรมแบบโต้ตอบ
วิธีปกติในการเชื่อมต่อกับเซิร์ฟเวอร์ SSH ssh username@ip_addressคือ แต่ผู้ใช้อาจต้องการเรียกใช้โปรแกรมบนเครื่องระยะไกลเท่านั้น ssh username@ip_address <program_name>ดังนั้นชื่อโปรแกรมดังต่อไปนี้หลังจากอาร์กิวเมนต์ปกติซึ่งเป็น ตัวอย่างเช่นssh username@ip_address ls. อาร์กิวเมนต์นั่นคือดียกเว้นสำหรับโปรแกรมโต้ตอบ (ที่ยังยอมรับการป้อนข้อมูลของผู้ใช้เช่นเดียวกับการส่งออก) topเช่น ผลลัพธ์คือ ไม่ได้ตั้งค่าตัวแปรสภาพแวดล้อม TERM ซึ่งหมายความว่าไม่มีเทอร์มินัล (หลอก) ติดอยู่ระหว่างโปรแกรม sshd และโปรแกรมยอดนิยม การแก้ปัญหาคือการเพิ่มการโต้แย้งที่คำสั่งทั้งตอนนี้กลายเป็น-tssh -t username@ip_address top คำถามของฉันคือทำไมไม่สามารถใช้ sshd เป็นค่าเริ่มต้นใช้เทอร์มินัลหลอกเพื่อสื่อสารกับโปรแกรมที่ไม่ต้องมีการโต้ตอบดังนั้นจึงไม่จำเป็นต้องเพิ่ม-tอาร์กิวเมนต์สำหรับโปรแกรมเชิงโต้ตอบ
11 ssh  pty 

2
ฉันจะพิมพ์ค่า ASCII (ตัวเลข) ของอักขระแต่ละตัวในไฟล์ได้อย่างไร
ฉันจะพิมพ์ค่า ASCII ตัวเลขของอักขระแต่ละตัวในไฟล์ข้อความได้อย่างไร กดcatไลค์ แต่แสดงค่า ASCII เท่านั้น ... (ฐานสิบหกหรือทศนิยมเป็นปกติ) ตัวอย่างเอาต์พุตสำหรับไฟล์ที่มีคำว่าApple (ที่มีการป้อนบรรทัด) อาจมีลักษณะดังนี้: 065 112 112 108 101 013 004
11 linux  bash  sed  awk  terminal 

3
ค่าชั่วคราวของสคริปต์ bash ในคำสั่ง
ชอบคำสั่งด้านล่าง if true; then IFS=":" read a b c d e f <<< "$test" หนังสือบอกว่าเมื่อใช้คำสั่งการกำหนดค่า ( IFS ":") ก่อนคำสั่งหลัก ( read a b c d e f <<< "$value") ค่าของมันจะมีผลกับคำสั่งหลักชั่วคราว ดังนั้นการใช้คำสั่งคั่นread: แต่เช่นเดียวกับคำสั่งนี้ if true; then HOME="hello" echo "$HOME" ข้อความสะท้อนไม่ได้เป็นสวัสดี ความหมายที่แท้จริงของคำสั่งข้างต้นคืออะไร?

2
awk memory รั่ว?
ฐานบนนี้ผมใช้คำสั่ง < /dev/urandom hexdump -v -e '/1 "%u\n"' | awk '{ split("0,2,4,5,7,9,11,12",a,","); for (i = 0; i < 1; i+= 0.0001) printf("%08X\n", 100*sin(1382*exp((a[$1 % 8]/12)*log(2))*i)) }' | xxd -r -p | sox -traw -r44100 -b16 -e unsigned-integer - -tcoreaudio ฉันสังเกตเห็นว่าหน่วยความจำที่ awk ใช้เพิ่มขึ้นอย่างต่อเนื่องในขณะที่คำสั่งนี้กำลังทำงานตัวอย่างเช่นการใช้หน่วยความจำเกิน 500MB ภายในเวลาที่เล่นข้อมูลเสียงดิบ 75MB คำสั่งอื่น ๆ ทั้งหมดในไปป์ไลน์รักษาจำนวนหน่วยความจำให้คงที่ awk ใช้หน่วยความจำนี้เพื่ออะไรและมีทางเลือกอื่นที่การประมวลผลสตรีมแบบตั้งใจจะใช้หน่วยความจำเพียงจำนวนเท่าไร? …
11 awk  osx  memory 

3
วิธีการกำหนดค่า swappiness ในการจัดการหน่วยความจำลินุกซ์?
พารามิเตอร์ swappiness ควบคุมแนวโน้มของเคอร์เนลเพื่อย้ายกระบวนการออกจากหน่วยความจำกายภาพและไปยัง swap disk ตั้งค่าเริ่มต้นคืออะไรและวิธีการกำหนดค่าที่จะปรับปรุงประสิทธิภาพโดยรวม ?

2
sub-shell เป็นสิ่งเดียวกันกับ child-shell
: มีสองชื่อsubshellและเด็กเปลือก ใช่กระบวนการลูกจะเริ่มจากสิ่งนี้: sh -c 'echo "Hello"' ( echo "hello" ) echo "$(echo "hello") echo "hello" | cat ทุกคนมีความเสมอภาคและใช้ชื่อเดียวกันหรือไม่? ทุกคนแบ่งปันคุณสมบัติเดียวกันหรือไม่ POSIX มีคำจำกัดความนี้ : สภาวะแวดล้อมการประมวลผลเชลล์ประกอบด้วย .... แต่ลิงค์สุดท้ายของย่อหน้าด้านบนมี: สภาพแวดล้อม subshell จะต้องสร้างขึ้นซ้ำกับสภาพแวดล้อมของเชลล์ยกเว้นกับดักสัญญาณที่ไม่ได้ถูกละเว้นจะถูกตั้งค่าเป็นการกระทำเริ่มต้น และพิเศษ: การทดแทนคำสั่งคำสั่งที่จัดกลุ่มด้วยวงเล็บและรายการแบบอะซิงโครนัสจะต้องถูกดำเนินการในสภาพแวดล้อมย่อย นอกจากนี้แต่ละคำสั่งของไปป์ไลน์แบบหลายคำสั่งอยู่ในสภาพแวดล้อม subshell .... sh -c 'echo "Hello"'ไม่ได้รวมอยู่ที่นั่นควรที่จะเรียกว่า subshell ยัง?

2
มีเบราว์เซอร์ที่รองรับที่อยู่ IPv6 Link Local หรือไม่
ฉันต้องการทราบในเบราว์เซอร์สุดท้ายที่อนุญาตให้ฉันเรียกดูfe80::4216:7eff:fe9f:79ac%enp2s0f0ตัวอย่างเช่น ฉันได้ตรวจสอบแล้วว่ามีตั๋วมากมายที่เปิดในเครื่องมือติดตามบั๊กของเบราว์เซอร์ชื่อใหญ่เช่น Firefox และ Chrome ฉันรู้ว่า Internet Explorer บน Windows สามารถให้ตัวเลือกได้ แต่ฉันต้องการรู้จักใครก็ตามในพื้นที่ Linux
11 ipv6  browser  url 

2
ไม่สามารถใช้! $ in script?
เพียงแค่สงสัยว่าทำไมสิ่งนี้ถึงไม่ทำงาน #!/bin/bash ls /bin ls !$ ฉันคาดว่าจะทำงานls /binสองครั้ง แต่ข้อผิดพลาดที่สองทำให้เกิดข้อผิดพลาดตามที่!$ไม่ถูกตีความ ฉันพลาดอะไรบางอย่างหรือ!$ทำงานเฉพาะในบรรทัดคำสั่งเท่านั้น ฉันไม่พบส่วนที่เกี่ยวข้องในman bash(บน mac)
11 bash 

3
หยุดกระบวนการโดยไม่ฆ่ามัน
ดังนั้นฉันจึงมีโปรแกรมถาวรที่ทำงานอยู่เบื้องหลัง การฆ่ามันเพียงแค่ทำให้มันเริ่มต้นใหม่ด้วย PID ที่แตกต่างกัน ฉันต้องการที่จะระงับ (ทำให้นอนโดยไม่ฆ่ามัน) kill -9 ทำสิ่งนี้หรือไม่ ถ้าไม่ควรทำอย่างไร?
11 process  kill 

1
วิธีจัดเรียงไฟล์ตามส่วนของฟิลด์
ฉันต้องการเรียงลำดับไฟล์: D104HN-D104HA 8.320 4.521 1.69e+05 -- D104HN-D104HB* 8.320 2.823 2.93e+05 -- A90HB#-A90HA 1.655 4.207 7.12e+05 -- A90HB#-F91HA 1.653 4.411 8.59e+04 -- A114HB#-A114HA 1.253 4.098 7.67e+05 -- A114HB#-R111HA 1.251 3.929 1.76e+05 -- A114HB#-W110HA 1.253 4.451 3.68e+04 -- F91HE*-F91HZ 7.237 7.122 7.85e+05 -- F91HE*-K92HA 7.242 3.910 4.88e+04 -- และรับสิ่งนี้ A90HB#-A90HA 1.655 4.207 …

2
อะไรคือความแตกต่างระหว่าง & 6 กับ / dev / fd / 6?
หากต้องการอ่านจาก file descriptor 6 ฉันสามารถใช้<&6หรือ</dev/fd/6(aka /proc/self/fd/6) โดยปกติแล้วทั้งสองทำงานได้ดีเท่า ๆ กัน อย่างไรก็ตามหากไฟล์ descriptor นั้นเป็นซ็อกเก็ตสิ่งแปลก ๆ ก็เกิดขึ้น ตัวอย่างเช่น: $ bash -c 'ls -l /dev/fd/6;cat /dev/fd/6' 6</dev/tcp/localhost/12345 lrwx------ 1 michas michas 64 Jan 10 19:50 /dev/fd/6 -> socket:[315010] cat: /dev/fd/6: No such device or address ที่นี่lsแสดงให้เห็นถึง descriptor มีอยู่จริง แต่การเข้าถึงข้อมูลเป็นไปไม่ได้ด้วยวิธีนี้ ถ้าฉันใช้cat <&6แทนทุกอย่างทำงานได้ดีอีกครั้ง อะไรคือความแตกต่างระหว่างทั้งสองวิธีในการเข้าถึงไฟล์ descriptor? มีวิธีที่ดีในการเข้าถึง …

2
[[.ch.]] หมายถึงอะไรใน regex?
ชื่อสำรอง: "ลำดับการเรียง" หรือ "องค์ประกอบเรียง" ใน regex ที่สอดคล้องกับ POSIX คืออะไร ฉันพบข้อกำหนดทางเทคนิคที่แน่นอนในส่วน 9.3.5 ของข้อกำหนด POSIXตามรายการ # 4 ในรายการ แต่ไม่ชัดเจนสำหรับฉัน ฉัน googled รอบบนเว็บสำหรับตัวอย่างและคำอธิบายและมาไม่สมบูรณ์มือเปล่า แต่ที่แน่ ๆ ไม่ได้รู้แจ้ง สิ่งเดียวที่ฉันได้รับคือในบางสถานการณ์คุณสามารถทำให้ regex ปฏิบัติกับตัวละครหลาย ๆ ตัวราวกับเป็นตัวละครเดียวเพื่อการเปรียบเทียบความยาวและกำหนดว่า "การจับคู่ที่ยาวที่สุด" คืออะไร (เนื่องจาก regexes เป็นโลภและ ส่งคืนการจับคู่ที่ยาวที่สุดที่เป็นไปได้) นั่นคือทั้งหมดใช่มั้ย ฉันมีปัญหาในการเห็นการใช้งาน แต่ฉันสงสัยว่าความเข้าใจของฉันไม่สมบูรณ์ สิ่งที่จริง "เรียง" สำหรับ regex คืออะไร? และ[[.ch.]]ตัวอย่างใน POSIX specs เกี่ยวข้องกับสิ่งนี้อย่างไร

1
256 สีในคอนโซล (tty)
X serverสมมติว่าผมมีระบบโดยไม่ต้อง ฉันสามารถล็อกอินได้จากคอนโซลเท่านั้น ดูเหมือนว่าโดยค่าเริ่มต้นคอนโซลลินุกซ์รองรับเพียง 8 สี: # tput colors 8 เป็นไปได้หรือไม่ที่จะใช้ 256 สีในคอนโซลเหมือนกับที่ฉันใช้ในเทอร์มินัลอีมูเลเตอร์ (เช่นเทอร์มิเนเตอร์) ในขณะที่ googling Ihave พบคำถามที่คล้ายกันมากมาย (หลายคนมีอายุมากกว่า 10 ปี) แต่ไม่มีคำตอบที่ชัดเจน บางคนแนะนำให้ใช้ framebuffer บางคนแนะนำให้ผนวกอาร์กิวเมนต์ TERM กับตัวเลือกการบูตเคอร์เนล ในขณะนี้ฉันส่งเพียงหนึ่งตัวเลือกพิเศษเป็นพารามิเตอร์การบูตเคอร์เนล: append="video=1280x720" ฉันเชื่อว่าการส่งความละเอียดวิดีโอใช้งานได้กับเมล็ดที่ทันสมัยkernel mode settingเท่านั้น แต่ฉันไม่แน่ใจ เป็นไปได้หรือไม่ที่จะใช้ 256 สีในคอนโซล linux รุ่นใหม่ (tty) อย่างไร? ฉันใช้ Debian Wheezy กับ kernel 4.1 UPDATE: ตามคำแนะนำจาก @muru ฉันได้ลองfbtermแล้ว …

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