Unix & Linux

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

2
ความแตกต่างระหว่างเครื่องหมายเท่ากับเดียวและสองเท่า (=) ในการเปรียบเทียบเชลล์คืออะไร
อ่านว่าสำหรับการเปรียบเทียบสตริงภายในifเราจำเป็นต้องใช้วงเล็บสองตาราง =หนังสือบางเล่มกล่าวว่าการเปรียบเทียบที่สามารถทำได้โดย แต่มันใช้งานได้ดีด้วย==เช่นกัน #!/bin/bash a="hello" b="world" if [[ $a == $b ]];then echo "equal" fi มีความแตกต่างระหว่าง=และ==ในการเปรียบเทียบหรือไม่

4
วิธีตรวจสอบว่า daemon กำลังฟังบนอินเตอร์เฟสใด
เช่น: sshd ถูกกำหนดค่าให้ฟังใน wlan0 เท่านั้น ดังนั้น. นอกจากการตรวจสอบ sshd_config ฉันจะตรวจสอบได้อย่างไรว่า daemon กำลังรับฟัง inerface ใด netstat สามารถทำได้หรือไม่ อย่างไร (OS: openwrt หรือวิทยาศาสตร์ linux หรือ openbsd) UPDATE: ฉันคิดว่า sshd อาจถูก จำกัด ให้ใช้อินเทอร์เฟซ ... แต่ไม่ ... (192.168.1.5 อยู่บน wlan0 ... ) # grep ^ListenAddress /etc/ssh/sshd_config ListenAddress 192.168.1.5:22 # # lsof -i -n -P COMMAND PID …
28 daemon  netstat 

5
เป็นไปได้ไหมที่จะเรียกกระบวนการ / ชื่อหน้าต่างที่ใช้งานอยู่ใน Gnome?
ฉันต้องการวิธีแก้ปัญหาในการรับข้อมูลหน้าต่างแอคทีฟ (เน้น) ปัจจุบันบนเดสก์ท็อป Gnome 2 ฉันส่วนใหญ่สนใจกระบวนการที่เรียกใช้ชื่อหน้าต่างและหน้าต่างนั้น มันเป็นไปได้? วิธีการแก้: รับชื่อหน้าต่าง: xwininfo -root -children | grep $(printf '%x\n' $(xdotool getwindowfocus)) | grep -oEi '"[^"]+"' | head -1 รับชื่อกระบวนการ: ps -e | grep $(xdotool getwindowpid $(xdotool getwindowfocus)) | grep -v grep | awk '{print $4}' หรือ: cat /proc/$(xdotool getwindowpid $(xdotool getwindowfocus))/comm
28 gnome  gui  window 

5
ลบช่วงของบรรทัดด้านบนรูปแบบด้วย sed (หรือ awk)
ฉันมีรหัสต่อไปนี้ที่จะลบบรรทัดที่มีรูปแบบbananaและ 2 บรรทัดหลังจากนั้น: sed '/banana/I,+2 d' file จนถึงตอนนี้ดีมาก! แต่ฉันต้องการมันเพื่อลบ 2 บรรทัดก่อนหน้า bananaแต่ฉันไม่สามารถรับมันด้วย "เครื่องหมายลบ" หรืออะไรก็ตาม (คล้ายกับสิ่งที่grep -v -B2 banana fileควรทำ แต่ไม่ได้ทำ): teresaejunior@localhost ~ > LC_ALL=C sed '-2,/banana/I d' file sed: invalid option -- '2' teresaejunior@localhost ~ > LC_ALL=C sed '/banana/I,-2 d' file sed: -e expression #1, char 16: unexpected `,' teresaejunior@localhost …

9
วิธีการยกเลิกการโหลดโมดูลเคอร์เนล 'nvidia-drm'?
ฉันพยายามติดตั้งไดรเวอร์ NVIDIA ที่ทันสมัยที่สุดใน Debian Stretch ฉันดาวน์โหลดNVIDIA-Linux-x86_64-390.48.runมาจากที่นี่แต่เมื่อฉันพยายามจะทำ sudo sh ./NVIDIA-Linux-x86_64-390.48.run ตามที่แนะนำข้อความแสดงข้อผิดพลาดจะปรากฏขึ้น ERROR: An NVIDIA kernel module 'nvidia-drm' appears to already be loaded in your kernel. This may be because it is in use (for example, by an X server, a CUDA program, or the NVIDIA Persistence Daemon), but this may also …

4
“ งานหยุด” คืออะไรใน“ หยุดงานกำลังทำงาน…”
หลังจากที่มีการใช้คำสั่ง shutdown บางครั้งได้รับข้อความสถานะเช่นนี้: A stop job is running for Session 1 of user xy จากนั้นระบบจะหยุดทำงานชั่วขณะหนึ่งหรือตลอดไปขึ้นอยู่กับ ??? ดังนั้น "หยุดงาน" คืออะไร? นอกจากนี้บางครั้งเหตุใดจึงประมาณเวลาที่จะใช้ค่อนข้างแม่นยำและเวลาอื่นที่สามารถทำงานได้ตลอดไป
28 systemd  shutdown 

2
วิธีตรวจสอบว่าคีย์ SSH ใดที่กำลัง 'ใช้งานอยู่' ในปัจจุบัน
หนึ่งอาจตรวจสอบว่า. rsa, .pem และไฟล์อื่น ๆ จะ 'โหลด' หรือ 'ใช้งาน' โดยssh-add? ฉันเพิ่งตกใจนี้: $ scp -i /home/dotancohen/.ssh/dotancohen.pem someUser@1.2.3.4:~/files.tgz . Warning: Identity file /home/dotancohen/.ssh/dotancohen.pem not accessible: No such file or directory. files.tgz 100% 89MB 1.5MB/s 00:59 $ scp someUser@1.2.3.4:~/all_git.tgz . files.tgz 100% 89MB 1.7MB/s 00:54 หลังจากยืนยันว่าเซิร์ฟเวอร์ไม่จำเป็นต้องใช้รหัสจริง.pemตอนนี้ฉันอยากจะรู้ว่าคีย์อื่นโหลดอะไรโดยที่ฉันไม่รู้เกี่ยวกับมัน!
28 ssh  security 

4
วิธีดำเนินการ shellscript เมื่อฉันเสียบอุปกรณ์ USB
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Unix & Linux Stack Exchange อพยพ 6 ปีที่แล้ว ฉันต้องการรันสคริปต์เมื่อฉันเสียบอุปกรณ์ในเครื่อง Linux ของฉัน ตัวอย่างเช่นรันxinputบนเมาส์หรือ backupscript บนไดรฟ์บางตัว ฉันได้เห็นบทความจำนวนมากเกี่ยวกับเรื่องนี้ส่วนใหญ่เมื่อเร็ว ๆ นี้ที่นี่และที่นี่ แต่ฉันไม่สามารถทำงานได้ ต่อไปนี้เป็นตัวอย่างง่ายๆที่พยายามรับการตอบกลับอย่างน้อย /etc/udev/rules.d/test.rules #KERNEL=="sd*", ATTRS{vendor}=="*", ATTRS{model}=="*", ATTRS{serial}=="*", RUN+="/usr/local/bin/test.sh" #KERNEL=="sd*", ACTION=="add", "SUBSYSTEM=="usb", ATTRS{model}=="My Book 1140 ", ATTRS{serial}=="0841752394756103457194857249", RUN+="/usr/local/bin/test.sh" #ACTION=="add", "SUBSYSTEM=="usb", RUN+="/usr/local/bin/test.sh" #KERNEL=="sd*", ACTION=={add}, RUN+="/usr/local/bin/test.sh" KERNEL=="sd*", RUN+="/usr/local/bin/test.sh" KERNEL=="*", RUN+="/usr/local/bin/test.sh" /usr/local/bin/test.sh #!/usr/bin/env …
28 linux  bash  ubuntu  udev 

3
ความแตกต่างระหว่าง mount และ mount -o loop คืออะไร
ฉันมี ISO ubuntu.isoไฟล์ที่ชื่อว่า ที่ฉันสามารถทำได้ด้วยคำสั่ง:mount mount ubuntu.iso /mntหลังจากติดตั้งมันฉันสามารถดูได้จาก outout ของคำสั่ง:df -h/dev/loop0 825M 825M 0 100% /mnt อย่างไรก็ตามถ้าฉันรันคำสั่งmount -o loop ubuntu.iso /mntฉันจะได้ผลลัพธ์เดียวกัน ที่ผมรู้ว่าอุปกรณ์ห่วงช่วยให้เราสามารถเยี่ยมชมไฟล์ ISO -o loopเป็นอุปกรณ์ผมคิดว่านี่คือเหตุผลที่เราเพิ่มตัวเลือก แต่ผมสามารถเยี่ยมชมไฟล์ ISO mount ubuntu.iso /mntของฉันแม้ว่าฉันเท่านั้นที่ดำเนินการ ดังนั้นผมจึงไม่สามารถเห็นความแตกต่างระหว่างและmountmount -o loop

6
รับการนับจำนวนคำของไฟล์ข้อความของคำทั้งหมด & เรียงลำดับผลลัพธ์การพิมพ์
ฉันมีคำสั่งที่จะทำงานผ่านไฟล์ข้อความนับจำนวนคำทั้งหมดและพิมพ์ออกมาเช่นนี้ user@box $˜ magic-command-i-forgot | with grep | and awk | sort ./textfile.txt 66: the 54: and 32: I 16: unix 12: bash 5: internet 3: sh 1: GNU/Linux ดังนั้นมันจึงไม่ค้นหาทีละบรรทัด แต่ใช้คำต่อคำและทำเพื่อทุกคำไม่ใช่แค่ 1 คำ ฉันพบมันที่ไหนสักแห่งใน internets นานมาแล้ว แต่ฉันไม่สามารถค้นหาหรือจำได้ ..
28 sort 

5
การสลับ Regex / หรือโอเปอเรเตอร์ (foo | bar) ใน GNU หรือ BSD Sed
ฉันไม่สามารถทำงานได้ เอกสารของ GNU sed บอกว่าจะหลบหนีไปป์ แต่นั่นไม่ได้ผลหรือใช้ไพพ์แบบตรงโดยไม่ต้องหลบหนี เพิ่ม parens ทำให้ไม่มีความแตกต่าง $ echo 'cat dog pear banana cat dog' | sed 's/cat|dog/Bear/g' cat dog pear banana cat dog $ echo 'cat dog pear banana cat dog' | sed 's/cat\|dog/Bear/g' cat dog pear banana cat dog

4
วัตถุประสงค์ของ / usr / libexec คืออะไร?
ไฟล์ที่เรียกทำงานได้นั้นจะถูกเก็บไว้ใน/usr/libexecระบบที่เหมือน Unix FHS พูดว่า (ส่วน4.7. /usr/libexec : Binaries run by other programs (optional)": /usr/libexecรวมไบนารีภายในที่ไม่ได้ตั้งใจให้เรียกใช้โดยตรงจากผู้ใช้หรือเชลล์สคริปต์ /usr/libexecการใช้งานอาจใช้ภายใต้ไดเรกทอรีย่อยเดียว บน Mac OS X, rootless-initโปรแกรมที่เรียกว่าโดยทันทีหลังจากที่บูตถูกเก็บไว้ในlaunchd /usr/libexecทำไมมันจะถูกเก็บไว้ใน/usr/libexecเมื่อมันเป็นปฏิบัติการแบบสแตนด์อโลนที่สามารถเก็บไว้ใน/usr/binหรือ/usr/sbin? initและโปรแกรมอื่น ๆ ที่ไม่ได้เรียกโดยตรงจากเชลล์สคริปต์จะถูกเก็บไว้ในโฟลเดอร์เช่น[/usr]/{bin,sbin}กัน
28 fhs 

2
เป็นความจริงหรือไม่ที่ tarball สามารถเปลี่ยนตำแหน่งที่แตกไฟล์ได้โดยไม่คำนึงถึงคำสั่งที่ใช้เพื่อแตกไฟล์
ฉันมีเพื่อนร่วมงานที่บอกว่าคุณต้องระวังการสกัด tarballs เพราะพวกเขาสามารถทำการเปลี่ยนแปลงที่คุณไม่รู้ ฉันคิดเสมอว่า tarball เป็นเพียงลำดับชั้นของไฟล์บีบอัดดังนั้นหากคุณแยกไฟล์เป็น / tmp / example / อาจไม่สามารถแอบดูไฟล์ใน / etc / หรืออะไรทำนองนั้น
27 filenames  tar 

2
sudo จำได้อย่างไรว่าคุณป้อนรหัสผ่านของรูทแล้ว?
เมื่อใช้ sudo บน Linux จะขอรหัสผ่านรูท แต่เฉพาะครั้งแรกที่คุณเรียกใช้ หากคุณเรียกใช้คำสั่ง sudo อีกครั้งก็จะจำได้ว่าคุณได้ป้อนรหัสผ่านก่อนหน้านี้และไม่ได้ขอ: thomas@ubuntu:~$ sudo id [sudo] password for thomas: ****** uid=0(root) gid=0(root) groups=0(root) thomas@ubuntu:~$ sudo id uid=0(root) gid=0(root) groups=0(root) sudo ทำอย่างไร ข้อมูลนี้ถูกเก็บไว้ที่ไหน? ความคิดของฉันคือมันจำเทอร์มินัล id (เช่น pts / 1) แต่สิ่งนี้ถูกเก็บไว้ที่ไหน กระบวนการ sudo แรกจะสิ้นสุดลงเมื่อทำกับคำสั่งใช่ไหม ฉันรู้ว่า sudo เป็นโปรแกรม setuid ดังนั้นจึงมีสิทธิ์ของรูทตลอดเวลา แต่ฉันก็ยังนึกถึงสถานที่ที่ดีในการเก็บข้อมูลที่ผู้ใช้ป้อนรหัสผ่านไปแล้ว มีกระบวนการภูตบ้างไหม?
27 linux  sudo 

4
SSH ขอรหัสผ่านบนกุญแจสาธารณะที่ไม่มีการตั้งค่าวลีรหัสผ่าน
ฉันได้รับการใช้การตรวจสอบคีย์สาธารณะบนเซิร์ฟเวอร์ของฉันในขณะนี้ แต่ฉันกำลังประสบปัญหาใน 'ลูกค้า' ใหม่พยายามที่จะเชื่อมต่อกับGitHub ฉันได้อ่านหลายเธรดเพื่อตรวจสอบว่าสิทธิ์ของฉันได้รับการตั้งค่าอย่างถูกต้องและได้สร้างคีย์ใหม่สำหรับ github ปัญหาที่ฉันเผชิญคือ ssh กำลังขอข้อความรหัสผ่านของฉันแม้ว่าฉันจะไม่ได้ตั้งข้อความรหัสผ่านก็ตาม ฉันได้ทำกุญแจใหม่เพื่อให้แน่ใจ 100% ว่าฉันไม่ได้ป้อนข้อความรหัสผ่าน ssh -vvvให้เอาต์พุตที่เกี่ยวข้องดังต่อไปนี้: debug1: Offering public key: /home/me/.ssh/github.pub debug2: we sent a publickey packet, wait for reply debug3: Wrote 368 bytes for a total of 1495 debug1: Remote: Forced command: gerve mygithubusername c3:71:db:34:98:30:6d:c2:ca:d9:51:a8:c6:1b:fc:f7 debug1: Remote: Port forwarding disabled. debug1: …

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