ฉันต้องใช้ดิสทริบิวเตอร์ distro เพื่อเรียนรู้บรรทัดคำสั่งหรือ OS X นั้นเพียงพอ


12

ฉันจะเรียนรู้วิธีใช้บรรทัดคำสั่ง โดยเฉพาะผมจะใช้หนังสือ: "ลินุกซ์บรรทัดคำสั่ง: A Complete บทนำ" ตอนนี้ฉันต้องใช้ distro Linux เพื่ออ่านหนังสือหรือไม่ OS X จะเพียงพอหรือไม่

ถ้าฉันต้องการดิสทริบิวเตอร์แบบลินุกซ์แล้วก็จะใช้มันผ่าน VM เพียงพอหรือฉันต้องติดตั้งแบบเนทีฟ


8
เหตุผลเดียวที่คุณจะต้องติดตั้งระบบปฏิบัติการบนฮาร์ดแวร์ทางกายภาพไม่ใช่ VM สำหรับประสิทธิภาพ หากคุณเพียงแค่พยายามเรียนรู้ขั้นตอนพื้นฐานมากกว่าที่จะไม่เป็นปัญหา มันอาจจะดีกว่าที่จะเรียกใช้บางอย่างเช่น Arch ใน VM
Bratchley

การสนทนาเดียวกันบนapple.stackexchange.com/q/208692/7057
glenn jackman

4
Command-line เป็นเพียงการเชื่อมโยงระหว่างคุณกับระบบ ไวยากรณ์ของเชลล์ Bash อาจเหมือนกัน แต่เมื่อคุณต้องการจัดการกับส่วนต่าง ๆ ของระบบโดยเฉพาะจะมีความแตกต่าง ตัวอย่างเช่น OS X ไม่มี/procระบบไฟล์ไดรฟ์ USB มักจะ/Volumesไม่ปรากฏใน/media/usernameUbuntu CentOS มีdhclient.confไฟล์ต่างกัน และอื่น ๆ เป็นต้น
Sergiy Kolodyazhnyy

4
การทำสำเนาข้ามไซต์ที่เสนอนั้นเป็นคำถามที่แตกต่างกันอย่างชัดเจนเกี่ยวกับประสิทธิภาพการจำลองเสมือนบน MacBooks คำถามไม่ได้ข้ามโพสต์
Michael Homer

2
@Utku ฉันคิดว่าสิ่งที่อาจช่วยได้คือการแยกแนวคิดบางอย่าง: การใช้บรรทัดคำสั่งและระบบปฏิบัติการที่คุณใช้ หากคุณต้องการรู้ว่าบรรทัดคำสั่งของคุณอยู่ที่ใด OS X จะทำงานเช่นเดียวกับ Linux, BSD หรือ Windows ด้วยความพยายาม หากคุณต้องการทำความรู้จักกับ UNIX หรือ Linux บรรทัดคำสั่งเป็นเพียงส่วนเล็ก ๆ ของมัน - เป็นเพียงส่วนต่อประสานที่คุณจะโต้ตอบกับระบบปฏิบัติการ ฉันคิดว่าการอธิบายสิ่งที่คุณกำลังทำจะช่วยให้เรียนรู้ได้ง่ายขึ้น :)
rickcnagy

คำตอบ:


33

ฉันอยากจะแนะนำให้ใช้งาน Linux ใน VM ซอฟต์แวร์ทั้งหมดนั้นสามารถดาวน์โหลดได้อย่างอิสระและไม่มีความแตกต่างในทางปฏิบัติระหว่างการทำงานใน VM และการทำงานโดยกำเนิดเพื่อจุดประสงค์ในการเรียนรู้บรรทัดคำสั่ง

นอกจากนี้บรรทัดคำสั่ง Linux ส่วนใหญ่ประกอบด้วยbash + GNU coreutilsซึ่งแตกต่างจาก BSD Unix อย่างมาก (และ OS X เป็นผู้ที่สนับสนุน BSD Unix) การตั้งค่าการเขียนข้อโต้แย้งใน BSD Unix และ GNU Linux แตกต่างกันมาก คุณสามารถกัดตัวเองได้แม้ในฐานะมือใหม่ที่มีตัวเลือกต่าง ๆ ให้กับยูทิลิตี้มาตรฐานเช่นpsและtarถ้าคุณทำงานกับทั้งสองระบบ

การใช้ OS X เมื่อหนังสือของคุณเป็นลินุกซ์โดยเฉพาะจะทำให้ความไม่สอดคล้องและความแตกต่างเป็นประจำซึ่งจะดูผิวเผินเมื่อคุณมีประสบการณ์มากขึ้น แต่จะสับสนเมื่อคุณเรียนรู้ ทำให้ทุกอย่างง่ายขึ้นสำหรับตัวคุณเอง

วิธีนี้จะช่วยให้คุณสามารถทดสอบได้โดยไม่ต้องกังวลว่าจะทำให้เครื่องเสียหายโดยการลบหรือเปลี่ยนแปลงไฟล์สำคัญใด ๆ

และสุดท้ายแม้ว่าจะไม่น้อยไปกว่านี้แน่นอนมันจะช่วยให้คุณสามารถตั้งค่าการเชื่อมต่อ SSH กับ VM ของคุณจาก OS X Terminal ของคุณเพื่อให้คุณคุ้นเคยกับการใช้คีย์ SSH และความคิดที่ทำให้เซิร์ฟเวอร์ Linux ของคุณไม่แตกต่างกัน เป็นเครื่องเนทีฟ VM ท้องถิ่นหรือหมดใน AWS หรือ Digital Ocean: ทั้งหมดทำงานเหมือนกัน!


โดยวิธีการฉันจะมีโครงสร้างไดเรกทอรีเดียวกันใน VM กับ Linux พื้นเมืองเช่นกัน?
Utku

3
ใช่. สำหรับจุดประสงค์ของคุณมันเหมือนกับการติดตั้งดั้งเดิม
seumasmac

นี่คือคำตอบที่ปลอดภัยที่สุด แต่ขึ้นอยู่กับหนังสือเล่มนี้ฉันจะถือว่าคำแนะนำเกี่ยวกับหนังสือบรรทัดคำสั่งจะไม่แสดงความแตกต่างมากมาย (ถ้ามี) หลังจากดูคู่มือแล้วสิ่งเดียวที่ติดอยู่กับฉันก็คือคำอธิบายของโครงสร้างไดเรกทอรี
pllee

1
@Utku หากมีการกล่าวถึง / dev / sda หรือ / dev / hda ในหนังสือและคุณไม่สามารถหาได้ในการติดตั้งลองค้นหา / dev / vda นี่เป็นความแตกต่างที่เป็นไปได้เพียงอย่างเดียวที่ฉันสามารถนึกได้นั่นจะสำคัญสำหรับคุณ
Kimmax

1
คุณไม่จำเป็นต้องใช้ VM แม้แต่การใช้CD สดก็เป็นไปได้ถ้าคุณไม่ต้องการใช้พื้นที่บน HD ของคุณ นอกจากนี้ยังสามารถบูตได้จากแฟลชไดรฟ์และการสร้างแฟลชไดรฟ์ซีดี / บูตใช้เวลาน้อยมาก
Chris Cirefice

18

OS X นั้นเพียงพอที่จะเรียนรู้บรรทัดคำสั่งเนื่องจากเป็น UNIX ที่ได้รับการรับรองและสอดคล้องกับ POSIX หากคุณกำลังมองหาหนังสือบรรทัดคำสั่งเฉพาะของ Linux คุณต้องจำไว้ว่าเครื่องมือ userland ใน OS X นั้นมาจาก BSD ในขณะที่เครื่องมือบน Linux เป็น GNU และมีความแตกต่างเล็กน้อย (และไม่ลึกซึ้งมาก)

หากคุณต้องการเรียนรู้ด้วยเครื่องมือ GNU คุณสามารถติดตั้ง GNU userland ผ่าน macports หรือ homebrew หรือสามารถติดตั้ง Linux แบบเต็มใน VM


ดังนั้นฉันเดาว่าไม่มีหนังสือ "ทั่วไป" ในบรรทัดคำสั่ง? หนังสือจะใช้เครื่องมือ GNU หรือ BSD นั่นถูกต้องใช่ไหม?
Utku

1
หากคุณมีหนังสือเล่มหนึ่งบนเปลือกหอย (เช่นbash) มันจะเหมาะกับระบบที่ใช้มัน มันแตกต่างกันเมื่อคุณเริ่มใช้คุณสมบัติระบบปฏิบัติการหรือเครื่องมือเฉพาะนอกเชลล์
teppic

1
@teppic แต่วิธีที่มีประโยชน์เป็นเปลือกเพียงแค่ตัวเอง ? AFAIK เชลล์ตัวเองนั้นไร้ประโยชน์เพราะมันไม่มีคำสั่งให้ทำงาน แม้แต่คำสั่งพื้นฐานที่สุดอย่างนั้นก็lsต้องมาจาก GNU หรือ BSD (โปรดแก้ไขถ้าฉันผิด) ดังนั้นฉันคิดว่านี่หมายความว่าฉันต้องเลือกหนึ่ง toolchain (หรือสภาพแวดล้อม) และเริ่มเรียนรู้บรรทัดคำสั่งที่นั่น นั่นถูกต้องใช่ไหม?
Utku

@Utku คำสั่งเหมือนกัน (ส่วนใหญ่) แต่ตัวเลือกและผลลัพธ์อาจแตกต่างกัน (มักจะเป็นเพราะ GNU ใช้ส่วนขยายจำนวนมาก) ง่ายต่อการย้อนกลับไปมาระหว่างเครื่องมือ BSD และ GNU
casey

@casey ดังนั้นฉันอาจเริ่มต้นด้วยหนังสือบน OS X แล้วถ้าฉันพบกับพฤติกรรมที่ไม่ได้อธิบายไว้ในหนังสือฉันอาจลองบน Linux หรือลองดูที่ตัวแปร BSD ของคำสั่งเดียวกัน
Utku

9

คำตอบที่ดีบางคำตอบ แต่เหตุผลอีกข้อหนึ่งที่ควรหลีกเลี่ยงเครื่องมือบรรทัดคำสั่ง OS X เริ่มต้นคือเวอร์ชันเก่ามาก ตัวอย่างเช่น OS X grepมาจากปี 2004 และbashมาจากปี 2007! เหตุผลก็คือว่าแอปเปิ้ลปฏิเสธที่จะเครื่องมือเรือใบอนุญาตภายใต้ GPL3

หากคุณไม่ต้องการติดตั้ง Linux อย่างเหมาะสมคุณสามารถติดตั้งเวอร์ชันล่าสุดด้วยตนเอง (อาจผ่านระบบพอร์ตบางระบบเช่น MacPorts, Fink หรือ Homebrew)


3

ความแตกต่างแรก:

ls * -lah

ใช้งานได้กับ linux, ล้มเหลวบน mac (พารามิเตอร์ต้องมาก่อน) ใช้ VM หรือรับหนังสือสำหรับ mac os คุณควรเรียนรู้สิ่งที่คุณจะใช้ในภายหลังและความแตกต่าง


3
คุณควรพูดว่าls * -lahทำงานบน Linux วิธีที่ทำงานบน Linux และทำงานบน OS X วิธีที่ทำงานบน OS X วิธีที่ทำงานบน OS X นั้นถูกต้อง ตาม POSIX (12 ยูทิลิตี้การประชุม / 12.2 ยูทิลิตี้แนวทางไวยากรณ์ / คำแนะนำ 9) :“ ตัวเลือกทั้งหมดควรนำหน้าตัวถูกดำเนินการในบรรทัดคำสั่ง” ดังอธิบายในgetopt (3) :“ ถ้า…ตัวแปรสภาพแวดล้อมPOSIXLY_CORRECTถูกตั้งค่าการประมวลผลตัวเลือกจะหยุดทันทีที่พบข้อโต้แย้งที่ไม่ใช่ตัวเลือก”
G-Man กล่าวว่า 'Reinstate Monica'

3

วิธีที่ดีที่สุดในการเรียนรู้ยูนิกซ์คือการมีงานจริงทำกับมัน ฉันว่ามันควรค่ากับการเผชิญหน้ากับความแตกต่างระหว่างตัวอย่างเฉพาะ Linux ในหนังสือของคุณและเครื่องมือมาตรฐานรุ่น Mac เพียงเพื่อให้สามารถทำงานกับไฟล์และข้อมูลของคุณเองในสภาพแวดล้อมการทำงานปกติ (OS X)

การเผชิญหน้ากับความแตกต่างจะเป็นประสบการณ์การเรียนรู้ที่มีค่าแม้ว่ามันจะน่าผิดหวังในบางครั้ง

การมี Linux VM และฝึกฝนด้วย (โดยเฉพาะสำหรับคำสั่งที่อาจเป็นอันตราย) ก็มีประโยชน์เช่นกัน

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