Unix & Linux

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

2
กฎของ Udev เพื่อเมานต์ดิสก์ไม่ทำงาน
ฉันมีเนื้อหาดังต่อไปนี้ใน /etc/udev/rules.d/81-external-disk.rules: ENV{ID_FS_UUID}=="6826692e-79f4-4423-8467-cef4d5e840c5", RUN{program}+="/bin/mount -o nofail,x-systemd.device-timeout=1 -t ext4 -U 6826692e-79f4-4423-8467-cef4d5e840c5 /backup/external" หลังจากทำงาน: udevadm control --reload ; udevadm trigger /dev/sdb1 มันไม่ทำอะไรเลย อย่างไรก็ตามหาก II เปลี่ยนคำสั่ง mount สำหรับบางอย่างเช่น / bin / touch / tmp / xyz รุ่น: [root@helsinki rules.d]# rpm -qa | grep udev libgudev1-219-19.el7_2.12.x86_64 python-pyudev-0.15-7.el7_2.1.noarch [root@helsinki rules.d]# rpm -qa | grep systemd …
9 mount  udev 

1
หน้าจอดับลงหลังจาก 10 นาทีและฉันไม่สามารถหาสาเหตุได้
ฉันใช้ Arch Linux กับ Mate Desktop เวอร์ชัน 1.16.0 บน Linux kernel 4.8.13 ฉันมีปัญหาแปลก ๆ หน้าจอของฉันเปลี่ยนเป็นสีดำหลังจากนั้นประมาณ 5 หรือ 10 นาทีและฉันไม่สามารถหาสาเหตุได้ นี่คือการกำหนดค่าเพื่อนของฉัน: อย่างที่คุณเห็นการจัดการพลังงานถูกปิดใช้งานอย่างสมบูรณ์และตั้งเป็นไม่เคยเข้าสู่โหมดสลีปหรือปิดจอแสดงผล และสกรีนเซฟเวอร์ถูกตั้งค่าไว้ที่ขั้นต่ำ 2 ชั่วโมงและปิดการใช้งาน ฉันไม่รู้ว่าจะตรวจสอบอะไรอีก ฉันผ่านแผงควบคุมทั้งคู่เพื่อค้นหาการตั้งค่าที่ซ่อนอยู่ ไม่มีใครมีความคิดว่าทำไมหน้าจอของฉันเปลี่ยนเป็นสีดำหลังจากเวลาว่างประมาณ 10 นาที?

5
แก้ไขค่าในไฟล์ txt ด้วยคำสั่ง sed / awk / grep
เป็นเวลา 5 ปีที่ฉันใช้สถานีอากาศ La Crosse WS2350 ข้อมูลจากสถานีตรวจอากาศถูกประมวลผลด้วย open2300 บน RPI มันใช้งานได้ดีมาก อย่างไรก็ตามข้อมูลอุณหภูมิเป็นเท็จ (เซ็นเซอร์) ข้อมูลอุณหภูมิลดลง 1 ° C เนื่องจากฉันไม่สามารถปรับเทียบเซ็นเซอร์ได้ฉันต้องการเปลี่ยนค่าอุณหภูมิจากไฟล์ที่แยกจากสถานีตรวจอากาศ ไฟล์ข้อความนี้ (current.txt) ประกอบด้วย: Date 2016-Dec-03 Time 10:30:29 Ti 11.9 Timin 11.6 Timax 27.7 TTin 10:34 DTimin 2016-01-19 TTimax 00:44 DTimax 2016-08-28 To -2.4 Tomin -4.8 Tomax 37.4 TTomin 06:46 DTomin 2016-02-18 TTomax …

4
วิธีการพิมพ์บรรทัดที่ 15 และ 25 ของแต่ละ 50 บรรทัด
ฉันมีไฟล์ขนาดใหญ่และฉันต้องการพิมพ์จากแต่ละลำดับ 50 บรรทัดที่15และวันที่ 25เส้น sed -n '15,25p' inputfile วิธีแก้ไขคำสั่งนี้เพื่อพิมพ์เฉพาะบรรทัดที่ 15 และ 25 และวนรอบแต่ละ 50 บรรทัดในไฟล์

1
อักขระพิเศษสำหรับตัวเลือกสไตล์ / แป้น alt alt บน Linux
ฉันใช้แป้นพิมพ์ Mac และฉันต้องการให้มีอักขระพิเศษที่คล้ายคลึงกันหรือคล้ายกับวิธีที่พวกเขาเข้าถึงได้ใน OS X / macOS นี่เป็นคำถามที่คล้ายกันสำหรับ Windows เช่น alt + e + e →éและ alt + c →çโดยไม่มี GNOME เขียนความสนุกหลัก ๆ มีเครื่องมือใดที่ให้ฟังก์ชั่นนี้หรือไม่? หรือนี่คือสิ่งที่ควรเปลี่ยนในการตั้งค่ารูปแบบแป้นพิมพ์ Mac ที่ล้าสมัยหรือไม่? หากหลังฉันจะแก้ไขข้อขัดแย้งกับทางลัด alt + ตัวอักษรที่มีอยู่ได้อย่างไร (ทั้งในการระบุความขัดแย้งและการแก้ไข) เช่นทางลัด alt + ตัวอักษรจะทำทั้งทางลัดและสร้างอักขระพิเศษหรือไม่ มีข้อขัดแย้งด้านสิทธิบัตรหรือเหตุผลด้านทรัพย์สินทางปัญญาที่จะไม่ทำซ้ำฟังก์ชั่นนี้หรือไม่?

1
SSH หยุดทำงานหลังจากอัปเดตเซิร์ฟเวอร์หรือไม่ เกิดอะไรขึ้น?
ฉันใช้การเชื่อมต่อ SSH ที่ใช้ PKI มานานกว่า 10 ปีแล้ว ทันใดนั้นหลังจากการอัพเดทเซิร์ฟเวอร์ - การเชื่อมต่อบางอย่างหยุดทำงาน ฉันใช้คีย์ PKI เดียวกันกับที่ฉันใช้มาหลายปี (เซิร์ฟเวอร์แต่ละเครื่องมีรหัสของตัวเองฉันมีชุดคีย์ส่วนตัวขนาดเล็ก) การทำงาน - มีลักษณะเช่นนี้: C:\Users\michael>ssh2 -p 2222 root@192.168.129.64 date Authentication successful. Fri Nov 25 10:30:42 2016 ดูเหมือนว่าจะไม่ทำงาน: C:\Users\michael>ssh2 root@192.168.129.64 date warning: Authentication failed. Disconnected; key exchange or algorithm negotiation failed (Algorithm negotiation failed.). มีอะไรเปลี่ยนแปลง
9 openssh 

6
ทำให้การเชื่อมต่อ SSH แบบย้อนกลับอัตโนมัติตอนบูต
ฉันมีพีซีที่อยู่เบื้องหลัง NAT ซึ่งทำให้การเชื่อมต่อ SSH แบบย้อนกลับกับ Digitalocean VPC ของฉัน ฉันใช้การเชื่อมต่อ SSH แบบย้อนกลับนี้จากที่บ้านเพื่อลงชื่อเข้าใช้พีซีในสำนักงานของฉัน (ฉันได้รับอนุญาตให้ทำ) และคัดลอกไฟล์และทำสิ่งสำคัญอื่น ๆ แม้ว่าจะไม่บ่อยนักฉันสังเกตว่า PC office ของฉันรีสตาร์ท (เนื่องจากไฟฟ้าขัดข้อง ฯลฯ ) และหยุดการเชื่อมต่อ SSH ที่กลับด้านที่ทำกับ VPC ของฉัน ในกรณีเหล่านี้ฉันไม่สามารถเชื่อมต่อจากพีซีที่บ้านของฉันกับพีซีในสำนักงานของฉันได้ ฉันเรียกใช้สคริปต์ต่อไปนี้เพื่อให้การเชื่อมต่อกลับ + พร็อกซีแบบไดนามิกกลับไปยังไม่ระบุชื่อการรับส่งข้อมูลของฉัน (เนื่องจากฉันไม่ต้องการแบ่งปันข้อมูลการท่องเว็บ) ที่สร้างขึ้นที่พีซีในสำนักงาน autossh -CD 8080 -i digitalOcean -R 8081:localhost:22 root@IPofDigitalOceanPC ไม่มีทางที่ฉันจะสามารถเรียกใช้สคริปต์ thsi อีกครั้งบนพีซีของฉันเมื่อรีสตาร์ทเนื่องจากฉันไม่ได้อยู่ที่นั่น เพื่อที่จะแก้ปัญหานี้ฉันติดตั้ง crontab ต่อไปนี้ หมายเหตุ: rev.shไฟล์มีบรรทัดข้างต้น ใบรับรอง "DigitalOcean" …

2
ยอมรับ RELATED, ESTABLISHED สำหรับทุกแหล่งใน iptables ที่ถือว่า“ เปิดมากเกินไป” หรือไม่
ฉันมักจะเห็นกฎที่-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPTใช้ ในขณะที่ฉันไม่ใช่ผู้เชี่ยวชาญบรรทัดนั้นเกี่ยวข้องกับฉัน เห็นได้ชัดว่ากฎอนุญาตการรับส่งข้อมูลทั้งหมดโดยมีข้อยกเว้นเพียงอย่างเดียวว่าการเชื่อมต่อจะต้องมีการสร้างขึ้นหรือเกี่ยวข้องกับการเชื่อมต่อที่สร้างไว้แล้ว สถานการณ์ ฉันจะอนุญาตให้เชื่อมต่อกับพอร์ต SSH เริ่มต้น22จากเซิร์ฟเวอร์ LAN ในซับเน็ต192.168.0.0/16หรืออะไรก็ตาม SuperInsecureApp®เปิดเผยบางสิ่งบนพอร์ต1337ซึ่งฉันเพิ่มลงในINPUTห่วงโซ่ของฉัน ฉันได้เพิ่มconntrackกฎเพื่อยอมรับESTABLISHEDและRELATEDจากทุกแหล่ง นโยบายลูกโซ่คือ DROP ดังนั้นโดยทั่วไปแล้วการกำหนดค่า shoud อนุญาตให้เชื่อมต่อ SSH จาก LAN เท่านั้นในขณะที่อนุญาตการรับส่งข้อมูลขาเข้าบนพอร์ต 1337 จากโลก นี่คือที่ที่ความสับสนของฉันบาน จะconntrackในทางใดทางหนึ่งเปิดเผยข้อบกพร่องการรักษาความปลอดภัยที่จะช่วยให้หนึ่งที่จะได้รับการเชื่อมต่อที่จัดตั้งขึ้นใน 1337 (ตั้งแต่มันเปิดโลก) แล้วใช้การเชื่อมต่อที่สามารถเข้าถึงพอร์ต SSH (หรือพอร์ตอื่น ๆ สำหรับเรื่องที่)?
9 security  iptables  ip  tcp 

1
งาน Cron ทำงาน 1 ชั่วโมงโดยไม่เห็นด้วยกับเวลาของระบบ
ตัวอย่างของปัญหา: * 9 * * * echo 9 * 10 * * * echo 10 ด้านบนจะส่งอีเมลถึงผู้ใช้ทุกนาที แต่คำตอบ "9" ทั้งหมดจะเกิดขึ้นเวลา 10:00 น. -> 10:59 น. ในขณะที่ข้อความ "10" จะเข้ามาในเวลา 11:00 น. -> 11:59 น. . ใช้งานของ * * * * * /bin/date ; /bin/date -u ส่งคืนวันที่และเวลาที่คาดหวัง (ถูกต้อง) สิ่งนี้เป็นจริงสำหรับทั้ง UTC และเวลาท้องถิ่น (อเมริกา / …
9 cron 

1
ใช้ซีพียูแกนเดียวเท่านั้น
ฉันต้องการเรียกใช้การทดสอบประสิทธิภาพสำหรับโปรแกรมที่ทำงานพร้อมกันและความต้องการของฉันคือมันควรจะทำงานบนCPU core เพียงแกนเดียวเท่านั้น (ฉันไม่ต้องการเธรดที่ทำงานร่วมกัน - ฉันต้องการเปลี่ยนบริบทเสมอ) ดังนั้นฉันมีสองคำถาม: ทางออกที่ดีที่สุด - วิธีลงชื่อและจองซีพียูแกนเดียวเท่านั้นสำหรับโปรแกรมของฉัน (เพื่อบังคับให้ OS ไม่ใช้ CPU core นี้) ฉันเดาว่ามันเป็นไปไม่ได้ แต่บางทีฉันผิด ... วิธีตั้งค่า linux (Fedora 24) ให้ใช้ CPU core เพียงอันเดียว?

3
วิธีทำการแมปแป้นคีย์บอร์ดใหม่ตามระยะเวลาที่คุณถือกุญแจ
ฉันต้องการตั้งค่าปุ่มบนแป้นตัวเลขของฉันใหม่เพื่อให้ทำงานได้แตกต่างกันไปตามระยะเวลาที่กดปุ่ม นี่คือตัวอย่าง: ถ้าฉันกดปุ่ม Numpad 9 ค้างไว้น้อยกว่า 300ms มันจะส่งคำสั่งคีย์ "แท็บก่อนหน้า" Ctrl+Tab ถ้าฉันกดปุ่ม Numpad 9 ค้างไว้เป็นเวลา 300-599ms มันจะส่งคำสั่ง "new tab" Ctrl+T ถ้าฉันกดปุ่ม Numpad 9 ค้างไว้สำหรับ 600-899ms มันจะส่งคำสั่ง "ปิดแท็บ / หน้าต่าง" Ctrl+W ถ้าฉันกดปุ่ม Numpad 9 ค้างไว้นานกว่า 899ms มันจะไม่ทำอะไรเลยในกรณีที่ฉันพลาดเวลาที่ฉันต้องการ บน Windows ฉันสามารถทำได้ด้วย AutoHotKey และบน OS XI ทำได้ด้วย ControllerMate แต่ฉันไม่สามารถหาเครื่องมือบน UNIX / Linux ที่อนุญาตให้ทำการแมปคีย์ตามระยะเวลาที่ถือคีย์ หากคุณทราบถึงเครื่องมือที่สามารถแก้ปัญหาของฉันได้โปรดตรวจสอบให้แน่ใจว่าได้จัดทำตัวอย่างสคริปต์หรือรหัสที่แสดงให้เห็นถึงพฤติกรรมการทำงานตามระยะเวลาการเก็บกุญแจตามเงื่อนไขที่ฉันอธิบายไว้ข้างต้น …

2
Grep เริ่มต้นจากข้อความคงที่จนกระทั่งบรรทัดว่างแรก
ฉันมีไฟล์prova.txtเช่นนี้: Start to grab from here: 1 fix1 fix2 fix3 fix4 random1 random2 random3 random4 extra1 extra2 bla Start to grab from here: 2 fix1 fix2 fix3 fix4 random1546 random2561 extra2 bla bla Start to grab from here: 1 fix1 fix2 fix3 fix4 random1 random22131 และฉันต้อง grep out จาก "Start …

5
คำสั่งสำหรับการวางคำสั่งของฉันและเอาท์พุทของมัน
บ่อยครั้งที่ฉันต้องการโพสต์สิ่งที่เป็นข้อบกพร่อง GitHub เช่น $ ping google.com PING google.com (216.58.195.238): 56 data bytes Request timeout for icmp_seq 0 64 bytes from 216.58.195.238: icmp_seq=0 ttl=53 time=1064.747 ms ตอนนี้ผมใช้คำสั่งการใช้งานscreen's C-a C-[เพื่อเน้นพื้นที่enterเพื่อคัดลอกไปบัฟเฟอร์ที่วางลงvim, เขียนไปยังแฟ้มแล้วที่เป็นcat pbcopyจะต้องมีวิธีที่ดีกว่า มีคำสั่งที่ฉันสามารถเรียกใช้ซึ่งteeคำสั่งที่ฉันพิมพ์จะนำหน้าด้วย a $และเอาต์พุตทั้งหมดpbcopyหรือไม่ หรืออะไรที่ใกล้เคียง? ฉันจินตนาการ $ demo ping google.com PING google.com (216.58.195.238): 56 data bytes Request timeout for icmp_seq 0 …

8
วิธี grep แถวที่มีค่าบางอย่างในคอลัมน์ที่เฉพาะเจาะจง
ฉันมีไฟล์ดังต่อไปนี้ 200.000 1.353 0.086 200.250 1.417 0.000 200.500 1.359 0.091 200.750 1.423 0.000 201.000 1.365 0.093 201.250 1.427 0.000 201.500 1.373 0.093 201.750 1.432 0.000 202.000 1.383 0.091 202.250 1.435 0.000 202.500 1.392 0.087 202.750 1.436 0.000 203.000 1.402 0.081 203.250 1.437 0.001 203.500 1.412 0.073 204.000 1.423 0.065 204.500 …
9 awk  grep 

3
วิธีการส่งไฟล์ที่พบโดยหาเป็นข้อโต้แย้ง?
ก่อนอื่นให้ตัดคำตอบที่ไม่สำคัญ แต่ไม่เหมาะสม: ฉันสามารถใช้เคล็ดลับfind+ xargsหรือชุดรูปแบบ (เช่นเดียวfindกับ-exec) เพราะฉันต้องใช้การแสดงออกเช่นนี้ต่อการโทรเล็กน้อย ฉันจะกลับมาที่นี่ในตอนท้าย ตอนนี้เป็นตัวอย่างที่ดีกว่าลองพิจารณา: $ find -L some/dir -name \*.abc | sort some/dir/1.abc some/dir/2.abc some/dir/a space.abc ฉันจะส่งต่อสิ่งเหล่านี้เป็นอาร์กิวเมนต์ไปยังได้programอย่างไร เพียงทำมันไม่ได้ทำเคล็ดลับ $ ./program $(find -L some/dir -name \*.abc | sort) ล้มเหลวเนื่องจากprogramได้รับอาร์กิวเมนต์ดังนี้ [0]: ./program [1]: some/dir/1.abc [2]: some/dir/2.abc [3]: some/dir/a [4]: space.abc ดังที่เห็นได้เส้นทางที่มีช่องว่างถูกแยกออกและprogramพิจารณาว่าเป็นอาร์กิวเมนต์ที่ต่างกันสองรายการ อ้างถึงมันใช้งานได้ ดูเหมือนว่าผู้ใช้มือใหม่เช่นตัวฉันเองเมื่อเผชิญกับปัญหาดังกล่าวมักจะเพิ่มคำพูดแบบสุ่มจนกว่าจะได้ผลในที่สุด - เฉพาะที่นี่ดูเหมือนจะไม่ช่วย ... "$(…)" $ …

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