คำถามติดแท็ก standard

4
POSIX คืออะไร
ฉันเห็น POSIX พูดถึงบ่อยครั้งและทุกที่และฉันคิดว่ามันเป็นมาตรฐานของระบบปฏิบัติการยูนิกซ์พื้นฐาน .. จนกระทั่งฉันสังเกตเห็นข้อความที่ตัดตอนมาต่อไปนี้บนหน้า Wikipedia: The Open Group เปิด Group มีชื่อเสียงมากที่สุดในขณะที่ร่างกายได้รับการรับรองสำหรับเครื่องหมายการค้า UNIX และสิ่งพิมพ์ของมาตรฐานทางเทคนิคสเปก Unix เดี่ยว , ซึ่งทอดตัวมาตรฐาน POSIX และเป็นความหมายอย่างเป็นทางการของระบบยูนิกซ์ หากคำจำกัดความอย่างเป็นทางการของระบบ UNIX เป็นส่วนเสริมของ POSIX แล้ว POSIX คืออะไร ,,, ดูเหมือนว่ามันจะเป็นมาตรฐานของโลกยูนิกซ์ แต่ฉันไม่รู้ว่ามันเข้ากับภาพรวมได้อย่างไร
139 posix  standard 

5
รายงานความคืบหน้า / ข้อมูลการบันทึกเป็นของ stderr หรือ stdout หรือไม่?
มี POSIX, GNU อย่างเป็นทางการหรือแนวทางอื่น ๆ หรือไม่ว่ารายงานความคืบหน้าและข้อมูลการบันทึก (สิ่งต่าง ๆ เช่น "Doing foo; foo done") ควรพิมพ์ออกมาหรือไม่? โดยส่วนตัวแล้วฉันมักจะเขียนถึง stderr เพื่อที่ฉันจะสามารถเปลี่ยนเส้นทาง stdout และรับเอาท์พุทจริงของโปรแกรมเท่านั้น ฉันเพิ่งบอกว่านี่ไม่ใช่วิธีปฏิบัติที่ดีเนื่องจากรายงานความคืบหน้าไม่ใช่ข้อผิดพลาดจริง ๆ และควรพิมพ์เฉพาะข้อความข้อผิดพลาดไปยัง stderr ทั้งสองตำแหน่งมีเหตุผลและแน่นอนว่าคุณสามารถเลือกอย่างใดอย่างหนึ่งขึ้นอยู่กับรายละเอียดของสิ่งที่คุณกำลังทำอยู่ แต่ฉันอยากจะรู้ว่ามีมาตรฐานที่ยอมรับกันโดยทั่วไปสำหรับเรื่องนี้หรือไม่ ฉันไม่สามารถค้นหากฎเฉพาะใน POSIX มาตรฐานการเข้ารหัสของ GNU หรือรายการแนวทางปฏิบัติที่ดีที่สุดอื่น ๆ เรามีคำถามที่คล้ายกันสองสามข้อ แต่พวกเขาไม่ได้แก้ไขปัญหาที่แน่นอนนี้: เมื่อใดที่จะใช้การเปลี่ยนเส้นทางไปยัง stderr ในเชลล์สคริปต์ : คำตอบที่ได้รับการยอมรับแสดงให้เห็นสิ่งที่ฉันมักจะทำเอาท์พุทสุดท้ายของโปรแกรมไว้ที่ stdout และทุกอย่างจะเป็น stderr อย่างไรก็ตามนี่เป็นเพียงความเห็นของผู้ใช้แม้ว่าจะได้รับการสนับสนุนจากการขัดแย้ง ข้อความการใช้งานควรไปที่ stderr หรือ stdout หรือไม่ : นี่เป็นข้อความเฉพาะสำหรับช่วยเหลือข้อความ แต่อ้างอิงมาตรฐานการเข้ารหัสของ …
75 posix  stdout  gnu  stderr  standard 

6
ทรัพยากรสำหรับการเขียนโปรแกรมเชลล์แบบพกพา
มีทรัพยากรใดบ้างสำหรับการเขียนโปรแกรมเชลล์แบบพกพา คำตอบที่ดีที่สุดคือการทดสอบบนแพลตฟอร์มเป้าหมายทั้งหมด แต่ก็ไม่ค่อยมีประโยชน์ ข้อกำหนด POSIX / โสดยูนิกซ์เป็นจุดเริ่มต้น แต่มันจะบอกคุณว่าค่าระดับของการสนับสนุนของแต่ละการดำเนินการเป็นหรือส่วนขยายที่มีอยู่ทั่วไป คุณสามารถอ่านเอกสารประกอบของแต่ละการติดตั้งได้ แต่ใช้เวลานานและไม่แม่นยำอย่างสมบูรณ์ ฉันดูเหมือนว่ารูปแบบในอุดมคติจะเป็นข้อมูลจำเพาะ POSIX รุ่นที่มีคำอธิบายประกอบแบบชุมชนโดยที่แต่ละคุณลักษณะจะมีคำอธิบายประกอบตามระดับการสนับสนุนในการนำไปใช้งานที่แตกต่างกัน มีอะไรแบบนี้เหรอ? หรือมีทรัพยากรที่มีประโยชน์อื่น ๆ ตัวอย่างเช่นมีหน้าความสามารถในการพกพาของเชลล์ของ Sven Mascheckแต่เป็นเพียงเกี่ยวกับองค์ประกอบทางวากยสัมพันธ์และบิวด์อินสองสามตัวและครอบคลุมเฉพาะเชลล์เก่าเท่านั้น ฉันกำลังมองหาแหล่งข้อมูลที่ครอบคลุมมากขึ้น

3
ความแตกต่างระหว่าง sed บน Mac OSX และ sed“ มาตรฐาน” อื่น ๆ หรือไม่?
ฉันมีปัญหาบางอย่างในการใช้คำตอบที่ให้ไว้ในเว็บไซต์นี้สำหรับคำถามนี้เกี่ยวกับคำสั่ง sed เพื่อแทนที่บรรทัดว่างด้วยเนื้อหาอีกสองบรรทัดและมันก็เกิดขึ้นถ้าคำสั่ง sed บน Mac OS (10.6.7 สำหรับฉัน ) แตกต่างกัน ฉันไม่คิดว่ามันเป็น แต่สงสัยว่าคนอื่น ๆ ในเว็บไซต์นี้คิดแตกต่างกันหรือไม่
61 osx  sed  standard 

4
มาตรฐานสำหรับการเยื้องในเชลล์สคริปต์คืออะไร [ปิด]
ชุมชน Java ใช้ 4 ช่องว่างเป็นหน่วยของการย่อหน้า 1 ชุมชน Ruby ใช้ 2 ช่องว่างที่ตกลงกันโดยทั่วไป 2 มาตรฐานสำหรับการเยื้องในเชลล์สคริปต์คืออะไร 2 หรือ 4 ช่องว่างหรือ 1 แท็บ?

3
คำสั่งมาตรฐานใดที่มีอยู่ในการแจกจ่ายบน Linux ทุกครั้ง
ฉันต้องการที่จะรู้ว่าคำสั่งมาตรฐานที่มีอยู่ในทุกระบบ Linux ตัวอย่างเช่นถ้าคุณได้รับ debian / ubuntu / redhat / suse / arch / slackware เป็นต้นคุณจะพบคำสั่งที่นั่นเสมอ: cd, mkdir, ls, echo, grep, sed, awk, ping เป็นต้น ฉันรู้ว่าคำสั่งที่กล่าวถึงบางคำเป็น shell-builtin แต่คำสั่งอื่น ๆ ไม่ได้ แต่พวกเขายังคงอยู่ที่นั่นเสมอ (ตามความรู้และประสบการณ์ของฉัน) ในทางกลับกันคำสั่งเช่น gawk, แยก, traceroute และคำสั่งที่โด่งดังอื่น ๆ จะไม่ถูกติดตั้งโดยค่าเริ่มต้นในการแจกแจงลินุกซ์ที่แตกต่างกัน ฉันค้นหาเว็บต่าง ๆ แต่ฉันไม่พบคำตอบตรงๆ จุดประสงค์คือฉันต้องการสร้างเชลล์สคริปต์และควรทำการตรวจสอบสติบางอย่างหากคำสั่งที่ใช้ในสคริปต์นั้นมีอยู่ในระบบ หากไม่เป็นเช่นนั้นควรแจ้งให้ผู้ใช้ติดตั้งไบนารีที่จำเป็น

4
เชลล์ได้รับอนุญาตให้ออปติไมซ์คำสั่งยุติการใช้งานอย่างไร้ประโยชน์หรือไม่?
หากมีการขอให้เชลล์ดำเนินการคำสั่งที่ไร้ประโยชน์ ( หรือไร้ประโยชน์บางส่วน ) ที่ทราบว่าจะยุติเช่นcat hugeregularfile.txt > /dev/nullมันสามารถข้ามการดำเนินการของคำสั่งนั้น ( หรือดำเนินการเทียบเท่าที่ถูกกว่าพูด touch -a hugeregularfile.txt ) โดยทั่วไปแล้วเชลล์มีลักษณะคล้ายกับคอมไพเลอร์ C ซึ่งมันอาจทำการแปลงใด ๆ ในซอร์สโค้ดตราบใดที่พฤติกรรมที่สังเกตได้จากภายนอกนั้นเหมือนกับถ้าเครื่องนามธรรมประเมินค่าหรือไม่ แก้ไข Nota Bene: คำถามของฉันตามที่โพสต์ในตอนแรกมีชื่อเรื่องที่ถามว่าเชลล์ได้รับอนุญาตให้ทำการปรับแต่งเหล่านี้ได้หรือไม่ ฉันสนใจในทฤษฎีมากกว่าการปฏิบัติแม้ว่าทั้งสองยินดี

1
เทอร์มินัลใดที่ใช้โปรโตคอล / มาตรฐาน?
ฉันสงสัยว่า "GUI" ของแอปพลิเคชันบรรทัดคำสั่งนั้นสื่อสารผ่านเครือข่ายอย่างไร ส่วนใหญ่มันค่อนข้างง่าย (ข้อความ / อินพุตธรรมดา) แต่บางครั้งมันก็ซับซ้อนกว่า (ความถนัด) มันถูกกำหนดโดยมาตรฐานบางประเภทเพื่อให้ทุกคนสามารถเขียนเทอร์มินัลของตนเองและการใช้งานเทอร์มินัลทั้งหมดทำงานในลักษณะเดียวกัน (สีการวางตำแหน่ง ฯลฯ ) หรือไม่?

2
ทำไมจึงไม่สอดคล้องกับ GNU / Linux SUS v3 +
ฉันกำลังมองหารายละเอียดที่เฉพาะเจาะจงว่าทำไม GNU / Linux ในปัจจุบันไม่ใช่SUS (Single UNIX Specification) v3 หรือที่ดีกว่าตามมาตรฐาน SUS v4? API ของแอปพลิเคชันและยูทิลิตี้ผู้ใช้ใดที่พลาดหรือนำไปใช้งานในลักษณะที่ไม่สอดคล้องกับ SUS
24 linux  standard 

6
Unix shell มีความเสถียรเพียงใด“ stdin / stdout APIs”?
grepping, awking, sedding และ piping เป็นกิจวัตรประจำวันของผู้ใช้ระบบปฏิบัติการที่คล้าย Unix อาจอยู่ในบรรทัดคำสั่งหรือภายในเชลล์สคริปต์ (เรียกรวมกันว่าตัวกรองจากนี้เป็นต้นไป) ที่สำคัญเมื่อทำงานกับโปรแกรม "มาตรฐาน" Unix CLI และเชลล์บิวด์อิน (เรียกรวมกันว่าคำสั่งต่อจากนี้ไป) ตัวกรองต้องการรูปแบบที่คาดหวังอย่างแม่นยำสำหรับ stdin, stdout และ stderr ในแต่ละขั้นตอนของตัวกรองเพื่อให้ทำงานได้อย่างถูกต้อง ฉันเรียกรูปแบบที่คาดหวังนี้ของคำสั่งบางอย่างว่า API ของคำสั่งนี้มีดังต่อไปนี้ ในฐานะที่เป็นคนที่มีพื้นฐานการพัฒนาเว็บฉันเปรียบเทียบการรวบรวมข้อมูลและการประมวลผลข้อมูลทางเทคนิคกับการขูดเว็บซึ่งเป็นเทคนิคที่ไม่แน่นอนมากเมื่อใดก็ตามที่มีการเปลี่ยนแปลงเล็กน้อยในการนำเสนอข้อมูล คำถามของฉันตอนนี้เกี่ยวข้องกับความมั่นคงของ Unix APIs คำสั่ง คำสั่งในระบบปฏิบัติการแบบ Unix ทำตามมาตรฐานอย่างเป็นทางการที่เกี่ยวข้องกับอินพุตและเอาต์พุตหรือไม่? มีกรณีในประวัติศาสตร์ที่มีการปรับปรุงคำสั่งที่สำคัญบางอย่างทำให้การทำงานของตัวกรองบางตัวที่สร้างขึ้นโดยใช้คำสั่งรุ่นเก่ากว่านั้นเสียหายหรือไม่ มีคำสั่ง Unix ที่สุกเมื่อเวลาผ่านไปซึ่งเป็นไปไม่ได้ที่จะเปลี่ยนแปลงอย่างที่ตัวกรองบางตัวสามารถแตกได้หรือไม่? ในกรณีที่ตัวกรองอาจแตกเป็นครั้งคราวเนื่องจากการเปลี่ยนคำสั่ง APIs ฉันจะเป็นนักพัฒนาป้องกันตัวกรองจากปัญหานี้ได้อย่างไร

2
การใช้งานจริงของไฟล์ / etc / Networks
การใช้งานจริงของ/etc/networksไฟล์คืออะไร? อย่างที่ฉันเข้าใจใครสามารถให้ชื่อกับเครือข่ายในไฟล์นี้ ตัวอย่างเช่น: root@fw-test:~# cat /etc/networks default 0.0.0.0 loopback 127.0.0.0 link-local 169.254.0.0 google-dns 8.8.4.4 root@fw-test:~# อย่างไรก็ตามถ้าฉันพยายามใช้ชื่อเครือข่ายนี้เช่นในipยูทิลิตี้มันไม่ทำงาน: root@fw-test:~# ip route add google-dns via 104.236.63.1 dev eth0 Error: an inet prefix is expected rather than "google-dns". root@fw-test:~# ip route add 8.8.4.4 via 104.236.64.1 dev eth0 root@fw-test:~# การใช้งานจริงของ/etc/networksไฟล์คืออะไร?

2
ฉันจะหาเอกสารอย่างเป็นทางการ POSIX และ UNIX ได้จากที่ไหน?
ฉันกำลังมองหาเอกสารอย่างเป็นทางการเกี่ยวกับมาตรฐานและข้อกำหนดของ POSIX ทั้งหมด ฉันต้องการอ่านเอกสารเพื่อให้เข้าใจระบบยูนิกซ์ได้ดีขึ้นและพวกเขาทำงานในระดับต่ำได้อย่างไร ฉันเคยเห็นลิงก์ที่นี่และไปที่ opengroup.org ซึ่งฉันคิดว่าเป็นหน่วยงานที่อยู่เบื้องหลังมาตรฐาน (แต่ฉันได้ยินมาว่า IEEE พูดถึงมากเกินไป) สำหรับบทสรุปที่ดีของ POSIX โปรดดูคำถามนี้: POSIX คืออะไร มันตอบคำถามมากมายสำหรับฉัน


2
มาตรฐาน / แบบแผนอย่างเป็นทางการสำหรับส่วนขยายไฟล์สำหรับเชลล์สคริปต์ไปยังแหล่งที่มา
ฉันสงสัยว่ามีการประชุมสำหรับส่วนขยายประเภทไฟล์สำหรับเชลล์สคริปต์ที่คุณต้องการแหล่งที่มาแทนที่จะเรียกใช้ ตัวอย่างเช่น: ถ้าฉันต้องการเรียกใช้สคริปต์นี้ใน subshell ./script.sh ถ้าฉันต้องการจำรันสคริปต์นี้จากเปลือกปัจจุบัน . script.source มีแบบแผน (เช่น POSIX เป็นต้น) สำหรับประเภทไฟล์ในตัวอย่างที่สองหรือไม่? สิ่งที่ต้องการ.sourceหรือ.sourceme? ปรับปรุง คำถามนี้ไม่ได้ถามเกี่ยวกับความคิดเห็นใด ๆ ฉันระบุชัดเจนว่าฉันต้องการทราบว่ามีนามสกุลไฟล์มาตรฐานสำหรับสคริปต์ประเภทนี้หรือไม่ คำถามนี้ใช้ความคิดเห็นน้อยกว่าคำถามที่ได้รับการตอบรับดีในประเด็นที่คล้ายกัน ( ใช้ส่วนขยาย. sh หรือ. bash สำหรับสคริปต์ทุบตี? )

1
ความสับสนเกี่ยวกับการเปลี่ยนความหมายของข้อโต้แย้งและตัวเลือกมีคำจำกัดความมาตรฐานอย่างเป็นทางการหรือไม่?
ฉันเจอความสับสนในการทำความเข้าใจว่าตัวเลือกและข้อโต้แย้งเกี่ยวข้องกับไวยากรณ์ของคำสั่งอย่างไร ตัวอย่างเช่นฉันพบคำจำกัดความเช่น: command -a -b -c d e f ความแตกต่างระหว่างบางอย่าง-a -b -cเรียกพวกเขาว่าตัวเลือกหรือสวิทช์และd e fโดยการเรียกพวกเขาขัดแย้ง command -a -b -c d e f บางตัวอย่างเช่นbashคู่มือโทร-a -b -c d e fอาร์กิวเมนต์ทั้งหมดและอธิบายว่าพวกเขาทั้งหมดสามารถเข้าถึงได้จากสคริปต์$1 $2 $3 $4 $5 $6ตามลำดับ command -a b=c บางคนเรียก-aตัวเลือกbอาร์กิวเมนต์และcค่า แต่คนอื่น ๆ ผสมมันเหมือนในสองจุดแรกในหลากหลายรูปแบบที่เรียก-a b cอาร์กิวเมนต์ทั้งหมด ทั้งสามรุ่นนี้เป็นเพียงตัวอย่างสำหรับสายพันธุ์ที่แตกต่างกันมากมายฉันไม่รู้ด้วยซ้ำว่าจะแสดงรายการทั้งหมดได้อย่างไร แต่ฉันสังเกตเห็นว่าไม่มีการตั้งชื่อแบบคงที่ หรืออย่างน้อยก็ไม่มีมาตรฐานการตั้งชื่อแบบมาตรฐานที่ฉันรู้เพราะฉันเจอแหล่งข้อมูลแบบสุ่มที่แตกต่างกัน แต่แม้แต่ในเว็บไซต์หรือคู่มืออย่างเป็นทางการของ Linux และ GNU ที่ฉันพบเจอก็ไม่สอดคล้องกัน มีรูปแบบการตั้งชื่ออย่างเป็นทางการที่ฉันสามารถอ้างถึงได้ไหม?

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