Unix & Linux

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

4
รับวันที่ของวันสุดท้ายของเดือนที่แล้วในเชลล์สคริปต์
ฉันจะได้รับวันที่สิ้นสุดเดือนก่อนหน้าตามวันที่ประมวลผลได้อย่างไร ตัวอย่าง: วันที่ดำเนินการ = 15jan2015 วันที่คาดหวัง = 31dec2014 วันที่ดำเนินการ = 10feb2015 วันที่คาดหวัง = 31jan2015

3
กำหนดนามแฝงและใช้งานทันที
ในzshการทำงานนี้ได้ดี: alias foo=ls foo แต่นี่ไม่ได้: alias foo=ls; foo การกด Enter เป็นช่วงเวลาพิเศษไม่ใช่ปัญหาเมื่อทำงานแบบโต้ตอบ แต่เมื่อทำงานผ่านsshมันก็กลายเป็นปัญหา: % ssh zsh@server 'alias foo=ls; foo' zsh:1: command not found: foo แม้จะมีการขึ้นบรรทัดใหม่มันก็ไม่ทำงาน: % ssh zsh@server 'alias foo=ls; foo' zsh:2: command not found: foo สิ่งที่แปลกคือzshรู้ว่ามันเป็นนามแฝง: % ssh zsh@server 'alias foo=ls; alias' foo=ls run-help=man which-command=whence จะบอกได้อย่างไรzshว่าชื่อแทนควรใช้งานอยู่?
11 zsh  alias 

6
ลบบรรทัดออกจากไฟล์โดยขึ้นอยู่กับบรรทัดที่พบในไฟล์อื่น
ไฟล์ file1.txt มีบรรทัดเช่น: /api/purchase/<hash>/index.html ตัวอย่างเช่น: /api/purchase/12ab09f46/index.html ไฟล์ file2.csv มีบรรทัดเช่น: <hash>,timestamp,ip_address ตัวอย่างเช่น: 12ab09f46,20150812235200,22.231.113.64 a77b3ff22,20150812235959,194.66.82.11 ฉันต้องการกรอง file2.csv ลบบรรทัดทั้งหมดที่มีค่าแฮชอยู่ใน file1.txt กล่าวได้ว่า: cat file1.txt | extract <hash> | sed '/<hash>/d' file2.csv หรืออะไรทำนองนี้ มันควรจะตรงไปตรงมา แต่ดูเหมือนว่าฉันจะไม่สามารถใช้งานได้ ใครช่วยกรุณาให้ขั้นตอนการทำงานสำหรับงานนี้ได้ไหม


1
วิธีที่ยอมรับได้ของการเริ่ม daemon ในสคริปต์ rhel / centos-6 คืออะไร?
daemonผมพบว่าเอกสารจำนวนมากที่ดีสำหรับอูบุนตูของการเริ่มต้นหยุดภูตและมีหน้าคนสำหรับไบนารี แต่จากสิ่งที่ฉันสามารถบอกวิธีบัญญัติให้เริ่ม daemon ในสคริปต์ rhel / centos คือแหล่งที่มา/etc/init.d/functionsแล้วใช้daemon()ฟังก์ชัน แต่ฉันไม่พบตัวอย่างหรือเอกสารที่ดี วิธีที่ยอมรับได้ของการเริ่ม daemon ในสคริปต์ rhel / centos-6 คืออะไร? ความพยายามครั้งแรกของฉันคือ: #!/bin/bash source /etc/init.d/functions daemon --user USER nohup /path/to/your/binary arg1 arg2 >/dev/null 2>&1 &

4
วิธีแยกสตริงจาก textfile อย่างรวดเร็ว?
ฉันมีไฟล์ข้อความสองไฟล์: string.txt และ lengths.txt String.txt: abcdefghijklmnopqrstuvwxyz lengths.txt 5 4 10 7 ฉันต้องการรับไฟล์ >Entry_1 abcde >Entry_2 fghi >Entry_3 jklmnopqrs >Entry_4 tuvwxyz ฉันทำงานกับ 28,000 รายการและพวกเขาแตกต่างกันระหว่าง 200 และ 56,000 ตัวอักษร ในขณะนี้ฉันกำลังใช้: start=1 end=0 i=0 while read read_l do let i=i+1 let end=end+read_l echo -e ">Entry_$i" >>outfile.txt echo "$(cut -c$start-$end String.txt)" >>outfile.txt let start=start+read_l …

4
พิมพ์หน้าคนที่มีความกว้างคงที่
ด้วยคำสั่งตัวอย่าง man apropos > outputfile ไฟล์ข้อความจะถูกสร้างขึ้นซึ่งมีหน้าที่จัดรูปแบบmanของapropos(มีความแตกต่างเล็กน้อยเกี่ยวกับการman aproposพิมพ์โดยตรงบนหน้าจอเช่นตัวหนา) แต่ฉันต้องการตั้งค่าความกว้างบรรทัดสูงสุดของไฟล์เอาต์พุตที่สร้างขึ้นด้วยตนเองเพื่อให้ย่อหน้าทั้งหมดจะถูกปรับความกว้างนั้น manหน้าถูกสร้างขึ้นผ่านgroff: ตัวอย่างเช่นฉันพยายามวางไว้.ll 50ก่อนหน้าย่อหน้าของไฟล์ต้นฉบับดั้งเดิม.gz manแต่มันก็เล็กน้อยถ้าฉันต้องทำงานกับหลาย ๆmanหน้า ยิ่งไปกว่านั้นตัวละครทุกตัวไม่ได้รับการยอมรับ: apropos.1:45: warning: can't find character with input code 195 apropos.1:45: warning: can't find character with input code 168 apropos.1:47: warning: can't find character with input code 178 apropos.1:131: warning: can't find character with input code 169 …

4
เป็นวิธีที่ชาญฉลาดในการนับจำนวนวันตั้งแต่ X อะไร
ฉันเริ่มทำงานที่ตำแหน่งปัจจุบันของฉันตั้งแต่วันที่ 17 พฤศจิกายน 2014 ฉันอยากจะรู้ว่าตอนนี้ทำงานได้กี่วัน มีความคิดเห็นเกี่ยวกับวิธีการใช้งาน Linux เพื่อหาทางออกที่ง่ายและดีหรือไม่?

2
การเรียกใช้ไบนารี X86 บน armv7
ฉันพยายามเรียกใช้เครื่องพิมพ์ SNBC USB บน Raspberry Pi2 เพื่อที่ฉันต้องคัดลอกไบนารีตัวกรองของเครื่องพิมพ์ USB SNBC /usr/lib/cups/filterไป แต่ไบนารีตัวกรองจะถูกรวบรวมโดยใช้หน่วยประมวลผล x86 (ที่ผู้ผลิตไม่ได้มีความสนใจไปที่แขนสนับสนุน) armv7ซึ่งเท่าที่ผมใช้ ฉันรู้ว่ามันจะไม่ทำงาน /usr/lib/cups/filter/rasterorp3150 failedแต่อยากรู้อยากเห็นฉันพยายามและถ้วยกล่าวว่า ฉันค้นหาวิธีแก้ไขปัญหาบนอินเทอร์เน็ตและผู้คนแนะนำให้ใช้ Qemu แต่มันมีไว้สำหรับแพลตฟอร์ม x86 ที่สมบูรณ์ มีวิธีการแปลงไบนารี x86 เป็นอาร์มไบนารีในวิธีที่ไม่ซับซ้อนหรือไม่? โดยวิธีการแปลงไบนารี x86 โดยใช้hexeditเครื่องมือเป็นarmv7ไบนารีเทียบเท่าเป็นความคิดที่ดี? ( opcodeการแปลง) ถ้าเป็นเช่นนั้นทุกคนสามารถให้ความคิดเกี่ยวกับวิธีการทำมันได้หรือไม่
11 arm  qemu  x86 

3
ไปจาก String ไปยัง Array ของ "words" ใน Bash
ฉันต้องไปจากสตริงไปยังอาร์เรย์ที่แต่ละรายการเป็นแต่ละคำในสตริงนั้น ตัวอย่างเช่นเริ่มต้นด้วย: VotePedro="Vote for Pedro" ฉันต้องการอาร์เรย์: Vote For Pedro ซึ่งฉันควรจะสามารถย้ำกว่าเป็น: for i in "${votePedroArray[@]}" do ## Do something done

1
มีการอัปเดตอย่างไรเร็วกว่าการค้นหามาก
เป็นวิธีการupdatedbเพื่อให้ได้เร็วกว่าfind? นี่คือการเปรียบเทียบเวลาระหว่างupdatedbและfindคำสั่งที่ทำงานคล้ายกัน compare.sh #!/usr/bin/env bash cmd="sudo updatedb" echo $cmd time eval $cmd cmd="sudo find / \ -fstype ext4 \ -not \( \ -path '/afs/*' -o \ -path '/net/*' -o \ -path '/sfs/*' -o \ -path '/tmp/*' -o \ -path '/udev/*' -o \ -path '/var/cache/*' -o \ -path '/var/lib/pacman/local/*' -o \ …
11 find  locate  updatedb 

1
รายการเมนู Centos 7 / Gnome Applications ไม่ตอบสนอง
ฉันมี CentOS 7 ติดตั้งกับ gnome หลังจากเวลาผ่านไปสักครู่ไม่มีรายการใดอยู่ใต้เมนู 'แอปพลิเคชัน' * ฉันสามารถเปิดเมนูและเมนูย่อยและวางเมาส์เหนือรายการด้วยตัวชี้เมาส์ พวกเขาจะเน้นอย่างถูกต้อง แต่พวกเขาไม่ตอบสนองต่อการคลิก รายการต่าง ๆ ไม่ตอบสนองต่อการนำทางแป้นพิมพ์ที่ฉันยังคงสามารถใช้ปุ่มลูกศรเพื่อเลื่อนไปรอบ ๆ เมนูและรายการไฮไลต์ได้ แต่การกดปุ่มenterฯลฯ ไม่ได้เป็นการเปิดแอปพลิเคชัน / เครื่องมือที่เน้น การรีสตาร์ทเครื่องช่วย แต่ดูเหมือนว่าจะเป็นการแก้ปัญหาอย่างหนัก * ยกเว้นรายการ 'ภาพรวมกิจกรรม'
11 centos  gnome  menu 

2
ไม่ต้องลบรูปแบบเริ่มต้นทั้งหมดที่ตรงกันจากบรรทัด
ฉันมีบรรทัดต่อไปนี้: abababtestab ฉันพยายามหาsedนิพจน์เพื่อลบการเกิดขึ้นทั้งหมดabจากจุดเริ่มต้นของบรรทัดดังนั้นบรรทัดที่แปลงควรเป็น: testab ฉันรู้สึกเช่นนี้ควรจะง่าย sedแต่ผมไม่ทราบอะไรเกี่ยวกับ สิ่งที่ฉันมีอยู่คือ: sed 's/^ab//' แต่สิ่งนี้จะลบเฉพาะการเกิดขึ้นครั้งแรกของ ab
11 sed 

3
ฉันควรใช้เครื่องหมายสแลชที่ส่วนท้ายของตัวแปรพา ธ ในเชลล์สคริปต์หรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว วันนี้เมื่อเขียนเชลล์สคริปต์ของฉัน ทันใดนั้นคำถามก็มาถึงใจฉัน ตั้งแต่cd /target_dirและcd /target_dir/ทั้งสองทำงาน ฉันควรเพิ่มเครื่องหมายสแลชที่ส่วนท้ายของตัวแปรพา ธ ของฉันในเชลล์สคริปต์หรือไม่ เช่นเมื่อเทียบกับLOG_PATH=/data/nginx/logsLOG_PATH=/data/nginx/logs/ ฉันทำการค้นหาขั้นต้นบน google แต่ไม่พบการสนทนาเกี่ยวกับสิ่งนี้บางทีมันอาจจะธรรมดาเกินไป สำหรับตอนนี้มันยากสำหรับฉันที่จะตัดสินใจเลือกสไตล์ แต่ฉันชอบLOG_PATH=/target_dir/สไตล์มากกว่านี้ เพราะเมื่อฉันกำลังเติมข้อความอัตโนมัติด้วยการทุบตีมันทำให้ฉันเห็นผลลัพธ์ด้วยเครื่องหมายทับ คุณมีความคิดเห็นเกี่ยวกับเรื่องนี้ทำไม

4
การออกจากเชลล์สคริปต์ด้วยลูปซ้อนกัน
ฉันมีเชลล์สคริปต์ที่มีลูปซ้อนกันและเพิ่งพบว่า "exit" ไม่ได้ออกจากสคริปต์จริงๆ แต่เป็นลูปปัจจุบันเท่านั้น มีวิธีการออกจากสคริปต์อย่างสมบูรณ์ในเงื่อนไขข้อผิดพลาดบางอย่างหรือไม่ ฉันไม่ต้องการใช้ "set -e" เนื่องจากมีข้อผิดพลาดที่ยอมรับได้และจะต้องเขียนใหม่มากเกินไป ตอนนี้ฉันกำลังใช้ kill เพื่อฆ่ากระบวนการด้วยตนเอง แต่ดูเหมือนว่าควรมีวิธีที่ดีกว่าในการทำเช่นนี้
11 bash  shell  scripting  exit 

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