Unix & Linux

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

4
ฉันจะใช้ตัวแปร $ ในการขยายเชลล์ของลำดับได้อย่างไร
ฉันต้องการที่จะใช้$var inการขยายตัวของเปลือกหอยกับช่วงในทุบตี แค่วาง{$var1..$var2}ไม่ได้ดังนั้นฉันจึงไป "ด้านข้าง" ... ผลงานต่อไปนี้ แต่มันเป็น kludge เล็กน้อย # remove the split files echo rm foo.{$ext0..$extN} rm-segments > rm-segments source rm-segments มีวิธี "ปกติ" มากกว่านี้ไหม?

9
คัดลอกอินพุตไปยังคลิปบอร์ดผ่าน SSH หรือไม่
นี่คือกรณีการใช้งานของฉัน: ฉันมักจะเชื่อมต่อกับคอมพิวเตอร์เครื่องอื่นผ่าน SSH เพื่อการทำงานและฉันมักจะต้องคัดลอกและวางเอกสาร / ข้อความจากเซิร์ฟเวอร์ไปยังบรรณาธิการที่ใช้งานในเครื่องเพื่อเขียนตัวอย่างและแบ่งปันข้อความ บ่อยครั้งถ้าข้อความมีขนาดเล็กพอฉันจะคัดลอกผลลัพธ์จากโปรแกรมเทอร์มินัลของฉัน (gnome-terminal ในขณะนี้) และวางไว้ อย่างไรก็ตามเมื่อพูดถึงเอกสารทั้งหมดตัวเลือกของฉันค่อนข้าง จำกัด ฉันสามารถคัดลอกชิ้นเอกสารแบบก้อนหรือscpไปยังเครื่องท้องถิ่น มีวิธีใช้โปรแกรมเช่นxclipที่จะอนุญาตให้ฉันคัดลอกระยะไกลstdinไปยังคลิปบอร์ดของเซิร์ฟเวอร์ X ภายในหรือไม่ สิ่งที่มีผลต่อ: cat myconffile.conf | sed {...} | copy-over-ssh-to-local-clipboard จะน่ากลัว มีบางสิ่งที่จะทำให้สิ่งนี้เป็นจริงได้หรือไม่?
33 ssh  xorg  clipboard 

2
วิธีลบไฟล์ออกจากดัชนี git
ฉันจะลบไฟล์ออกจากดัชนี git repositorie โดยไม่ลบไฟล์จากแผนผังการทำงานได้อย่างไร ถ้าผมมีไฟล์ที่ถูกติดตามโดยคอมไพล์ผมสามารถเรียกใช้./notes.txt git rm notes.txtแต่นั่นจะเป็นการลบไฟล์ ฉันต้องการให้คอมไพล์หยุดการติดตามไฟล์แทน
33 git 

8
การคว้าส่วนขยายในชื่อไฟล์
ฉันจะรับนามสกุลไฟล์จาก bash ได้อย่างไร นี่คือสิ่งที่ฉันพยายาม: filename=`basename $filepath` fileext=${filename##*.} โดยการทำที่ฉันจะได้รับการขยายตัวของbz2จากเส้นทางแต่ฉันมีปัญหากับเส้นทาง/dir/subdir/file.bz2/dir/subdir/file-1.0.tar.bz2 ฉันต้องการโซลูชันที่ใช้ bash เท่านั้นโดยไม่มีโปรแกรมภายนอกถ้าเป็นไปได้ extract path_to_fileเพื่อให้คำถามของฉันล้างผมก็สร้างสคริปต์ทุบตีเพื่อแยกเก็บใดก็ตามเพียงแค่คำสั่งเดียวของ วิธีการแตกไฟล์จะถูกกำหนดโดยสคริปต์โดยดูประเภทการบีบอัดหรือการเก็บถาวรซึ่งอาจเป็น. tar.gz, .gz, .bz2 เป็นต้นฉันคิดว่านี่ควรเกี่ยวข้องกับการจัดการสตริงตัวอย่างเช่นถ้าฉันได้รับการขยาย.gzแล้ว ควรตรวจสอบว่ามันมีสตริง.tarก่อน.gz- .tar.gzถ้าเป็นเช่นนั้นส่วนขยายที่ควรจะเป็น
33 bash  shell  filenames 


6
จะค้นหาไฟล์ที่กำหนดฟังก์ชั่น bash ได้อย่างไร?
ฉันไม่สามารถหาวิธีค้นหาไฟล์ที่กำหนดฟังก์ชั่น bash ( __git_ps1ในกรณีของฉัน) ผมทดลองกับdeclare, type, whichแต่ไม่มีอะไรบอกฉันแฟ้มแหล่งที่มา ฉันอ่านบางแห่งที่declareสามารถพิมพ์ชื่อไฟล์และหมายเลขบรรทัดได้ แต่ก็ไม่ได้อธิบายว่าอย่างไร helpหน้าdeclareไม่ได้บอกว่ามันทั้ง ฉันจะรับข้อมูลนี้ได้อย่างไร?
33 bash 


2
วิธีการเปลี่ยนค่าการหมดเวลาบริการ systemd?
ใน บริษัท ที่ฉันทำงานอยู่ตอนนี้มีบริการแบบดั้งเดิมและสคริปต์เริ่มต้นของมันกำลังใช้ SysvInit รุ่นเก่า แต่ทำงานผ่าน systemd (CentOS 7) เนื่องจากมีการคำนวณจำนวนมากบริการนี้ใช้เวลาประมาณ 70 วินาทีจึงจะเสร็จสิ้น ฉันไม่ได้กำหนดค่าการหมดเวลาสำหรับ systemd และไม่เปลี่ยนการกำหนดค่าเริ่มต้นที่/etc/systemd/system.confแต่เมื่อฉันเรียกใช้service SERVICE stopบริการของฉันหมดเวลาหลังจาก 60 วินาที ตรวจสอบกับjournalctl -b -u SERVICE.serviceฉันพบบันทึกนี้: Sep 02 11:27:46 service.hostname systemd[1]: Stopping LSB: Start/Stop Sep 02 11:28:46 service.hostname SERVICE[24151]: Stopping service: Error code: 255 Sep 02 11:28:46 service.hostname SERVICE[24151]: [FAILED] ฉันได้ลองเปลี่ยนDefaultTimeoutStopSecคุณสมบัติ/etc/systemd/system.confเป็น90sเป็น แต่การหมดเวลายังคงเกิดขึ้น ไม่มีใครมีความคิดใด …

4
ทุบตีรายการไฟล์วนซ้ำยกเว้นเมื่อว่างเปล่า
ฉันคิดว่ามันจะง่าย - แต่มันพิสูจน์ได้ซับซ้อนกว่าที่ฉันคาดไว้ ฉันต้องการวนซ้ำไฟล์ทั้งหมดของชนิดเฉพาะในไดเรกทอรีดังนั้นฉันจึงเขียนสิ่งนี้: #!/bin/bash for fname in *.zip ; do echo current file is ${fname} done ทำงานได้ตราบใดที่มีไฟล์ที่ตรงกันอย่างน้อยหนึ่งไฟล์ในไดเรกทอรี อย่างไรก็ตามหากไม่มีไฟล์ที่ตรงกันฉันจะได้รับสิ่งนี้: current file is *.zip ฉันลองแล้ว: #!/bin/bash FILES=`ls *.zip` for fname in "${FILES}" ; do echo current file is ${fname} done ในขณะที่เนื้อความของลูปไม่ทำงานเมื่อไม่มีไฟล์ฉันได้รับข้อผิดพลาดจาก ls: ls: *.zip: No such file or directory ฉันจะเขียนลูปที่จัดการไม่มีไฟล์ที่ตรงกันได้อย่างหมดจดได้อย่างไร
33 bash  parameter 

4
ฉันจะเปลี่ยน bash prompt เพื่อแสดงไดเร็กตอรี่ทำงานได้อย่างไร?
ฉันสามารถพิมพ์ dir ที่ทำงานในปัจจุบันของฉันเช่นนี้ myPrompt$ pwd /Users/me/myDir ฉันต้องการเปลือกของฉันเป็นแบบนี้ /Users/me/myDir$ pwd /Users/me/myDir เป็นไปได้ไหม ฉันจะทำมันได้อย่างไร
33 bash  osx  prompt 

3
วิธีที่ดีกว่าในการคัดลอกหลายไดเรกทอรีไปยังไดเรกทอรีใหม่
มีวิธีที่ดีกว่าในบรรทัดคำสั่งเพื่อให้บรรลุต่อไปนี้เป็นหลัก แต่ด้วยคำสั่งเดียว cp -r css/ ar/ cp -r images/ ar/ cp -r js/ ar/ cp -r backups/ ar/ ฉันเพิ่งจะคบพวกเขาพร้อมกับอัฒภาค

2
วิธีป้อนอักขระที่ไม่ใช่ ASCII โดยใช้รหัสฐานสิบหกหรือฐานแปดใน vi
ฉันกำลังพยายามเขียนห้องสมุดสำหรับตีกอล์ฟ แต่จะต้องย่อตัวเอง ดังนั้นฉันต้องการวิธีที่สะดวกในการพิมพ์ไบต์โดยพลการภายในข้อความ ASCII ส่วนใหญ่ ฉันรู้ว่าสิ่งนี้สามารถทำได้อย่างง่ายดายด้วยภาษาการเขียนโปรแกรมใด ๆ แต่ฉันสามารถทำได้ใน vi? ( :help octalไม่มีความช่วยเหลือ) แก้ไข:นี่คือที่เกิดห้องสมุดกอล์ฟสำหรับ ป.ล. โชคดีที่ฉันรู้ตั้งแต่เนิ่น ๆ ว่าการเล่นกอล์ฟในห้องสมุดนั้นเป็นความคิดที่โง่และฉันก็ไม่ได้ทำเช่นนั้น
33 vim  binary 


7
จะปิด X Server ได้อย่างไรเพื่อหลีกเลี่ยงข้อผิดพลาดขณะอัพเดทไดรเวอร์ nVidia
ฉันพยายามอัปเดตไดรเวอร์ nVidia ของฉัน แต่ฉันพบข้อผิดพลาดเมื่อฉันติดตั้งไดรเวอร์ ดูข้อผิดพลาด: ข้อผิดพลาด: ดูเหมือนว่าคุณกำลังใช้งานเซิร์ฟเวอร์ X อยู่ โปรดออกจาก X ก่อน การติดตั้ง สำหรับรายละเอียดเพิ่มเติมโปรดดูในส่วนการติดตั้ง NVIDIA DRIVER ใน README มีอยู่ในไดรเวอร์ Linux หน้าดาวน์โหลดที่ www.nvidia.com หมายเหตุ: ฉันลองทำตามคำแนะนำโดยพิมพ์init 3แต่ยังไม่มีอะไรเปลี่ยนแปลง .. จะปิดเซิร์ฟเวอร์ X ได้อย่างไร? ดังนั้นฉันสามารถอัปเดตไดรเวอร์

3
ป้องกันบานหน้าต่าง / หน้าต่างจากการปิดเมื่อคำสั่งเสร็จสมบูรณ์ - tmux
ในtmux.confไฟล์ของฉันฉันได้รับการกำหนดค่าให้เปิดหน้าต่างตั้งชื่อพวกเขาตั้งค่าบานหน้าต่าง ฯลฯ ฯลฯ อย่างไรก็ตามสิ่งหนึ่งที่ฉันมีคือถ้าหนึ่งในบานหน้าต่างเรียกคำสั่งสมมติว่าlsบานหน้าต่างจะปิดตัวเองหลังจากคำสั่งเสร็จสิ้น (ทันที) มีวิธีป้องกันพฤติกรรมนี้หรือไม่? หรือปล่อยมันไปที่เปลือกปกติหลังจากคำสั่งเสร็จสมบูรณ์? ฉันสมมติว่าฉันต้องเริ่มเชลล์ -> execute คำสั่งเมื่อบานหน้าต่างเปิดตัว แต่ฉันจะถูกสาปถ้าฉันสามารถหาวิธีได้ ฉันแก้ปัญหานี้ไปเล็กน้อยแล้ว
33 tmux 

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