Unix & Linux

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

2
“ tail -f | iconv -fsjis” ไม่ส่งสัญญาณอะไรเลย
ฉันต้องการtail -fไฟล์ แต่เนื้อหาของมันกำลังอยู่ในการsjisเข้ารหัสดังนั้นฉันจึงต้องแปลงมันเป็นการเข้ารหัสเนทีฟ (utf-8) ของเทอร์มินัลของฉัน เมื่อฉันทำ tail -fx | iconv -fsjis จะไม่มีเอาต์พุต เช่น หาง x | iconv -fsjis ใช้งานได้ในตอนแรกฉันคิดว่ามันเป็นปัญหาบัฟเฟอร์ แต่การลองunbufferและstdbufตามที่อธิบายไว้ในการปิดการบัฟเฟอร์ในไพพ์ไม่ได้ช่วยอะไร ในความเป็นจริงแม้หลังจากเพิ่มข้อมูลมากกว่า 10k ลงใน x แล้วก็จะไม่มีเอาต์พุตดังนั้นฉันเดาว่ามันไม่ใช่ปัญหาบัฟเฟอร์ (บัฟเฟอร์คือ 4k ถ้าฉันไม่เข้าใจผิด) แต่ไอคอนvจะเริ่มแสดงผลเมื่อ มันได้รับ EOF ดังนั้นฉันจะติดตามไฟล์เข้ารหัส sjis ของฉันได้อย่างไร
14 tail  buffer 

4
Escape sequences ในเอาต์พุตของสคริปต์ที่เรียกจากแอ็พพลิเคชัน ncurses
ขณะนี้ฉันกำลังเรียกใช้ mcabber เป็นลูกค้า Jabber ของฉัน (ซึ่งใช้ ncurses) ในเซสชั่น tmux บน homeserver ของฉัน ในพื้นที่ฉันเรียกใช้ iTerm2 เป็นเทอร์มินัลอีมูเลเตอร์ซึ่งรองรับการกระตุ้นการแจ้งเตือนคำรามผ่านลำดับการหลีกเลี่ยงตัวละคร หมายเหตุ: ทั้งหมดechoในคำถามนี้ทำงานเหมือนprintf %bหรือecho -eในทุบตีและ echoGNU เช่นecho "\e]9;foobar\007"ทำให้ iTerm2 ส่งข้อความคำรามด้วยข้อความ "foobar" อย่างไรก็ตามเมื่ออยู่ในเซสชั่น tmux ลำดับการหลีกเลี่ยงจะถูกทำลาย ดังนั้นการใช้ลำดับ escape character ที่เป็นกรรมสิทธิ์\Ptmuxสามารถใช้ดังนี้: echo "\ePtmux;\e\e]9;foobar\007\e\\" สิ่งนี้ทริกเกอร์ข้อความคำรามจากภายในเซสชัน tmux อย่างไรก็ตามเมื่อฉันใช้สิ่งนี้ในสคริปต์เหตุการณ์ mcabber ของฉันที่ถูกไล่ออกเมื่อได้รับข้อความใหม่จะไม่มีการแจ้งเตือนใด ๆ ขึ้นมาราวกับว่าเสียงสะท้อนถูกส่งไปยังเทอร์มินัลผิด ฉันคิดว่าสิ่งนี้เกี่ยวข้องกับ mcabber ซึ่งเรียกสคริปต์ว่าเป็นแอปพลิเคชัน ncurses ดังนั้นผลลัพธ์จากสคริปต์ทุบตีปกติของฉันจะหายไปและ iTerm 2 ไม่เคยเห็นเลย ฉันพยายามโทร …

3
การเพิ่มผู้ใช้ที่สามารถเรียกใช้สคริปต์จากระยะไกลเท่านั้น
ฉันต้องการสร้างผู้ใช้ที่สามารถทำได้เพียงสิ่งเดียวเท่านั้น: ผ่าน ssh ระบุสคริปต์ (และอาร์กิวเมนต์บรรทัดคำสั่งของสคริปต์) ที่อยู่ในโฟลเดอร์เดียว (สำหรับวัตถุประสงค์ของคำถามนี้ให้เราเรียกมัน/local/remote_only_scripts/foo) และให้สคริปต์ดำเนินการ แล้วส่งคืนเอาต์พุต เพื่อให้ชัดเจนบางตัวอย่างของสิ่งที่ฉันไม่ต้องการให้ผู้ใช้สามารถทำได้: เข้าสู่ระบบในบัญชี /bin/loginการประยุกต์ใช้เข้าสู่ระบบเป็น ไม่ใช่สคริปต์ใน/local/remote_only_scripts/fooโฟลเดอร์ดังนั้นจึงไม่ควรเรียกใช้โดยผู้ใช้ ลงชื่อเข้าใช้บัญชีจากระยะไกล ล็อกอินอีกครั้ง (นั่นคือสิ่งที่เรียกว่าโดย ssh?) ไม่ใช่สคริปต์ในโฟลเดอร์ที่เกี่ยวข้อง แสดงรายการเนื้อหาของไดเรกทอรี LS /bin/lsอยู่ใน ไม่ใช่สคริปต์ในไดเรกทอรีที่เหมาะสม แก้ไขไฟล์ในไดเรกทอรีนั้น emacs, vi, แก้ไขอื่น ๆ ส่วนใหญ่ไม่ได้เป็นสคริปต์ใน directoy นั้น ดูเนื้อหาของไฟล์ในไดเรกทอรีนั้น ดำเนินการไฟล์ในไดเรกทอรีนั้นว่าเขาไม่ได้รับอนุญาตให้ดำเนินการ โปรดทราบว่านี่เป็นตัวอย่างที่มีการดำเนินการอื่น ๆ อีกมากมายที่ฉันไม่ต้องการให้ผู้ใช้สามารถทำได้ ในการพิจารณาการกระทำให้ถามว่า "สคริปต์นี้ใช้งาน/local/remote_only_scripts/fooหรือไม่" ถ้าคำตอบคือไม่มีผู้ใช้ไม่ควรทำ หากคำตอบคือใช่ผู้ใช้ควรจะสามารถทำได้ PS: ให้ฉันอธิบายสิ่งที่ฉันหมายถึงโดย "การเพิ่มผู้ใช้" ฉันไม่ได้หมายถึงการเพิ่มผู้ใช้ไปยังระบบย่อย ssh แต่ฉันหมายถึงการเพิ่มผู้ใช้ไปยังระบบคอมพิวเตอร์ ตัวอย่างเช่นฉันมีระบบที่ใช้เดเบียนเสถียรเรียกมันตามที่อยู่ของมัน www.hg.bar.com ฉันต้องการที่จะเพิ่มผู้ใช้ (ผ่าน kuser …

3
~ คือ $ HOME แต่บางครั้ง
cd ~ ทำสิ่งเดียวกัน cd $HOME ซึ่งก็เหมือนกัน cd /home/tandu อย่างไรก็ตาม cd ~not-tandu เปลี่ยนเป็น /home/not-tandu นี่เป็นทางเลือกทางประโยคอย่างแท้จริงหรือไม่? สิ่งนี้ถูกจัดการโดยเคอร์เนล (หรือที่cdเรียกทำงานได้หรือไม่) มีกรณีพิเศษสำหรับ~เพิ่มเครื่องหมายทับหรือไม่ถ้าทุกอย่างถูกละเว้น? กล่าวคือ~/และ~เปลี่ยนเป็นไดเรกทอรีเดียวกัน แต่~aมีหนึ่งไดเรกทอรีขึ้น ไม่สามารถพูดถึงสิ่งเดียวกันสำหรับไดเรกทอรีอื่น ๆ ที่คุณเปลี่ยน
14 cd-command  home 

4
คำสั่งที่เน้น regex ในข้อความหรือไม่
มีคำสั่งที่เน้นการแสดงออกในข้อความหรือไม่? ฉันกำลังมองหาบางอย่างเช่นฟังก์ชั่น 'ค้นหา' น้อยกว่า แต่มีเอาต์พุตข้อความปกติบน stdout แทนที่จะเป็นlessวิวเวอร์ ตัวอย่าง: $ cat test.txt | highlight "an" อนาคตสำหรับถอนนาโตเป็นระเบียบจาก Afgh ist รับความเดือดร้อนสองความพ่ายแพ้เป็นประธานาธิบดีฮามิดคาร์ไซ DEM ขีด จำกัด ded กองกำลังสหรัฐอเมริกางลิบเจรจาสันติภาพหยุด มันสามารถใช้สีหรือวิธีอื่นใดเพื่อเน้นการแสดงออกปกติที่ระบุ

5
มีเครื่องมือสำหรับแสดงข้อมูล WiFi ในคอนโซลหรือไม่?
ฉันสามารถดูรายละเอียดเครือข่าย WiFi ที่ตรวจพบได้ (เช่นความแรงของสัญญาณการเข้ารหัส ฯลฯ ) ในบรรทัดคำสั่งหรือไม่ รายละเอียดเพิ่มเติม - ดีกว่า

3
“ ls -lh” รายงานขนาดรวมน้อยกว่าผลรวมของขนาดแต่ละรายการ
ภายใต้สถานการณ์ใดที่จะls -lhแสดงผลรวมที่น้อยกว่าผลรวมของไฟล์แต่ละไฟล์? ตัวอย่างเช่น: $ ls -lh /var/lib/nova/instances/_base total 100G -rw-rw-r-- 1 nova nova 4.3M 2012-02-14 14:07 00000001 -rw-rw-r-- 1 nova nova 5.7M 2012-02-14 14:07 00000002 -rw-rw-r-- 1 nova nova 42G 2012-03-08 15:24 1574bddb75c78a6fd2251d61e2993b5146201319.part -rw-rw-r-- 1 libvirt-qemu kvm 24M 2012-02-14 14:07 77de68daecd823babbb58edb1c8e14d7106e83bb_sm -rw-r--r-- 1 libvirt-qemu kvm 65G 2012-03-02 12:43 bd307a3ec329e10a2cff8fb87480823da114f8f4 -rw-rw-r-- …
14 files  ls  disk-usage 

10
ฉันจะเข้าใจคำสั่ง linux ที่มีประโยชน์ที่สุดสำหรับโปรแกรมเมอร์ได้ที่ไหน? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา พลังของการรวมxargs, cut, tail, grep, seqทำให้ฉันประหลาดใจ ทรัพยากรใดที่ฉันควรดูสำหรับการสอนเกี่ยวกับคำสั่ง linux ที่มีประโยชน์ที่สุดสำหรับโปรแกรมเมอร์? ฉันสนใจโปรแกรมเมอร์ที่ใช้บ่อยที่สุดซึ่งจะทำให้ชีวิตของฉันง่ายขึ้น

4
ค้นหา -exec ในสคริปต์ทุบตีพร้อมส่วนขยายตัวแปร
ฉันพยายามเรียกใช้คำสั่งคล้ายกับคำสั่งด้านล่างในสคริปต์ทุบตี มันควรจะค้นหาผ่านโฟลเดอร์ย่อยทั้งหมดและคัดลอกไฟล์ทั้งหมดของบางประเภทให้อยู่ในระดับรากของ$sourcedir$targetdir #!/bin/bash # These are set as arguments to the script, not hard-coded sourcedir="/path/to/sourcedir" targetdir="/path/to/targetdir" find "$sourcedir" -type f -name "*.type" -exec sh -c 'cp "$1" "$2/`basename "$1"`"' "{}" "$targetdir" \; นี้ดูเหมือนว่าจะสวยใกล้เคียงยกเว้นว่า{}จะไม่ถูกส่งผ่านไปในขณะที่$2ไป-exec sh -c ... ฉันต้องการทำเช่นนี้ให้ใกล้เคียงกับ "ทางที่ถูกต้อง" ที่สุดเท่าที่จะทำได้ด้วยความอดทนสำหรับตัวละครพิเศษในชื่อไฟล์ แก้ไข:ฉันเห็นคนแนะนำให้ใช้xargsหรือการผูกมัดข้อโต้แย้ง ฉันอยู่ภายใต้การแสดงผลว่านี่เป็นเพียงข้อโต้แย้งที่ จำกัด ตัวอย่างเช่นถ้าฉันมีไฟล์. jpg หลายพันไฟล์ที่ฉันพยายามคัดลอกจากไดเรกทอรีแกลเลอรี่จำนวนมากไปยังไดเรกทอรีสไลด์โชว์ยักษ์โซลูชั่นการเชื่อมโยงจะยังคงใช้งานได้หรือไม่ แก้ไข 2:ปัญหาของฉันคือฉันหายไป_ก่อนที่ตัวเลือกแรกของฉันที่จะดวลจุดโทษใน-execคำสั่ง สำหรับทุกคนที่สงสัยเกี่ยวกับวิธีทำให้คำสั่ง find ทำงานได้เพิ่ม_และทุกอย่างจะดีขึ้น: …

4
เหตุใดเราจึงต้องการไฟร์วอลล์หากไม่มีโปรแกรมที่ทำงานบนพอร์ตของคุณ
เมื่อฉันพยายามที่จะ telnet ไปยังพอร์ตบนเซิร์ฟเวอร์และหากไม่มีโปรแกรมที่ฟังบนพอร์ต telnet นั้นตายด้วยข้อผิดพลาด "ไม่สามารถเชื่อมต่อ ... " ฉันเข้าใจ. แต่ทำไมเราต้องใช้ไฟร์วอลล์หากไม่มีโปรแกรมฟังบนพอร์ตใด ๆ

2
ฉันจะแก้ไขการใช้แซมบ้าร่วมกับที่อยู่ IP หรือชื่อโฮสต์ได้อย่างไร
ฉันมีรายชื่อโฮสต์ในเครือข่ายที่ให้การแบ่งปันผ่าน SAMBA ฉันจะกำหนดที่อยู่ IP หรือชื่อโฮสต์ของโฮสต์หนึ่งโดยเฉพาะได้อย่างไรเช่นที่อยู่ที่มีชื่อ“ SASAK02” ผลลัพธ์ของsmbtreeมีดังนี้ WORKGROUP \\SASAK02 \\SAURA-PC1 \\PC-VAN-DAMME
14 networking  samba 

1
วิธีซ่อนคำสั่งที่พิมพ์ในเชลล์ Linux
มีวิธีซ่อนสิ่งที่ฉันพิมพ์ในเชลล์หรือไม่ดังนั้นเทอร์มินัลไม่ได้สะท้อนการกดแป้นของฉันในขณะที่ยังคงเอาท์พุทของคำสั่งหรือไม่ ตัวอย่างเช่นถ้าฉันรันip addr showสิ่งเดียวบนหน้าจอควรเป็นผลลัพธ์จากคำสั่งนั้นไม่ใช่ "ip addr show" ที่ฉันพิมพ์

3
การเปลี่ยนชื่อของอินเตอร์เฟสเครือข่าย debian wheezy
ฉันพยายามตั้งชื่ออินเทอร์เฟซ "ethLan" แทนที่จะเป็น eth0 การทำเช่นนี้ยังช่วยให้มั่นใจได้ว่าชื่อของ if จะยังคงสอดคล้องกันในการรีบูตและเคอร์เนลทุกครั้ง ฉันพบบทความบางเรื่องในเรื่องนี้ แต่พวกเขาทั้งหมดอายุไม่กี่ปี: http://www.debian-administr.org/articles/463 http://www.linuxfromscratch.org/hints/downloads/files/ nameif.txt ผมทำตามที่พวกเขาพูดและเพิ่มethLan แม็ไป/ etc / mactabs / ณ จุดนี้ฉันมีปัญหาสองประการ: 1) if [...] && /sbin/nameifสคริปต์ที่ฉันใส่ที่/etc/network/if-pre-up.d/ไม่ทำงาน ฉันแก้ไขได้โดยเพิ่มสิ่งนี้ใน/etc/init.d/networkingแต่ทำไมถ้า -pre-up.dไม่ทำงาน 2) อินเตอร์เฟซจะไม่โหลดจนกว่าฉันด้วยตนเองทำifconfig ethLan ขึ้นทั้งๆที่มีการเพิ่มลงใน/ etc / เครือข่าย / อินเตอร์เฟซ ผมทำอะไรผิดหรือเปล่า?

2
strace สำหรับการเรียกใช้ไลบรารี
ฉันรู้จัก strace ซึ่งเป็นประโยชน์อย่างยิ่งสำหรับการดูการโทรของระบบ มีเทียบเท่าที่สามารถติดตามการโทรไปยังห้องสมุดภายนอกหรือไม่ ตัวอย่างเช่นฉันกำลังพยายามแก้ไขข้อผิดพลาดบางอย่างของ SSLeay ด้วยไบนารีของบุคคลที่สามที่ฉันไม่สามารถเข้าถึงรหัสได้ (และใครเป็นผู้พัฒนาที่ไม่ตอบสนอง) ฉันเชื่อว่าฉันถูกจับปัญหา แต่ฉันไม่สามารถทดสอบได้โดยไม่เห็นว่าข้อมูลที่ถูกตรวจสอบลายเซ็นถูกจัดรูปแบบสำหรับการส่งออกไปยัง SSLeay

2
อธิบายรายละเอียดเกี่ยวกับกระบวนการบูตของระบบ Linux
ฉันกำลังเตรียมเอกสารในรายละเอียดที่แสดงให้เห็นแสงในลำดับการบูตของ Linux ได้ทันทีจากการกดปุ่มเปิดเครื่องโฮสต์ไปยังลักษณะที่ปรากฏของพรอมต์การเข้าสู่ระบบ มันจะดีถ้าเราสามารถรวมและเปรียบเทียบคำตอบที่ถูกต้องที่นี่เป็นแหล่งอ้างอิงเดียว โปรดระบุรายละเอียดที่ควรทราบในระหว่างการเริ่มต้น เมื่อเอกสารเสร็จสมบูรณ์จากทุกจุดฉันจะโพสต์รายละเอียดเอกสารที่นี่เช่นกันและอัปเดตลิงก์ในคำถาม โปรดพิจารณาสถานการณ์ที่เป็นไปได้ทั้งหมดเช่นการบูตจากดิสก์, การบูตจาก usb, การบูตจากเครือข่ายบนไคลเอนต์ที่ไม่มีดิสก์ซึ่ง rootfs (/) อยู่บนเครือข่าย

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