Unix & Linux

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

5
ลบบรรทัดที่ซ้ำกันในขณะที่รักษาลำดับของบรรทัด
[root@server]# awk '!seen[$0]++' out.txt > cleaned awk: (FILENAME=out.txt FNR=8547098) fatal error: internal error Aborted [root@server]# "" เซิร์ฟเวอร์ "" มี: 8 GByte RAM + 16 GByte SWAP, x> 300 GByte พื้นที่ว่าง, amd64, CPU ของเดสก์ท็อป ลินุกซ์ทางวิทยาศาสตร์ 6.6 ไม่มีอะไรอื่นที่จะทำเพื่อให้โหลด อ๊ะยกเลิกหลังจากนั้นสองสามวินาที .. out.txt คือ ~ 1.6 GByte GNU Awk 3.1.7 คำถาม : ฉันจะลบบรรทัดที่ซ้ำกันในขณะที่รักษาลำดับของบรรทัดได้อย่างไร ตัวพิมพ์เล็กก็สำคัญเช่นกัน: …

3
จะตรวจสอบว่ามีการติดตั้งไลบรารี่ที่แชร์ได้อย่างไร?
คำถามของฉันมาจากปัญหาของฉันในการเริ่ม ffmpeg ฉันติดตั้ง ffmpeg แล้วและมันจะแสดงขึ้นเมื่อติดตั้ง: whereis ffmpeg ffmpeg: /usr/bin/ffmpeg /usr/bin/X11/ffmpeg /usr/share/ffmpeg /usr/share/man/man1/ffmpeg.1.gz ต่อมาฉันก็พบว่าบางโปรแกรมขึ้นอยู่กับไลบรารีที่ไม่ได้มาพร้อมกับการติดตั้งเองดังนั้นฉันจึงตรวจสอบด้วยคำสั่ง ldd ว่ามีอะไรหายไปบ้าง: # ldd /usr/bin/ffmpeg linux-vdso.so.1 => (0x00007fff71fe9000) libavfilter.so.0 => not found libpostproc.so.51 => not found libswscale.so.0 => not found libavdevice.so.52 => not found libavformat.so.52 => not found libavcodec.so.52 => not found libavutil.so.49 => not found libm.so.6 …

2
ข้อผิดพลาด“ ext4_lookup: ลบการอ้างอิง inode” ใน / var / log / messages
ฉันตรวจสอบไฟล์บันทึก / var / log / Messages ของฉันในทุก ๆ 2 วินาทีจะมีการเพิ่มการบันทึก .. Mar 20 11:42:30 localhost kernel: EXT4-fs error (device dm-0): ext4_lookup: deleted inode referenced: 184844 Mar 20 11:42:32 localhost kernel: EXT4-fs error (device dm-0): ext4_lookup: deleted inode referenced: 184844 Mar 20 11:42:34 localhost kernel: EXT4-fs error (device dm-0): ext4_lookup: …
14 linux  logs 

1
ทำไมคำสั่ง echo ไม่ทำงานกับคำสั่ง at?
เมื่อฉันพิมพ์: at now + 1 min at>play /usr/share/sounds/startrek.wav at>ctrl+d มันใช้งานได้ดังนั้นหลังจากผ่านไปหนึ่งนาทีเสียงก็จะดังขึ้น แต่เมื่อฉันพิมพ์: at now + 1 min at>echo "Teresa the green vegetable lover" at>ctrl+d ฉันไม่ได้รับการตอบกลับจากเชลล์ แต่หลังจากผ่านไป 1 นาทีจะไม่มีข้อความปรากฏขึ้น
14 command-line  at 

3
วิธีรับ traceroute บน cygwin
การใช้ traceroute (tracert) นั้นแตกต่างกันไปใน Windows และ Unix ฉันต้องการเปรียบเทียบทั้งสองกับ Wireshark ตอนนี้ฉันอยู่บน Windows 7 และฉันต้องการใช้ Unix traceroute ในการติดตั้งอย่างรวดเร็ว ความคิดแรกของฉันคือการใช้ MSYS หรือ Cygwin ฉันติดตั้ง Cygwin ด้วยการเลือกแพคเกจ "inetutils *" แต่ไม่มีคำสั่ง traceroute และสามารถสั่งการ/usr/bin/ได้ ฉันยังพยายามค้นหา "traceroute" ด้วยการค้นหาแพ็คเกจ Cygwinและพบสตริงย่อยนี้ในรายการไฟล์ "zsh" ฉันติดตั้ง zsh และพยายามtracerouteและtcptracerouteไม่มีผลลัพธ์ แพ็คเกจใดที่ฉันควรตรวจสอบการติดตั้ง traceroute และมี traceroute สำหรับ Cygwin เลย?

4
วิธีการเปลี่ยนการหมดเวลาใน systemctl
เมื่อฉันบูทระบบ Debian ของฉันการเริ่มต้นจะหยุดทำงานเป็นเวลาประมาณ 2 นาทีในบรรทัด: Loading, please wait... [ 5.191043] systemd-fsck[129]: /dev/mmcblk0p2: clean, 234192/873120 files, 2335263/3491328 blocks [ 6.645242] intel_rapl: no valid rapl domains found in package 0 [ 6.643682] systemd-fsck[222]: fsck.fat 3.0.27 (2014-11-12) [ 6.664844] intel_rapl: no valid rapl domains found in package 0 [ 6.660702] systemd-fsck[222]: /dev/mmcblk0p1: 3 …

1
ใครสามารถอธิบายวิธีใช้ฝูงและอธิบายไฟล์เพื่อล็อคไฟล์และเขียนไปยังไฟล์ที่ถูกล็อค?
เปลือยกับฉันเมื่อฉันยังใหม่กับflockเครื่องมือและฉันไม่ได้ใช้ตัวอธิบายไฟล์เท่าที่ฉันรู้ resp.txtฉันมีสคริปต์ทุบตีที่ทำให้คำขอม้วนและเขียนออกไปยังไฟล์ที่เรียกว่า ฉันต้องสร้างการล็อคแบบเอกสิทธิ์เพื่อที่ฉันจะสามารถเขียนไปยังไฟล์นั้นและไม่ต้องกังวลกับผู้ใช้หลายคนที่เรียกใช้สคริปต์และแก้ไขไฟล์ข้อความในเวลาเดียวกัน นี่คือรหัสที่ฉันคาดว่าจะล็อคไฟล์ดำเนินการตามคำขอและเขียนไปยังไฟล์ข้อความ: ( flock -e 200 curl 'someurl' -H 'someHeader' > resp.txt ) 200>/home/user/ITS/resp.txt นี่เป็นวิธีที่ถูกต้องที่จะไปเกี่ยวกับเรื่องนี้? สคริปต์จริงของฉันยาวกว่านี้นิดหน่อย แต่ดูเหมือนจะแตกเมื่อฉันเพิ่มflockไวยากรณ์ลงในสคริปต์ทุบตี หากใครบางคนสามารถอธิบายวิธีการทำงานของไฟล์ descriptors เหล่านี้และแจ้งให้เราทราบว่าฉันกำลังล็อคไฟล์อย่างถูกต้องหรือไม่!
14 linux  bash 

5
วิธีการปิดการใช้งาน cronjobs ของผู้ใช้เป็นการชั่วคราว?
ฉันจะปิดการใช้งาน cron ของผู้ใช้อย่างน้อยหนึ่งงานได้อย่างไร โดยเฉพาะอย่างยิ่งฉันไม่ต้องการที่จะระงับสิทธิ cron ของผู้ใช้ - ไม่เพียง แต่ยิงงานใด ๆ ของพวกเขา ฉันใช้ระบบ SLES 11 SP2 และ SP3
14 cron 

3
คลิปบอร์ดไม่ทำงานเมื่อเชื่อมต่อผ่าน rdesktop ไปยัง xrdp-sesman
ฉันมีเครื่อง Debian พร้อมxrdp-sesmanการตั้งค่าด้วยวิธีต่อไปนี้ Xvnc 127.0.0.1:5910 xrdp-sesman 127.0.0.1:3350 xrdp 0.0.0.0:3389 ฉันกำลังเชื่อมต่อกับเครื่องนี้ด้วยrdesktopจากเครื่องเดเบียนอีกเครื่อง ทุกอย่างใช้งานได้ดียกเว้นclipboard(เช่นใช้Ctrl+c Ctrl+vเพื่อคัดลอกและวาง) เมื่อฉันเชื่อมต่อจากเครื่อง Debian ของฉันไปยังเครื่อง windows โดยใช้rdesktopไคลเอนต์เดียวกันclipboardทำงานได้ดี ฉันสงสัยว่าสาเหตุที่clipboardใช้งานไม่ได้เมื่อเชื่อมต่อsesmanคือใช้งานrdpเกินvnc(หรืออะไรทำนองนั้น) ฉันไม่เข้าใจวิธีการsesmanทำงานฉันเพิ่งใช้งานการกำหนดค่าซ้ำที่ฉันพบที่ไหนสักแห่ง นี่คือของฉัน/etc/xrdp/xrdp.ini: [globals] bitmap_cache=yes bitmap_compression=yes port=3389 crypt_level=low channel_code=1 [xrdp1] name=sesman-Xvnc lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=-1 ฉันจะทำให้คลิปบอร์ดทำงานได้เมื่อเชื่อมต่อกับ xrdp-sesman กับไคลเอ็นต์ rdesktop ได้อย่างไร

9
กรองหรือไพพ์บางส่วนของไฟล์
ฉันมีไฟล์อินพุตที่มีบางส่วนและถูกแบ่งเขตด้วยแท็กเริ่มต้นและแท็กสิ้นสุดตัวอย่างเช่น: line A line B @@inline-code-start line X line Y line Z @@inline-code-end line C line D ฉันต้องการนำการแปลงไปใช้กับไฟล์นี้เพื่อให้บรรทัด X, Y, Z ถูกกรองผ่านคำสั่งบางอย่าง ( nlตัวอย่างเช่น) แต่ส่วนที่เหลือของบรรทัดนั้นไม่ผ่านการเปลี่ยนแปลง โปรดสังเกตว่าnl(จำนวนบรรทัด) สะสมสถานะข้ามบรรทัดดังนั้นจึงไม่ใช่การแปลงแบบสแตติกที่ถูกนำไปใช้กับแต่ละบรรทัด X, Y, Z ( แก้ไข : มันชี้ให้เห็นว่าnlสามารถทำงานในโหมดที่ไม่ต้องการสถานะสะสม แต่ฉันแค่ใช้nlเป็นตัวอย่างในการทำให้คำถามง่ายขึ้นในความเป็นจริงคำสั่งเป็นสคริปต์ที่กำหนดเองที่ซับซ้อนมากขึ้นสิ่งที่ฉันกำลังมองหา for เป็นคำตอบทั่วไปสำหรับปัญหาในการใช้ตัวกรองมาตรฐานกับส่วนย่อยของอินพุตไฟล์ ) ผลลัพธ์ควรมีลักษณะดังนี้: line A line B 1 line X 2 line Y 3 …

2
ดีไหมถ้ามี Linux Kernel หลายรุ่น?
ครั้งหนึ่งฉันติดตั้งเคอร์เนลแพทช์และมีบางอย่างผิดพลาดบนเซิร์ฟเวอร์ที่ใช้งานอยู่ซึ่งเรามีลูกค้านับร้อย มีเคอร์เนลเดียวเท่านั้นในระบบ ดังนั้นเซิร์ฟเวอร์จึงหยุดทำงานชั่วคราวและเมื่อใช้ซีดีสดเราจึงทำให้ระบบเริ่มทำงานและทำงานซ่อมแซมต่อไป ตอนนี้คำถามของฉัน: เป็นความคิดที่ดีหรือไม่ที่มีเคอร์เนล 2 เวอร์ชันดังนั้นหากเคอร์เนลเสียหายเราสามารถรีบูตด้วยเคอร์เนลอื่นที่มีอยู่ได้หรือไม่ โปรดแจ้งให้เราทราบ นอกจากนี้เป็นไปได้หรือไม่ที่จะมีเคอร์เนลเดียวกัน 2 เวอร์ชัน? เพื่อให้ฉันสามารถเลือกเคอร์เนลอื่นเมื่อมีความเสียหายเคอร์เนล? Edited: My Server Details: 2.6.32-431.el6.x86_64 CentOS release 6.5 (Final) ฉันจะมีสำเนาเดียวกันของเคอร์เนลนี้ดังนั้นเมื่อเคอร์เนลของฉันเสียหายฉันสามารถเริ่มเคอร์เนลสำรองได้อย่างไร
14 linux  centos  kernel 

2
เปลี่ยนพอร์ตเริ่มต้นสำหรับ PulseAudio (สายออกไม่ใช่หูฟัง)
เมื่อฉันบูต PulseAudio จะใช้ค่าเริ่มต้นในการส่งเอาต์พุตไปยังหูฟัง ฉันต้องการให้การส่งออกไปยัง Line Out เป็นค่าเริ่มต้น ฉันจะทำอย่างไร ฉันสามารถเปลี่ยนตำแหน่งที่ส่งออกเป็นปัจจุบันได้ด้วยตนเองดังนี้เปิดแอพพลิเคชั่น Pulseaudio Volume Control ไปที่แท็บอุปกรณ์เอาต์พุตและถัดจากพอร์ตเลือกตัวเลือก Line Out แทนหูฟัง อย่างไรก็ตามฉันต้องทำสิ่งนี้ทุกครั้งที่ฉันบูตเครื่องหลังจากรีบูตเครื่อง Pulseaudio จะรีเซ็ตตัวเองกลับไปเป็นหูฟัง มันน่ารำคาญนิดหน่อย ฉันจะทำให้การเลือกของฉันติดอยู่และคงอยู่ในการรีบูตได้อย่างไร? นี่คือภาพหน้าจอว่าแอปพลิเคชั่นควบคุมระดับเสียงจะดูแลการรีบูตโดยเลือกหูฟัง: หากฉันคลิกตัวเลือกถัดจากพอร์ตฉันจะได้รับสองตัวเลือกต่อไปนี้: การเลือก Line Out ทำให้เสียงทำงาน (โปรดสังเกตว่าทั้งหูฟังและ Line Out ถูกทำเครื่องหมายเป็น "unplugged" แต่จริงๆแล้วฉันมีบางอย่างที่เสียบเข้ากับพอร์ต Line Out) ความคิดเห็นที่: ฉันไม่ได้มองหาวิธีการที่จะเปลี่ยนอุปกรณ์ส่งออกเริ่มต้น ฉันมีการ์ดเสียงเดียว pacmd list-sinksแสดงอ่างล้างจานเดียวเท่านั้น ดังนั้นจึงpacmd set-default-sinkไม่เป็นประโยชน์ ( นี่ไม่ได้ช่วยอะไรเช่นกัน) สิ่งที่ฉันต้องตั้งค่าคือ "พอร์ต" ไม่ใช่อุปกรณ์ส่งออก หากมีความเกี่ยวข้องฉันกำลังใช้ Fedora 20 …

3
ฉันจะทำ N-way diff ได้อย่างไร
ฉันจะกระจายเอาต์พุตของหลายคำสั่งได้อย่างไร vimdiffสามารถรองรับไฟล์ได้สูงสุดสี่ไฟล์ แต่diffดูเหมือนว่าจะรองรับไฟล์ได้สองไฟล์ เป็นไปได้โดยตรงกับตัวแปรบางอย่างdiffหรือฉันต้องบันทึกผลลัพธ์ของคำสั่งทั้งหมดไปยังไฟล์ชั่วคราวเลือกหนึ่งและกระจายส่วนที่เหลือด้วยหรือไม่ บริบท: ฉันต้องตรวจสอบผลลัพธ์ของคำสั่งบางอย่างบนเซิร์ฟเวอร์หลายเครื่องและดูว่าพวกเขาทั้งหมดเห็นด้วยหรือไม่ ในขณะนี้เพียงรายงานว่าพบความแตกต่างใด ๆ ที่ดูเหมือนว่าดี แต่ถ้าเป็นไปได้ฉันอยากจะบอกว่า: เซิร์ฟเวอร์ X% เห็นด้วยซึ่งกันและกัน Y% ต่อกัน หรือเซิร์ฟเวอร์ Z นั้นเป็นเลขคี่ ฉันมีการตั้งค่า LDAP แบบหลายทางสี่ทางและฉันต้องการตรวจสอบว่าContextCSNค่าสำหรับทั้งสี่เห็นด้วยกัน ดังนั้นตอนนี้ฉัน: #! /bin/bash for i in {1..4}.ldap do ldapsearch -x -LLL -H ldap://$i -s base -b dc=example,dc=com contextCSN > $i.csn; done set -e for i in {2..4} do diff …
14 scripting  diff 

2
วิธีถอดรหัสชื่อโฮสต์ของ. ssh / known_hosts ด้วยรายชื่อโฮสต์
ฉันพยายามที่จะหาสคริปต์ไปถอดรหัส (unhash) ชื่อโฮสต์ SSH ในแฟ้ม known_hosts โดยผ่านรายการ hostnamses ดังนั้นการย้อนกลับของ : ssh-keygen -H -f known_hosts หรือทำเช่นเดียวกันหากตั้งค่า ssh HashKnownHosts เป็น No: ssh-keygen -R know-host.com -f known_hosts ssh-keyscan -H know-host.com >> known_hosts แต่ไม่ต้องดาวน์โหลดคีย์โฮสต์อีกครั้ง (เกิดจาก ssh-keyscan) สิ่งที่ต้องการ: ssh-keygen --decrypt -f known_hosts --hostnames hostnames.txt โดยที่ hostnames.txt มีรายการชื่อโฮสต์

2
เคอร์เนล Linux ใช้แหล่งใดของเอนโทรปี
man 4 random มีคำอธิบายที่คลุมเครือของแหล่งเคอร์เนลเอนโทรปีของ Linux: ตัวสร้างหมายเลขสุ่มรวบรวมเสียงสิ่งแวดล้อมจากไดรเวอร์อุปกรณ์และแหล่งอื่น ๆ ลงในพูลเอนโทรปี กระดาษEntropy ถ่ายโอนในเครื่องสร้างหมายเลขสุ่มของ Linuxไม่เฉพาะเจาะจงมากขึ้นเช่นกัน มันแสดง: add_disk_randomness(), add_input_randomness()และ add_interrupt_randomness(). functinos เหล่านี้มาจากrandom.cซึ่งรวมถึงความคิดเห็นต่อไปนี้: แหล่งที่มาของการสุ่มจากสภาพแวดล้อมรวมถึงการกำหนดเวลาระหว่างแป้นพิมพ์การกำหนดเวลาการอินเตอร์รัปต์จากบางอินเทอร์รัปต์และเหตุการณ์อื่น ๆ ซึ่งเป็นทั้งสองอย่าง (ก) นอกจากนี้ยังมีฟังก์ชั่นที่add_hwgenerator_randomness(...)ระบุการรองรับสำหรับตัวสร้างหมายเลขสุ่มฮาร์ดแวร์ ข้อมูลทั้งหมดนั้นค่อนข้างคลุมเครือ (หรือในกรณีของซอร์สโค้ดจำเป็นต้องมีความรู้เชิงลึกเกี่ยวกับเคอร์เนล Linux เพื่อทำความเข้าใจ) แหล่งข้อมูลเอนโทรปีที่ใช้จริงคืออะไรและเคอร์เนล Linux สนับสนุนตัวสร้างหมายเลขสุ่มฮาร์ดแวร์ใด ๆ หรือไม่

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