Unix & Linux

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

1
การทดแทนตัวแปรที่มีเครื่องหมายอัศเจรีย์ใน bash
ฉันมีบรรทัดต่อไปนี้ในไฟล์สคริปต์ bash .cfg ของฉัน DDF_SOURCE="siebel_DATA_DATE_FORMAT" DATA_DATE_FORMAT=${!DDF_SOURCE} วิธีการคือ${!DDF_SOURCE} ประเมิน? มันคง!siebel_DATA_DATE_FORMATไม่สมเหตุสมผลสำหรับฉัน

2
ทำไมส้อมกลไกการสร้างกระบวนการเริ่มต้นคืออะไร?
การเรียกใช้ระบบ UNIX สำหรับการสร้างกระบวนการ fork () สร้างกระบวนการลูกโดยการคัดลอกกระบวนการหลัก ความเข้าใจของฉันคือสิ่งนี้มักจะตามมาด้วยการเรียกร้องให้ exec () เพื่อแทนที่พื้นที่หน่วยความจำของกระบวนการลูก (รวมถึงส่วนของข้อความ) การคัดลอกพื้นที่หน่วยความจำของผู้ปกครองในทางแยก () ดูเหมือนจะสิ้นเปลืองกับฉันเสมอ (แม้ว่าฉันจะรู้ว่าของเสียสามารถลดลงได้ด้วยการทำให้ส่วนหน่วยความจำคัดลอกตามการเขียนดังนั้นจึงคัดลอกเฉพาะพอยน์เตอร์เท่านั้น) มีใครรู้บ้างไหมว่าทำไมจึงต้องใช้วิธีการทำสำเนานี้สำหรับการสร้างกระบวนการ

10
มีเครื่องมือค้นหาไฟล์เช่น“ ทุกอย่าง” ใน Linux หรือไม่?
ใน Windows มีเครื่องมือค้นหาไฟล์ที่ดีที่เรียกว่าEverythingซึ่งfindเร็วกว่าและแตกต่างจากlocateผลลัพธ์ที่เป็นปัจจุบันเสมอ AFAIK ใช้งานได้โดยการกรอกฐานข้อมูลจากวารสาร NTFS (มันไม่ทำงานกับระบบไฟล์อื่น) ฉันสงสัยว่ามีบางอย่างที่คล้ายกัน (ฉันไม่สนใจ GUI จุดของฉันคือความเร็วและการรับประกันที่ทันสมัย) สำหรับ Linux (ext3 หรือ ext4) ฉัน googled แต่ไม่พบอะไรเลย สิ่งนี้สามารถทำได้หรือแม้กระทั่งคนที่ทำงานกับมัน?

16
ฉันจะลบไฟล์ที่ชื่อไฟล์มีอักขระที่ไม่ได้พิมพ์ได้อย่างไร
ฉันพยายามสร้างไฟล์ที่ดูเหมือนจะไม่มีชื่อไฟล์ ฉันพบข้อมูลบางอย่างเกี่ยวกับวิธีรับรายละเอียดเพิ่มเติมของไฟล์ในเธรดต่อไปนี้ อย่างไรก็ตามฉันลองใช้คำแนะนำที่ปรากฏและไม่สามารถลบไฟล์ได้ ฉันไม่แน่ใจว่าสิ่งที่ฉันทำเพื่อสร้างมัน แต่มันเกิดขึ้นขณะพยายามคัดลอกไฟล์ xml ข้อมูลบางอย่างเกี่ยวกับไฟล์มีดังนี้ > ls -lb total 296 -rw-r--r-- 1 voyager endeavor 137627 Jan 12 12:49 \177 > file * : XML document > ls -i 417777 ฉันพยายามค้นหาโดยใช้สวิตช์ inum จากนั้นก็เป่าไปที่ rm เพราะดูเหมือนจะเป็นวิธีที่ไม่น่าเชื่อถือที่สุดในการกำจัดมัน อย่างไรก็ตามตัวอย่างที่ให้ไว้ที่ด้านล่างของเธรดที่ลิงก์ด้านล่างล้มเหลวสำหรับฉัน ตัวอย่างคือ: > find -inum 41777 -exec ls -al {} \; find: illegal option …

3
ฉันจะบอกได้อย่างไรว่าฉันทำงานเป็น chroot?
ฉันมีการติดตั้งยูนิกซ์ที่ควรจะใช้งานได้ทั้งแบบ chroot และแบบสแตนด์อโลน หากทำงานเป็น chroot ฉันไม่ต้องการเรียกใช้บริการใด ๆ (cron, inetd และอื่น ๆ ) เพราะพวกเขาจะขัดแย้งกับระบบโฮสต์หรือซ้ำซ้อน ฉันจะเขียนเชลล์สคริปต์ที่ทำงานแตกต่างกันอย่างไรขึ้นอยู่กับว่ามันทำงานใน chroot หรือไม่? ความต้องการเร่งด่วนของฉันคือระบบ Linux ที่ทันสมัยพร้อมกับ/procติดตั้งใน chroot และสคริปต์ทำงานเป็นรูท แต่ก็ยินดีต้อนรับคำตอบที่พกพาได้มากกว่า (ดูฉันจะบอกได้อย่างไรว่าฉันกำลังทำงานอยู่ใน chroot หาก / proc ไม่ถูกเมาท์สำหรับกรณีของ Linux ที่ไม่มี/proc) โดยทั่วไปคำแนะนำที่ใช้ได้กับวิธีการกักเก็บอื่น ๆ นั้นน่าสนใจ คำถามที่ปฏิบัติได้คือระบบนี้ควรใช้บริการใด ๆ หรือไม่? (คำตอบที่ไม่ได้อยู่ใน chroot และใช่ในเครื่องเสมือนที่เต็มเปี่ยมฉันไม่รู้เกี่ยวกับตัวพิมพ์กลางเช่นคุกหรือตู้คอนเทนเนอร์)
46 chroot 

3
ฉันจะทดสอบการเข้ารหัสไฟล์ข้อความได้อย่างไร ... มันถูกต้องและมันคืออะไร?
ฉันมี.htmไฟล์หลายไฟล์ที่เปิดในGeditโดยไม่มีการเตือน / ข้อผิดพลาดใด ๆ แต่เมื่อฉันเปิดไฟล์เดียวกันนี้Jeditมันจะเตือนฉันเกี่ยวกับการเข้ารหัส UTF-8 ที่ไม่ถูกต้อง ... แท็ก meta ของ HTML ระบุว่า "charset = ISO-8859-1" Jedit อนุญาตให้ใช้รายการการเข้ารหัสทางเลือกและรายการการเข้ารหัสเครื่องตรวจจับอัตโนมัติ (ปัจจุบันคือ "BOM XML-PI") ดังนั้นปัญหาในทันทีของฉันจึงได้รับการแก้ไข แต่นี่ทำให้ฉันคิดถึง: จะเกิดอะไรขึ้นถ้าข้อมูลเมตาไม่อยู่ที่นั่น? เมื่อข้อมูลการเข้ารหัสไม่สามารถใช้งานได้มีโปรแกรม CLI ที่สามารถ "เดาได้ดีที่สุด" ซึ่งการเข้ารหัสอาจใช้หรือไม่ และถึงแม้ว่ามันจะเป็นปัญหาที่แตกต่างออกไปเล็กน้อย มีโปรแกรม CLI ซึ่งทดสอบความถูกต้องของการเข้ารหัสที่รู้จักหรือไม่

1
“ systemctl daemon-reload” ทำอะไร
ฉันมีบริการที่หยุดกะทันหัน ฉันพยายามเริ่มบริการนั้นใหม่ แต่ล้มเหลวและขอให้เรียกใช้ "systemctl daemon-reload" มันทำอะไรกันแน่? "daemon reload คืออะไร"
46 centos  systemd  daemon 

3
ในฐานะที่เป็น root ฉันจะแสดงรายการ crontabs สำหรับผู้ใช้ทั้งหมดได้อย่างไร
ฉันมีสคริปต์ที่ทำงานโดยอัตโนมัติซึ่งฉันไม่พบใน crontab สำหรับผู้ใช้ที่คาดหวังดังนั้นฉันต้องการค้นหา crontabs ของผู้ใช้ทั้งหมดเพื่อหา เป็นหลักฉันต้องการเรียกใช้crontab -lสำหรับผู้ใช้ทั้งหมด
46 cron 


4
แปลงสตริงฐานสิบหกเป็นไบนารีและส่งด้วย netcat
ฉันมีไฟล์ไบนารีที่ฉันสามารถส่งด้วยnetcat: $ nc -l localhost 8181 < my.dat ไฟล์นี้ประกอบด้วย: $ xxd my.dat 0000000: 0006 3030 3030 4e43 ..0000NC สิ่งที่ฉันต้องการทำจริงๆคือส่งสตริง hex โดยตรง ฉันเคยลองแล้ว: $ echo '0006303030304e43' | nc -l localhost 8181 อย่างไรก็ตามคำสั่งดังกล่าวเป็นเพียงแค่ส่งสตริง ASCII ncโดยตรง
46 linux  binary  netcat 


4
echo bytes เป็นไฟล์
ฉันกำลังพยายามเชื่อมต่อ rasberry Pi ของฉันกับจอแสดงผลบางตัวโดยใช้บัส i2c ในการเริ่มต้นฉันต้องการเขียนเนื้อหาด้วยตนเองโดยเฉพาะอย่างยิ่งไบต์กับไฟล์ คุณเขียนไบต์ที่ต้องการลงไฟล์ได้อย่างไร? ฉันได้อ่านแล้วและฉันคิดว่าปัญหาของฉันควรได้รับการแก้ไขโดยสิ่งนี้ echo -n -e \x66\x6f\x6f > byteFileForNow อย่างไรก็ตามเมื่อฉันเปิดไฟล์ด้วยนาโนแทนที่จะเป็นฟูฉันเห็น: x66x6fx6f ดังนั้นแบ็กสแลชจึงหนีไปได้ แต่ไม่ใช่ไบท์เอง ฉันก็ลองแบบเดียวกันโดยไม่ใช้-eคราวนี้ฉันเลยจะได้เห็นภาพ\ x66 \ x6f \ x6fแต่กลับเหมือนเดิม ดังนั้นเสียงก้องคือการหลีกเลี่ยงแบ็กสแลช, แบ็กสแลชคนเดียวและแบ็กสแลชโดยไม่คำนึงว่าควรจะเป็นอะไร ความคิดวิธีการแก้ไขปัญหานี้? ตามหน้าคนที่ควรจะทำสิ่งที่ฉันกำลังมองหา

2
รีสตาร์ท bash จากเทอร์มินัลโดยไม่ต้องรีสตาร์ทแอปพลิเคชั่นเครื่อง (mac)?
ฉันได้ดูรอบ ๆ เพื่อตอบคำถามนี้ แต่ฉันดูเหมือนจะไม่พบ (ซึ่งแปลก) คำถามของฉันคือมีวิธีง่าย ๆ ในการรีสตาร์ทเซสชัน bash จากภายในเทอร์มินัลบน mac ฉันต้องการพฤติกรรมแบบเดียวกับที่ฉันปิดแอปพลิเคชั่นเทอร์มินัลและเริ่มต้นใหม่อีกครั้ง (ตัวแปรทั้งหมดรีเซ็ต, .bash_profile แหล่งที่มา ฯลฯ ) ฉันรู้วิธีแหล่ง. bash_profile แต่นั่นไม่ใช่สิ่งที่ฉันต้องการ หนึ่งในเหตุผลที่ฉันต้องการทำเช่นนี้เป็นเพราะปลั๊กอินสำหรับพรอมต์ทุบตีของฉันมีรหัสที่ป้องกันไม่ให้สีโหลดหลายครั้ง ดังนั้นการจัดหา. bash_profile จะไม่โหลดตัวแปรสีอีกครั้งและฉันต้องรีสตาร์ทแอปพลิเคชันเทอร์มินัลเพื่อรับผลการเปลี่ยนแปลง
46 bash  shell 

4
วิธีการเติม / ใช้พื้นที่ว่างในดิสก์จำนวนมากทันทีหรือไม่
บน Linux VM ฉันต้องการทดสอบ NAGIOS การตรวจสอบอย่างลึกซึ้งยิ่งกว่าการปิด VM หรือตัดการเชื่อมต่อ NIC เสมือน ฉันต้องการทดสอบหรือ "บังคับใช้สัญญาณเตือนพื้นที่ว่างในดิสก์" ผ่านการครอบครองพื้นที่ว่างหลาย% ในช่วงเวลาสั้น ๆ ฉันรู้ว่าฉันสามารถใช้ dd if=/dev/zero of=/tmp/hd-fillup.zeros bs=1G count=50 หรือบางอย่างเช่นนั้น ... แต่ต้องใช้เวลาและโหลดระบบและต้องใช้เวลาอีกครั้งเมื่อลบไฟล์ทดสอบด้วย rm มีวิธีที่รวดเร็ว (เกือบจะทันที) ในการเติมพาร์ติชั่นที่ไม่โหลดระบบและใช้เวลานานหรือไม่? ฉันกำลังคิดเกี่ยวกับสิ่งที่จัดสรรพื้นที่ แต่ไม่ได้ "เติม" มัน

3
ไฟล์อิมเมจ ISO เป็นระบบไฟล์ในสิทธิของตนเองหรือไม่?
ฉันพยายามที่จะเข้าใจว่าความสัมพันธ์ของxxx.isoไฟล์กับด้านอื่น ๆ ของอุปกรณ์บล็อกเช่นพาร์ติชั่นและระบบไฟล์ เป็นเรื่องปกติที่ผู้คนจะอธิบายการเข้าถึงหรือ.isoใช้ประโยชน์ในฐานะ "การติดตั้ง ISO" ดังนั้นในการตั้งคำถามอีกวิธี: ถ้าฉันหรือซอฟต์แวร์บางส่วนต้องการ "ติดตั้ง" xxx.isoไฟล์บนอุปกรณ์ USB จำเป็นต้องมีพาร์ติชันที่มีอยู่แล้วพร้อมกับระบบไฟล์ (เช่น FAT xหรือ ext X ) หรือเป็น.isoไฟล์ - เมื่ออยู่ในสถานะ "เมาท์" - โครงสร้างระดับล่างที่ทำหน้าที่คล้าย / คล้ายกันกับระบบไฟล์ (หรือแม้แต่พาร์ติชัน)
45 filesystems  iso 

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