Czy potrzebuję dystrybucji Linuksa, aby nauczyć się wiersza poleceń, czy OS X wystarczy?

12

Nauczę się korzystać z wiersza polecenia. W szczególności będę korzystał z książki: „Wiersz poleceń systemu Linux: pełne wprowadzenie” . Czy muszę teraz korzystać z dystrybucji Linuksa, aby przejrzeć książkę, czy OS X wystarczy?

Jeśli potrzebuję dystrybucji Linuksa, to czy użycie jej przez maszynę wirtualną byłoby wystarczające, czy też muszę ją instalować natywnie?

Utku
źródło
8
Jedynym powodem, dla którego musisz zainstalować system operacyjny na fizycznym sprzęcie, a nie maszynę wirtualną, jest wydajność. Jeśli próbujesz nauczyć się podstawowych procedur, to nie będzie problem. Prawdopodobnie lepiej jest uruchomić coś takiego jak Arch na maszynie wirtualnej.
Bratchley,
ta sama dyskusja na apple.stackexchange.com/q/208692/7057
glenn jackman
4
Wiersz poleceń to tylko połączenie między tobą a systemem. Składnia powłoki Bash może być taka sama, ale kiedy trzeba poradzić sobie z częściami specyficznymi dla systemu, będą różnice. Na przykład, OS X robi się /procsystem plików, dysków USB zazwyczaj pojawiają się w /Volumesnie /media/usernamejak w Ubuntu. CentOS ma inny dhclient.confplik. I tak dalej i tak dalej
Sergiy Kolodyazhnyy
4
Proponowany duplikat między witrynami jest bardzo wyraźnie innym pytaniem na temat wydajności wirtualizacji na MacBookach. Pytanie nie zostało zamieszczone na krzyżach.
Michael Homer
2
@Utku Myślę, że może pomóc rozdzielić kilka pojęć: użycie wiersza polecenia i systemu operacyjnego, na którym go używasz. Jeśli chcesz poznać swój wiersz poleceń, OS X będzie działał, a także Linux, BSD, a nawet Windows z pewnym wysiłkiem. Jeśli chcesz poznać system UNIX lub Linux, wiersz poleceń to tylko niewielka część - to tylko interfejs, za pośrednictwem którego będziesz wchodzić w interakcje z systemem operacyjnym. Myślę, że wyjaśnienie, do czego
zmierzasz,

Odpowiedzi:

33

Zdecydowanie poleciłbym uruchomienie Linuksa na maszynie wirtualnej. Całe oprogramowanie jest dostępne do pobrania za darmo i nie ma praktycznej różnicy między uruchomieniem maszyny wirtualnej a uruchomieniem natywnym w celu uczenia się wiersza poleceń.

Co więcej, linia poleceń Linuksa składa się głównie z coreutils bash + GNU , co bardzo różni się od BSD Unix (a OS X jest następcą BSD Unix). Istnieje bardzo duża różnica preferencji w pisaniu argumentów w BSD Unix i GNU Linux. Możesz gryźć się nawet jako nowicjusz z innymi opcjami niż standardowe narzędzia, takie jak psi tarjeśli pracujesz na obu systemach.

Używanie systemu OS X, gdy książka jest przeznaczona dla systemu Linux, regularnie wyrzuca niespójności i różnice, które będą się wydawać powierzchowne, gdy będziesz bardziej doświadczony, ale po prostu wprowadzi w błąd podczas nauki. Zachowaj łatwość dla siebie.

Umożliwi to również eksperymentowanie bez obawy o uszkodzenie komputera przez usunięcie lub zmianę ważnych plików.

I na koniec, choć na pewno nie najmniej ważne, pozwoli ci skonfigurować połączenie SSH z maszyną wirtualną z poziomu terminalu OS X, abyś mógł przyzwyczaić się do używania kluczy SSH i przekonania, że ​​nie ma znaczenia, czy serwer Linux jest maszyną natywną, lokalną maszyną wirtualną lub działającą na AWS lub Digital Ocean: wszystko działa tak samo!

seumasmac
źródło
Nawiasem mówiąc, czy będę miał taką samą strukturę katalogów na maszynie wirtualnej, jak i natywny Linux?
Utku
3
Tak. Dla Twoich celów jest to dokładnie to samo, co instalacja natywna.
seumasmac
To najbezpieczniejsza odpowiedź, ale w zależności od książki zakładam, że wprowadzenie do książki z wierszem poleceń nie pokazuje wielu (jeśli w ogóle) różnic. Po rzucie oka na instrukcję jedyne, co mi się przydarzyło, to wyjaśnienie struktury katalogów.
pllee
1
@Utku Jeśli w książce wspomniano o / dev / sda lub / dev / hda i nie można go znaleźć w instalacji, spróbuj poszukać / dev / vda. To jedyna możliwa różnica, o której mogę myśleć, która miałaby dla ciebie znaczenie.
Kimmax
1
Nie musisz nawet używać maszyny wirtualnej, korzystanie z płyty CD na żywo jest również możliwe, jeśli nie chcesz zajmować dużo miejsca na dysku HD. Można go również uruchomić z napędu flash, a utworzenie napędu CD / rozruchowego zajmuje bardzo mało czasu.
Chris Cirefice,
18

OS X jest wystarczający do nauki wiersza poleceń, ponieważ jest certyfikowanym systemem UNIX i jest zgodny z POSIX. Jeśli patrzysz na książkę z wierszami poleceń specyficznymi dla Linuksa, musisz pamiętać, że narzędzia użytkownika w OS X pochodzą z BSD, podczas gdy narzędzia w Linuksie to GNU i istnieją między nimi pewne subtelne (i nie tak subtelne) różnice.

Jeśli chcesz się uczyć za pomocą narzędzi GNU, możesz zainstalować przestrzeń użytkownika GNU za pośrednictwem macports lub homebrew, lub możesz wykonać pełną instalację Linuksa na maszynie wirtualnej.

Casey
źródło
Sądzę więc, że w wierszu poleceń nie ma „ogólnej” książki? Książka będzie używać narzędzi GNU lub BSD. Czy to prawda?
Utku
1
Jeśli masz książkę w powłoce (np. bash), Będzie pasować do prawie każdego systemu, który ją uruchamia. Różni się, gdy zaczniesz używać funkcji systemu operacyjnego lub określonych narzędzi poza powłoką.
teppic
1
@teppic Ale jak przydatna jest sama powłoka ? AFAIK, sama powłoka jest bezużyteczna, ponieważ nie ma żadnego polecenia do wykonania. Nawet najbardziej podstawowe polecenia lsmuszą pochodzić z GNU lub BSD (proszę poprawić, jeśli się mylę). Myślę więc, że oznacza to, że muszę wybrać jeden zestaw narzędzi (lub środowisko) i zacząć uczyć się tam wiersza poleceń. Czy to prawda?
Utku
@Utku polecenia są takie same (w przeważającej części), ale opcje i dane wyjściowe mogą się różnić (często dlatego, że GNU implementuje wiele rozszerzeń). Łatwo poruszać się między narzędziami BSD i GNU.
Casey
@ casey Więc mógłbym zacząć od książki na OS X. A jeśli napotkam zachowanie, które nie zostało opisane w książce, mogę wypróbować ją na Linuksie lub po prostu spojrzeć na wariant BSD tego samego polecenia?
Utku
9

Jak dotąd kilka dobrych odpowiedzi, ale jeszcze jeden powód, aby trzymać się z dala od domyślnych narzędzi wiersza poleceń OS X, to bardzo stare wersje. Na przykład OS X greppochodzi z 2004 roku, a bashod 2007 roku! Powodem jest, że Apple odmawia narzędzi licencjonowanych statków pod GPL3.

Jeśli nie chcesz poprawnie instalować Linuksa, możesz ręcznie zainstalować najnowsze wersje (być może za pośrednictwem jakiegoś systemu portów, takiego jak MacPorts, Fink lub Homebrew).

Krogulec
źródło
3

Pierwsza różnica:

ls * -lah

Działa na Linuksie, zawiesza na Macu (parametry muszą być na pierwszym miejscu). Użyj maszyny wirtualnej lub pobierz książkę dla systemu Mac OS. Powinieneś nauczyć się tego, którego będziesz używać później, a potem różnic.

użytkownik136809
źródło
3
Powinieneś powiedzieć, że ls * -lahdziała w systemie Linux tak, jak działa w systemie Linux i działa w systemie OS X tak, jak działa w systemie OS X. Sposób działania w systemie OS X jest poprawny zgodnie z POSIX (12. Konwencje narzędzi / 12.2 Wytyczne dotyczące składni narzędzi / Wytyczna 9) : „Wszystkie opcje powinny poprzedzać operandy w wierszu poleceń.” Jak opisano w getopt (3) : „Jeśli… ustawiona jest zmienna środowiskowa POSIXLY_CORRECT , przetwarzanie opcji zostanie zatrzymane, gdy tylko napotkamy argument braku opcji.”
G-Man mówi „Przywróć Monikę”
3

Najlepszym sposobem na nauczenie się unixa jest praca z nim. Powiedziałbym, że warto poznać różnice między przykładami specyficznymi dla Linuksa w książce a wersjami standardowych narzędzi dla komputerów Mac, aby móc pracować z własnymi plikami i danymi w normalnym środowisku pracy (OS X).

Spotkanie z różnicami będzie również cennym doświadczeniem w nauce, nawet jeśli czasami frustruje.

Posiadanie maszyny wirtualnej z Linuksem również do ćwiczenia (szczególnie w przypadku potencjalnie niebezpiecznych poleceń) jest również przydatne, ale nic nie przebije rzeczywistego użycia do nauki.

cas
źródło