Unix & Linux

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

1
ทำให้พิมพ์น้อยลงไปที่ stdout หากไฟล์ทั้งหมดสามารถแสดงบนหน้าจอเดียว
เมื่อmoreถูกส่งผ่านไฟล์ที่สามารถแสดงเนื้อหาบนหน้าจอเดียวก็แค่เขียนเนื้อหาของไฟล์ไปยัง stdout โดยไม่ต้องมีเลขหน้า หากไฟล์ไม่สามารถพอดีกับหน้าจอเดียวให้moreแบ่งหน้า lessมีตัวเลือกให้ออกหากไฟล์ที่ทำงานนั้นสามารถแสดงผลบนหน้าจอเดียว ( -F) และมีmoreคุณสมบัติ -emulation ที่ทำงานในลักษณะคล้ายกับ-Fแฟล็ก แต่ตัวเลือกเหล่านี้ดูเหมือนจะไม่ทำให้เกิดlessการเขียนเนื้อหาของไฟล์ เพื่อ stdout หากเนื้อหาสามารถพอดีกับหน้าจอเดียว ฉันlessจะเขียนเนื้อหาของไฟล์เพื่อ stdout ได้อย่างไรถ้าเนื้อหาของไฟล์สามารถพอดีกับหน้าจอเดียวและแบ่งหน้าไฟล์ตามปกติ
13 less  more 

8
ใช้ xdg-open เพื่อเปิด URL ด้วยกระบวนการใหม่
ฉันเริ่มที่จะทดลองกับCrunchbang (ซึ่งจะขึ้นอยู่กับ Debian และใช้เทอร์มิ ) xdg-openเป็นสภาพแวดล้อมการพัฒนาเว็บและหนึ่งในสิ่งที่ฉันกำลังดิ้นรนกับพฤติกรรมของ ฉันมาจากพื้นหลัง OSX ดังนั้นโปรดยกโทษให้ฉันถ้าคำถามนี้ออกมาหนาแน่น ฉันต้องการเปิด url ด้วยxdg-open http://www.google.comและจากนั้นใช้หน้าต่างเทอร์มินัลเดียวกันต่อไปในการทำงาน (เป็นวิธีการopenทำงานใน OSX) ตอนนี้การใช้จะใช้xdg-openแท็บ / เซสชันปัจจุบันจนกว่าฉันจะปิดหน้าต่างเบราว์เซอร์หรือสิ้นสุดสิ่งต่างๆด้วยctrl + cตนเอง ฉันต้องการให้มันเริ่มกระบวนการใหม่ด้วยวิธีที่ฉันสามารถเปิด URL อ้างถึงข้อมูลในหน้านั้นและใช้ในแท็บ / หน้าต่างเดียวกันโดยไม่ต้องเปิดอีกหนึ่งวิธี

3
แยกไฟล์ออกเป็นไฟล์ย่อย ๆ หลาย ๆ ไฟล์แยกกันด้วยสัญลักษณ์ขึ้นบรรทัดใหม่
มียูทิลิตี้ที่แยกไฟล์ด้วยสัญลักษณ์ขึ้นบรรทัดใหม่หรือไม่? เช่นถ้าไฟล์มีบรรทัดต่อไปนี้ aa bbb cccc หากฉันต้องการแยกเป็น 3 ไฟล์ผลลัพธ์ที่ต้องการจะเป็น: aa, bbbและcccc(3 ไฟล์ที่แตกต่างกัน) ฉันตรวจสอบsplitคำสั่งแล้วมันตัดเฉพาะไฟล์ตามขนาดไฟล์ไม่ใช่สิ่งที่ฉันต้องการ หากฉันไม่ได้เขียนโปรแกรมอรรถประโยชน์ด้วยตนเองมีเครื่องมือมาตรฐานที่จะใช้หรือไม่?

3
พิมพ์อักขระอะไรเมื่อกดแป้น Alt + Arrow
เมื่อฉันกดAltUp, Aพิมพ์หน้าจอขั้ว สิ่งเดียวกันเกิดขึ้นเมื่อฉันกดAltDownแต่Bพิมพ์แทน ตัวละครอื่น ๆ ที่ฉันรู้ AltLeft= DและAltRight=C วัตถุประสงค์ของคำสั่งเหล่านี้คืออะไร?

1
สามารถป้องกันการใช้เอนโทรปีที่เริ่มต้นโปรแกรมได้หรือไม่
ฉันใช้ Knoppix (หรือ Live CD / DVD อื่น ๆ ) เป็นสภาพแวดล้อมที่ปลอดภัยสำหรับการสร้างคีย์ crypto ที่มีค่า น่าเสียดายที่เอนโทรปีเป็นทรัพยากรที่มี จำกัด ในสภาพแวดล้อมเช่นนั้น ฉันเพิ่งสังเกตว่าการเริ่มต้นแต่ละโปรแกรมนั้นใช้เอนโทรปีค่อนข้างมาก ดูเหมือนว่าจะเป็นเพราะคุณสมบัติการป้องกันสแต็กบางอย่างที่ต้องการการสุ่มที่อยู่ คุณสมบัติที่ดี แต่ไร้ประโยชน์อย่างสมบูรณ์และ - แย่ลง - ทำลายในสถานการณ์ของฉัน มีความเป็นไปได้ที่จะปิดใช้งานคุณสมบัตินี้หรือไม่? ฉันต้องการรูปที่ทำให้ฉันสามารถใช้ภาพ Knoppix ดั้งเดิม (หรืออะไรก็ได้) ต่อไปและต้องการการกำหนดค่าบางอย่างที่รันไทม์ ฉันอ่านว่านี่เกิดจาก glibc ฉันประหลาดใจที่การstrace -p $PID -f -e trace=openต่อต้านการทุบตีไม่แสดงการเข้าถึง / dev / random ใด ๆ เมื่อฉันเริ่มโปรแกรม แต่ฉันไม่คุ้นเคยกับการโต้ตอบของ execve () และตัวเชื่อมโยง
13 linux  kernel  security 


1
ลบอาร์กิวเมนต์ทั้งหมดในบรรทัดคำสั่ง bash ปัจจุบัน
การใช้^W(unix-word-rubout) ฉันสามารถลบ "word" เดียวจากคำสั่งปัจจุบันใน bash shell ของฉันได้อย่างง่ายดาย อย่างไรก็ตามเมื่อจัดการกับข้อโต้แย้งที่ยกมาที่มีช่องว่าง (หรือข้อโต้แย้งที่ไม่มีเครื่องหมายอัญประกาศที่มีช่องว่างที่หลบหนีแบ็กสแลช) นี้ไม่ได้ทำงานได้ดีเพราะมันจะลบเพียงหนึ่งคำและไม่ใช่อาร์กิวเมนต์ทั้งหมด ดังนั้นฉันกำลังมองหาวิธีลบอาร์กิวเมนต์ทั้งหมด ตัวอย่าง (เคอร์เซอร์อยู่ที่ท้ายเสมอ): $ foo --bar "foo bar" meow [black magic] $ foo --bar "foo bar" [black magic] $ foo --bar [black magic] $ foo
13 bash  readline  inputrc 

2
การให้งาน rsync เสร็จสมบูรณ์หลังจากปิดการเชื่อมต่อ SSH
rsyncฉันกำลังถ่ายโอนเป็นจำนวนมากของไฟล์จากคอมพิวเตอร์เครื่องหนึ่งไปยังอีกที่ใช้ ฉันกำลังทำสิ่งนี้โดย SSHing ในคอมพิวเตอร์ต้นทางและดำเนินการคำสั่งเช่นนี้: sudo rsync ssh --rsync-path="sudo rsync" source_dir user@host.com:dest_dir. แม้ว่าฉันnohupจะเพิ่มก่อนคำสั่งนี้เมื่อใดก็ตามที่ฉันปิดหน้าต่างเทอร์มินัลที่ฉัน SSHed การเชื่อมต่อปิด ฉันจะมีมันได้อย่างไรเพื่อให้การถ่ายโอนไฟล์ของฉันยังคงดำเนินต่อไปเมื่อฉันปิดการเชื่อมต่อ SSH ของฉัน
13 rsync  nohup 

7
ทำให้การใช้ cpu เหมือนเดิมทุกครั้ง
เมื่อฉันรันคำสั่งต่อไปนี้เพื่อรับการใช้งาน cpu ฉันได้รับการใช้งาน cpu ดี + ผู้ใช้ top -b -n1 | grep "Cpu(s)" | awk '{print $2 + $4}' เอาท์พุท: 14.5 ที่นี่ฉันได้รับปัญหาคือผลลัพธ์ขึ้นอยู่กับคำสั่งด้านบนจึงไม่เปลี่ยนทันทีเป็นคำสั่งด้านบน ดังนั้นฉันจึงไม่ได้รับซีพียูที่ถูกต้องทันที มันให้ผลลัพธ์เดียวกันและไม่เปลี่ยนแปลง ฉันต้องการรับ cpuusage แบบเรียลไทม์ โปรดช่วยฉันปรับปรุงคำสั่งของฉัน
13 command-line  cpu 

4
$ {! FOO} และ zsh
${!FOO}ทำการทดแทนสองครั้งในbashความหมายมันใช้ค่า (สตริง) ของ FOO และใช้มันเป็นชื่อตัวแปร zshไม่รองรับคุณสมบัตินี้ มีวิธีที่จะทำให้งานนี้ในเดียวกันbashและzsh? พื้นหลัง: ฉันมีรายการตัวแปรสภาพแวดล้อมเช่น PATH MAIL EDITOR และต้องการพิมพ์ชื่อตัวแปรก่อนหลังจากนั้นค่าของมัน ใช้งานbashได้ แต่ไม่ใช่zsh: for VAR in LIST do echo $VAR echo ${!VAR} done ควรเป็นไปได้ด้วย "วิธีเก่า" ด้วยevalแต่ฉันไม่สามารถทำงาน: for VAR in LIST do echo $VAR echo `eval \$$VAR` done ฉันไม่เคยจะเข้าใจว่าทำไมฉันถึงไม่สามารถทำการทดแทนอย่างลึกซึ้งโดยพลการอย่างเช่น${${VAR}}หรือแม้ว่า${${${VAR}}}จำเป็นต้องมีดังนั้นคำอธิบายสำหรับสิ่งนั้นก็จะดีเช่นกัน

1
รับรายการกระบวนการสำหรับเด็กอย่างหรูหรา
ฉันต้องการรับรายการกระบวนการทั้งหมดที่ผู้ปกครองเป็น $ pid นี่เป็นวิธีที่ง่ายที่สุดที่ฉันเคยทำ: pstree -p $pid | tr "\n" " " |sed "s/[^0-9]/ /g" |sed "s/\s\s*/ /g" มีคำสั่งหรือวิธีที่ง่ายกว่าในการรับรายการกระบวนการลูกหรือไม่? ขอบคุณ!
13 process  ps 

1
gcc รู้ได้อย่างไรว่าติดตั้งบูสเตอร์ไว้ที่ใด
ฉันติดตั้งบูสต์บูสต์โดยใช้sudo apt-get installบน Ubuntu ต่อมาฉันไม่จำเป็นต้องให้ gcc Iธงพร้อมกับเส้นทางไปยังห้องสมุดเพิ่มเพื่อใช้เพิ่ม! ฉันไม่ทำอะไรpkg-config --cflags --libsเลย ความลึกลับที่นี่คืออะไร? gcc จะรู้ได้อย่างไรว่าบูสต์อยู่ที่ไหนและมันเชื่อมโยงกับมันอย่างไรโดยอัตโนมัติ?
13 gcc  libraries  boost 

2
จำลอง chroot ด้วย unshare
ฉันพยายามเขียน bootstrapper เพื่อแจกจ่ายลินุกซ์จากแหล่งที่น้อยที่สุด ฉันต้องการที่จะสร้างในสภาพแวดล้อมที่เหมือน chroot สิ่งนี้ควรทำให้บรรจุภัณฑ์ง่ายขึ้น ฉันไม่สนใจเกี่ยวกับความปลอดภัย ณ จุดนี้ bootstrapper ไม่ควรต้องการคำสั่งของบุคคลที่สามที่ไม่ได้มาตรฐาน มันจะดีมากถ้าไม่จำเป็นต้องรูทเช่นกัน นี่คือเหตุผลที่ fakechroot (1) fakeroot (1) chroot (1) ไม่ใช่สิ่งที่ฉันกำลังมองหา เป็นไปได้หรือไม่ที่จะปลอม / ใช้ unshare (1) และ / bin / sh?

1
เรียนรู้เกี่ยวกับการบันทึกทั่วไป / logrotation บน linux?
สมมติว่าข้าง Apache เว็บเซิร์ฟเวอร์บันทึกฉันไม่เคยมีการติดต่อใด ๆ กับบันทึก (มืออาชีพ) ชนิดใด ๆ ในระบบปฏิบัติการใด ๆ ดังนั้นการเข้าสู่ระบบถึงแม้ว่าฉันจะเข้าใจพื้นฐานบ้างก็เป็นหัวข้อใหม่ทั้งหมด ในขณะนี้การลงทุนเพื่อเรียนรู้อย่างเต็มที่เกี่ยวกับหัวข้อนี้ดูเหมือนจะค่อนข้างใหญ่ แต่ฉันยังไม่รู้ด้วยซ้ำถ้ามันคุ้มค่าที่จะรู้มากขึ้นแนวคิดที่เป็นนามธรรมที่สุด แหล่งข้อมูลใดที่คุณจะแนะนำให้คนที่อยู่ในสถานการณ์นั้นบริโภค (แบบฝึกหัดหน้าคนหนังสือ) เพื่อเรียนรู้เกี่ยวกับการบันทึก บันทึกใดที่ผู้ใช้ Linux ปกติอ่านเป็นรายวัน / รายเดือน ข้อสันนิษฐานนั้นถูกต้องแม้กระทั่งถูกเขียนขึ้นเพื่อความสามารถในการอ่านของมนุษย์หรือโดยทั่วไปแล้วจะมีการประเมินและใช้งานโดยเครื่องมืออื่น ๆ ? ผู้ใช้ปกติและนักพัฒนาซอฟต์แวร์ * nix ควรรู้อะไรเกี่ยวกับบันทึกเหล่านี้ คุณต้องรู้อะไรบ้างเกี่ยวกับการหมุนเวียนบันทึกหากคุณไม่คาดหวังให้จัดการเว็บเซิร์ฟเวอร์ระดับมืออาชีพที่มีกิจกรรมมากมาย

1
วิธีสร้างแฟลชที่สามารถบู๊ตได้สำหรับ“ efi-shell”
ชิปเซ็ตเซิร์ฟเวอร์ Intel ในปัจจุบันมี "efi-shell" ในตัวซึ่งดูเหมือนจะเป็น 'NIX แบบง่ายที่มีชุดคำสั่งที่เหมาะสมสำหรับการจัดการตัวเลือกการบูต UEFI ที่ดี เป็นกรณีที่เครื่องมืออัพเกรดเฟิร์มแวร์ของ Intel บางรุ่นต้องการให้ "efi-shell" ทำงาน น่าเศร้าที่ฉันไม่มีชิปเซ็ตเซิร์ฟเวอร์แม้ว่าบอร์ดนี้จะรองรับการบูท UEFI ก็ตาม The-เปลือก EFI สามารถดาวน์โหลดได้จากhttp://www.sourceforge.net/projects/efi-shell อย่างไรก็ตามฉันไม่พบ ISO ที่สามารถบู๊ตได้หรืออิมเมจอิมเมจที่สามารถบูตได้รูปแบบอื่น ฉันพยายามแฟลชที่สามารถบู๊ตได้unetbootinโดยไม่ประสบความสำเร็จ มีความคิดเกี่ยวกับวิธีที่ฉันจะทำสำเนา efi-shell ที่สามารถบูตได้เพื่อให้ฉันสามารถเรียกใช้การอัพเกรดเฟิร์มแวร์ของ Intel บนการ์ด RAID ของฉันได้อย่างไร
13 shell  boot  uefi 

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