Unix & Linux

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

4
จะรับการแจ้งเตือนเมื่อมีสายเรียกเข้าบนโทรศัพท์มือถือบนแล็ปท็อปได้อย่างไร
เหตุผลนี้คือโทรศัพท์ของฉันจะอยู่ในโหมดสั่นและฉันเกือบจะลืมกลับไปที่โปรไฟล์ "ทั่วไป" หลังจากที่ฉันไปถึงห้องจากชั้นเรียน ดังนั้นฉันจึงไม่ได้รับสายมากเมื่อโทรศัพท์ไม่ได้อยู่ในกระเป๋าของฉัน เมื่อฉันถึงบ้านแล็ปท็อปของฉันจะเปิดอยู่เสมอ ดังนั้นมันจะยอดเยี่ยมถ้าฉันได้รับการแจ้งเตือนการโทรบนเดสก์ท็อปของฉันและถ้าฉันเป็น AFK ให้เล่นเสียงเรียกเข้าบนแล็ปท็อปของฉัน ฉันต้องการให้แล็ปท็อปของฉันแสดงตัวเองเป็นระบบเครื่องเสียงรถยนต์บลูทู ธ ไปยังโทรศัพท์ android ของฉันแล้วแจ้งเตือนเมื่อมีสายเรียกเข้าบนเดสก์ท็อป linux ของฉัน (Arch) ฉันไม่ต้องการโซลูชันที่เกี่ยวข้องกับข้อมูล WiFi หรือมือถือ แอป / โครงการที่ชื่อว่า LINCONNECT ทำสิ่งนี้ แต่ผ่านทาง WiFi แต่ฉันไม่มี WLAN นั่นเป็นเหตุผลที่ฉันยืนยันในบลูทู ธ ซึ่งใช้แบตเตอรี่น้อยลง เป็นไปได้ไหม ถ้าเป็นเช่นนั้นได้อย่างไร ถ้าไม่ทำอย่างไรให้เป็นไปได้?

5
วิธีการพิมพ์เนื้อหาไฟล์เฉพาะในกรณีที่บรรทัดแรกตรงกับรูปแบบที่แน่นอน?
ฉันกำลังเขียนสคริปต์ฉันต้องการตรวจสอบว่าบรรทัดแรกของไฟล์ตรงกับรูปแบบที่กำหนดหรือไม่และถ้าพิมพ์ออกมาเป็นไฟล์หรือไม่ ฉันจะบรรลุสิ่งนี้ได้อย่างไร ฉันจะตรวจสอบรูปแบบได้อย่างไร มีวิธีตรวจสอบรูปแบบและทำตามสิ่งที่ส่งออกหรือไม่ .. แก้ไข: โปรดดูคำถามนี้: /programming/5536018/how-to-get-match-regex-pattern-using-awk-from-file ฉันต้องการสิ่งนี้ แต่ไม่มีใครทำงานให้ฉันได้ โดยทั่วไปฉันต้องการตรวจสอบว่าบรรทัดแรกตรงกับรูปแบบ regex หรือไม่และขึ้นอยู่กับว่าพิมพ์บรรทัดของไฟล์

5
Bash - PS1 ไม่อัปเดตด้วยชื่อโฮสต์ที่เหมาะสมหลังจากเปลี่ยนชื่อโฮสต์ในสคริปต์
นี่เป็นสำเนาโพสต์ของฉันจาก stackoverflow ฉันรู้ว่าฉันควรถามที่นี่ ... ฉันต้องการเรียกใช้สคริปต์ที่เปลี่ยนชื่อโฮสต์และอัพเดต bash prompt (ตัวแปร PS1) ของฉันทันทีด้วยชื่อโฮสต์ที่เหมาะสม ฉันจะทำให้สิ่งนี้เกิดขึ้นได้อย่างไร ฉันเรียกใช้สิ่งนี้ #!/bin/bash # Usage: ./changehost <newhostname> #Do two sed's to edit the files for persistent hostname change sed -i s/$(hostname)/$1/g "/etc/hosts" sed -i s/$(hostname)/$1/g "/etc/sysconfig/network" #run the hostname command with new hostname to update it hostname $1 ในเทอร์มินัลอย่างนั้นและรับสิ่งนี้ [user@host …
11 bash  shell 

5
ฉันจะกำหนดค่าเช่นนั้นฉันสามารถ SSH กับระบบของฉันผ่านอินเทอร์เน็ตบน IP แบบไดนามิกได้อย่างไร
โดยทั่วไปฉันต้องการที่จะสามารถทำบางสิ่งบางอย่างเช่น teamviewer โดยไม่คำนึงถึงการกำหนดค่าเครือข่ายตราบใดที่ทั้งเซิร์ฟเวอร์ ssh ของฉัน (Machine A) และไคลเอ็นต์ ssh (Machine B) มีการเข้าถึงอินเทอร์เน็ต (และเซิร์ฟเวอร์ที่สามบางเครื่อง C) ) ฉันสามารถเข้าใช้งานได้ - นี่คือเหตุผลที่ฉันต้องการย้ายเครื่อง A ไปเสียบเข้ากับพลังงานเชื่อมต่อกับเครือข่าย wifi ที่กำหนดค่าไว้ล่วงหน้าอย่างใดอย่างหนึ่งโดยอัตโนมัติ โดยไม่ต้องมีการกำหนดค่าการส่งต่อพอร์ตหรือคล้ายกันบนเครือข่ายและสามารถเข้าสู่ระบบผ่านทางอินเทอร์เน็ตจากเครื่อง B ฉันจะทำสิ่งนี้ได้อย่างไร ฉันไม่รังเกียจที่จะตั้งค่าบางอย่างบนเซิร์ฟเวอร์ที่มีที่อยู่ IP แบบคงที่เพื่อช่วยในการจับมือกัน แต่ฉันก็ไม่สนใจเซิร์ฟเวอร์ของบุคคลที่สามเช่นกันหากมีบางสิ่งอยู่แล้ว (เช่นเดียวกับที่ใช้สำหรับ Teamviewer) แก้ไขเพื่อความชัดเจน: ฉันมี 3 เครื่อง, AB และ C A เป็นราสเบอร์รี่ pi หัวขาดที่จะเปิด / ปิดในตำแหน่งสุ่มเชื่อมต่อกับเครือข่าย wifi ที่เตรียมไว้ล่วงหน้า B เป็นเครื่องที่มีจอภาพคีย์บอร์ดและอื่น ๆ ที่ฉันต้องการเชื่อมต่อ …
11 networking  ssh 

2
ทำไม bash เชื่อมโยงไปยัง ncurses
ฉันคิดว่าฉันสังเกตเห็นสิ่งนี้มาก่อน แต่ไม่เคยคิดถึงมันมากนัก ตอนนี้ฉันอยากรู้ > ldd /bin/bash linux-vdso.so.1 => (0x00007fff2f781000) libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f0fdd9a9000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f0fdd7a5000) libc.so.6 => /lib64/libc.so.6 (0x00007f0fdd3e6000) /lib64/ld-linux-x86-64.so.2 (0x00007f0fddbf6000) Libtinfo เป็นส่วนหนึ่งของ ncurses นี่เป็นระบบ fedora แต่มันเหมือนกันบน Ubuntu และฉันสังเกตเห็นบน raspbian (ตัวแปร debian) มันยังเชื่อมโยงไปยัง libncurses ด้วย อะไรคือเหตุผลนี้ ฉันคิดว่าทุกอย่างทุบตีสามารถทำได้ด้วย libreadline (ซึ่งอยากรู้อยากเห็นมันไม่ได้เชื่อมโยงไป) นี่เป็นเพียงสิ่งทดแทนสิ่งนั้นหรือไม่?
11 bash  readline  ncurses 

2
วิธีการเปิด manpage grep (1p)?
ในตอนท้ายของman grepมันก็บอกว่า SEE ALSO\ POSIX Programmer's Manual Page grep(1p). ฉันไม่สามารถเปิด manpage grep(1p)ได้ ฉันจะทำอย่างไร ค้นหา net, Unix.SE และลองผิดลองถูก แต่ยังไม่มีโชค พยายาม $ man 1p grep $ man -K grep แก้ไข: ฉันใช้ Ubuntu 14.10
11 grep  man  posix 


1
รหัสแหล่งที่มาของ GRUB2 อยู่ที่การส่งมอบ / ข้ามไปยังรหัสเคอร์เนล?
ฉันกำลังมองหาบรรทัดของรหัสที่ GRUB2 ในที่สุดก็กระโดดไปที่รหัสเคอร์เนลและส่งมอบการดำเนินการในระบบ x86? ฉันเดาว่ามันอยู่ในไฟล์แอสเซมเบลอร์เนื่องจากเป็นสิ่งที่มีสถาปัตยกรรมต่ำมาก ฉันดูไฟล์ต้นฉบับ/grub-core/boot/i386/pc/*.Sและพบ a JMPในboot.S ที่บรรทัด 455แต่kernel_addressอาจเป็นแอดเดรสของเคอร์เนล GRUB2 ในหน่วยความจำไม่ใช่เคอร์เนล linux ทุกคนที่มีความรู้การชุมนุมและ GRUB2 ที่สามารถช่วยฉันออกมา?

4
วิธีเริ่มบริการ systemd ก่อนเริ่มระบบเครือข่าย
ฉันกำลังพยายามตั้งค่าบริการใหม่ (ภายใต้ Debian Jessie) ที่ต้องตั้งค่าการติดตั้งบางอย่างที่จัดเก็บการกำหนดค่าเครือข่ายและบริการนี้จะต้องเสร็จสิ้นก่อนที่จะเริ่มระบบเครือข่ายบริการ ฉันพยายามต่อไปนี้: [Unit] Description=mount/repair remaining filesystems (all persistent fs beyond "/") #Before=network-pre.target Before=networking.service [Service] Type=oneshot ExecStart=/opt/intermodul-mounts/start.sh TimeoutSec=0 RemainAfterExit=yes [Install] RequiredBy=networking.service การใช้systemd-analyze plotฉันเห็นว่าบริการของฉันเริ่มทำงาน แต่networking.serviceเริ่มประมาณ 3 วินาทีก่อนหน้า: เห็นได้ชัดว่าการตั้งค่าของฉันผิด แต่ฉันมีปัญหาในการค้นหาปัญหา ... ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก .. ปรับปรุง ขณะนี้ฉันแก้ไขได้โดยเปลี่ยนการกำหนดค่าบริการให้เริ่มก่อนlocal-fs.targetแทนnetworking.service: [Unit] DefaultDependencies=no Description=mount/repair remaining filesystems (all persistent fs beyond "/") Before=local-fs.target [Service] …
11 systemd 

4
bash loop เพิ่มขึ้น 0.02
ฉันต้องการสร้างห่วงสำหรับทุบตีด้วย 0.02 เป็นส่วนเพิ่มที่ฉันพยายาม for ((i=4.00;i<5.42;i+=0.02)) do commands done แต่มันไม่ทำงาน

5
การสร้างภาพรวมของระบบลินุกซ์
ฉันต้องการทำดังต่อไปนี้ - บันทึกสถานะปัจจุบันของ linux OS ของฉัน (centOS6.5) ทำการเปลี่ยนแปลงบางอย่าง (โดยเฉพาะฉีดข้อบกพร่องและทดสอบบริการบางอย่างเพื่อตรวจสอบว่ามันทำงานอย่างไรเมื่อเกิดข้อผิดพลาดประเภทนั้น) จากนั้นกู้คืนระบบกลับสู่สถานะที่บันทึกไว้ ฉันไม่สามารถหาวิธีการทำสิ่งนี้ในระบบ linux ฉันมีเครื่องที่มี centOS 6.5 พร้อมระบบไฟล์ ext4 นอกจากนี้ยังเป็นเซิร์ฟเวอร์จริงและไม่ใช่เครื่องเสมือน ความคิดหรือข้อเสนอแนะ?
11 linux  snapshot 

1
ลองยกเลิกการลองใหม่หลังจากความล้มเหลวหรือหมดเวลา
ฉันกำลังเรียก url พร้อม wget: /usr/bin/wget --read-timeout=7200 https://site_url/s Wget ทำการร้องขอ GET ทุก ๆ 15 นาทีในกรณีนี้แม้ว่าจะหมดเวลาแล้ว แต่ทำไมถึงเกิดขึ้น? ควรทำการโทรเพียงครั้งเดียวฉันจะตั้งค่าให้ไม่ลองใหม่ได้อย่างไร ฉันรู้ว่าคุณสามารถตั้งค่าได้t=nแต่ 0 ไม่มีที่สิ้นสุดและ 1 คือ 1 มากกว่าที่ฉันต้องการ
11 linux  rhel  wget 

3
เชลล์ดำเนินการโปรแกรมอย่างไร
หากฉันรวบรวมโปรแกรมโดยใช้ gcc และลองเรียกใช้งานจาก bash shell อะไรคือลำดับขั้นตอนที่แน่นอนตามด้วย bash เพื่อเรียกใช้งานมัน ฉันรู้fork(), execve(), loader, dynamic linker(และสิ่งอื่น ๆ ) มีส่วนร่วม แต่คนที่สามารถให้ลำดับขั้นตอนอย่างและบางส่วนอ้างอิงการอ่านที่เหมาะสม? แก้ไข: จากคำตอบดูเหมือนว่าคำถามอาจบ่งบอกถึงความเป็นไปได้มากมาย ฉันต้องการแคบลงเป็นกรณีง่ายๆ: (test.c เพียงพิมพ์ Hello world) $ gcc test.c -o test $ ./test สิ่งที่จะเป็นขั้นตอนในกรณีข้างต้น ( ./test) โดยเฉพาะที่เกี่ยวข้องกับโปรแกรมเริ่มต้นทุบตีในกระบวนการเด็กบางอย่างที่ทำโหลดเชื่อมโยง ฯลฯ ?

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


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