Unix & Linux

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

12
เป็นกลุ่ม - ฉันจะทำ 'เปลี่ยนคำ' โดยใช้บัฟเฟอร์การวางปัจจุบันได้อย่างไร
ฉันมีข้อความในบัฟเฟอร์การวางของฉันเช่นฉันทำyw(คำว่างัด) และตอนนี้ฉันมี 'foo' ในบัฟเฟอร์ของฉัน ตอนนี้ฉันไปที่คำว่า 'บาร์' และฉันต้องการแทนที่ด้วยบัฟเฟอร์การวางของฉัน หากต้องการแทนที่ข้อความด้วยตนเองฉันสามารถทำได้cwแล้วพิมพ์คำใหม่ ฉันจะ 'เปลี่ยนคำ' แต่ใช้เนื้อหาของบัฟเฟอร์การวางของฉันแทนการพิมพ์คำที่แทนที่ด้วยตนเองได้อย่างไร ตัวเลือกที่ดีที่สุดที่ฉันมีตอนนี้คือไปที่จุดเริ่มต้นของคำที่ฉันต้องการแทนที่และทำdw(ลบคำ) จากนั้นไปที่อื่นและทำyw(คำพูดงัด) จากนั้นกลับไปที่พื้นที่ทดแทนและทำp(วาง) ซึ่งค่อนข้างงุ่มง่ามโดยเฉพาะอย่างยิ่งหากพวกเขาไม่ได้อยู่บนหน้าจอเดียวกัน
86 vim  vi  replace  buffer 

8
วิธีการเรียกใช้ grep ที่มีหลายรูปแบบและ?
ฉันต้องการได้รับการจับคู่หลายรูปแบบโดยนัยและระหว่างรูปแบบเช่นเทียบเท่ากับการรัน greps หลายตัวตามลำดับ: grep pattern1 | grep pattern2 | ... ดังนั้นวิธีการแปลงเป็นบางอย่างเช่น? grep pattern1 & pattern2 & pattern3 ฉันต้องการใช้ grep เดี่ยวเพราะฉันกำลังสร้างข้อโต้แย้งแบบไดนามิกดังนั้นทุกอย่างต้องพอดีในสายเดียว การใช้ตัวกรองคือคุณสมบัติของระบบไม่ใช่ grep ดังนั้นจึงไม่ใช่ข้อโต้แย้ง อย่าสับสนคำถามนี้ด้วย: grep "pattern1\|pattern2\|..." นี่คือการจับคู่รูปแบบOR หรือหลายแบบ

6
LVM ส่งผลกระทบต่อประสิทธิภาพหรือไม่
ฉันต้องโยกย้ายเซิร์ฟเวอร์ไปยัง Linux สองสามอย่างและสิ่งสำคัญที่ฉันต้องประเมินก็คือระบบโฮสต์ใหม่ของฉันต้องมีพื้นที่จัดเก็บแบบยืดหยุ่น โดยธรรมชาติแล้วการทำวิจัยพื้นฐานบางอย่างฉันเจอ LVM มีการปรับประสิทธิภาพสำหรับการใช้ LVM หรือไม่? ถ้าเป็นเช่นนั้นฉันจะวัดได้อย่างไร สิ่งที่ฉันกำลังพิจารณาในตอนนี้คือให้ Linux เป็นโฮสต์ระบบปฏิบัติการที่มี LVM และกล่อง Linux เสมือนที่ทำงานอยู่ด้านบน (ฉันควรเพิ่ม LVM ในระบบปฏิบัติการ guest ด้วยหรือไม่)

4
ส่งต่อ SIGTERM ให้กับเด็กใน Bash
ฉันมี Bash script ซึ่งมีลักษณะคล้ายกับนี้: #!/bin/bash echo "Doing some initial work...."; /bin/start/main/server --nodaemon ตอนนี้ถ้า bash shell ที่เรียกใช้สคริปต์ได้รับสัญญาณ SIGTERM ก็ควรส่ง SIGTERM ไปยังเซิร์ฟเวอร์ที่กำลังรันอยู่ เป็นไปได้ไหม
86 bash  shell  signals  docker 

6
ssh-keygen อัตโนมัติโดยไม่มีข้อความรหัสผ่านเป็นอย่างไร
ฉันต้องการสร้างสคริปต์อัตโนมัติที่โทรออกssh-keygenและสร้างคู่คีย์ผับ / ส่วนตัวที่ฉันจะใช้ในภายหลัง ในหลักการทุกอย่างทำงานได้ดีกับ .... ssh-keygen -b 2048 -t rsa -f /tmp/sshkey -q ... ยกเว้นว่ามันจะถามฉันสำหรับวลีรหัสผ่านที่จะเข้ารหัสคีย์ สิ่งนี้ทำให้ - ปัจจุบัน - อัตโนมัติยาก ฉันสามารถให้ข้อความรหัสผ่านผ่านอาร์กิวเมนต์บรรทัดคำสั่ง-N thepassphraseดังนั้นเพื่อให้พรอมต์ปรากฏ ถึงกระนั้นฉันก็ยังไม่ต้องการที่จะมีกุญแจ - เพิ่มความปลอดภัยด้วยการเข้ารหัส - และต้องการให้คู่กุญแจเป็นข้อความธรรมดา ทางออกที่ดีที่สุดสำหรับปัญหานี้คืออะไร -qตัวเลือกซึ่งคาดว่าหมายถึง "ที่เงียบสงบ / เงียบ" ไม่ยังไม่หลีกเลี่ยงการมีปฏิสัมพันธ์วลีรหัสผ่าน นอกจากนี้ฉันไม่พบสิ่งนี้ ssh-keygen ...... -q --no-passphrase โปรดอย่าเริ่มเทศนาเกี่ยวกับหรือบรรยายให้ฉันถึงข้อดีข้อเสียของ "ข้อความรหัสผ่านที่หายไป" ฉันรู้แล้ว ในรูปแบบโต้ตอบ (ไม่ใช่สคริปต์) ผู้ใช้สามารถกด [ENTER] สองครั้งและคีย์จะถูกบันทึกเป็นข้อความธรรมดา นี่คือสิ่งที่ฉันต้องการบรรลุในสคริปต์เช่นนี้: #! / bin …
86 ssh  scripting 

7
ไม่สามารถใช้เครื่องหมายอัศเจรีย์ (!) ในการทุบตี?
ฉันพยายามใช้คำสั่ง curl เพื่อเข้าถึง http url ด้วยเครื่องหมายอัศเจรีย์ ( !) ในเส้นทาง เช่น: curl -v "http://example.org/!287s87asdjh2/somepath/someresource" bash: ... event not foundคอนโซลตอบกลับด้วย เกิดขึ้นที่นี่คืออะไร? และไวยากรณ์ที่เหมาะสมในการหลีกเลี่ยงเครื่องหมายอัศเจรีย์คืออะไร

7
ผลลัพธ์ของ ls *, ls ** และ ls ***
ฉันรู้ว่าการใช้คำสั่งlsจะแสดงรายการไดเรกทอรีทั้งหมด แต่ls *คำสั่งทำอะไร ฉันใช้มันและมันก็จะแสดงรายการไดเรกทอรี ดาวอยู่ข้างหน้าlsหมายความว่าจะสามารถแสดงรายการไดเรคทอรีได้ลึกแค่ไหน

4
yum เทียบเท่ากับ 'apt-get update' คืออะไร?
Debian apt-get updateเรียกและอัพเดตดัชนีแพ็กเกจ เพราะฉันคุ้นเคยกับวิธีการทำสิ่งนี้ฉันรู้สึกประหลาดใจที่พบว่าyum updateทำทุกอย่างและอัพเกรดระบบ สิ่งนี้ทำให้ฉันอยากรู้วิธีปรับปรุงดัชนีแพ็คเกจโดยไม่ต้องติดตั้งอะไร

5
กระบวนการทดแทนและท่อ
ฉันสงสัยว่าจะเข้าใจสิ่งต่อไปนี้อย่างไร: การวาง stdout ของคำสั่งลงใน stdin ของอีกอันเป็นเทคนิคที่ทรงพลัง แต่ถ้าคุณต้องการไพพ์ stdout ของหลายคำสั่งล่ะ? นี่คือที่มาทดแทนกระบวนการ กล่าวอีกนัยหนึ่งกระบวนการทดแทนสามารถทำสิ่งที่ท่อสามารถทำได้หรือไม่ กระบวนการทดแทนสามารถทำอะไรได้บ้าง แต่ไปป์ไม่ได้

16
วิธีการเชื่อมต่อกับพอร์ตอนุกรมทำได้ง่ายเหมือนการใช้ SSH
มีวิธีการเชื่อมต่อกับเทอร์มินัลแบบอนุกรมเช่นเดียวกับที่คุณทำกับ SSH หรือไม่? จะต้องมีวิธีที่ง่ายกว่าเครื่องมือเช่น Minicom เช่นนี้ $ serial /dev/ttyS0 ฉันรู้ว่าฉันสามารถcatส่งออกจาก/dev/ttyS0แต่การสื่อสารทางเดียวเท่านั้นเป็นไปได้ด้วยวิธีนั้นจากพอร์ตไปยังคอนโซล และechoออกไปยังท่าเรือเป็นเพียงเหมือนกัน แต่วิธีอื่น ๆ เพื่อพอร์ต ฉันจะตระหนักถึงการสื่อสารสองทางกับพอร์ตอนุกรมเป็นวิธีที่ง่ายที่สุดใน Unix / Linux ได้อย่างไร

13
วิธีการทำความเข้าใจสิ่งที่เกิดขึ้นพื้นที่ดิสก์?
ฉันกำลังมองหาทางเลือกที่ลินุกซ์ที่จะWinDirStat ฉันอยากรู้ว่าการใช้พื้นที่บนฮาร์ดไดรฟ์ของฉันเป็นอย่างไร โปรแกรมที่ทำงานบนคอนโซลและไม่ต้องการ UI เป็นที่ต้องการ
86 disk-usage 

4
ทำไมการขยายพารามิเตอร์ด้วยช่องว่างโดยไม่ใส่เครื่องหมายอัญประกาศทำงานในวงเล็บสอง“ [[” แต่ไม่อยู่ในเครื่องหมายวงเล็บ”“”
ฉันสับสนกับการใช้วงเล็บเดียวหรือสองครั้ง ดูรหัสนี้: dir="/home/mazimi/VirtualBox VMs" if [[ -d ${dir} ]]; then echo "yep" fi มันทำงานได้อย่างสมบูรณ์แม้ว่าสตริงจะมีช่องว่าง แต่เมื่อฉันเปลี่ยนเป็นวงเล็บเดี่ยว: dir="/home/mazimi/VirtualBox VMs" if [ -d ${dir} ]; then echo "yep" fi มันบอกว่า: ./script.sh: line 5: [: /home/mazimi/VirtualBox: binary operator expected เมื่อฉันเปลี่ยนเป็น: dir="/home/mazimi/VirtualBox VMs" if [ -d "${dir}" ]; then echo "yep" fi มันใช้งานได้ดี ใครสามารถอธิบายสิ่งที่เกิดขึ้น? เมื่อใดที่ฉันควรกำหนดเครื่องหมายคำพูดคู่ล้อมรอบตัวแปร"${var}"เพื่อป้องกันปัญหาที่เกิดจากช่องว่าง
85 bash  quoting  ksh  test 

6
แปลงเนื้อหาไฟล์เป็นตัวพิมพ์เล็ก
ฉันมีtempไฟล์ที่มีเนื้อหาตัวพิมพ์เล็กและตัวพิมพ์เล็ก อินพุต เนื้อหาของtempไฟล์ของฉัน: hi Jigar GANDHI jiga ฉันต้องการที่จะแปลงบนไปล่าง คำสั่ง ฉันลองคำสั่งต่อไปนี้: sed -e "s/[A-Z]/[a-z]/g" temp แต่มีเอาต์พุตผิด เอาท์พุต ฉันต้องการมันเป็น: hi jigar gandhi jiga สิ่งที่จะต้องมีในแทนส่วนของการโต้แย้งสำหรับsed?

9
ชื่อผู้ใช้ไม่ได้อยู่ในไฟล์ sudoers เหตุการณ์นี้จะถูกรายงาน
ฉันใช้ Ubuntu 12.04 บนแล็ปท็อปของฉันโดยใช้ VMware Player ฉันไม่แน่ใจว่าทำไม แต่ฉันมีบัญชีชื่อ "บัญชีผู้ใช้" นอกเหนือจากบัญชีของฉันที่ฉันมักจะเข้าสู่ระบบเพื่อใช้ Ubuntu นั่นเป็นเพียงความเห็นด้านข้าง แต่โดยพื้นฐานแล้วทั้งหมดที่ฉันพยายามทำคือติดตั้งไลบรารี ncurses บน Ubuntu ฉันได้ลองติดตั้ง ncurses โดยใช้บรรทัดคำสั่งต่อไปนี้: sudo apt-get install libncurses5-dev sudo apt-get install ncurses-dev เมื่อฉันลองติดตั้ง ncurses สองครั้งโดยใช้คำสั่งด้านบนฉันได้รับพรอมต์ต่อไปนี้ในเทอร์มินัล: [sudo] password for username เมื่อฉันพิมพ์รหัสผ่านฉันได้รับข้อความต่อไปนี้: username is not in the sudoers file. This incident will be reported. จนถึงตอนนี้ฉันได้ลองเปิดใช้งานบัญชีผู้ใช้รูท ("Super User") …
85 sudo 

2
คีย์บอร์ดอินพุตและเอาต์พุตข้อความทำงานอย่างไร
สมมติว่าฉันกดAปุ่มในตัวแก้ไขข้อความและสิ่งนี้แทรกตัวละครaในเอกสารและแสดงบนหน้าจอ ฉันรู้ว่าแอปพลิเคชันตัวแก้ไขไม่ได้สื่อสารโดยตรงกับฮาร์ดแวร์ (มีเคอร์เนลและสิ่งต่าง ๆ อยู่ระหว่างนั้น) ดังนั้นสิ่งที่เกิดขึ้นภายในคอมพิวเตอร์ของฉัน

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