Unix & Linux

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

2
จะแสดงหมายเลขบรรทัดเป็นกลุ่มทางด้านขวาของบัฟเฟอร์ได้อย่างไร
ฉันมีset nuของฉัน.vimrcซึ่งแสดงหมายเลขบรรทัดที่ด้านซ้ายของบัฟเฟอร์ปัจจุบัน ฉันต้องการดูหมายเลขบรรทัดทางด้านขวา ทำอย่างไรจึงจะได้สิ่งนี้? UPDATE: สิ่งนี้ควรใช้ได้กับ set relativenumber
10 linux  vim 

2
ย้ายไฟล์ แต่เมื่อปิดแล้วเท่านั้น
ฉันต้องการย้ายไฟล์ขนาดใหญ่ที่สร้างโดยกระบวนการภายนอกทันทีที่ปิด คำสั่งทดสอบนี้ถูกต้องหรือไม่ if lsof "/file/name" then # file is open, don't touch it! else if [ 1 -eq $? ] then # file is closed mv /file/name /other/file/name else # lsof failed for some other reason fi fi แก้ไข: ไฟล์แสดงชุดข้อมูลและฉันต้องรอจนกว่ามันจะเสร็จสมบูรณ์เพื่อย้ายมันเพื่อให้โปรแกรมอื่นสามารถทำงานกับมันได้ นั่นเป็นเหตุผลที่ฉันจำเป็นต้องทราบว่ากระบวนการภายนอกเสร็จสิ้นด้วยไฟล์หรือไม่

1
สะท้อนความคืบหน้าจากกระบวนการพื้นหลังโดยไม่ต้องไฮแจ็ก
พิจารณาสคริปต์ง่าย ๆhello: #!/bin/bash echo 'hello world!' ตอนนี้จากทุบตีถ้าฉันพยายามเรียกใช้ในพื้นหลัง: $ hello & [1] 12345 $ hello world! █ <--- prompt is stuck here until I hit enter! [1]+ Done $ █ <--- prompt back to normal สิ่งที่ฉันอยากเห็น: $ hello & [1] 12345 [1]+ hello world! [1]+ Done $ █ <--- prompt normal …

1
จะรู้ได้อย่างไรว่า dm-cache ถูกแคชไว้อย่างไร?
ฉันใช้ dm-cache เรียบร้อยแล้วพักหนึ่งแล้ว ตอนนี้ฉันอยากจะรู้ว่าไฟล์ใดที่อยู่ในแคช ฉันเข้าใจว่า dm-cache ใช้งานได้กับบล็อกไม่ใช่ไฟล์ แต่เนื่องจากมีระบบไฟล์ด้านบนจึงควรมีความเป็นไปได้ในทางทฤษฎีในการแปลไฟล์นี้เป็นส่วนต่างๆของแคช แน่นอนฉันสนใจโซลูชันที่ใช้งานได้จริง: ฉันจะแสดงรายการสิ่งที่อยู่ใน dm-cache ได้อย่างไร
10 linux  cache  ssd 

7
วิธีการเรียกใช้ google chrome เป็น root ใน linux
เมื่อฉันต้องการเรียกใช้ google chrome เป็น root ข้อความแสดงข้อผิดพลาดที่มีชื่อนี้จะปรากฏขึ้น: ไม่สามารถเรียกใช้ Google chrome ในฐานะ root และเนื้อหาของข้อความคือ: ในการรันในฐานะรูทคุณต้องระบุ --user-data-dir ทางเลือกสำหรับการจัดเก็บข้อมูลโปรไฟล์ ใครช่วยฉันได้บ้าง

3
คุณจะเพิ่มตัวเลขเป็นอาร์กิวเมนต์บรรทัดคำสั่งได้อย่างไร
ฉันกำลังพยายามเพิ่ม 1 หมายเลขจากบรรทัดคำสั่งและหนึ่งหมายเลขเป็นค่าเริ่มต้น ตัวอย่างเช่น: เมื่อผู้ใช้พิมพ์หมายเลข 50 สคริปต์จะเพิ่ม 10 (เป็นหมายเลขเริ่มต้น) ./script 50 The sum of 50+ 10 is 60. นี่คือสิ่งที่ฉันมี echo -n "Please enter a number: " read number default = 10 sum = $((default + number)) // this line does not seem to work echo "The sum of $number and …
10 bash 

2
cp: ไม่สามารถสถิติ: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
sshฉันได้รับข้อผิดพลาดเมื่อฉันพยายามที่จะคัดลอกไฟล์จากคอมพิวเตอร์ท้องถิ่นของฉันไปยังเซิร์ฟเวอร์ระยะไกลด้วย ฉันได้รับข้อผิดพลาดเหมือนกันไม่ว่าฉันจะใช้หรือcpscp นี่คือข้อมูลของฉันที่เกิดข้อผิดพลาด: [root@xxx.xx.xxx.xx /]# cp /home/username/some.xml root@xxx.xx.xxx.xx:/path/to/directory/ cp: cannot stat ‘/home/username/some.xml’: No such file or directory ฉันตรวจสอบแล้วและมีไฟล์ที่เส้นทาง/home/username/some.xmlบนเครื่องของฉัน CentOS 7ทั้งเครื่องคอมพิวเตอร์และเซิร์ฟเวอร์ระยะไกลกำลังทำงานอยู่ ฉันจะแก้ไขข้อผิดพลาดและคัดลอกได้อย่างไร
10 ssh  centos  cp  scp 

3
ฉันจะรันคำสั่งใน bash หลังจากการเปลี่ยนแปลงใด ๆ ใน $ PWD ได้อย่างไร
zsh มีฟังก์ชั่น hook ที่ดีรวมถึงchpwdการใช้งานฟังก์ชั่นหลังจากผู้ใช้เปลี่ยนไดเรกทอรี # zsh only function greet() { echo 'hi'; } chpwd_functions+=("greet") cd .. # hi pushd # hi popd # hi ฉันพยายามเลียนแบบสิ่งนั้นด้วยการทุบตี ข้อ จำกัด : มันต้องใช้งานได้ทั้งกระสุนแบบโต้ตอบและแบบไม่โต้ตอบซึ่งฉันคิดว่าหมายความว่ามันไม่สามารถพึ่งพาอะไรได้ $PROMPT_COMMAND ไม่สามารถกำหนดใหม่ได้cdเพราะฉันต้องการให้มันทำงานกับคำสั่งใด ๆ ที่เปลี่ยนไดเรกทอรี (เช่นpushdและpopd) มันจะต้องทำงานหลังจากคำสั่งของผู้ใช้ดังนั้นจึงtrap "my_function" DEBUGใช้งานไม่ได้เว้นแต่ฉันจะสามารถพูดได้ที่นั่น "ก่อนอื่นให้$BASH_COMMANDเราติดกับดักจากนั้นก็ทำเช่นนี้ ... " ฉันเห็นว่าฉันสามารถหลีกเลี่ยงการทำงานอัตโนมัติ$BASH_COMMAND หาก extdebugเปิดใช้งานและฟังก์ชั่นการดักจับคืนค่า 1 แต่ฉันไม่คิดว่าฉันต้องการบังคับextdebugและการกลับมา1ใช้คำสั่งที่ประสบความสำเร็จ ส่วนสุดท้าย - "เรียกใช้หลังจากคำสั่งของผู้ใช้" - เป็นสิ่งที่ฉันนิ่งงันในขณะนี้ …
10 bash  hook  pwd 

3
ค้นหาไฟล์ที่ลงท้ายด้วยตัวเลข
ฉันกำลังพยายามสร้างสคริปต์สำรองในขณะที่ล็อกไฟล์มีขนาดใหญ่ขึ้นเรื่อย ๆ สิ่งที่ฉันมีคือจัดการไฟล์ปัจจุบัน (เช่นsecureไฟล์ใน/var/log/) และลบเนื้อหาออกจากไฟล์นั้น แต่มีบางไฟล์ที่มีชื่อเช่นนี้secure.1, secure.2และทั้งหมดนี้ผมชอบที่จะนับพวกเขาและถ้าตัวเลขเป็นใหญ่แล้ว2จะเก็บพวกเขาทั้งหมด ฉันไม่พบวิธีการค้นหาไฟล์นี้หรือนับพวกเขา ความคิดแรกที่เกิดขึ้นกับฉันคือ: find /var/log/ -name *.1 | wc -l และสิ่งนี้จะพิมพ์เสมอ1เนื่องจากมีไฟล์secure.1เดียว ฉันจะนับเช่นเดียวกับในการวนรอบที่ฉันสามารถระบุช่วงของจำนวนเช่น{1..5}หรือคล้ายกันได้ มีวิธีการแยกไฟล์นี้และทำให้พวกเขาเป็นหนึ่งและพวกเขาสำรองหรือลบหรือสิ่งที่เคย ... หรือก่อนอื่นฉันจะหาหมายเลขทั้งหมดนี้ที่ลงท้ายด้วยหมายเลข

2
รีสตาร์ท youtube-dl
ฉันรู้สึกว่าสิ่งนี้ควรเป็นสิ่งที่ง่ายมากที่จะทำ แต่ฉันไม่รู้ว่าจะทำอย่างไร ฉันเพิ่งอัปเดตไฟล์กำหนดค่าสำหรับyoutube-dlและฉันได้อัปเกรดเป็นเวอร์ชันล่าสุดแล้ว ข้อความอัปเดตบอกว่าจะรีสตาร์ทโปรแกรมเพื่อให้การอัปเกรดเสร็จสมบูรณ์ แต่ฉันไม่สามารถรู้ได้ตลอดชีวิตว่าทำอย่างไร เอกสารดังกล่าวไม่ได้ให้คำสั่งในการดำเนินการดังกล่าวและการดำเนินการservice youtube-dl restartส่งคืนสินค้าซึ่งไม่สามารถหาบริการได้ youtube-dl -Uผมติดตั้งโดยใช้วิธีการติดตั้งด้วยตนเองและทำให้การอัพเกรดโดยใช้ ฉันใช้ Ubuntu Server 14.10

3
ใน Bash จะไม่รวมอาร์กิวเมนต์พิเศษในนามแฝงได้อย่างไร
ฉันพยายามทำบางสิ่งเช่น alias ftp='echo do not use ftp. Use sftp instead.' เพียงเพื่อที่ftpจะไม่ถูกใช้โดยไม่ได้ตั้งใจ แต่ฉันสังเกตเห็นว่า ftp abcd.com จะทำให้คำสั่งดังก้อง do not use ftp. Use sftp instead. abcd.com เพราะจะนำไปเป็นข้อโต้แย้งสำหรับabcd.comecho มีวิธีที่จะทำให้ Bash ไม่ได้เพิ่มabcd.comการทดแทนหรือechoไม่ใช้มันเป็นอาร์กิวเมนต์พิเศษหรือไม่? (มีวิธีแก้ปัญหาสำหรับแต่ละวิธีหรือไม่) ฉันคิดว่าฉันสามารถทำได้ alias ftp='sftp' ftpแต่ฉันเพียงแค่ต้องการให้หยุดคำสั่งทั้งหมดเข้าด้วยกันเพื่อเตือนตัวเองไม่ให้ใช้
10 bash  alias  ftp  echo 


3
`dd 'จะถูกนำมาใช้เพื่อบล็อกขวาเปลี่ยนข้อมูลได้อย่างไร?
พิจารณาอุปกรณ์บล็อกดิบ 100MB เป็นตัวอย่างง่ายๆ นั่นคือ 204800 บล็อก 512 ไบต์แต่ละรายการรวมเป็น 102760448 ไบต์ ความท้าทายคือการเปลี่ยน 98MB แรก (200704 บล็อก) ดังนั้นจึงมีช่องว่าง 2MB (4096 บล็อก) ที่ด้านหน้า เมื่อต้องการทำสิ่งนี้ในสถานที่นั้นจะต้องไม่มีสิ่งใดถูกเขียนไปยังเซกเตอร์ที่ยังไม่ได้อ่าน วิธีหนึ่งในการบรรลุเป้าหมายนี้คือการแนะนำบัฟเฟอร์: $ dd if=/dev/sdj2 count=200704 | mbuffer -s 512 -b 4096 -P 100 | dd of=/dev/sdj2 seek=4096 ความคาดหวังคือmbufferจะเก็บบล็อก 4096 ก่อนส่งผ่านสิ่งใดไปยังผู้เขียนดังนั้นให้แน่ใจว่าไม่มีสิ่งใดถูกเขียนไปยังพื้นที่ที่ไม่ได้ถูกอ่านและผู้เขียนล่าช้าผู้อ่านตามขนาดของบัฟเฟอร์ บัฟเฟอร์ควรอนุญาตให้ตัวอ่านและตัวเขียนทำงานเร็วที่สุดเท่าที่จะเป็นไปได้ภายในกลุ่มค่าเหล่านั้น อย่างไรก็ตามดูเหมือนว่าจะไม่สามารถทำงานได้อย่างน่าเชื่อถือ ฉันได้ลองใช้อุปกรณ์จริง แต่มันก็ไม่สามารถใช้งานได้ในขณะที่การทดสอบกับไฟล์ทำงานบนกล่อง 64- บิตของฉัน แต่ไม่ได้อยู่ในกล่อง 32- บิตของฉัน …
10 dd  block-device 

1
วิธีปิดการใช้งานข้อความ“ เวลามีการเปลี่ยนแปลง” ของสแปมใน systemd journal ขณะใช้ sdwdate?
เนื่องจากการใช้ Debian stretch แบบรวมซึ่งใช้ systemd โดยค่าเริ่มต้นและsdwdate (ที่ใช้ตัวปรับนาฬิกาช้า ( gh )) นาฬิการะบบของฉันจึงเปลี่ยนบ่อย ผลjournalctl -fก็คือสแปมโดยไม่รู้จบ [...] Nov 07 13:46:49 host systemd[766]: Time has been changed Nov 07 13:46:50 host systemd[766]: Time has been changed Nov 07 13:46:51 host systemd[766]: Time has been changed [...] นี่ไม่ใช่ปัญหาของเสียงฮือฮา Debian ที่ใช้ sysvinit จะกำหนดค่า systemd เพื่อไม่ส่งTime has …
10 systemd 

3
ฉันจะลบข้อความทั้งหมดระหว่างวงเล็บปีกกาในไฟล์ข้อความหลายบรรทัดได้อย่างไร
ตัวอย่าง: This is { the multiline text file } that wants { to be changed } anyway. ควรเป็น: This is that wants anyway. ฉันพบเธรดที่คล้ายกัน ในฟอรัม แต่ดูเหมือนว่าจะไม่สามารถใช้กับวงเล็บปีกกาแบบหลายบรรทัดได้ ถ้าเป็นไปได้ฉันต้องการวิธีการหนึ่งบรรทัดเช่นโซลูชันที่ใช้ grep, sed, awk ... เป็นต้น แก้ไข: โซลูชั่นดูเหมือนจะตกลง แต่ฉันได้สังเกตเห็นว่าไฟล์ต้นฉบับของฉันรวมถึงการทำเครื่องหมายวงเล็บปีกกา ดังนั้นฉันกำลังเปิดคำถามใหม่ ขอบคุณทุกคน: ฉันจะลบข้อความทั้งหมดระหว่างวงเล็บปีกกาแบบซ้อนในไฟล์ข้อความแบบหลายบรรทัดได้อย่างไร?

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