Unix & Linux

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

17
รับ tmux เพื่อคัดลอกบัฟเฟอร์ไปยังคลิปบอร์ด
ฉันกำลังพยายามหาวิธีที่เหมาะสมในการคัดลอกสิ่งที่ฉันมีในบัฟเฟอร์ tmux ลงในคลิปบอร์ดของฉัน ฉันได้ลองทำหลายสิ่งหลายอย่างเช่น bind-key p select-pane -t 2 \; split-window 'xsel -i -b' \; paste-buffer สิ่งที่ทำให้ฉันเข้าใกล้อย่างเป็นธรรมสิ่งที่ฉันต้องทำคือกดควบคุม -d หลังจากที่ฉันทำคำนำหน้า -p ฉันพยายามแก้ไขโดยทำ bind-key p select-pane -t 2 \; split-window 'xsel -i -b << HERE\; tmux paste-buffer\; echo HERE' แต่นั่นไม่ได้ผล อันที่จริงถ้าฉันจับคู่สิ่งนี้กับ bind-key p select-pane -t 2 \; split-window 'xsel -i -b << …

12
ฉันจะย้ายไฟล์และดูความคืบหน้าได้อย่างไร (เช่นด้วยแถบความคืบหน้า)
เมื่อย้ายไดเรกทอรีขนาดใหญ่ที่ใช้mvมีวิธีดูความคืบหน้า (%) หรือไม่ cpคำสั่งบน Gentoo มี-gสวิทช์ที่แสดงให้เห็นความคืบหน้า

4
เครื่องหมายแอมเปอร์แซนด์หมายถึงอะไรในตอนท้ายของเชลล์สคริป
sh sys-snap.sh & คือshอะไร คือsys-snap.shอะไร ทำไมฉันถึงต้องวางไว้&ที่ท้ายบรรทัด? ทุกคนสามารถอธิบายไวยากรณ์ได้หรือไม่ โดยไม่ต้อง&สคริปต์ที่จะไม่กลับไปที่พรอมต์จนฉันกด+Ctrl Cด้วย&ฉันสามารถกด Enter และใช้งานได้
118 shell 

4
วัตถุประสงค์ของการใช้ shift ในเชลล์สคริปคืออะไร?
ฉันเจอสคริปต์นี้แล้ว: #! /bin/bash if (( $# < 3 )); then echo "$0 old_string new_string file [file...]" exit 0 else ostr="$1"; shift nstr="$1"; shift fi echo "Replacing \"$ostr\" with \"$nstr\"" for file in $@; do if [ -f $file ]; then echo "Working with: $file" eval "sed 's/"$ostr"/"$nstr"/g' $file" > $file.tmp …

7
ส่งผ่านเอาต์พุตของคำสั่งก่อนหน้าไปยังอาร์กิวเมนต์
ฉันคำสั่งที่ส่งออกข้อมูลไปยัง stdout ( command1 -p=aaa -v=bbb -i=4) บรรทัดเอาต์พุตสามารถมีค่าต่อไปนี้: rate (10%) - name: value - 10Kbps ฉันต้องการ grep ผลลัพธ์นั้นเพื่อเก็บ 'rate' (ฉันเดาว่า pipe จะมีประโยชน์ที่นี่) และสุดท้ายฉันต้องการให้อัตรานั้นเป็นค่าของพารามิเตอร์ในคำสั่งที่สอง (สมมุติว่าcommand2 -t=${rate}) ดูเหมือนว่าจะเป็นเรื่องยุ่งยากในด้านของฉัน ฉันต้องการทราบวิธีการใช้ท่อ, grep, sed และอื่น ๆ ที่ดีกว่า ฉันได้ลองชุดค่าผสมจำนวนมากเช่นนั้นมาแล้ว แต่ฉันรู้สึกสับสนกับสิ่งเหล่านี้: $ command1 -p=aaa -v=bbb -i=4 | grep "rate" 2>&1 command2 -t="rate was "${rate}

5
วัตถุประสงค์ของคำสั่งแฮชคืออะไร?
หากคุณเรียกใช้hashจะแสดงเส้นทางของคำสั่งทั้งหมดที่เรียกใช้นับตั้งแต่แฮชถูกรีเซ็ตล่าสุด ( hash -r) [root@c04c ~]# hash hash: hash table empty [root@c04c ~]# whoami root [root@c04c ~]# hash hits command 1 /usr/bin/whoami [root@c04c ~]# whoami root [root@c04c ~]# hash hits command 2 /usr/bin/whoami ตามหน้า man วัตถุประสงค์ของการแฮชคือ: ยูทิลิตี / usr / bin / hash มีผลต่อวิธีที่สภาพแวดล้อมเชลล์ปัจจุบันจดจำตำแหน่งของยูทิลิตีที่พบ ขึ้นอยู่กับอาร์กิวเมนต์ที่ระบุจะเพิ่มตำแหน่งยูทิลิตี้ในรายการของตำแหน่งที่จดจำหรือลบล้างเนื้อหาของรายการ เมื่อไม่มีการระบุอาร์กิวเมนต์มันจะรายงานเนื้อหาของรายการ -rตัวเลือกที่เป็นสาเหตุของเปลือกจะลืมสถานที่จำได้ทั้งหมด ยูทิลิตี้ที่ให้มาเป็นบิวด์อินกับเชลล์จะไม่ถูกรายงานโดยแฮช อื่น ๆ …
118 bash  history 

1
วิธีที่แนะนำในการคัดลอกการเปลี่ยนแปลงด้วย vimdiff คืออะไร
เมื่อเปรียบเทียบไฟล์และอัปเดตที่เก็บซอร์สโค้ดฉันชอบใช้ vimdiff หากต้องการคัดลอกการเปลี่ยนแปลงที่ทำจากไฟล์หนึ่งไปยังอีกไฟล์หนึ่งฉันมักจะใช้ลำดับคีย์ดังนี้: - Shift + V (select line) k or j; { or }; Up or down arrow keys (select more lines) y (copy selected lines) Ctrl + w, left/right arrow (move to other pane) p (paste lines) เป็นกลุ่มของแป้นพิมพ์ลัดควรมีวิธีที่ง่ายกว่าในการทำงานเดียวกันนี้ มีไหม คุณใช้อะไรเพื่ออัปเดตการเปลี่ยนแปลงซอร์สโค้ดด้วยตนเอง
117 vim  diff 

1
แนบกับหน้าต่างที่แตกต่างกันในเซสชั่น
ฉันมีเซสชั่น tmux ที่ค่อนข้างง่ายใช้กับ windows ที่เปิดอยู่สองตัว หนึ่งในนั้นสำหรับการแฮ็กในท้องถิ่นและหนึ่งในนั้นสำหรับการทำงาน สิ่งที่ฉันต้องการทำคือเพียงแค่เชื่อมต่อกับหน้าต่างแฮ็คในขณะที่เปิดหน้าต่างการทำงานในเทอร์มินัลอื่น อย่างไรก็ตามทันทีที่ฉันเชื่อมต่อกับ tmux คำสั่งทั้งหมดจะถูกส่งไปยังหน้าต่างทั้งสองดังนั้นถ้าฉันสลับไปที่หน้าต่างอื่นสิ่งเดียวกันจะเกิดขึ้นในเทอร์มินัลอื่นและในทางกลับกัน มีวิธีให้ฉันเพียงแค่เชื่อมต่อกับแต่ละหน้าต่างแยกกันหรือไม่?
117 tmux 

6
ฉันจะเรียกใช้งาน 'date' ภายในงาน cron tab ได้อย่างไร?
ฉันต้องการสร้างไฟล์บันทึกสำหรับสคริปต์ cron ที่มีชั่วโมงปัจจุบันในชื่อไฟล์บันทึก นี่คือคำสั่งที่ฉันพยายามใช้: 0 * * * * echo hello >> ~/cron-logs/hourly/test`date "+%d"`.log น่าเสียดายที่ฉันได้รับข้อความนี้เมื่อทำงาน: /bin/sh: -c: line 0: unexpected EOF while looking for matching ``' /bin/sh: -c: line 1: syntax error: unexpected end of file ฉันพยายามหนีdateส่วนต่างๆด้วยวิธีต่าง ๆ แต่ไม่มีโชคมาก เป็นไปได้ไหมที่จะทำให้สิ่งนี้เกิดขึ้นแบบอินไลน์ในไฟล์ crontab หรือฉันจำเป็นต้องสร้างเชลล์สคริปต์เพื่อทำสิ่งนี้?

7
การใช้ตัวดำเนินการไม่เท่ากันสำหรับการเปรียบเทียบสตริง
ฉันพยายามตรวจสอบว่าPHONE_TYPEตัวแปรมีหนึ่งในสามค่าที่ถูกต้อง if [ "$PHONE_TYPE" != "NORTEL" ] || [ "$PHONE_TYPE" != "NEC" ] || [ "$PHONE_TYPE" != "CISCO" ] then echo "Phone type must be nortel,cisco or nec" exit fi รหัสด้านบนใช้งานไม่ได้สำหรับฉันดังนั้นฉันจึงลองทำสิ่งนี้แทน: if [ "$PHONE_TYPE" == "NORTEL" ] || [ "$PHONE_TYPE" == "NEC" ] || [ "$PHONE_TYPE" == "CISCO" ] then …

7
เหตุใดค้นหา -mtime +1 จึงส่งคืนไฟล์ที่เก่ากว่า 2 วันเท่านั้น
ฉันดิ้นรนที่จะปิดใจว่าทำไมการfindตีความหมายถึงการปรับเปลี่ยนไฟล์เป็นเท่าที่ควร โดยเฉพาะฉันไม่เข้าใจว่าทำไมไฟล์-mtime +1จึงไม่แสดงน้อยกว่า 48 ชั่วโมง เป็นตัวอย่างการทดสอบฉันสร้างสามไฟล์ทดสอบที่มีวันที่แก้ไขแตกต่างกัน: [root@foobox findtest]# ls -l total 0 -rw-r--r-- 1 root root 0 Sep 25 08:44 foo1 -rw-r--r-- 1 root root 0 Sep 24 08:14 foo2 -rw-r--r-- 1 root root 0 Sep 23 08:14 foo3 จากนั้นฉันก็วิ่งไปหา-mtime +1สวิตช์และได้ผลลัพธ์ต่อไปนี้: [root@foobox findtest]# find -mtime +1 ./foo3 จากนั้นฉันก็วิ่งไปหา-mmin +1440และได้ผลลัพธ์ต่อไปนี้: [root@foobox …
117 find  timestamps 

3
ทำไม“ echo” เร็วกว่า“ touch” มาก?
ฉันพยายามอัปเดตการประทับเวลาเป็นเวลาปัจจุบันของไฟล์ xml ทั้งหมดในไดเรกทอรีของฉัน (เรียกซ้ำ) ฉันใช้ Mac OSX 10.8.5 ในไฟล์ประมาณ 300,000 echoคำสั่งต่อไปนี้ใช้เวลา10 วินาที : for file in `find . -name "*.xml"`; do echo >> $file; done อย่างไรก็ตามtouchคำสั่งต่อไปนี้ใช้เวลา10 นาที ! : for file in `find . -name "*.xml"`; do touch $file; done ทำไมเสียงก้องเร็วกว่าการสัมผัสที่นี่มาก?
116 shell  command  echo 

5
ฉันสามารถเปลี่ยนเส้นทางผลลัพธ์ไปยังล็อกไฟล์และสร้างกระบวนการในเวลาเดียวกันได้หรือไม่?
ฉันสามารถเปลี่ยนเส้นทางผลลัพธ์ไปยังล็อกไฟล์และสร้างกระบวนการในเวลาเดียวกันได้หรือไม่? กล่าวอีกนัยหนึ่งฉันสามารถทำสิ่งนี้ได้ไหม nohup java -jar myProgram.jar 2>&1 > output.log & หรือว่าไม่ใช่คำสั่งทางกฎหมาย? หรือฉันต้องย้ายมันไปที่พื้นหลังด้วยตนเองเช่น: java -jar myProgram.jar 2>$1 > output.log jobs [CTRL-Z] bg 1
116 bash  shell  shell-script 

3
ฉันจะรันสคริปต์โลคัลบนเครื่องรีโมตและรวมอาร์กิวเมนต์ได้อย่างไร?
ฉันได้เขียนสคริปต์ที่ทำงานได้ดีเมื่อดำเนินการภายใน: ./sysMole -time Aug 18 18 อาร์กิวเมนต์"-time" , "Aug" , "18"และ"18"ถูกส่งผ่านไปยังสคริปต์ได้สำเร็จ ตอนนี้สคริปต์นี้ได้รับการออกแบบให้ทำงานบนเครื่องระยะไกล แต่จากไดเรกทอรีท้องถิ่นในเครื่องท้องถิ่น ตัวอย่าง: ssh root@remoteServer "bash -s" < /var/www/html/ops1/sysMole ที่ยังใช้งานได้ดี แต่ปัญหาเกิดขึ้นเมื่อฉันพยายามที่จะรวมข้อโต้แย้งดังกล่าว(- เวลา 18 สิงหาคม 18)ตัวอย่างเช่น: ssh root@remoteServer "bash -s" < /var/www/html/ops1/sysMole -time Aug 18 18 หลังจากรันสคริปต์นั้นฉันได้รับข้อผิดพลาดต่อไปนี้: bash: cannot set terminal process group (-1): Invalid argument bash: no job control …

12
วิธี XZ ไดเรกทอรีที่มี TAR โดยใช้การบีบอัดสูงสุด?
ดังนั้นฉันต้องบีบอัดไดเรกทอรีด้วยการบีบอัดสูงสุด ฉันจะทำอย่างไรกับมันxz? ฉันหมายความว่าฉันจะต้องเกินไปเพราะฉันไม่สามารถบีบอัดไดเรกทอรีที่มีเพียงtar xzมีผู้ประกอบการผลิตเองfoo.tar.xzหรือไม่?

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