Unix & Linux

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



5
ตรวจสอบว่า $ REPLY อยู่ในช่วงตัวเลขหรือไม่
ฉันเขียนเชลล์สคริปต์สำหรับ Linux โดยใช้ Bash เพื่อแปลไฟล์วิดีโอใด ๆ ให้เป็น MP4 สำหรับสิ่งที่ฉันใช้avconvกับlibvorbisเสียง ภายในสคริปต์ของฉันฉันมีคำถามสำหรับผู้ใช้: read -p "- Audio Quality [scale from -2 to 10] ? " if [ -n "$REPLY" ] ; then ABITRATE="-aq $REPLY" fi สตริง "ABITRATE" ของฉันเข้าสู่avconvบรรทัดคำสั่งสุดท้าย แต่ฉันต้องการให้ผู้ใช้มีโอกาสตอบคำถามนั้นด้วยค่าเป็น Kb (Kilobit) และแปลเป็นมาตราส่วนที่libvorbisใช้ "สเกลจาก -2 ถึง 10" คือ: Quality Kbit/s Normalization ----------------------------- -2 ~32 …

5
มีคำสั่งของระบบใน Linux หรือไม่ที่รายงานถึง endianness
ไม่มีใครรู้คำสั่งที่รายงานว่าระบบเป็น Big Endian หรือ Little Endian หรือเป็นตัวเลือกที่ดีที่สุดในการใช้เทคนิคเช่นนี้โดยใช้ Perl หรือสตริงคำสั่ง? Perl # little $ perl -MConfig -e 'print "$Config{byteorder}\n";' 12345678 # big $ perl -MConfig -e 'print "$Config{byteorder}\n";' 87654321 od | awk # little $ echo -n I | od -to2 | awk 'FNR==1{ print substr($2,6,1)}' 1 # big $ echo …

5
ฉันจะเพิ่มบรรทัดใหม่ระหว่างบรรทัดที่พิมพ์บนบรรทัดคำสั่งได้อย่างไร
บันทึกเมลอ่านยากอย่างไม่น่าเชื่อ ฉันจะส่งออกบรรทัดว่างระหว่างแต่ละบรรทัดที่พิมพ์บนบรรทัดคำสั่งได้อย่างไร ตัวอย่างเช่นฉันกำลังพิมพ์บันทึก ด้วยวิธีนี้หลายบรรทัดที่พันกันจะไม่สับสน


4
ฉันจะแสดงแผนผังกระบวนการของเทอร์มินัลเชลล์รวมถึงลูก ๆ ได้อย่างไร
เมื่อสคริปต์ถูกเรียกใช้จากพรอมต์คำสั่งเชลล์จะวางไข่ subprocess สำหรับสคริปต์นั้น ฉันต้องการแสดงความสัมพันธ์ระหว่างกระบวนการระดับเทอร์มินัลและลูก ๆ ของมันที่ใช้psในการแสดงผลแบบต้นไม้ ฉันจะทำสิ่งนี้ได้อย่างไร สิ่งที่ฉันได้ลองมาแล้ว ไฟล์: script.sh #!/bin/bash ps -f -p$1 จากนั้นฉันจะเรียกใช้สคริปต์จากบรรทัดคำสั่งที่ส่งผ่านใน id กระบวนการของเทอร์มินัลเชลล์: $ ./script.sh $$ สิ่งที่ฉันต้องการคืออะไรแบบนี้ กระบวนการเชลล์ระดับบนสุด (เทอร์มินัล) ./script.sh กระบวนการสำหรับpsคำสั่งเอง USER PID [..] ubuntu 123 -bash ubuntu 1234 \_ bash ./script.sh ubuntu 12345 \_ ps auxf สิ่งที่ฉันได้รับคือ: PID TTY STAT TIME COMMAND 14492 pts/24 Ss …
30 shell  ps 

4
httpd ไม่สามารถเขียนไปยังโฟลเดอร์ / ไฟล์เนื่องจาก SELinux
มีใครรู้บ้างว่า sebool ตัวใดที่อนุญาตให้ httpd เขียนการเข้าถึง / home / user / html เมื่อฉันปิดการใช้งาน SELinux echo 0 > /selinux/enforceฉันสามารถเขียนได้ดังนั้นปัญหาของฉันจึงเกี่ยวข้องกับ SELinux ฉันไม่รู้ว่าอันไหนที่ถูกต้องโดยไม่ต้องเปิดช่องใหญ่และ Google ไม่ได้ช่วยอะไรมาก #[/home]ls -Z drwxr-x---. user apache unconfined_u:object_r:user_home_dir_t:s0 user #sestatus -b Policy booleans: abrt_anon_write off abrt_handle_event off allow_console_login on allow_cvs_read_shadow off allow_daemons_dump_core on allow_daemons_use_tcp_wrapper off allow_daemons_use_tty on allow_domain_fd_use on allow_execheap off …


2
โฟลเดอร์“ / usr / local / src” มีไว้เพื่ออะไร?
ฉันต้องการใส่ไฟล์งานของฉัน (รหัส) /usr/local/srcแต่ฉันคิดว่ามันเป็นโฟลเดอร์ที่มีความหมายอื่น ๆ อยู่แล้ว นั่นคืออะไร? ฉันควรใส่ซอร์สโค้ดที่นั่นหรือมีที่ที่ดีกว่า แก้ไข - ฉันเป็นผู้ใช้และผู้ดูแลระบบ แต่เพียงผู้เดียวและฉันไม่ต้องการใช้โฮมไดเร็กตอรี่ของฉันเพราะอยู่ในไดรฟ์ NFS
29 ubuntu  fhs 

2
ตัวแยกทศนิยมปัจจุบันคืออะไร
บอกว่าฉันมีสคริปต์เชลล์ POSIX ที่ ต้องทำงานในระบบ / สภาพแวดล้อมที่แตกต่างกันซึ่งฉันไม่ได้ควบคุมและ จำเป็นต้องลบตัวแยกทศนิยมออกจากสตริงที่ปล่อยโดยโปรแกรมที่เคารพการตั้งค่าภาษา ฉันจะตรวจจับตัวแยกทศนิยมด้วยวิธีทั่วไปได้อย่างไร

3
Unix ติดตามไดเรกทอรีการทำงานของผู้ใช้อย่างไรเมื่อสำรวจระบบไฟล์?
สมมติว่าฉันล็อกอินเข้าสู่เชลล์บนระบบยูนิกซ์และเริ่มเคาะคำสั่ง ~ผมเริ่มเริ่มต้นในบ้านของผู้ใช้ของฉัน ฉันอาจมาจากที่นั่นลงไปยังไดเรกทอรีcdDocuments คำสั่งเพื่อเปลี่ยนไดเรกทอรีการทำงานที่นี่เป็นเรื่องง่ายมากที่จะเข้าใจ: โหนดหลักมีรายการของโหนดลูกที่สามารถเข้าถึงได้และสันนิษฐานว่ามันใช้ตัวแปร (ที่เหมาะสม) ของการค้นหาเพื่อค้นหาการมีอยู่ของโหนดลูกที่มี ตั้งชื่อผู้ใช้ที่ป้อนและไดเรกทอรีการทำงานจะถูก "แก้ไข" เพื่อให้ตรงกับสิ่งนี้ - แก้ไขให้ฉันถ้าฉันผิดที่นั่น มันอาจจะง่ายกว่าที่เชลล์เพียงแค่ "ไร้เดียงสา" พยายามที่จะเข้าถึงไดเรกทอรีตรงตามความต้องการของผู้ใช้และเมื่อระบบไฟล์ส่งคืนข้อผิดพลาดบางประเภทเชลล์จะแสดงการตอบสนองตามลำดับ สิ่งที่ฉันสนใจคือกระบวนการเดียวกันนั้นทำงานอย่างไรเมื่อฉันสำรวจไดเรกทอรีต่างๆเช่นไปที่พาเรนต์หรือพาเรนต์ของผู้ปกครอง ด้วยตำแหน่งของฉัน "blind" ที่ไม่รู้ชื่อน่าจะเป็นDocumentsหนึ่งในหลาย ๆ ไดเรกทอรีในทรีระบบไฟล์ทั้งหมดด้วยชื่อนั้น Unix จะกำหนดได้อย่างไรว่าฉันควรจะวางไว้ที่ไหนต่อไป มันทำการอ้างอิงpwdและตรวจสอบว่า? ถ้าใช่จะpwdติดตามสถานะการนำทางในปัจจุบันอย่างไร
29 filesystems  pwd 

3
มันเป็นส่วนหนึ่งของมาตรฐานใด ๆ (เช่น POSIX) ไฟล์ระบบนั้นควรเป็นตัวพิมพ์เล็กหรือไม่?
บริษัท ของฉันขายแอปพลิเคชันที่มีชื่อแบรนด์เป็นแบบตัวพิมพ์ผสมเช่น "ApplicationName" ตัวติดตั้งของแอปพลิเคชันจะสร้างพา ธ และชื่อไฟล์ทั้งหมดในมาตรฐานนี้ เช่นไดเร็กตอรี่หลักคือ/opt/ApplicationNameไฟล์ init ถูกเรียกใช้ApplicationNameดังนั้นฉันต้องเรียกใช้service ApplicationName statusและอื่น ๆ สำหรับฉันนี่เป็นการประชุมที่มีเหตุผลทั้งหมดและฉันรู้สึกว่าไฟล์และไดเรกทอรีควรเป็นตัวพิมพ์เล็ก (มีแอปพลิเคชั่นอื่น ๆ เช่น MySQL ซึ่งมีไฟล์และ dirs ทั้งหมดถูกเรียกmysqlใช้แม้กระทั่งแอปพลิเคชันเช่น Apache และ Tomcat อักษรตัวพิมพ์ใหญ่). หากฉันยกเป็นรายงานข้อผิดพลาดฉันต้องการที่จะโต้แย้งที่แข็งแกร่งกว่าเพียงแค่ "ฉันคิดว่ามันผิด" ดังนั้นมันจึงเป็นไปตามมาตรฐาน POSIX ที่ไฟล์ระบบแบบนี้ควรเป็นตัวพิมพ์เล็ก?

7
เป็นไปได้หรือไม่ที่จะสร้าง Linux distro ที่รองรับทั้งแพ็คเกจ RPM และ. deb
ฉันสงสัยว่าเป็นไปได้ในทางทฤษฎีหรือไม่ที่จะสร้าง Linux distro ที่สามารถรองรับแพ็คเกจ rpm และ debian มี distros ใดที่อยู่ที่นั่นสนับสนุนทั้งสอง? และถ้าเป็นไปไม่ได้?

5
ป้องกัน grep ไม่ให้ออกในกรณีที่มีการระบุชื่อ
สคริปต์นี้ไม่ได้สะท้อน "หลัง": #!/bin/bash -e echo "before" echo "anything" | grep e # it would if I searched for 'y' instead echo "after" exit และถ้าฉันลบ-eตัวเลือกในบรรทัด shebang ออก แต่ฉันต้องการเก็บไว้เพื่อให้สคริปต์ของฉันหยุดทำงานหากมีข้อผิดพลาด ฉันไม่คิดว่า grep ไม่พบการจับคู่เป็นข้อผิดพลาด ฉันจะป้องกันไม่ให้ออกโดยทันทีได้อย่างไร

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