Unix & Linux

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

10
ฉันจะสร้างไดเรกทอรีในไดเรกทอรีย่อยทั้งหมดได้อย่างไร
สมมติว่าฉันมีโครงสร้างไดเรกทอรีเช่นนี้ $ [~ / ฝึก] ls เอบีซีดี/ ตอนนี้ฉันต้องการสร้างไดเรกทอรีtmp1ในไดเรกทอรีย่อยทั้งหมดpracticeและฉันทำสิ่งนี้: $ [~ / ฝึก] mkdir * / tmp1 mkdir: ไม่สามารถสร้างไดเรกทอรี `* / tmp1 ': ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว จากนั้นฉันลอง-pสวิตช์และจบด้วยไดเรกทอรีที่*มีไดเรกทอรีย่อยtmp1 $ [~ / ฝึก] mkdir -p * / tmp1 $ [~ / ฝึก] ls */ เอบีซีดี/ ฉันรู้ว่าการใช้-pสวิตช์คือการสร้างไดเรกทอรีที่ไม่มีอยู่หลายรายการ ฉันแค่คิดว่ามันอาจช่วย ฉันจะสร้างtmp1ในไดเรกทอรีย่อยทั้งหมดได้ในครั้งเดียวได้อย่างไร หากสามารถทำได้ฉันจะขยายไปยังการสร้าง\tmp1, \tmp2, \tmp3ใน\a, \bและ\cในครั้งเดียว? แก้ไข:ฉันพลาดการกล่าวขวัญว่าไดเรกทอรีที่ไม่จำเป็นต้องเป็นที่เรียบง่ายและในการสั่งซื้อเช่นa, b, cฯลฯ …


4
ความแตกต่างระหว่างตัวเลือก grep -e และ grep -E คืออะไร?
ฉันพยายามที่จะเข้าใจความแตกต่างระหว่างและgrep -e grep -Eตอนนี้จากที่grep manpageฉันได้รับ: -E, --extended-regexp ตีความรูปแบบเป็นการแสดงออกปกติเพิ่มเติม (ดูด้านล่าง) รูปแบบ e - regexp = รูปแบบ ใช้รูปแบบเป็นลวดลาย มีประโยชน์ในการปกป้องรูปแบบที่ขึ้นต้นด้วย - คำอธิบายข้างต้นไม่สมเหตุสมผลสำหรับฉัน ดังนั้นใครสามารถอธิบายให้ฉันใช้examplesสิ่งที่แตกต่างระหว่างสองและเมื่อใช้ตัวเลือกใด PS: เวอร์ชัน: grep (GNU grep) 2.10
34 grep 

2
อัฒภาคในโครงสร้างที่มีเงื่อนไข
ทำไมใส่เครื่องหมายอัฒภาคไว้ในที่หนึ่งและไม่ใช่อีกอัน? ผลลัพธ์จะเหมือนกัน รหัสหนึ่ง if [ "a" == "a" ] then echo "true" fi รหัสสอง if [ "a" == "a" ]; then echo "true"; fi อัฒภาคในโค้ดที่สองนั้นไม่จำเป็นเลยเหรอ? เมื่อจำเป็นต้องใส่เครื่องหมายอัฒภาคหรือไม่
34 bash  scripting 

2
ไบนารีที่เก่าแก่ที่สุดทำงานบน Linux?
ในการสนทนาเกี่ยวกับความเข้ากันได้ย้อนหลังใน Linux kernel และ GUI ABIs Alan Cox กล่าวว่า " เคอร์เนล 3.6rc ของฉันจะยังคงใช้ Rogue binary ที่สร้างขึ้นในปี 1992 X กลับเข้ากันได้กับแอพที่เก่ากว่า Linux " ดังนั้นวิธีที่เข้ากันได้ย้อนหลังเป็น Linux Application binary interfaces ? อะไรคือไบนารีที่รันได้ที่เก่าแก่ที่สุดที่เขียนจริงและรวบรวมเมื่อหลายปีก่อนที่จะยังคงทำงานบนการกระจายลีนุกซ์สำหรับจุดประสงค์ทั่วไปที่ทันสมัย? ฉันแน่ใจว่าคำเหล่านั้นทั้งหมดอาจมีการตีความ ความคิดหลักของฉันคือมันไม่ยุติธรรมที่จะเรียกใช้ผ่านเครื่องจำลองหรือเครื่องเสมือนพิเศษหรือนักแปลไบนารี่ แต่สิ่งเหล่านี้บางอย่างอาจถูกสร้างขึ้นใน distros ที่ทันสมัยและการเรียนรู้เกี่ยวกับสิ่งนั้นเป็นส่วนหนึ่งของความสนุกที่นี่ การเปลี่ยนแปลงตามสถาปัตยกรรมฮาร์ดแวร์รูปแบบไฟล์ที่ปฏิบัติการได้ภาษาและการพึ่งพาการโหลดแบบไดนามิกของไลบรารีที่สำคัญก็เป็นที่สนใจเช่นกัน หมายเหตุเมื่อกฎผ่อนคลายนี่เป็นตัวอย่างหนึ่งของการย้อนกลับ หน้า 2002 Web เล่น a.out executables บน Red Hat Linux ทันสมัยการเจรจาเกี่ยวกับการใช้มันเก่าลินุกซ์ก่อนเอลฟ์ a.out รูปแบบ executables หลังจากทำmodprobe …

3
เปลี่ยน gid ของกลุ่มเฉพาะ
ฉันต้องการเปลี่ยนรหัสกลุ่มของกลุ่มเฉพาะ อาจมีวิธีแก้ไขปัญหาสำหรับการเปลี่ยน gid ของไฟล์หรือไดเรกทอรี แต่นั่นไม่ใช่สิ่งที่ฉันต้องการ มีวิธีทำเช่นนั้นหรือไม่?
34 group 

4
smartctl บน HDD ภายนอกภายในกล่อง IDE-to-usb
ฉันมีไดรฟ์ IDE 2.5 "ที่เก่าแก่มากในกล่อง USB ที่ให้บัฟเฟอร์ I / O ผิดพลาดฉันพยายามใช้smartctlเพื่อดูว่า SMART พูดถึงอะไร แต่ฉันไม่สามารถจัดการให้มันทำงานได้rootถ้าฉันแค่ เขียน: #> smartctl --all /dev/sde smartctl คำตอบ: /dev/sde: Unknown USB bridge [0x14cd:0x6600 (0x201)] Smartctl: please specify device type with the -d option. ดังนั้นฉันจึงพยายามทุกอย่างที่-d TYPEมีในสรุปความช่วยเหลือและผลลัพธ์ที่ดีที่สุดคือ: #> smartctl --all -d scsi /dev/sde ผลลัพธ์นั้น: Vendor: IC25N030 Product: ATMR04-0 User Capacity: …

2
ค้นหาการใช้งานด้วย -L
ฉันมี link -> file ฉันทำ find -L . -name 'link' และรับ ./link ทำไมถึงเป็นอย่างนั้น? คนค้นหาพูดว่า: -L: ทำตามลิงก์สัญลักษณ์ เมื่อพบการตรวจสอบหรือพิมพ์ข้อมูลเกี่ยวกับไฟล์ข้อมูลที่นำมาใช้จะต้องนำมาจากคุณสมบัติของไฟล์ที่จุดเชื่อมโยงไม่ใช่จากลิงค์ตัวเอง (เว้นแต่จะเป็นลิงก์สัญลักษณ์แบบย่อหรือค้นหาไม่สามารถตรวจสอบไฟล์ได้ จุดเชื่อมโยง)
34 find  symlink 

6
ฉันจะดำเนินการ "คัดลอกหากมีการเปลี่ยนแปลง" ได้อย่างไร?
ฉันต้องการคัดลอกชุดไฟล์จากไดเรกทอรี A ไปยังไดเรกทอรี B โดยมีข้อแม้ว่าหากไฟล์ในไดเรกทอรี A เหมือนกับไฟล์ในไดเรกทอรี B ไฟล์นั้นไม่ควรคัดลอก (และเวลาในการปรับเปลี่ยนไม่ควรเป็น ปรับปรุง) มีวิธีที่จะทำเช่นนั้นกับเครื่องมือที่มีอยู่โดยไม่ต้องเขียนสคริปต์ของตัวเองเพื่อทำมันได้หรือไม่ หากต้องการอธิบายรายละเอียดเล็กน้อยเกี่ยวกับกรณีการใช้งานของฉัน: ฉันกำลังสร้าง.cไฟล์จำนวนมากในไดเรกทอรีชั่วคราว (โดยวิธีการที่จะสร้างไฟล์ทั้งหมดโดยไม่มีเงื่อนไข) และเมื่อฉันสร้างไฟล์ขึ้นมาใหม่ฉันต้องการคัดลอกเท่านั้น รายการที่เปลี่ยนไปเป็นไดเรกทอรีต้นทางจริงปล่อยให้รายการที่ไม่มีการเปลี่ยนแปลง (ด้วยเวลาการสร้างเก่า) เพื่อที่makeจะรู้ว่าไม่จำเป็นต้องคอมไพล์ใหม่ (ไม่ใช่ไฟล์ที่สร้างขึ้นทั้งหมดเป็น.cไฟล์ดังนั้นฉันต้องทำการเปรียบเทียบแบบไบนารีมากกว่าการเปรียบเทียบข้อความ) (ตามที่ทราบ: นี่เป็นคำถามที่เกิดขึ้นฉันถามบนhttps://stackoverflow.com/questions/8981552/speeding-up-file-comparions-with-cmp-on-cygwin/8981552/speeding-up-file-comparions-with-cmp-on-cygwin/8981762#8981762ซึ่งฉันพยายามอยู่ เพื่อเพิ่มความเร็วให้กับไฟล์สคริปต์ที่ฉันใช้ในการดำเนินการนี้ แต่มันเกิดขึ้นกับฉันว่าฉันควรถามว่ามีวิธีที่ดีกว่าในการทำสิ่งนี้มากกว่าการเขียนสคริปต์ของตัวเองโดยเฉพาะอย่างยิ่งตั้งแต่วิธีง่ายๆในการทำเชลล์ สคริปต์จะเรียกใช้บางอย่างเช่นcmpไฟล์ทุกคู่และการเริ่มต้นกระบวนการทั้งหมดใช้เวลานานเกินไป)

4
ระบบค้างเมื่อหน่วยความจำไม่เพียงพอ
ฉันมี eeePC 900a: มันมีแฟลช 8GB เป็นดิสก์และ RAM เพียง 1GB การกระจาย Linux ที่ติดตั้งในนั้นคือ ArchLinux เมื่อหน่วยความจำไม่เพียงพอระบบจะไม่ตอบสนองอย่างมาก : ใช้เวลาหลายวินาที / นาทีในการทำสิ่งต่าง ๆ เช่นการเปลี่ยนไปใช้ TTY1 หรือแม้แต่เลื่อนตัวชี้เมาส์ บางครั้งดูเหมือนว่าระบบจะค้าง: สามของเราที่ผ่านมาฉันปล่อยให้มันคนเดียวและไม่มีอะไรเปลี่ยนแปลงเลย ฉันควรหลีกเลี่ยงการสร้าง swap พาร์ติชั่น / ไฟล์ใน eeePC นี้เนื่องจากดิสก์มีขนาดเล็กและเนื่องจากการเขียนจำนวนมากบนพื้นที่สว็อปจะทำให้อายุการใช้งานของการ์ดแฟลชสั้นลง ยิ่งกว่านั้นฉันคิดว่า swap file / partition นั้นจะย้ายปัญหาแทนที่จะทำการแก้ไขอย่างแน่นอน เคอร์เนลไม่ควรฆ่าแอปพลิเคชั่นแบบสุ่มเมื่อหน่วยความจำไม่เพียงพอหรือไม่ ทำไมมันจึงล้มเหลว (หรือใช้เวลานาน) ในการทำเช่นนั้น? ไม่กี่เดือน / ปีที่ผ่านมาฉันพยายามมองลึกเข้าไปในเรื่องนี้ แต่ไม่พบสิ่งใดที่จะใช้งานได้จริง ...
34 linux  memory  freeze 

2
วิธีการเปลี่ยนจาก csh เป็น bash เป็นเชลล์เริ่มต้น
ฉันมีเปลือกเริ่มต้นของฉันที่แสดงโดยcsh echo $SHELLฉันต้องการที่จะเปลี่ยนbashเป็นเปลือกเริ่มต้นของฉัน ฉันลองวิธีต่อไปนี้เพื่อไม่เกิดประโยชน์: ด้วยchshฉันได้รับ: chsh: can only change local entries; use ypchsh instead. ด้วยypchshฉันได้รับ: ypchsh: yppasswdd not running on NIS master host ("dcsun2"). ฉันมีเพียงแค่.chsrcในไดเรกทอรีบ้านของฉันและฉันไม่สามารถหาใด ๆไฟล์ใน.profile /etcฉันจะเปลี่ยนเปลือกเริ่มต้นของฉันเป็นbashอย่างไร
34 shell 


9
จะพิมพ์บรรทัดที่ยาวที่สุดในไฟล์ได้อย่างไร?
ฉันกำลังมองหาวิธีที่ง่ายที่สุดในการพิมพ์บรรทัดที่ยาวที่สุดในไฟล์ ฉันทำ googling แล้วก็แปลกใจที่ไม่สามารถหาคำตอบได้ ฉันมักจะพิมพ์ความยาวของบรรทัดที่ยาวที่สุดในไฟล์ แต่ฉันไม่ทราบวิธีพิมพ์บรรทัดที่ยาวที่สุดจริง ๆ ทุกคนสามารถให้บริการโซลูชั่นในการพิมพ์บรรทัดที่ยาวที่สุดในไฟล์ได้หรือไม่? ขอบคุณล่วงหน้า.
34 bash  awk  filter 

8
วิธีทำให้ผงสำหรับอุดรูที่จะไม่หยุดเซสชั่นของฉันหลังจากเวลา?
แต่ละครั้งputtyจะปิดเซสชั่นหลังจากเวลาถ้ามันไม่ได้ใช้งาน ไม่มีtimeพารามิเตอร์ในการโป๊วดังนั้นฉันจะเก็บputtyเซสชัน ssh ของฉันยังมีชีวิตอยู่ได้อย่างไร
34 ssh  putty 


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