ในระดับที่คุณสามารถพูดได้ว่า แต่นั่นไม่เป็นความจริง ฉันคิดว่าคุณควรอ่านให้มากขึ้นในฐานะ 'ความสามารถในการบรรลุผลมากกว่า' ด้วยวิธีการออกแบบที่เรียบง่าย และเพื่อให้ง่ายคุณจะต้องแบ่งงานออกเป็นส่วนที่เข้าใจได้ง่ายและง่ายต่อการประกอบ ปรัชญา UNIX ที่ตรงไปตรงมากับคุณสามารถอธิบายได้ด้วยตัวอย่างต่อไปนี้
การเขียนโปรแกรมทั้งหมดเป็นการจัดการข้อมูลบางประเภท! และในบางกรณีการเขียนโปรแกรมก็ยังจัดการโปรแกรมเอง (Meta programming) ตอนนี้วิธีการทำงานของปรัชญา UNIX คือลองนึกภาพการประมวลผลข้อความ ข้อความคืออะไร ข้อความเป็นข้อมูลบางประเภท เมื่อรวมตัวกันเป็นข้อกำหนดข้อความก็จะกลายเป็น XML และ JSON ของ ข้อความยังสามารถเป็นรายการของตัวเลขข้อความสามารถเป็นของ csv, tsv และอะไรก็ได้! ในข้อความหรือสตริงอื่น ๆ สามารถเป็นตัวแทนของพื้นที่การเขียนโปรแกรมข้อมูลขนาดใหญ่เพียงเพราะบริบทสามารถบิดและกลายเป็นสิ่งที่เราต้องการ!
การเขียนโปรแกรมทั้งหมดต้องการการจัดระเบียบข้อมูลบางอย่าง การจัดระเบียบต้องค้นหา ...
คุณไปที่นั่นแค่มี 'grep', 'fgrep' และครอบครัวของมันเพื่อทำเช่นนั้น
เมื่อคุณค้นหาคุณต้องทำการเรียงลำดับ ..
ข ตอนนี้เรามีคำสั่ง 'เรียงลำดับ' เพื่อทำเช่นนั้น
คุณเพิ่งเรียงลำดับสองไฟล์ตอนนี้คุณต้องการเปรียบเทียบมัน
ค ตอนนี้เรามี 'diff', 'cmp' และ al เพื่อทำเช่นนั้น
คุณเพิ่งพบว่าไม่มีความแตกต่างระหว่างไฟล์ คุณต้องการข้อมูลที่เป็นระเบียบมากขึ้นในตอนนี้
d คุณมี 'cat' ไพพ์และโอเปอเรเตอร์การเปลี่ยนเส้นทางเพื่อเขียนไปยังไฟล์
คุณต้องการการแยกวิเคราะห์ที่เฉพาะเจาะจงมากขึ้น ..
อี คุณมีหัวหางมากขึ้นน้อยลงตัดและทำเช่นนั้น ...
ทั้งหมดนี้ถูกเย็บเข้าด้วยกันโดยใช้ '|' เพื่อสร้างสิ่งที่ทรงพลังจริง ๆ โดยไม่ต้องเขียนโค้ดใด ๆ เลย สำหรับการค้นหาและเย็บเพิ่มเติมที่คุณมี ..
ฉ awk, shell และ sed
awk, shell และ sed ช่วยให้คุณควบคุมข้อความได้ดีกว่าสิ่งที่ตัด, diff et al สามารถให้คุณได้ คุณเคยสงสัยหรือไม่ว่า command1 | command2 | command3 ... series เป็นกลไกเวิร์กโฟลว์ เมื่อรวมกับ If's จะมีพลังมากขึ้น
ตอนนี้สนุกมากขึ้น
คุณเคยได้ยินชื่อยูทิลิตี้ที่ชื่อว่า'Perl'สิ่งนี้มีประสิทธิภาพมากจนคุณสามารถทำงานใด ๆ ได้พร้อมกับทำงานน้อยที่สุดเท่าที่จะเป็นไปได้ เย็บเข้าด้วยกันด้วยยูทิลิตี้อย่าง DBM คุณสามารถทำสิ่งที่จำเป็นสำหรับการสมัครของคุณ โปรดจำไว้ว่าเรายังไม่ได้ก้าวออกจากโลกข้อความ แต่ยังสามารถครอบคลุมส่วนใหญ่ของสภาพแวดล้อมการเขียนโปรแกรม
ดังนั้นฉันคิดว่า UNIX เป็นมากกว่าระบบปฏิบัติการ มันเป็นชุดของเครื่องมือและสภาพแวดล้อมที่ออกแบบมาเพื่อแก้ปัญหาด้วยวิธีที่ง่ายที่สุด วิธีง่ายๆไม่จำเป็นต้องหมายถึงความเรียบง่ายของการใช้งานโซลูชัน แต่ความเรียบง่ายนั้นไม่ได้นำพาคุณไปไกล
ฉันอ่านนี้บางที่ที่ Reddit
"หากเป้าหมายการออกแบบเพียงอย่างเดียวของคุณคือความเรียบง่ายคุณจะได้ผู้ใช้มากถึง Plan9"