Unix & Linux

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

4
การเก็บประวัติต่อไดเรกทอรีทำงาน (cf. ต่อเซสชันของเชลล์)
มีวิธีที่จะทำให้คุณสมบัติประวัติของเชลล์สมัยใหม่ถูกกำหนดขอบเขตไปยังเส้นทางหรือไม่? บริบทการทำงานของฉันแบ่งออกเป็นพา ธ บนระบบไฟล์และรูปแบบของกิจกรรมเชลล์เช่นคำสั่งที่ออกซ้ำ ๆ มีแนวโน้มที่จะแตกต่างกันไปในแต่ละโครงการ มันจะดีถ้าฉันสามารถขอบเขตคุณลักษณะประวัติกับคำสั่งที่ออกจากเส้นทางปัจจุบัน (หรือเส้นทางย่อย)

2
จะค้นหาข้อความในไฟล์โดยไม่สนใจบรรทัดใหม่ได้อย่างไร
ฉันต้องการค้นหาข้อความที่อาจแบ่งออกเป็นหลายบรรทัดในไฟล์ grep ที่จะละเว้นการแบ่งบรรทัดและส่งคืนช่วงการจับคู่ของบรรทัด เช่นฉันจะค้นหาis an example fileและคาดหวังว่าจะพบได้ในไฟล์ต่อไปนี้: นี่คือ ไฟล์ตัวอย่าง การไม่ขึ้นอยู่กับช่องว่างนำหน้าหรือตามหลังการละเว้นพื้นที่สีขาวทั้งหมดในรูปแบบทั้งหมดอาจดีที่สุด (โดยหลักการแล้วการปฏิบัติตามลำดับของพื้นที่สีขาวเป็นพื้นที่เดียว) ทางออกที่ไม่เหมาะอย่างหนึ่งคือtr '\n' ' ' | grepการจำแนกระหว่างการจับคู่และการจับคู่ที่ไม่ตรงกัน แต่ไม่แสดงการจับคู่หรือจัดการกับไฟล์ขนาดใหญ่ได้ดี

2
แยกการรับส่งข้อมูลเครือข่ายบนสองอินเทอร์เฟซเครือข่าย
คุณสามารถให้ความรู้ความเชี่ยวชาญในการทำความเข้าใจเกี่ยวกับการกำหนดค่าการแยกการรับส่งข้อมูลเครือข่ายในสองอินเตอร์เฟสเครือข่ายได้หรือไม่? ดังที่ฉันทราบแล้วว่าเส้นทางแบบสแตติกใช้สำหรับการรับส่งข้อมูลเครือข่ายที่ไม่ได้ออกแบบมาเพื่อใช้เกตเวย์เริ่มต้น เกตเวย์เริ่มต้นจะใช้สำหรับการรับส่งข้อมูลทั้งหมดที่ไม่ได้กำหนดไว้สำหรับเครือข่ายท้องถิ่นและไม่มีเส้นทางที่ต้องการได้รับการระบุไว้ในตารางเส้นทาง สถานการณ์มีดังนี้ คอมพิวเตอร์แต่ละเครื่องในเครือข่ายมีการ์ดเครือข่ายสองใบ อินเทอร์เฟซการผลิตสำหรับแต่ละคือeth0(GW = 10.10.10.1) อินเตอร์เฟสการจัดการสำหรับแต่ละรายการคือeth1(GW = 192.168.100.1) ปริมาณการผลิตและการจัดการควรแยกจากกันโดยสิ้นเชิง ฉันโพสต์ไว้ด้านล่างสิ่งที่ฉันได้ลองกับ Debian Wheezy และปัญหาของฉันคือแม้ว่าฉันจะตั้งค่าโฮสต์ในลักษณะที่พวกเขาสื่อสารบนทั้งสองอินเตอร์เฟส แต่โฮสต์แต่ละตัวดูเหมือนจะ "ได้ยิน" การรับส่งข้อมูลบนอินเตอร์เฟสที่ไม่ถูกต้อง ตัวอย่างเช่น: โฮสต์ 140 eth0 Link encap:Ethernet HWaddr 08:00:27:d1:b6:8f inet addr:10.10.10.140 Bcast:10.10.10.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fed1:b68f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1341 errors:0 dropped:0 overruns:0 frame:0 TX packets:2530 errors:0 …
11 debian  centos  rhel  routing 

1
แสดงรายการระบบไฟล์ btrfs ทั้งหมดและไดรฟ์ย่อยในเชลล์
มีวิธีที่สะดวกที่จะได้รับข้อมูลเกี่ยวกับทุกbtrfs filesystems subvolumesโดยไม่ต้อง resorting C คือในPOSIX เปลือก ? /sys/fs/btrfsมีข้อมูลเกี่ยวกับระบบไฟล์เท่านั้นไม่มีอะไรในไดรฟ์ย่อยดังนั้นขณะนี้ฉันสิ้นสุดการติดตั้งระบบไฟล์ทั้งหมดในโฟลเดอร์ temp สแกนพวกเขาด้วยbtrfs subvol listแล้วแยกวิเคราะห์ผลลัพธ์ที่ได้ ไม่จำเป็นต้องพูดว่ามันน่าเกลียดพอสมควร นี่คือเคอร์เนล3.16.xและbtrfs-progs v3.14.1 (จากสต็อก Ubuntu 14.10) ด้านล่างเป็นสคริปต์ (น่าเกลียด) ที่ฉันใช้อยู่ในปัจจุบัน ฉันรู้ว่าฉันสามารถรับข้อมูลที่ฉันต้องการโดยใช้ C บริสุทธิ์และนั่นอาจเป็นสิ่งที่ฉันจะทำ แต่ฉันสงสัยว่ามีวิธีที่ง่ายกว่าและสง่างามกว่านี้หรือไม่ #!/bin/bash for i in /sys/fs/btrfs/*[!features]; do device="/dev/$(basename $i/devices/*)" mountpoint=/var/lib/btrfs/tmp/mnt/$(basename "$i") [ -d "$mountpoint" ] || mkdir "$mountpoint" grep -qs $mountpoint /proc/mounts [ $? -ne …
11 shell  btrfs 

2
Bash:“ หมายเลขประวัติ” เทียบกับ“ หมายเลขคำสั่ง”
ในขณะที่ Googling วิธีปรับแต่ง shell prompt ของฉันผ่านตัวแปร PS1 ฉันเห็นตารางของอักขระพิเศษที่สามารถใช้ได้ โดยเฉพาะอย่างยิ่ง: \! the history number of this command \# the command number of this command ดูเหมือนว่า "หมายเลขประวัติ" จะใช้บ่อยกว่าและฉันรู้วิธีใช้คำสั่งเช่น!523ทำคำสั่งซ้ำจากประวัติ แต่ฉันไม่สามารถเข้าใจได้ว่า "หมายเลขคำสั่ง" มีฟังก์ชั่นที่คล้ายกันหรือไม่ ฉันได้ลองใส่\#ตัวแปร PS1 ของฉันแล้วและดูเหมือนว่าจะส่งออกจำนวนคำสั่งที่ป้อนในเซสชันหนึ่ง (ซึ่งต่างจาก\!ที่มีอยู่หลังจากออกจากระบบ / ออก) ใครรู้วิธีใช้ "หมายเลขคำสั่ง" อย่างสะดวกหรือมีความหมาย?

2
การคลิกกลางเลื่อนด้วย ThinkPad / หลีกเลี่ยงการวาง
ฉันมีแป้นพิมพ์ ThinkPad USB และฉันต้องการใช้การคลิกกลางเพื่อวางและเลื่อน สิ่งนี้ใช้ได้กับแล็ปท็อป ThinkPad ของฉัน บนแล็ปท็อปหากปุ่มคลิกกลางถูกพักไว้ในระยะเวลาที่สั้นพอจากนั้นเมื่อมันถูกปล่อยออกมามันจะถูกตีความว่าเป็น " แปะ " เมื่อกดค้างไว้นานจะแปลว่า " เลื่อน " ปัญหาคือว่าการใช้แป้นพิมพ์ของ USB การตัดสินใจที่จะวางเกิดขึ้นเมื่อปุ่มกลางกดไม่ได้เมื่อมันถูกปล่อยออกมาดังนั้นถ้าฉันพยายามที่จะเลื่อนได้ด้วยคลิกตรงกลางก็จะวางครั้งแรกแล้วเลื่อนเมื่อฉันให้ถือมัน ลง (แม้ว่าน่าสนใจการวางนี้จะไม่เกิดขึ้นหากฉันย้ายเคอร์เซอร์ไปแล้วซึ่งเป็นวิธีแก้ปัญหาปัจจุบันของฉัน) มีวิธีใดที่จะบอกให้ X11 วางลงบนปุ่มกลางแทนการกด (ด้วยการตัดสินใจที่จะเลื่อนมากกว่าการวางโดยอิงจากระยะเวลาที่ใช้งาน)
11 x11  mouse  thinkpad 

4
netcat ไม่ยุติเมื่อ stdin ปิด
netcatฉันพยายามที่จะส่งข้อความผ่าน หลังจากส่งข้อความnetcatจะต้องยกเลิก ฉันได้ลองทำสิ่งต่อไปนี้แล้ว: cat tsmmessage.bin | nc -u localhost 4300 nc -u localhost 4300 < message.bin -qตัวเลือกฯ : -q วินาที หลังจาก EOF บน stdin ให้รอจำนวนวินาทีที่ระบุแล้วออกจาก หากวินาทีเป็นลบให้รอตลอดไป แต่ nc -q0 -u localhost 4300 < message.bin ยังใช้งานไม่ได้ ฉันกำลังคิดถึงอะไร
11 netcat 

4
ทำความเข้าใจกับการทดแทนคำสั่ง Read-a-File ของ Bash
ฉันพยายามเข้าใจว่า Bash ปฏิบัติต่อบรรทัดต่อไปนี้อย่างไร: $(< "$FILE") ตามหน้า Bash man นี่เทียบเท่ากับ: $(cat "$FILE") และฉันสามารถทำตามบรรทัดของการให้เหตุผลสำหรับบรรทัดที่สองนี้ Bash ดำเนินการขยายตัวตัวแปร$FILEเข้าสู่การทดแทนคำสั่งส่งค่า$FILEถึงcatcat ส่งออกเนื้อหาของ$FILEไปยังเอาต์พุตมาตรฐานการแทนที่คำสั่งเสร็จสิ้นโดยแทนที่ทั้งบรรทัดด้วยเอาต์พุตมาตรฐานที่เป็นผลมาจากคำสั่งด้านในและ Bash พยายามดำเนินการเช่นนั้น คำสั่งง่ายๆ อย่างไรก็ตามสำหรับบรรทัดแรกที่ฉันกล่าวถึงข้างต้นฉันเข้าใจว่า: Bash ทำการแทนที่ตัวแปรใน$FILEBash เปิด$FILEสำหรับการอ่านในอินพุตมาตรฐานอินพุตมาตรฐานจะถูกคัดลอกไปยังเอาต์พุตมาตรฐานการทดแทนคำสั่งเสร็จสิ้นและ Bash พยายามเรียกใช้มาตรฐานที่เป็นผลลัพธ์ เอาท์พุต ใครช่วยอธิบายให้ฉันฟังได้ว่าเนื้อหาของการเปลี่ยน$FILEจาก stdin เป็น stdout ได้อย่างไร?

2
อะไรคือข้อแตกต่างระหว่าง“ ข้อผิดพลาด:”“ หลุด:”“ โอเวอร์รัน:” และฟิลด์“ เฟรม:” ในเอาต์พุตแพ็คเก็ต ifconfig RX
คนได้โปรดทำอย่างละเอียดในความแตกต่างระหว่างต่างๆRX packetsเขตข้อมูลในifconfigการส่งออก? ตัวอย่างเช่นสมมติว่าฉันเรียกใช้ifconfigและดูต่อไปนี้: eth0 Link encap:Ethernet HWaddr AA:BB:CC:DD:EE:FF inet addr:1.1.1.1 Bcast:1.1.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:202723544 errors:0 dropped:4959 overruns:0 frame:37 TX packets:158354057 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4261083782 (3.9 GiB) TX bytes:1224803677 (1.1 GiB) Interrupt:83 Memory:f6bf0000-f6c00000 ความแตกต่างระหว่างerrors: dropped: overrunsและคืออะไรframe: ฉันเดาที่จุดนี้ (ตาม googling คลุมเครือ) คือframe:เฉพาะที่เกี่ยวข้องกับความล้มเหลวของซีอาร์ซีเมื่อนิควิเคราะห์กรอบที่เข้ามาและerrors:เป็นหมวดหมู่ทั่วไปที่กว้างขึ้น …

1
ความหมายของเนื้อหาของ / proc / net / unix คืออะไร?
บนอุปกรณ์ Android ของฉันมีไฟล์ที่เรียกว่าเนื้อหา/proc/net/unixของผู้ที่ ไม่สอดคล้องกับการกระจาย Linux มาตรฐานใด ๆ(ซึ่งแสดงซ็อกเก็ตโดเมน unix) สองสามบรรทัดแรก: Num RefCount Protocol Flags Type St Inode Path 00000000: 00000002 00000000 00000000 0002 01 5287581 /data/misc/wifi/sockets/wpa_ctrl_789-3189 00000000: 00000003 00000000 00000000 0001 03 6402 /dev/socket/qmux_radio/qmux_client_socket 297 00000000: 00000002 00000000 00010000 0001 01 7180 /dev/.secure_storage/ssd_socket 00000000: 00000002 00000000 00010000 0001 01 6424 /dev/socket/cnd …

4
ปัญหาตำแหน่งของเมธอด Spamassassin หลังจากรีสตาร์ท
หลังจาก spamassassin ถูกรีสตาร์ทโดย cronjob รายวันเช้านี้มัน syslog เต็มไปด้วยข้อผิดพลาดดังต่อไปนี้: Feb 9 09:24:26 mail spamd[8766]: spamd: got connection over /var/run/spamd.socket Feb 9 09:24:26 mail spamd[8766]: spamd: setuid to Debian-exim succeeded Feb 9 09:24:26 mail spamd[8766]: spamd: checking message <004c01d0444a$01d5a905$d690a59f@kiffyv> for Debian-exim:106 Feb 9 09:24:26 mail spamd[8766]: rules: failed to run T_SPF_HELO_PERMERROR test, skipping: …
11 ubuntu  email  cpan 

3
คำสั่ง tr สามารถถูกโยงโซ่เพื่อหลีกเลี่ยงกระบวนการ tr หลายอย่างในไพพ์ไลน์หรือไม่?
ฉันมีไฟล์ txt มากมายฉันต้องการส่งออกตามลำดับที่ต่ำกว่ามีเพียงตัวอักษรและหนึ่งคำต่อบรรทัดฉันสามารถทำได้ด้วยtrคำสั่งต่าง ๆในขั้นตอนนี้: tr -d '[:punct:]' <doyle_sherlock_holmes.txt | tr '[:upper:]' '[:lower:]' | tr ' ' '\n' สามารถทำได้ในการสแกนครั้งเดียวหรือไม่? ฉันสามารถเขียนโปรแกรม C ที่จะทำเช่นนี้ แต่ฉันรู้สึกเหมือนมีวิธีที่จะทำมันได้ใช้tr, sed, หรือawkperl
11 sed  awk  perl  tr 

3
จะติดตั้ง / แยกวิเคราะห์ build build จาก debian / control ได้อย่างไร?
สมมติว่าคุณดาวน์โหลดโฟลเดอร์ซอร์สโค้ดซึ่งมีโฟลเดอร์ที่มีอยู่/debian/รวมทั้ง/debian/controlไฟล์ ลองสมมติว่าแพคเกจที่มีปัญหาไม่ได้อยู่ในที่เก็บอย่างเป็นทางการของเดเบียนดังนั้นจึงapt-get build-depไม่สามารถใช้ วิธีการแยกBuild-Depends:บรรทัด? ตัวอย่างเช่นหากบรรทัดที่อ่านBuild-Depends: debhelper (>= 8), faketimeมีเครื่องมือบางอย่างcontrol-parse debian/control build-dependsที่จะสะท้อนdebhelper faketime? โดยเฉพาะเมื่อมีหลายสาย? มีเครื่องมือ Debian ที่มีอยู่หรือมีหนึ่งตัวที่จะเขียนโค้ดของตัวเองเพื่อแจงส่วนนี้?

1
รับรหัสคีย์และลายนิ้วมือของ apt ในรูปแบบที่เครื่องอ่านได้
ฉันกำลังพยายามแก้ไขปัญหาใน puppetlabs-apt เพื่อให้สามารถใช้ลายนิ้วมือที่สำคัญเป็นตัวระบุเพื่อให้แน่ใจว่ามีบางคีย์ที่มีลายนิ้วมือของคีย์ 40 หลัก ฉันมีปัญหาในการตรวจสอบว่ามีคีย์และฉันต้องการคำสั่งที่จะส่งออกต่อไปนี้: ID 8 หลักของคีย์ ID 16 หลักของคีย์ ID 40 หลักของคีย์ มีapt-keyคำสั่งที่ฉันสามารถใช้เพื่อส่งออกค่าเหล่านี้หนึ่งรายการต่อบรรทัดหรือไม่ดังนั้นฉันสามารถแยกวิเคราะห์เอาต์พุตและตรวจสอบว่ามีคีย์อยู่หรือไม่?
11 apt  gpg 

2
กำหนดความเร็วอีเธอร์เน็ตใน RHEL 6
วิธีการตรวจสอบว่าeth0มีความเร็วในการเชื่อมต่อ 10Mbit, 100Mbit หรือ 1Gbit หรือไม่ ฉันพยายามแต่มันบอกว่าethtool No data availableฉันก็ลองdmesg | grep -i duplexแล้วมันว่างเปล่า [root@dioptase ~]# lspci 00:0a.0 Ethernet controller: Digital Equipment Corporation DECchip 21140 [FasterNet] (rev 20) [root@dioptase ~]# ethtool eth0 Settings for eth0: No data available [root@dioptase ~]# ethtool -i eth0 driver: tulip version: 1.1.15 firmware-version: bus-info: 0000:00:0a.0 …

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