Apakah saya memerlukan distro Linux untuk mempelajari baris perintah atau apakah OS X sudah cukup?

12

Saya akan belajar cara menggunakan baris perintah. Secara khusus, saya akan menggunakan buku: "The Linux Command Line: A Complete Introduction" . Sekarang, apakah saya harus menggunakan distro Linux untuk membaca buku, atau apakah OS X sudah cukup?

Jika saya memerlukan distro Linux, maka apakah menggunakannya melalui VM sudah cukup atau apakah saya perlu menginstalnya secara asli?

Utku
sumber
8
Satu-satunya alasan Anda perlu menginstal OS pada perangkat keras fisik dan bukan VM adalah untuk kinerja. Jika Anda hanya mencoba mempelajari prosedur dasar daripada itu tidak akan menjadi masalah. Mungkin lebih baik menjalankan sesuatu seperti Arch di VM.
Bratchley
diskusi yang sama di apple.stackexchange.com/q/208692/7057
glenn jackman
4
Baris perintah hanyalah tautan antara Anda dan sistem. Sintaks Bash shell mungkin sama, tetapi ketika Anda perlu berurusan dengan bagian sistem tertentu, akan ada perbedaan. Misalnya, OS X tidak memiliki /procsistem file, drive USB cenderung muncul /Volumestidak /media/usernameseperti pada Ubuntu. CentOS memiliki dhclient.conffile yang berbeda . Dan seterusnya dan seterusnya
Sergiy Kolodyazhnyy
4
Duplikat lintas-situs yang diusulkan sangat jelas merupakan pertanyaan yang berbeda , tentang kinerja virtualisasi pada MacBook. Pertanyaannya tidak diposkan silang.
Michael Homer
2
@Utku Saya pikir apa yang mungkin bisa membantu untuk memisahkan beberapa konsep: menggunakan baris perintah, dan sistem operasi tempat Anda menggunakannya. Jika Anda ingin mengetahui baris perintah jauh Anda, OS X akan berfungsi, serta Linux, BSD, atau bahkan Windows dengan sedikit usaha. Jika Anda ingin mengenal UNIX atau Linux, baris perintah hanya sebagian kecil dari itu - itu hanya antarmuka di mana Anda akan berinteraksi dengan OS. Saya pikir mengklarifikasi tujuan Anda juga akan membuatnya lebih mudah untuk dipelajari :)
rickcnagy

Jawaban:

33

Saya sangat merekomendasikan menjalankan Linux dalam VM. Semua perangkat lunak tersedia untuk diunduh secara bebas dan tidak ada perbedaan praktis antara menjalankan VM dan berjalan secara native untuk keperluan mempelajari baris perintah.

Selain itu, baris perintah Linux sebagian besar terdiri dari bash + GNU coreutils , yang sangat berbeda dari BSD Unix (dan OS X adalah pengganti BSD Unix). Ada perbedaan preferensi yang sangat besar dalam menulis argumen di BSD Unix dan GNU Linux. Anda dapat menggigit diri sendiri bahkan sebagai bukan pemula dengan opsi yang berbeda untuk utilitas standar seperti psdan tarjika Anda bekerja pada kedua sistem.

Menggunakan OS X saat buku Anda spesifik untuk Linux secara teratur akan memunculkan inkonsistensi dan perbedaan yang akan tampak dangkal ketika Anda lebih berpengalaman, tetapi hanya akan membingungkan ketika Anda sedang belajar. Buat semuanya mudah untuk diri Anda sendiri.

Ini juga akan memungkinkan Anda untuk bereksperimen tanpa khawatir merusak mesin Anda dengan menghapus atau mengubah file penting.

Dan yang terakhir, meskipun tentu tidak sedikit, itu akan memungkinkan Anda untuk mengatur koneksi SSH ke VM Anda dari OS X Terminal Anda, sehingga Anda dapat terbiasa menggunakan kunci SSH, dan dengan gagasan bahwa tidak ada bedanya apakah server Linux Anda adalah mesin asli, VM lokal, atau kehabisan AWS atau Digital Ocean: semuanya bekerja sama!

seumasmac
sumber
Ngomong-ngomong, apakah saya akan memiliki struktur direktori yang sama dalam VM vs Linux asli juga?
Utku
3
Iya. Untuk keperluan Anda, persis sama dengan instalasi asli.
seumasmac
Ini adalah jawaban teraman tetapi tergantung pada buku saya akan menganggap pengantar buku baris perintah tidak akan menunjukkan banyak (jika ada) perbedaan. Setelah melirik manual, satu-satunya hal yang menonjol bagi saya adalah penjelasan struktur direktori.
mundur
1
@Utku Jika / dev / sda atau / dev / hda disebutkan dalam buku dan Anda tidak dapat menemukannya di instal Anda, coba cari / dev / vda. Ini adalah satu-satunya perbedaan yang mungkin saya pikirkan, itu penting bagi Anda.
Kimmax
1
Anda bahkan tidak harus menggunakan VM, menggunakan live CD juga dimungkinkan jika Anda tidak ingin mengambil banyak ruang di HD Anda. Itu juga dapat di-boot dari flash drive, dan membuat CD / bootable flash drive membutuhkan waktu yang sangat sedikit.
Chris Cirefice
18

OS X cukup untuk mempelajari baris perintah karena merupakan UNIX bersertifikat dan sesuai dengan POSIX. Jika Anda melihat buku baris perintah khusus Linux, Anda harus ingat bahwa alat-alat pengguna di OS X berasal dari BSD sementara alat-alat di Linux adalah GNU dan ada beberapa perbedaan yang halus (dan tidak begitu halus) di antara mereka.

Jika Anda ingin belajar dengan alat-alat GNU, Anda dapat menginstal GNU userland melalui macports atau homebrew, atau dapat melakukan instalasi Linux lengkap dalam VM.

casey
sumber
Jadi, saya kira tidak ada buku "generik" di baris perintah? Buku akan menggunakan alat GNU atau BSD. Apakah itu benar?
Utku
1
Jika Anda memiliki buku tentang shell (mis. bash), Itu akan cocok dengan semua sistem yang menjalankannya. Ini bervariasi ketika Anda mulai menggunakan fitur sistem operasi atau alat khusus di luar shell.
teppic
1
@teppic Tapi seberapa bermanfaat shell hanya dengan sendirinya ? AFAIK, shell dengan sendirinya tidak berguna karena tidak memiliki perintah untuk dijalankan. Bahkan perintah paling dasar seperti lsharus dari GNU atau BSD (mohon perbaiki jika saya salah). Jadi, saya pikir ini berarti bahwa saya perlu memilih satu toolchain (atau lingkungan) dan mulai belajar baris perintah di sana. Apakah itu benar?
Utku
@Utku perintahnya sama (sebagian besar) tetapi opsi dan output mungkin berbeda (seringkali karena GNU mengimplementasikan banyak ekstensi). Mudah untuk bolak-balik antara alat BSD dan GNU.
Casey
@casey Jadi saya mungkin baru mulai dengan buku di OS X. Lalu jika saya menemukan perilaku yang tidak dijelaskan dalam buku, saya mungkin mencobanya di Linux atau hanya melihat varian BSD dari perintah yang sama?
Utku
9

Beberapa jawaban bagus sejauh ini, tetapi satu lagi alasan untuk menjauh dari alat baris perintah OS X default adalah mereka adalah versi yang sangat lama. Misalnya, OS X'sgrep berasal dari 2004, dan bashdari 2007! The Alasan adalah bahwa Apple menolak untuk alat kapal berlisensi di bawah GPL3 tersebut.

Jika Anda tidak ingin menginstal Linux dengan benar, Anda dapat menginstal versi terbaru secara manual (mungkin melalui beberapa sistem port seperti MacPorts, Fink atau Homebrew).

Sparhawk
sumber
3

Perbedaan pertama:

ls * -lah

Bekerja di linux, gagal di mac (parameter harus diutamakan). Gunakan VM atau dapatkan buku untuk mac os. Anda harus mempelajari yang akan Anda gunakan nanti dan kemudian perbedaannya.

pengguna136809
sumber
3
Anda harus mengatakan ls * -lahbekerja di Linux seperti cara kerjanya di Linux, dan bekerja di OS X cara kerjanya di OS X. Cara kerjanya di OS X benar menurut POSIX (12. Konvensi Utilitas / 12.2 Petunjuk Sintaks Utilitas / Pedoman 9) : "Semua opsi harus mendahului operan pada baris perintah." Seperti dijelaskan dalam getopt (3) : "Jika ... variabel lingkungan POSIXLY_CORRECT diatur, maka pemrosesan opsi berhenti segera setelah argumen non-pilihan ditemui."
G-Man Mengatakan 'Reinstate Monica'
3

Cara terbaik untuk belajar unix adalah memiliki pekerjaan nyata untuk dilakukan dengannya. Menurut saya ada baiknya menemukan perbedaan antara contoh spesifik Linux dalam buku Anda dan versi Mac dari alat standar, hanya untuk dapat bekerja dengan file dan data Anda sendiri di lingkungan kerja normal Anda (OS X).

Menghadapi perbedaan juga akan menjadi pengalaman belajar yang berharga, meskipun terkadang membuat frustrasi.

Memiliki Linux VM juga untuk dipraktekkan (terutama untuk perintah yang berpotensi berbahaya) juga berguna tetapi tidak ada yang mengalahkan penggunaan dunia nyata untuk belajar.

cas
sumber