Unix & Linux

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

2
เพิกเฉยกับโดเมน“ อื่น ๆ ” เมื่อดาวน์โหลดด้วย wget หรือไม่
ฉันต้องการรวบรวมข้อมูลลิงก์ภายใต้ www.website.com/XYZ และดาวน์โหลดเฉพาะลิงค์ที่อยู่ภายใต้ www.website.com/ABC ฉันใช้คำสั่ง wget ต่อไปนี้เพื่อรับไฟล์ที่ฉันต้องการ: wget -I ABC -r -e robots=off --wait 0.25 http://www.website.com/XYZ มันทำงานได้อย่างสมบูรณ์แบบเมื่อฉันใช้ wget 1.13.4 แต่ปัญหาคือฉันต้องใช้คำสั่งนี้บนเซิร์ฟเวอร์ที่มี wget 1.11 และเมื่อฉันใช้คำสั่งเดียวกันมันจะสิ้นสุดการดาวน์โหลดโดเมนเพิ่มเติมเช่น: www.website.de www.website.it ... ฉันจะหลีกเลี่ยงปัญหานี้ได้อย่างไร ฉันพยายามใช้ --exclude domains=www.website.de,www.website.it อย่างไรก็ตามมันยังคงดาวน์โหลดโดเมนเหล่านั้น นอกจากนี้โปรดทราบว่าฉันไม่สามารถใช้งานได้--no-parentเนื่องจากไฟล์ที่ฉันต้องการอยู่ในระดับสูงกว่า (ฉันต้องการไฟล์ภายใต้ website.com/ABC โดยรวบรวมข้อมูลลิงก์ภายใต้ website.com/XYZ) คำใบ้ใด ๆ

1
จะบอก sudo ให้บรรยายซ้ำอีกครั้งได้อย่างไร?
ฉันปล่อยให้หนึ่งในเพื่อนที่เข้ารหัสของฉันมีสิทธิ์เข้าถึง Raspberry Pi ของฉันและเมื่อฉันตั้งค่าทุกอย่างฉันก็ทดสอบ sudo ในฐานะเขา มันทำให้ฉัน "คำพูด": เราเชื่อว่าคุณได้รับการบรรยายตามปกติจาก ผู้ดูแลระบบท้องถิ่น มันมักจะเดือดลงไปในสามสิ่งนี้: # 1) เคารพความเป็นส่วนตัวของผู้อื่น # 2) คิดก่อนพิมพ์ # 3) ด้วยพลังอันยิ่งใหญ่มาพร้อมความรับผิดชอบที่ดี สิ่งที่ฉันสงสัยคือวิธีบอกให้ sudo ทำซ้ำอีกครั้ง ฉันไม่พบที่เก็บรายการ "ผู้ใช้ที่ถูกเตือน" และฉันไม่ต้องการ overkill และบอกให้ The Speech ทุกครั้ง
13 sudo  users 

2
เป็นไปได้หรือไม่ที่กระบวนการภูต (เช่นพื้นหลัง) จะมองหาการกดปุ่มจากแป้นพิมพ์ USB?
ฉันกำลังทำงานในโครงการลินุกซ์ในตัวที่ฉันจะพัฒนาโปรแกรมที่จะทำงานโดยอัตโนมัติเมื่อบูตเครื่องและโต้ตอบกับผู้ใช้ผ่านการแสดงตัวอักษรและแถวเรียงปุ่ม ถ้าเราไปกับอาเรย์ปุ่ม GPIO ง่าย ๆ ฉันสามารถเขียนโปรแกรมที่จะค้นหาการกดปุ่มบนบรรทัด GPIO เหล่านั้นได้อย่างง่ายดาย อย่างไรก็ตามหนึ่งในความคิดของเราคือการใช้อุปกรณ์แผ่นหมายเลข USB แทนการป้อนข้อมูลของผู้ใช้ ความเข้าใจของฉันคือว่าอุปกรณ์เหล่านั้นจะนำเสนอตัวเองให้กับระบบปฏิบัติการเป็นแป้นพิมพ์ USB หากลงไปตามเส้นทางนี้จะมีวิธีให้โปรแกรมของฉันค้นหาอินพุตบนแป้นพิมพ์ USB นี้จากใน Linux โดยระลึกไว้เสมอว่าไม่มีจอเทอร์มินัลเสมือนหรือจอแสดงผล VGA เมื่อเสียบแป้นพิมพ์ USB มีเอนทิตีใน '/ dev' ที่ปรากฏว่าฉันสามารถเปิดไฟล์ descriptor ได้หรือไม่?
13 linux  usb  keyboard  embedded 

2
ยกเลิกการเสร็จสิ้น แต่เสร็จสมบูรณ์เท่านั้นใน zsh
เมื่อฟังก์ชั่นเสร็จสิ้นใช้เวลานานฉันสามารถขัดจังหวะโดยกดCtrl+ C(คีย์อินเตอร์รัปต์เทอร์มินัลส่ง SIGINT) หรือCtrl+ G(ผูกไว้กับsend-break) ฉันถูกทิ้งให้อยู่กับคำที่ไม่สมบูรณ์ อย่างไรก็ตามหากฉันกดCtrl+ CหรือCtrl+ Gเมื่อฟังก์ชั่นเสร็จสิ้นการกดปุ่มของฉันอาจยกเลิกบรรทัดคำสั่งและแจ้งให้ฉันทราบทันทีแทนการยกเลิกการเสร็จสิ้น ฉันจะตั้งค่า zsh ได้อย่างไรเพื่อให้บางคีย์จะยกเลิกการเสร็จสิ้นอย่างต่อเนื่อง แต่จะไม่ทำอะไรเลยหากไม่มีฟังก์ชั่นเสร็จสิ้นที่ทำงานอยู่?

3
ฉันควรติดตั้งหน้าคู่มือในไดเรกทอรีผู้ใช้ที่ไหน?
ฉันพยายามสร้าง Makefile สำหรับยูทิลิตี้ Perl ขนาดเล็กที่ฉันเขียนและฉันพยายามหาวิธีที่จะติดตั้ง man page ของฉันเมื่อmakeเรียกใช้ในฐานะผู้ใช้ที่ไม่ใช่รูท ขณะนี้ฉันกำลังแยกวิเคราะห์ผลลัพธ์ของmanpathการค้นหาเส้นทางแรกใน$HOMEไดเรกทอรี ... และมันเกือบจะทำงานได้ดี เส้นทางที่ฉันพบคือ~/manและ~/share/man ปัญหาเดียวคือถ้าไดเรกทอรีเหล่านั้นไม่อยู่ในสถานที่แรกmanpathไม่ส่งออกใด ๆ ของพวกเขา คำถาม มีวิธีพกพาเพื่อค้นหาตำแหน่งที่ฉันควรติดตั้ง man pages ในไดเร็กทอรี $ HOME ของผู้ใช้หรือไม่? ถ้าไม่ควรเลือกอันใดอันหนึ่ง
13 man 

4
เติมไฟล์อัตโนมัติใหม่ล่าสุด
ฉันมีกระบวนการที่สร้างไฟล์ข้อความที่มีชื่อไฟล์ตามการประทับเวลาของช่วงเวลาของการสร้าง: $ ls 1378971222.txt 1378971254.txt 1378971482.txt 1378971488.txt 1378972089.txt 1378972140.txt 1378972141.txt 1378972153.txt 1378972155.txt 1378972241.txt ฉันจะเติมชื่อไฟล์ของไฟล์ที่สร้างล่าสุดโดยอัตโนมัติเช่นไฟล์ที่มี mtime ล่าสุดได้อย่างไร ไม่มีวิธีที่จะใช้ Tab-completion สำหรับไฟล์เหล่านี้เนื่องจากตัวละครเกือบทุกตัวในชื่อไฟล์จะถูกแชร์กับไฟล์อื่น ฉันหวังว่าจะหาทางลัด (เช่นการAlt .เติมข้อความอัตโนมัติครั้งสุดท้ายของคำสั่งสุดท้าย) ฉันมีการจัดการที่จะกุเรื่องนามแฝงต่อไปนี้ซึ่งเป็นที่ดีสำหรับVIMแต่ฉันชอบที่จะทราบว่าทางลัดวัตถุประสงค์ทั่วไปอยู่ที่ฉันสามารถใช้กับkde-open, sqlite3และการใช้งานอื่น ๆ alias lastest="vim `ls -t | grep -vE "^total [0-9]*$" | head -n1`"

3
Linux โหลดอิมเมจ 'initrd' อย่างไร
ฉันพยายามทำความเข้าใจกับกระบวนการบูท แต่มีเพียงสิ่งเดียวเท่านั้นที่จะข้ามหัวฉันได้ .. ทันทีที่เคอร์เนล Linux ถูกบูทและติดตั้งระบบไฟล์รูท (/) โปรแกรมสามารถรันได้และโมดูลเคอร์เนลเพิ่มเติมสามารถรวมเข้าด้วยกันเพื่อให้มีฟังก์ชั่นเพิ่มเติม ในการเมาท์ระบบไฟล์รูทจะต้องปฏิบัติตามเงื่อนไขบางประการ เคอร์เนลต้องการไดรเวอร์ที่เกี่ยวข้องเพื่อเข้าถึงอุปกรณ์ที่ระบบไฟล์รูทอยู่ (โดยเฉพาะไดรเวอร์ SCSI) เคอร์เนลจะต้องมีรหัสที่จำเป็นในการอ่านระบบไฟล์ (ext2, reiserfs, romfs, ฯลฯ ) เป็นไปได้ว่าระบบไฟล์รูทถูกเข้ารหัสอยู่แล้ว ในกรณีนี้จำเป็นต้องใช้รหัสผ่านเพื่อต่อเชื่อมระบบไฟล์ ramdisk เริ่มต้น (หรือที่เรียกว่า initdisk หรือ initrd) แก้ปัญหาได้อย่างแม่นยำตามที่อธิบายไว้ข้างต้น เคอร์เนล Linux จัดให้มีตัวเลือกในการโหลดระบบไฟล์ขนาดเล็กลงในดิสก์ RAM และใช้งานโปรแกรมก่อนที่จะติดตั้งระบบไฟล์รูทจริง การโหลดของ initrd ได้รับการจัดการโดย boot loader (GRUB, LILO และอื่น ๆ ) ตัวโหลดการบูตต้องการรูทีน BIOS เท่านั้นเพื่อโหลดข้อมูลจากสื่อการบูต หากบูตโหลดเดอร์สามารถโหลดเคอร์เนลได้ก็สามารถโหลด ramdisk เริ่มต้นได้ ไม่จำเป็นต้องใช้ไดรเวอร์พิเศษ หาก …
13 linux  kernel  boot  initrd 

2
จะทราบชนิดของการเข้ารหัสแบบสมมาตรที่ใช้โดย ssh ได้อย่างไร
ฉันต้องการทราบชนิดของการเข้ารหัสแบบสมมาตร (หลังจากการตรวจสอบความถูกต้อง) ที่ใช้โดย ssh ในไคลเอนต์การเชื่อมต่อเซิร์ฟเวอร์ ฉันไม่แน่ใจว่าใครเป็นคนกำหนดการเข้ารหัส ลูกค้าหรือเซิร์ฟเวอร์? ฉันได้ดูใน/etc/ssh/ssh_config(บนไคลเอนต์) และ/etc/ssh/sshd_config(บนเซิร์ฟเวอร์) และไม่มีอะไร

5
CP ไฟล์ที่ซ่อนอยู่กับรูปแบบ glob
สถานการณ์: $ mkdir foo && touch foo/.test $ cp foo/* . zsh: no matches found: foo/* (or bash : cp: cannot stat ‘foo/*’: No such file or directory) ฉันมีไดเรกทอรีที่เต็มไปด้วยโฟลเดอร์และไฟล์ที่ซ่อนอยู่ เกิดอะไรขึ้นและทางออกคืออะไร?
13 zsh  wildcards  cp  dot-files 

3
การแจ้งเตือนและการแจ้งเตือนภูตไม่ทำงานในการจัดการหน้าต่าง
การแจ้งเตือนไม่ทำงานบนตัวจัดการหน้าต่างแบบสแตนด์อโลนของ Linux (Openbox, Awesome WM และเหมือนกัน) ฉันพยายามติดตั้ง notification-daemon และ dunst แต่การส่งด้วยnotify-send "something"ไม่ได้ทำให้หน้าต่างป๊อปอัปปรากฏขึ้น ฉันพยายามเรียกใช้ polkit-gnome-agent และเรียกใช้ daemons การแจ้งเตือนโดยตรง แต่ก็ไม่ได้ช่วย (ในขณะที่ฉันแก้ไขปัญหาที่คล้ายกันด้วยวิธีนี้ แต่ตอนนี้มันไม่ทำอะไรเลย) ไม่มีข้อบ่งชี้ข้อผิดพลาดใด ๆ ยกเว้นว่าฉันจะส่งการแจ้งเตือนเล็กน้อยด้วย python ดังนั้นฉันจะได้รับเฉพาะข้อความแสดงข้อผิดพลาดที่คลุมเครือ: File "/usr/lib/python3.3/site-packages/gi/types.py", line 113, in function return info.invoke(*args, **kwargs) gi._glib.GError: Could not connect: Connection refused โปรแกรม C เล็กน้อยก็ไม่แสดงผลใด ๆ (เช่นไม่มีข้อผิดพลาด) ฉันใช้ Archlinux กับ systemd และ …

4
วิธีการยุติเซสชั่น tmux และกระบวนการมันกลับกลายเป็น
ฉันสังเกตเห็นว่าฉันมีกระบวนการทำงานและฉันคิดว่าเป็นเพราะฉันเริ่มต้นกระบวนการใน byobu ซึ่งใช้ tmux ps aux | grep sidekiq 1000 13786 0.0 0.0 8108 900 pts/4 S+ 11:27 0:00 grep sidekiq ฉันมีเซสชั่น tmux เรียกว่า "3" ตามที่คุณเห็นด้านล่าง: $ byobu Byobu sessions... 1. tmux: 3: 1 windows (created Wed Aug 28 10:57:54 2013) [229x84] (attached) 2. tmux: daemon: 1 windows (created Thu …
13 tmux  byobu 


3
Nmap -sn: สแกนหรือไม่สแกน?
nmapหน้าคนนี้จะพูดเกี่ยวกับการมี-snพารามิเตอร์: -sn (No port scan) . This option tells Nmap not to do a port scan after host discovery, and only print out the available hosts that responded to the scan. ในช่วงครึ่งแรกของประโยคระบุว่าไม่มีการสแกน แต่ครึ่งหลังบอกว่ามีการสแกน มีการสแกนประเภทต่าง ๆ กว่าการสแกนพอร์ตที่อ้างอิงในช่วงครึ่งหลังหรือไม่? บางทีการค้นพบโฮสต์สแกน (เดาจากสิ่งเล็กน้อยที่ฉันรู้nmap)
13 man  nmap 

4
ฉันจะได้สิ่งที่ตรงข้ามกับ `diff -q '- จับคู่ไฟล์ที่เหมือนกันโดยไม่ต้องพิมพ์เนื้อหา
ฉันมีไฟล์จำนวนมากในไดเรกทอรีและฉันต้องการตรวจสอบว่าพวกเขาทั้งหมดไม่ซ้ำกัน สำหรับความเรียบง่ายสมมติว่าผมมีสามไฟล์: foo.txt, และbar.txt baz.txtหากฉันใช้วงนี้ฉันจะตรวจสอบพวกเขาทั้งหมดต่อกัน: $ for f in ./*; do for i in ./*; do diff -q "$f" "$i"; done; done Files bar.txt and baz.txt differ Files bar.txt and foo.txt differ Files baz.txt and bar.txt differ Files baz.txt and foo.txt differ Files foo.txt and bar.txt differ Files foo.txt and …
13 bash  diff 

4
ssh-agent ไม่ได้รับการตั้งค่า (SSH_AUTH_SOCK, SSH_AGENT_PID ไม่ได้ตั้งค่า env vars)
ฉันตั้งค่าบัญชีผู้ใช้ใหม่สำหรับเพื่อนใน Kubuntu 12.04 เมื่อเขาใช้sshเขาได้รับข้อผิดพลาดนี้: ไม่สามารถเปิดการเชื่อมต่อกับตัวแทนการตรวจสอบความถูกต้องของคุณ เรากำลังทำงานsshในสคริปต์ทุบตี หลังจากดูสิ่งต่าง ๆ มากมายที่สามารถนำไปสู่ข้อผิดพลาดนั้นฉันได้พบกับวิธีแก้ไขปัญหานี้: $ eval `ssh-agent -s` $ ssh-add ~/.ssh/some_id_rsa จากนั้นเขาสามารถเรียกใช้sshคำสั่ง (และสคริปต์ทุบตี) ตามที่คาดไว้ ก่อนรันสองคำสั่งตัวแปร env ไม่ได้ถูกตั้งค่าในเทอร์มินัล: $ echo $SSH_AGENT_PID $ echo $SSH_AUTH_SOCK $ หลังจากรันคำสั่งตัวแปร env จะถูกตั้งค่าตามที่คาดไว้ อย่างไรก็ตามพวกเขาไม่ได้อยู่ที่การตั้งค่า (เช่นในเปลือกที่แตกต่างกันหรือหลังจากรีบูตเครื่อง) ฉันต้องการทราบวิธีการตั้งค่าคอมพิวเตอร์ของเขาเพื่อที่เขาจะได้ไม่ต้องเรียกใช้ทั้งสองคำสั่งเพื่อตั้งค่าตัวแปร env ฉันไม่จำเป็นต้องเรียกใช้บนคอมพิวเตอร์ของฉัน (เคย) จนถึงตอนนี้ฉันไม่เห็นสิ่งที่แตกต่างระหว่างเครื่องของเรา ฉันเห็นข้อมูลนี้ในหน้า man แต่ไม่ได้บอกฉันว่า Ubuntu ปกติตั้งค่าตัวแทนโดยอัตโนมัติหรือสิ่งที่เกิดขึ้นบนเครื่องของเพื่อนของฉันเพื่อที่จะไม่ทำงานสำหรับเขา มีสองวิธีหลักในการตั้งค่าเอเจนต์: วิธีแรกคือเอเจนต์เริ่มคำสั่งย่อยใหม่ซึ่งตัวแปรสภาพแวดล้อมบางอย่างจะถูกส่งออกเช่น ssh-agent xterm & ประการที่สองคือเอเจนต์พิมพ์คำสั่งเชลล์ที่ต้องการ …
13 bash  ssh  kubuntu  ssh-agent 

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