Unix & Linux

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

1
ฉันจะสร้างสถิติอีเมลจากแคชส่วนหัวของ mutt ได้อย่างไร
เมื่อกำหนดค่าตามนั้น ( set header_cache=) mutt จะบันทึกส่วนหัวจดหมายในไฟล์แคช สามารถใช้เพื่อสร้างสถิติเมล มีใครรู้บ้างเกี่ยวกับรูปแบบไฟล์หรือไม่ มีเครื่องมือใดบ้างที่สามารถดึงข้อมูลที่มีอยู่ออกได้หรือไม่? (นอกจากstrings, grep, awkและชอบ)
12 mutt 

2
หนีคำพูดในนามแฝง zsh
จากคำถามนี้เกี่ยวกับการลอกบรรทัดใหม่ออกจากข้อความฉันต้องการเปลี่ยนให้เป็นนามแฝง zsh ดังนี้: alias striplines=' awk " /^$/ {print \"\n\"; } /./ {printf( \" %s \",$0);}"' ฉันได้พยายามหลีกเลี่ยงคำพูดในสคริปต์ awk แต่ฉันได้รับข้อผิดพลาดนี้: awk: (FILENAME=bspsrobustness FNR=1) fatal: division by zero attempted (ไฟล์นี้เรียกว่าbspsrobustness) มีวิธีทำสิ่งที่ฉันต้องการหรือไม่? ฉันคิดว่าฉันสามารถเปลี่ยนให้เป็นสคริปต์ awk แทนที่จะเป็น zsh alias นั่นเป็นตัวเลือกที่ดีที่สุดของฉันหรือไม่
12 shell  zsh  quoting  alias 

4
ฉันจะข้ามไปยังคำถัดไปหรือก่อนหน้าด้วยปุ่มลูกศร CTRL + ในคอนโซลได้อย่างไร
ในแอปพลิเคชั่นการจำลองเทอร์มินัลการกดCTRL+ Left/ Rightลูกศรจะกระโดดจากคำหนึ่งไปยังอีกคำก่อนหน้าหรือถัดไป เป็นไปได้ไหมที่มีการใช้งานเหมือนกันในคอนโซล Linux ไม่ว่าจะเป็นในรูปแบบข้อความหรือในโหมด framebuffer ในการกำหนดค่าของฉันCTRLแป้นลูกศร + จะถูกแปลงเป็นลำดับอักขระที่ใช้ Escape และไม่ตีความ

5
ป้องกันไม่ให้ฮาร์ดไดรฟ์ภายนอก USB เข้าสู่โหมดสลีป
ไม่มีใครรู้ว่ามีวิธีที่สวยงามที่จะบอกไดรฟ์ usb ภายนอกที่จะไม่หมุนลงหลังจากไม่มีการใช้งานเป็นระยะเวลาหนึ่งหรือไม่? ฉันได้เห็นโซลูชันที่ใช้ cron ที่เขียนไฟล์ทุกนาที แต่ไม่มีอะไรที่มีกลิ่นของความสง่างามของยูนิกซ์ที่ดี จะต้องมีคำสั่ง hdparm หรือคำสั่ง scsi ที่ฉันสามารถออกได้ (ไดรฟ์ usb เข้าถึงได้ผ่านทางไดรเวอร์ sd ใน OpenBSD) ไปยังไดรฟ์เพื่อบอกให้ไม่นอน ฉันกลัวว่านี่อาจเป็นคุณสมบัติที่ติดตั้งไว้ในคอนโทรลเลอร์ในกล่องหุ้มและสิ่งนี้ไม่สามารถเปลี่ยนแปลงได้นอกเหนือจากการฉีกไดรฟ์ออกจากกล่องหุ้มและลอกมันเข้าไปในเครื่องโดยตรง แต่ฉันคิดว่าฉันจะถาม เมื่อมีโอกาส เป็นการดีที่ฉันกำลังมองหาวิธีแก้ปัญหา OpenBSD แต่ฉันรู้ว่ามีคนอื่น ๆ ที่นั่นด้วยปัญหาเดียวกันดังนั้นคำตอบใด ๆ จะได้รับการพิจารณาสำหรับคำตอบ

1
จะใช้ DNF เพื่อค้นหารุ่นแพ็คเกจที่มีอยู่ใน Fedora รุ่นอื่นได้อย่างไร
เป็นไปได้ไหมที่จะใช้dnf(หรือยูทิลิตี้อื่น) เพื่อค้นหาที่เก็บของ Fedora รุ่นต่างๆ dnf --showduplicates list <package name>ยกตัวอย่างเช่นในการค้นหารุ่นปัจจุบันของฉันสำหรับทุกรุ่นของแพคเกจที่ฉันสามารถทำได้ เป็นไปได้ไหมที่จะทำบางสิ่งตามแนวของ: dnf --showduplicates list [--fedora29] <package name> อาร์กิวเมนต์[--fedora29]สามารถใช้เพื่อระบุรุ่นของ Fedora ที่ฉันต้องการค้นหาได้ที่ไหน หากไม่สามารถใช้งานdnfได้มีเครื่องมือบรรทัดคำสั่งอื่นที่ฉันสามารถใช้ได้หรือไม่?
12 fedora  repository  dnf 

1
ACPI BIOS Error / AE_NOT_FOUND
ฉันได้รับข้อความแสดงข้อผิดพลาดเหล่านี้ทุกครั้งที่ฉันรีบูตเดสก์ท็อป (และอีกสองสามอย่างฉันไม่ทราบวิธีเก็บรักษาเมื่อปิดเครื่อง แต่สิ่งเหล่านี้ไม่เกี่ยวข้องกับคำถามนี้): [gorre@uplink ~]$ journalctl -p err..alert ... -- Reboot -- May 11 21:47:03 uplink kernel: ACPI BIOS Error (bug): Failure looking up [\_SB.PCI0.RP04.PXSX._SB.PCI0.RP05.PXSX], AE_NOT_FOUND (20180105/dswload2-194) May 11 21:47:03 uplink kernel: ACPI Error: AE_NOT_FOUND, During name lookup/catalog (20180105/psobject-252) May 11 21:47:03 uplink kernel: ACPI Error: Method parse/execution failed \_SB.PCI0.RP04.PXSX, …

2
ทำความเข้าใจกับคำสั่ง shell builtin
ในคู่มือทุบตีมันเขียนไว้ว่า Builtin commands are contained >>> within <<< the shell itself นอกจากนี้คำตอบนี้ระบุว่า A built-in command is simply a command that the shell carries out itself, instead of interpreting it as a request to load and run some >>> other program <<< เมื่อผมทำงานcompgen -bเกี่ยวกับbash 4.4ผมได้รับรายชื่อของเปลือกทั้งหมดในตัวคำสั่ง ฉันเห็นตัวอย่างนั้น[และkillถูกระบุว่าเป็นเชลล์บิวด์อิน แต่สถานที่จริงของพวกเขาคือ: /usr/bin/[ /bin/kill ฉันคิดว่าเป็นbuiltinวิธีที่คำสั่งจะถูกรวบรวมเป็น/bin/bashปฏิบัติการ ดังนั้นสิ่งที่ทำให้ฉันสับสนจริงๆ: …

1
ฉันจะทราบได้อย่างไรว่าบริการ systemctl ของฉันไม่เริ่มทำงานบน CentOS 7
ฉันใช้ CentOS 7 ฉันจะทราบได้อย่างไรว่าเหตุใดบริการไม่สามารถเริ่มต้นได้ ฉันได้สร้างบริการนี้ [rails@server ~]$ sudo cat /usr/lib/systemd/system/nodejs.service [Unit] Description=nodejs server [Service] User=rails Group=rails ExecStart=/home/rails/NodeJSserver/start.sh ExecStop=/home/rails/NodeJSserver/stop.sh [Install] WantedBy=multi-user.target ไฟล์ชี้ไปที่นี้ [rails@server ~]$ cat /home/rails/NodeJSserver/start.sh #!/bin/bash forever start /home/rails/NodeJSserver/server.js ฉันสามารถเรียกใช้ไฟล์นี้ได้ด้วยตัวเอง แต่เมื่อฉันลองเรียกใช้เป็นส่วนหนึ่งของบริการฉันสังเกตว่าเซิร์ฟเวอร์ nodeJS ของฉันไม่เริ่มทำงาน แม้ว่าฉันจะตรวจสอบ "sudo systemctl --state = ล้มเหลว" ฉันไม่เห็นข้อผิดพลาดใด ๆ ... [rails@server ~]$ sudo systemctl enable NodeJSserver [rails@server ~]$ …

3
Bash = ~ regex และ https://regex101.com/
ใช้https://regex101.com/ฉันสร้างนิพจน์ทั่วไปเพื่อส่งคืนที่อยู่ IP แรกในสตริง นิพจน์ทั่วไป: (?:\d{1,3}\.)+(?:\d{1,3}) RegExp รวมถึงตัวคั่น: /(?:\d{1,3}\.)+(?:\d{1,3})/ ด้วยสตริงทดสอบต่อไปนี้: eu-west 140.243.64.99 ส่งคืนการจับคู่แบบเต็มของ: 140.243.64.99 ไม่ว่าฉันจะลองกับสมอหรือไม่ก็ตามสคริปต์ทุบตีต่อไปนี้จะไม่ทำงานกับนิพจน์ทั่วไปที่สร้างขึ้น temp="eu-west 140.243.64.99 " regexp="(?:\d{1,3}\.)+(?:\d{1,3})" if [[ $temp =~ $regexp ]]; then echo "found a match" else echo "No IP address returned" fi

1
ความแตกต่างระหว่างหน่วยความจำทั้งหมดกับหน่วยความจำว่างคืออะไร
ฉันมีระบบเดสก์ท็อปที่ติดตั้ง Centos 7 มันมี 4 คอร์และ 12 GB หน่วยความจำ เพื่อค้นหาข้อมูลหน่วยความจำฉันใช้free -hคำสั่ง ฉันมีหนึ่งความสับสน [user@xyz-hi ~]$ free -h total used free shared buff/cache available Mem: 11G 4.6G 231M 94M 6.8G 6.6G Swap: 3.9G 104M 3.8G ในคอลัมน์รวมว่ากันว่าทั้งหมด 11GB (ถูกต้อง) ในคอลัมน์สุดท้ายที่มีอยู่มันบอกว่า 6.6GB และใช้เป็น 4.6G หากหน่วยความจำที่ใช้คือ 4.6GB ก็จะเหลือ 6.4 GB (11-4.6 = 6.4) การตีความเอาต์พุตที่ถูกต้องคืออะไรความแตกต่างระหว่างผลรวมและที่มีและหน่วยความจำว่างคืออะไร ฉันมีหน่วยความจำไม่เพียงพอถ้าฉันต้องการอีก …
12 linux  memory  ram 

2
คำสั่ง systemctl ไม่ทำงานใน RHEL 6
บน RHEL 7 หรือ CentOS 7 คำสั่ง systemctl หรือ systemd ทำงานได้ดี ฉันรู้ว่ามันจะไม่ทำงานใน RHEL 6 หรือ CentOS 6 คุณสามารถบอกฉันคำสั่งทางเลือกสำหรับการเริ่ม / หยุดบริการตัวอย่างเช่น: systemctl start iptables.service?
12 centos  rhel  services 

4
KDE5 หลังจากดำเนินการต่อจากการหยุดชั่วคราวฉันมีป้ายกำกับที่เสียหายภายใต้ไอคอน
ฉันใช้การกระจายนีออนของ KDE (Ubuntu 16.04 LTS + KDE5 DE ล่าสุด) การหยุดชั่วคราว + ประวัติย่อดูเหมือนว่าจะทำงานบนโน้ตบุ๊กของฉันเป็นส่วนใหญ่ แต่ป้ายกำกับภายใต้ไอคอน (ฉันได้ตั้งค่า "มุมมองโฟลเดอร์" เป็นพื้นหลังในเปลือกพลาสมา) เสียหายเช่นนี้: ที่ไอคอนด้านซ้ายที่เสียหายด้านขวาได้รับการแก้ไขโดยการลากไอคอนไอคอนสองสามพิกเซลแล้วปล่อยให้มันกลับไปที่ตำแหน่งเดิม มองหาฉันมันอาจไม่ใช่ปัญหาไดรเวอร์กราฟฟิก แต่โฟลเดอร์ KDE5 plasma ดูข้อผิดพลาดในการแคช? คำถาม: วิธีการฟื้นฟูเดสก์ทอปทั้งหมดได้อย่างง่ายดาย? เมนู KDE "รีเฟรชเดสก์ท็อป" ไม่ได้ช่วย (ฉันเดาว่ามีบางแคชสำหรับไอคอนและมันไม่ถูกต้อง) วิธีการสร้างรายงานบั๊กคุณภาพสูงชนิดของเอาต์พุตบันทึก / คำสั่งที่คุ้มค่าและที่ใดที่จะเริ่มตามล่ารายงานนี้ ในขณะที่ฉันเขียนโปรแกรมด้วยตัวเองฉันไม่ได้พัฒนา Qt / KDE5 ดังนั้นฉันจึงไม่มีความคิดแม้แต่อย่างเดียวส่วนใดของ KDE ที่รับผิดชอบสิ่งเหล่านี้ซึ่งจะค้นหาข้อผิดพลาดและเครื่องมือที่สามารถวินิจฉัยได้ ดูอย่างรวดเร็วdmesgและ/var/log/Xorg.0.logไม่ก่อให้เกิดสิ่งที่น่าสงสัย lshw -c video *-display description: 3D controller product: GM107M …
12 kde  nvidia  suspend  kde5 

4
ฉันจะดูได้อย่างไรว่าเซอร์วิส systemd เริ่มทำงาน / หยุด / รีสตาร์ทแล้ว?
ฉันมีบริการ (เขียนด้วยตัวเอง) ที่ทำงานบนเซิร์ฟเวอร์ Debian (Jessie) และมีบันทึกของตัวเองบริการเพื่อแสดงว่าเริ่มต้นใหม่ในเวลาใดเวลาหนึ่ง ไม่มีข้อบ่งชี้ของ segfault หรือความผิดพลาดอื่น ๆ ดังนั้นตอนนี้ฉันกำลังพยายามคิดออกว่าแอปพลิเคชันใดๆ ที่ล้มเหลวอย่างเงียบ ๆและได้รับการตอบกลับจาก systemd หรือไม่ว่าผู้ใช้บริการเริ่มต้นใหม่โดยsystemctlตั้งใจ ประวัติเชลล์ไม่แสดงกิจกรรมดังกล่าว แต่ไม่ได้ข้อสรุปเนื่องจากexport HISTCONTROL=ignorebothและเนื่องจากเซสชัน SSH อาจเพิ่งหมดเวลาเพื่อป้องกันไม่ให้ประวัติทุบตีของล็อกอินก่อนหน้านี้ถูกเขียนลงดิสก์ เซิร์ฟเวอร์ไม่รีบูตในเวลานั้น แต่ฉันคาดหวังว่า systemd เองควรเก็บบันทึกที่ระบุเมื่อเริ่มบริการใหม่โดยมีจุดประสงค์ ด้วยความประหลาดใจของฉันฉันไม่สามารถค้นหาเอกสารใด ๆ (เช่นเพื่อjournalctl) เกี่ยวกับวิธีรับบันทึกดังกล่าว บางโพสต์อื่น ๆ (เช่นที่ไหน / ทำไมไม่มีบันทึกสำหรับผู้ใช้บริการ systemd ปกติ? ) ดูเหมือนจะระบุว่าควรมีข้อความบันทึกเช่นนี้: Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Starting chatty.service... Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Started …

4
ค้นหาไฟล์ที่ไม่อยู่ใน. gitignore
ฉันมีคำสั่ง find ที่แสดงไฟล์ในโครงการของฉัน: find . -type f -not -path './node_modules*' -a -not -path '*.git*' \ -a -not -path './coverage*' -a -not -path './bower_components*' \ -a -not -name '*~' ฉันจะกรองไฟล์ได้อย่างไรจึงไม่แสดงไฟล์ที่อยู่ใน. gitignore ฉันคิดว่าฉันใช้: while read file; do grep $file .gitignore > /dev/null && echo $file; done แต่ไฟล์. gitignore สามารถมีรูปแบบ glob (เช่นกันมันจะไม่ทำงานกับพา ธ …
12 grep  find  wildcards  git 

2
ตัวดำเนินการ '#' ที่ด้านหน้าของตัวแปรทำอะไรในการขยายตัวของตัวแปร
ด้านล่างเป็นรหัสที่ฉันเรียกใช้ในเทอร์มินัล [root@idm ~]# x="$(date +%d%m%y)" [root@idm ~]# echo $x 270217 [root@idm ~]# echo ${#x} 6 คนที่สามารถช่วยให้ฉันเข้าใจว่าทำไมออกเป็น6? สิ่ง#สำคัญที่ทำให้ตัวแปรคืออะไร?
12 shell 

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