Uwielbiam Ubuntu Linux - szczególnie linię poleceń. Ale muszę przyznać, że przynajmniej na razie system Windows jest bardziej przyjazny dla użytkownika - jest w nim więcej oprogramowania, więcej sterowników i więcej rzeczy po prostu działa.
Wiedząc, że Mac jest zbudowany na Uniksie, zastanawiam się, czy to między nimi najsłodsze miejsce. Ale zastanawiam się: jak podobna jest linia poleceń Maca do bash Linuxa ? Czy mogę od razu zacząć korzystać ze skryptów vim i bash, git itp.? Czy wspólne polecenia, takie jak zmiana katalogów, byłyby inne? Czy ktoś zna internetowy zasób „porównuj i kontrastuj”?
Odpowiedzi:
Bash to bash, więc powłoka i jej wbudowane elementy są takie same. Pamiętaj jednak, że zachowanie niektórych narzędzi, takich jak
ps
lub,head
może różnić się szczegółami, dlatego skrypty mogą zawieść.źródło
file
:file -i
nafile -I
systemie Linux podczas pracy w systemie OSX ☹️Mac OS X to system uniksowy, a jego linia poleceń jest w 99,9% taka sama jak w każdej dystrybucji Linuksa.
bash
jest twoją domyślną powłoką i możesz skompilować wszystkie te same programy i narzędzia. Nie ma zauważalnej różnicy. Można również znaleźć różne projekty, takie jak MacPorts, które zapewniają zarządzanie pakietami dla komputerów Mac.źródło
Jest bardzo podobny, ale jeśli znasz jakiekolwiek różnice między BSD a Linuksem, spodziewaj się, że Mac zachowa BSD.
źródło
Kilka rzeczy - to naprawdę zależy od tego, co rozumiesz przez linię poleceń.
Możesz wpaść na to - / bin / bash na komputerze Mac jest przypięty do wersji 3.x ze względów licencyjnych. Mogą wystąpić drobne problemy ze zgodnością, jeśli jesteś przyzwyczajony do 4, a nawet 5.
bash sam w sobie jest małym podzbiorem „linii poleceń”. Aby być użytecznym, zwykle używasz innych popularnych narzędzi UNIX, takich jak awk, ls lub cut. Ze względu na swoją historię (pochodzi od BSD, a nie od Linuksa lub SystemV), wersje narzędzi dla komputerów Mac będą inne niż te, do których przywykłeś w Linuksie (inaczej wersje GNU). Będą one miały co najmniej pewne różnice flag oraz pewne różnice w wydajności i funkcjonalności niż Linux. Skrypty, które ich używają, będą musiały zostać zmienione w celu kompensacji. BSD awk vs GNU gawk jest całkiem inny. LUB, możesz pobrać te wersje GNU z Macports lub domowego browaru i ustawić swoją ŚCIEŻKĘ, aby były to ustawienia domyślne (w porównaniu z wersjami wbudowanymi).
MacOS X ma także kilka nowych fajnych narzędzi.
open
jest fajny, otworzy obiekt tak, jakbyś go dwukrotnie kliknął.defaults
pozwala ustawić niektóre preferencje, niektóre nawet w panelach preferencji GUI.textutil
mogą być przydatne isay
mogą być zabawne.źródło
Funkcje wiersza poleceń w systemach Mac i Linux są rzeczywiście podobne, ponieważ OS X ma smak UNIX (zwany Darwin) pod graficznym interfejsem użytkownika.
Domyślną powłoką w systemie OS X jest bash, więc jeśli znasz się na tym, dobrze się dostosujesz.
Na komputerze Mac domyślną aplikacją wiersza polecenia jest Terminal. Istnieje również wiele innych emulatorów, ale ogólnie Terminal zapewnia bardzo podobny wygląd i działanie do powłoki, do której jesteś przyzwyczajony w Linuksie.
Podstawowym źródłem różnic są jednak:
du
na przykład). Do podstawowych komend, takich jakcd
lubls
itd. Są podobne.Biorąc to pod uwagę, istnieje również wiele fajnych hacków dostępnych z wiersza poleceń w OS X (np.
open
Commnand). Istnieje wiele poprzednich wątków i postów na blogu z dodatkowymi informacjami.Można również dostać w swoje ręce na kilka pakietów opensource (tj
git
,hg
etc.) poprzez DarwinPorts, Fink lub kilkoma innymi systemami zarządzania pakietami dla OS X. Można także budować inne pakiety źródłowe przeznaczone dla systemu UNIX / Linux jak systemy jak to konieczne .źródło
Oto jedna różnica. Wypróbuj to polecenie w powłoce bash dla komputerów Mac i Linux
Mac nie wyświetla nic, mimo że wewnątrz pliku / etc znajduje się dużo plików .conf.
źródło
find /etc/* -name "*.conf"
. Niemniej jednak podano to jako przykład dla kontrastu wiersza poleceń MAC z wierszem poleceń LINUX. Nie można uzasadnić głosowania na -ve.find /etc/ -name "*.conf"
, oznacza to, że / etc jest katalogiem zamiast pliku. Czyfind
w systemie Linux domyślnie traktuje dowiązania symboliczne do katalogów jako katalogi?