Unix & Linux

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

8
เหตุใดยูทิลิตี้บังคับ POSIX จึงไม่ได้สร้างไว้ในเชลล์?
จุดประสงค์ของคำถามนี้คือเพื่อตอบสนองความอยากรู้อยากเห็นไม่ใช่เพื่อแก้ปัญหาการคำนวณโดยเฉพาะ คำถามคือ: เหตุใดยูทิลิตี้บังคับ POSIX จึงไม่ได้สร้างอยู่ในการใช้งานเชลล์? ตัวอย่างเช่นฉันมีสคริปต์ที่อ่านไฟล์ข้อความเล็ก ๆ น้อย ๆ และตรวจสอบว่ามีการฟอร์แมตอย่างถูกต้อง แต่ใช้เวลา 27 วินาทีในการเรียกใช้บนเครื่องของฉันเนื่องจากมีการจัดการสตริงจำนวนมาก การจัดการสตริงนี้สร้างกระบวนการใหม่นับพันโดยเรียกโปรแกรมอรรถประโยชน์ต่าง ๆ ดังนั้นความเชื่องช้า ผมค่อนข้างมั่นใจว่าถ้าบางส่วนของสาธารณูปโภคที่ถูกสร้างขึ้นในคือgrep, sed, cut, trและexprแล้วสคริปต์ที่จะวิ่งในครั้งที่สองหรือน้อยกว่า (ขึ้นอยู่กับประสบการณ์ของผมใน C) ดูเหมือนว่าจะมีหลายสถานการณ์ที่การสร้างโปรแกรมอรรถประโยชน์เหล่านี้จะสร้างความแตกต่างระหว่างว่าโซลูชันในเชลล์สคริปต์มีประสิทธิภาพที่ยอมรับได้หรือไม่ เห็นได้ชัดว่ามีเหตุผลที่เลือกที่จะไม่สร้างยูทิลิตี้เหล่านี้ในตัวอาจมียูทิลิตี้หนึ่งเวอร์ชันในระดับระบบเพื่อหลีกเลี่ยงการมียูทิลิตี้รุ่นนั้นไม่เท่ากันหลายรุ่น ฉันไม่สามารถคิดด้วยเหตุผลอื่น ๆ อีกมากมายที่จะรักษาค่าใช้จ่ายในการสร้างกระบวนการใหม่จำนวนมากและ POSIX กำหนดเพียงพอเกี่ยวกับยูทิลิตี้ที่ดูเหมือนว่าปัญหาจะมีการใช้งานที่แตกต่างกันไม่มาก ไม่ขัดขืน อย่างน้อยก็ไม่เป็นปัญหาใหญ่เท่าความไร้ประสิทธิภาพของการมีกระบวนการมากมาย

11
วิธีดูไฟล์ไบนารี
จากสิ่งที่ฉันเข้าใจคอมไพเลอร์สร้างไฟล์ไบนารีที่ประกอบด้วย 1 และ 0 ที่ CPU สามารถอ่านได้ ฉันมีไฟล์ไบนารี แต่ฉันจะเปิดมันเพื่อดู 1 และ 0 ที่มีได้อย่างไร เครื่องมือแก้ไขข้อความบอกว่าไม่สามารถเปิดได้ ... ป.ล. ฉันมีไบนารีที่รวบรวมแอสเซมบลีที่ควรเป็นรหัสไบนารีธรรมดาของ 1 และ 0 หรือไม่
45 binary  assembly 

2
การใช้ setuid bit อย่างถูกต้อง
ฉันมีกระบวนการที่ต้องการสิทธิ์รูทเมื่อรันโดยผู้ใช้ปกติ เห็นได้ชัดว่าฉันสามารถใช้ "setuid bit" เพื่อทำสิ่งนี้ให้สำเร็จ วิธีที่เหมาะสมในการทำเช่นนี้ในระบบ POSIX คืออะไร? นอกจากนี้ฉันจะทำสิ่งนี้กับสคริปต์ที่ใช้ล่าม (bash, perl, python, php, ฯลฯ ) ได้อย่างไร
45 scripting  setuid 

2
ปิดใช้งานการปิดหน้าต่าง CTRL-D ในเทอร์มิเนเตอร์ (เทอร์มินัลอีมูเลเตอร์)
ฉันมักจะเข้าสู่ระบบผ่านช่วง SSH หลายครั้ง ในการออกจากระบบของฉันฉันกดCTRL+ dจนกระทั่งฉันกลับไปที่เครื่องท้องถิ่น อย่างไรก็ตามบางครั้งฉันกดหลายครั้งเกินไปและเทอร์มินัลของฉันออก มีวิธีการปิดกั้นCTRL+ dจากการปิดสถานีของฉันหรือไม่? ฉันใช้ terminator เป็นโปรแกรมจำลองเทอร์มินัล

7
ใช้ `` 'กับซีดีเท่านั้นหรือไม่
cd - สามารถสลับระหว่าง dir ปัจจุบันและ dir ก่อนหน้า มันดูเหมือนว่าผมเคยเห็น-มาใช้เป็นข้อโต้แย้งคำสั่งอื่น ๆ ก่อน แต่ผมจำไม่ได้ว่าถ้าวิธีการเช่นเดียวกับกับ-cd ฉันพบว่าไม่ได้ทำงานกับ-ls คือ- ใช้เฉพาะกับ cd?

3
ใช้การส่งออกใน. bashrc
ฉันสังเกตเห็น.bashrcว่ามีบางบรรทัดexportอยู่ข้างหน้าพวกเขาเช่น export HISTTIMEFORMAT="%b-%d %H:%M " ... export MYSQL_HISTFILE="/root/.mysql_history" ในขณะที่คนอื่นไม่เช่น HISTSIZE=100000 ผมสงสัยว่าถ้าครั้งแรกนี้ถูกต้องและสองสิ่งที่เป็นกฎสำหรับการใช้ในexport.bashrc

6
รับรายการของไดเรกทอรีย่อยที่มีไฟล์ที่ชื่อมีสตริง
ฉันจะรับรายการไดเรกทอรีย่อยที่มีไฟล์ที่มีชื่อตรงกับรูปแบบเฉพาะได้อย่างไร โดยเฉพาะอย่างยิ่งฉันกำลังมองหาไดเรกทอรีที่มีไฟล์ที่มีตัวอักษร 'f' บางที่เกิดขึ้นในชื่อไฟล์ ตามหลักการแล้วรายการจะไม่ซ้ำกันและมีเส้นทางเท่านั้นหากไม่มีชื่อไฟล์

2
ข้อผิดพลาด“ XOFF ถูกเพิกเฉยพูดพึมพำ” หมายความว่าอะไร
ในขณะที่พยายามบันทึกไฟล์จากนาโนในวันอื่น ๆ ฉันได้รับข้อความแสดงข้อผิดพลาดว่า "XOFF ถูกละเว้นมึนพึมพำ" ฉันไม่รู้ว่าควรจะหมายถึงอะไร ข้อมูลเชิงลึกใด ๆ
45 nano 


4
อะไรคือความแตกต่างระหว่างการเรียกใช้โปรแกรมเป็น daemon และฟอร์กมันลงในพื้นหลังด้วย '&'
อะไรคือความแตกต่างในทางปฏิบัติจากมุมมองดูแลระบบเมื่อปรับใช้บริการบนระบบที่ใช้ระบบปฏิบัติการยูนิกซ์?

6
วิธีสร้างลำดับด้วยเลขศูนย์นำหน้าโดยใช้การขยายรั้ง
เมื่อฉันใช้สิ่งต่อไปนี้ฉันได้รับผลลัพธ์ตามที่คาดไว้: $ echo {8..10} 8 9 10 ฉันจะใช้การขยายรั้งนี้ในวิธีที่ง่ายเพื่อให้ได้ผลลัพธ์ต่อไปนี้ได้อย่างไร $ echo {8..10} 08 09 10 ตอนนี้ฉันสามารถใช้สิ่งนี้ได้seq(ไม่ลอง) แต่นั่นไม่ใช่สิ่งที่ฉันกำลังมองหา ข้อมูลที่มีประโยชน์อาจเป็นได้ว่าฉันถูก จำกัด รุ่น bash นี้ (หากคุณมีzshวิธีแก้ไข แต่ไม่มีbashวิธีแก้ไขโปรดแชร์ด้วย) $ bash -version GNU bash, version 3.2.51(1)-release (x86_64-suse-linux-gnu)

8
ควรใช้พาร์ติชัน LVM ในอิมเมจเครื่องเสมือนหรือไม่?
ควรใช้ LVM สำหรับพาร์ติชันเมื่อสร้างอิมเมจ VM (เช่นอิมเมจ KVM) หรือไม่ ดูเหมือนว่ามันจะเพิ่มความซับซ้อนถ้าคุณต้องการที่จะพูดติดภาพ qcow2 ในโฮสต์ถ้าภาพที่มีพาร์ทิชัน LVM ในทางกลับกันดูเหมือนว่าข้อดีของพาร์ติชัน LVM นั้นมีความสำคัญกับอิมเมจ VM เนื่องจากง่ายกว่าการใช้ VM ออฟไลน์และปรับขนาดพาร์ติชันมากกว่าสำหรับระบบฟิสิคัล

8
แปลงภาพเป็น pdf: วิธีทำให้หน้า PDF มีขนาดเท่ากัน
ฉันทำอะไรที่ชอบ convert -page A4 -compress A4 *.png CH00.pdf แต่หน้าแรกนั้นใหญ่กว่าหน้าต่อ ๆ ไป สิ่งนี้เกิดขึ้นแม้ว่าขนาดของภาพจะคล้ายกัน รูปภาพเหล่านี้ถูกสแกน & ครอบตัดดังนั้นอาจมีความแตกต่างของขนาดเล็กน้อย ฉันคิดว่า-page A4ควรแก้ไขขนาดของหน้า?

2
SCP ล้มเหลวโดยไม่มีข้อผิดพลาด
ฉันพบพฤติกรรมแปลก ๆ ของ SCP มาระยะหนึ่ง: เมื่อใดก็ตามที่ฉันพยายามคัดลอกไฟล์ผลลัพธ์ของ SCP จะมีขีดล่างและไม่มีการคัดลอกไฟล์ $ scp test.txt 192.168.0.2:~ job@192.168.0.2's password: ________________________________________ เมื่อฉันสร้างการเชื่อมต่อ SSH โดยใช้ Midnight Commander และคัดลอกไฟล์มันใช้งานได้ ข้อมูลบางอย่างเกี่ยวกับเครื่องของฉัน: $ ssh -V OpenSSH_5.8p1 Debian-1ubuntu3, OpenSSL 0.9.8o 01 Jun 2010 $ uname -a Linux squatpc 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 i686 i686 i386 GNU/Linux …
45 scp 

8
วิธีแปลง TXT เป็น PDF
ฉันต้องการแปลงไฟล์ไปยัง.txt .pdfฉันใช้สิ่งนี้: ls | while read ONELINE; do convert -density 400 "$ONELINE" "$(echo "$ONELINE" | sed 's/.txt/.pdf/g')"; done แต่นี่จะทำให้เกิด "ข้อผิดพลาด" หนึ่งรายการ - หากมีบรรทัดยาวมากในไฟล์ข้อความก็จะไม่ถูกพันทับ ป้อนข้อความ เอาท์พุท PDF - นอกจากนี้จะเป็นการดีถ้า PDF ที่ออกมานั้นมีข้อความแทนที่จะเป็นรูปภาพของข้อความ ฉันมีไฟล์ TXT จำนวนมาก ดังนั้นไม่ต้องการทำด้วยมือ ฉันต้องการโซลูชันอัตโนมัติเช่นเดียวกับที่กล่าวไว้ข้างต้น

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