Unix & Linux

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

5
หางอ่านไฟล์ทั้งหมดหรือไม่?
หากฉันต้องการtailไฟล์ข้อความ 25 GB tailคำสั่งจะอ่านไฟล์ทั้งหมดหรือไม่ เนื่องจากไฟล์อาจกระจายอยู่ในดิสก์ฉันคิดว่ามันมี แต่ฉันไม่เข้าใจ internals ดี
113 tail 

3
มีแบบแผนการตั้งชื่อตัวแปรในเชลล์สคริปต์หรือไม่
MY_VARIABLE=fooภาษาส่วนใหญ่จะมีการตั้งชื่ออนุสัญญาสำหรับตัวแปรสไตล์ที่พบมากที่สุดที่ฉันเห็นในเชลล์สคริปต์คือ นี่เป็นอนุสัญญาหรือเป็นเพียงตัวแปรส่วนกลางเท่านั้น สิ่งที่เกี่ยวกับตัวแปรท้องถิ่นสคริปต์?

7
การเปลี่ยนเส้นทาง stdout ไปยังไฟล์ที่คุณไม่ได้รับอนุญาตให้เขียน
เมื่อคุณพยายามแก้ไขไฟล์โดยไม่ได้รับอนุญาตให้เขียนคุณจะได้รับข้อผิดพลาด: > touch /tmp/foo && sudo chown root /tmp/foo > echo test > /tmp/foo zsh: permission denied: /tmp/foo Sudoing ไม่ได้ช่วยเพราะมันรันคำสั่งในฐานะ root แต่เชลล์จัดการการเปลี่ยนเส้นทาง stdout และเปิดไฟล์เหมือนคุณ > sudo echo test > /tmp/foo zsh: permission denied: /tmp/foo มีวิธีง่าย ๆ ในการเปลี่ยนเส้นทาง stdout ไปยังไฟล์ที่คุณไม่ได้รับอนุญาตให้เขียนนอกจากเปิดเชลล์เป็นรูทและจัดการไฟล์ด้วยวิธีนี้หรือไม่? > sudo su # echo test > /tmp/foo

12
diff ภายในหนึ่งบรรทัด
ฉันมี sql dumps ที่ฉันกำลังดูความแตกต่างระหว่าง diffเห็นได้ชัดว่าสามารถแสดงความแตกต่างระหว่างสองบรรทัดได้ แต่ฉันผลักดันตัวเองให้พยายามค้นหาว่าค่าใดในรายการค่าที่คั่นด้วยเครื่องหมายจุลภาคอันที่จริงแล้วคือค่าที่ทำให้เส้นแตกต่างกัน เครื่องมือใดที่ฉันสามารถใช้เพื่อชี้ให้เห็นความแตกต่างของอักขระที่แน่นอนระหว่างสองบรรทัดในไฟล์บางไฟล์
113 command-line  diff 

2
เป็นกลุ่มภูมิคุ้มกันเพื่อคัดลอกวางโจมตี?
คุณควรจะไม่เคยวางจากเว็บไปยังสถานีของคุณ คุณควรวางลงในโปรแกรมแก้ไขข้อความแทนตรวจสอบคำสั่งแล้ววางลงในเทอร์มินัล ไม่เป็นไร แต่ถ้าฉันเป็นตัวแก้ไขข้อความแล้วล่ะ? หนึ่งสามารถปลอมเนื้อหาที่เปลี่ยนเป็นกลุ่มคำสั่งโหมดและดำเนินการคำสั่งที่เป็นอันตรายหรือไม่

6
หาก Linux เป็นเพียงเคอร์เนลดังนั้นรุ่นแรกที่ใช้ (ไม่มีการแจกจ่าย) เป็นอย่างไร
ลีนุกซ์เป็นเพียงเคอร์เนลและหากผู้ใช้ต้องการใช้งานพวกเขาก็ต้องการการกระจายที่สมบูรณ์ ที่ถูกกล่าวว่ารุ่นแรกของ Linux ใช้อย่างไรเมื่อไม่มีการแจกแจง Linux?

7
มีการสร้างไฟล์“ / dev” Linux อย่างไร
มีไฟล์พิเศษใน Linux ที่ไม่ใช่ไฟล์จริงๆ ตัวอย่างที่เด่นที่สุดและชัดเจนที่สุดของเหล่านี้อยู่ในdevโฟลเดอร์ "files" ที่ชอบ: /dev/null - ละเว้นสิ่งที่คุณเขียนไปยังไฟล์ /dev/random - ส่งออกข้อมูลแบบสุ่มแทนเนื้อหาของไฟล์ /dev/tcp - ส่งข้อมูลใด ๆ ที่คุณเขียนไปยังไฟล์นี้ผ่านเครือข่าย ก่อนอื่นชื่อของไฟล์ "ประเภท" เหล่านี้ที่เป็นประเภทของสคริปต์หรือไบนารีในการปลอมตัวคืออะไร? ประการที่สองพวกเขาสร้างอย่างไร ไฟล์เหล่านี้สร้างขึ้นในระบบในระดับเคอร์เนลหรือมีวิธีในการสร้าง "ไฟล์มายากล" ด้วยตัวคุณเอง (เป็น/dev/rickrollอย่างไร)
112 linux  files  devices 

4
ฉันจะทำ ls แล้วเรียงลำดับผลลัพธ์ตามวันที่สร้างได้อย่างไร
วันที่สั่งซื้อจะเรียงลำดับตามอะไร ลำดับตัวอักษรและตัวเลขไม่แน่นอน ls -ltเรียงลำดับตามเวลาที่แก้ไข แต่ฉันต้องการเวลาในการสร้าง
112 files  ls  timestamps 

1
มีวิธีการเปลี่ยนเส้นทางการส่งออก nohup ไปยังไฟล์บันทึกอื่นที่ไม่ใช่ nohup.out หรือไม่?
ฉันใช้โปรแกรมเป็นประจำnohupเพื่อให้กระบวนการของฉันไม่ติดแฮงค์ ดังนั้นหากฉันต้องการให้โปรแกรมมีprogramภูมิคุ้มกันต่อการแฮงค์ฉันจะใช้คำสั่ง nohup program & ที่&ทำให้กระบวนการในพื้นหลัง เมื่อเริ่มต้นnohupให้ข้อความแก่ฉัน: nohup: ผนวกเอาต์พุตไปที่ `nohup.out ' มีวิธีการส่งออกไปยังไฟล์อื่นที่ไม่ใช่nohup.out? บ่อยครั้งที่ฉันต้องการเรียกใช้กระบวนการจำนวนมากในไดเรกทอรีเดียวกันโดยใช้nohupแต่ถ้าฉันทำสิ่งนี้ผลลัพธ์ทั้งหมดจะถูกรวมเข้าด้วยกันในnohup.outไฟล์เดียว หน้าคู่มือ (เช่นที่นี่ ) ดูเหมือนจะไม่มีตัวเลือกในการระบุไฟล์บันทึก คุณกรุณายืนยันสิ่งนี้ได้ไหม นอกจากนี้คุณมีความคิดว่าฉันจะแก้ไขปัญหานี้ได้อย่างไร?

4
วิธีคัดลอกผสานสองไดเรกทอรี?
ฉันมีสองภาพไดเรกทอรีและ images2 กับโครงสร้างนี้ใน Linux: /images/ad /images/fe /images/foo ... และอีก 4,000 โฟลเดอร์ และอื่น ๆ ที่เป็นเช่น: /images2/ad /images2/fe /images2/foo ... และอีก 4,000 โฟลเดอร์ แต่ละโฟลเดอร์เหล่านี้มีรูปภาพและชื่อไดเรกทอรีภายใต้รูปภาพและ images2 เหมือนกันทุกประการอย่างไรก็ตามเนื้อหาในโฟลเดอร์นั้นแตกต่างกัน จากนั้นฉันอยากรู้ว่าฉันสามารถคัดลอกภาพของ / images2 / ad ลงใน images / ad ได้อย่างไรรูปภาพของ / images2 / foo ลงใน images / foo และอื่น ๆ ด้วยโฟลเดอร์ทั้งหมด 4000 โฟลเดอร์ ..

10
ฉันจะเขียนตรรกะลองใหม่ในสคริปต์เพื่อลองอีกครั้งเพื่อให้ทำงานได้ถึง 5 ครั้งได้อย่างไร
ฉันต้องการเขียนตรรกะในเชลล์สคริปต์ซึ่งจะลองอีกครั้งเพื่อให้ทำงานอีกครั้งหลังจาก 15 วินาทีนานถึง 5 ครั้งโดยอ้างอิงจาก"status code = FAIL"หากล้มเหลวเนื่องจากปัญหาบางอย่าง
112 shell-script 

6
Linux จัดการตัวคั่นพา ธ หลายตัวต่อเนื่องกันอย่างไร (ไฟล์ / home //// ชื่อผู้ใช้ ///)?
ฉันกำลังทำงานกับสคริปต์หลามที่ส่งผ่านตำแหน่งไฟล์ไปยังกระบวนการย่อย scp ไม่เป็นไร แต่ฉันอยู่ในสถานการณ์ที่ฉันอาจจะต่อท้ายชื่อพา ธ ที่มีชื่อไฟล์ว่ามีสองครั้ง/ในเส้นทาง ฉันรู้ว่าทุบตีไม่สนใจว่าคุณมีหลายตัวคั่นไฟล์ แต่ฉันสงสัยว่ามันถูกแก้ไข มันทุบตีที่แถบพิเศษ/หรือมันไม่สำคัญว่าเคย? ฉันถามเพราะมันจะช่วยฉันรหัสหลายบรรทัดเพื่อตรวจสอบ/s พิเศษในขณะที่เรียงต่อกัน ฉันรู้ว่ามันไม่ใช่เรื่องใหญ่ แต่ฉันก็อยากรู้อยากเห็นเช่นกัน ฉันมีสคริปต์ทุบตีที่มีบรรทัดcd //usr(แทนcd /usr) ซึ่งดูเหมือนจะบอกเป็นนัยว่าอาจมีความสำคัญในการใช้หลาย/s ในเส้นทาง

20
วิธีที่เร็วที่สุดในการส่งข้อมูลจำนวนมากระหว่างคอมพิวเตอร์สองเครื่องคืออะไร [ปิด]
นี่เป็นสถานการณ์ที่ฉันพบบ่อยใน: ฉันมีเซิร์ฟเวอร์ต้นทางที่มีฮาร์ดไดรฟ์ 320GB อยู่ภายในนั้นและ RAM 16 GB ( รายละเอียดที่แน่นอนมีให้ที่นี่แต่เนื่องจากนี่เป็นปัญหาที่ฉันพบบ่อยในเครื่องอื่นเช่นกันฉันต้องการคำตอบสำหรับการทำงานใด ๆ เครื่อง Linux ที่ "สมเหตุสมผล") ฉันมีเซิร์ฟเวอร์สำรองที่มีพื้นที่ฮาร์ดไดรฟ์หลายเทราไบต์ ( รายละเอียดที่แน่นอนที่นี่ดูข้อจำกัดความรับผิดชอบด้านบน) ฉันต้องการถ่ายโอนข้อมูล 320GB จากเซิร์ฟเวอร์ต้นทางไปยังเซิร์ฟเวอร์เป้าหมาย (โดยเฉพาะข้อมูลจาก/dev/sda) คอมพิวเตอร์สองเครื่องนั้นอยู่ติดกันดังนั้นฉันจึงสามารถใช้สายเคเบิลระหว่างกันได้ ฉันอยู่บน LAN และฉันใช้เราเตอร์ใหม่ ishซึ่งหมายความว่าความเร็วเครือข่ายของฉันควร "ดีเลิศ" เป็น 1000Mbit ใช่ไหม ความปลอดภัยไม่ใช่ปัญหา ฉันอยู่ในเครือข่ายท้องถิ่นและฉันเชื่อว่าทุกเครื่องในเครือข่ายรวมถึงเราเตอร์ (ไม่บังคับ)ฉันไม่จำเป็นต้องมีการตรวจสอบข้อมูลที่ลงนาม แต่การตรวจสอบข้อผิดพลาดพื้นฐาน (เช่นแพ็คเก็ตที่ถูกทิ้งหรือไดรฟ์ไม่สามารถอ่านได้) ควรตรวจพบได้แทนที่จะหายเข้าไปในเอาต์พุต ฉันค้นหาคำถามนี้ทางออนไลน์และทดสอบหลายคำสั่ง สิ่งที่ปรากฏบ่อยที่สุดคือ: ssh user@192.168.1.100 'dd bs=16M if=/dev/sda | gzip' > backup_sda.gz คำสั่งนี้พิสูจน์แล้วว่าช้าเกินไป (มันวิ่งไปหนึ่งชั่วโมงมีข้อมูลประมาณ 80GB …

5
วิธีการตรวจสอบเฉพาะ n บรรทัดสุดท้ายของไฟล์บันทึก
ฉันมีล็อกไฟล์ที่กำลังเติบโตซึ่งฉันต้องการแสดงเฉพาะ 15 บรรทัดสุดท้าย นี่คือสิ่งที่ฉันรู้ว่าฉันสามารถทำได้: tail -n 15 -F mylogfile.txt เมื่อไฟล์บันทึกถูกเติมให้tailผนวกบรรทัดสุดท้ายเข้ากับจอแสดงผล ฉันกำลังมองหาวิธีแก้ปัญหาที่แสดงเฉพาะ 15 บรรทัดสุดท้ายและกำจัดบรรทัดก่อน 15 บรรทัดสุดท้ายหลังจากได้รับการอัพเดต คุณมีความคิดไหม?
110 logs  monitoring  tail 

4
สร้างลิงก์สัญลักษณ์ที่สัมพันธ์กับไดเรกทอรีปัจจุบัน
ฉันกำลังพยายามสร้างลิงก์สัญลักษณ์ในไดเรกทอรีบ้านของฉันซึ่งชี้ไปยังไดเรกทอรีบน HDD ภายนอกของฉัน มันทำงานได้ดีเมื่อฉันระบุเช่นนี้: cd ~ ln -s /run/media/name/exhdd/Data/ Data อย่างไรก็ตามมันสร้างลิงค์ที่ผิดพลาดเมื่อฉันลองทำสิ่งนี้: cd /run/media/name/exhdd ln -s Data/ ~/Data นี้จะสร้างการเชื่อมโยงที่ฉันไม่สามารถcdเข้าสู่ เมื่อฉันพยายามทุบตีบ่น: bash: cd: Data: Too many levels of symbolic links ลิงก์สัญลักษณ์ข้อมูลในบ้านของฉันยังเป็นสีแดงเมื่อlsตั้งค่าให้แสดงเอาต์พุตสี ทำไมสิ่งนี้จึงเกิดขึ้น ฉันจะสร้างลิงค์ในลักษณะนั้นได้อย่างไร? (ฉันต้องการสร้าง symlink ไปยังไดเรกทอรีในไดเรกทอรีทำงานของฉันในไดเรกทอรีอื่น) แก้ไข:ตามนี้คำตอบ StackOverflow ถ้าอาร์กิวเมนต์ที่สอง (ในกรณีของฉันที่ต้องการจะ ~ / ข้อมูล) อยู่แล้วและเป็นไดเรกทอรีที่lnจะสร้าง symlink เพื่อเป้าหมายภายในไดเรกทอรีที่ อย่างไรก็ตามฉันประสบปัญหาเดียวกันกับ: ln -s Data/ ~/
110 directory  symlink  ln 

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