Чи потрібен мені дистрибутив Linux для вивчення командного рядка чи OS X буде достатньою?


12

Я збираюся навчитися використовувати командний рядок. Зокрема, я буду використовувати книгу: "Командний рядок Linux: Повне вступ" . Тепер, чи потрібно використовувати дистрибутив Linux, щоб пройти книгу, чи OS X буде достатньою?

Якщо мені потрібен дистрибутив Linux, то чи буде його використання через VM достатньо чи мені потрібно встановити його власним чином?


8
Єдиною причиною, що вам знадобиться встановити ОС на фізичне обладнання, а не VM, було б для продуктивності. Якщо ви просто намагаєтеся вивчити основні процедури, то це не буде проблемою. Напевно, краще запускати щось на зразок Arch у VM.
Братчлі

те саме обговорення на apple.stackexchange.com/q/208692/7057
glenn jackman

4
Командний рядок - це лише зв'язок між вами та системою. Синтаксис оболонки Bash може бути однаковим, але коли вам потрібно мати справу з певними частинами системи, відмінності будуть. Наприклад, OS X не має /procфайлової системи, USB-накопичувачі, як правило, /Volumesне так, /media/usernameяк в Ubuntu. У CentOS є інший dhclient.confфайл. І так далі, і так далі
Сергій Колодяжний

4
Пропонований дублікат між веб-сайтами дуже чітко відрізняється від питання про ефективність віртуалізації на MacBooks. Питання не перекреслено.
Майкл Гомер

2
@Utku Я думаю, що може допомогти відокремити кілька понять: використання командного рядка та операційної системи, в якій ви його використовуєте. Якщо ви хочете дізнатися про свій командний рядок, OS X запрацює, а також Linux, BSD або навіть Windows з певними зусиллями. Якщо ви хочете познайомитися з UNIX або Linux, командний рядок - це лише невелика частина цього - це лише інтерфейс, через який ви будете взаємодіяти з ОС. Я думаю, що пояснення того, що ви збираєтесь, також полегшить навчання :)
rickcnagy

Відповіді:


33

Я настійно рекомендую запустити Linux у віртуальній машині. Все програмне забезпечення доступне для завантаження вільно, і немає практичної різниці між запуском у VM та початковою роботою для вивчення командного рядка.

Крім того, командний рядок Linux здебільшого складається з bash + GNU coreutils , що сильно відрізняється від BSD Unix (а OS X є наступником BSD Unix). Існує дуже велика різниця переваг у написанні аргументів у BSD Unix та GNU Linux. Ви можете покусати себе навіть як не новачок з різними параметрами стандартних утиліт, як, psі tarякщо ви працюєте в обох системах.

Використання ОС X, коли ваша книга є специфічною для Linux, регулярно викидає невідповідності та відмінності, які будуть здаватися поверхневими, коли ви досвідченіші, але просто будуть заплутані під час навчання. Зберігайте все легко для себе.

Це також дозволить вам експериментувати без побоювання зламати вашу машину, видаливши або змінивши будь-які важливі файли.

І останнє, хоча, звичайно, не в останню чергу, це дозволить вам встановити SSH-з'єднання до VM з вашого ОС X X Terminal, щоб ви могли звикнути до використання ключів SSH та до думки, що це не має значення, чи ваш Linux-сервер це рідна машина, місцевий VM або працює на AWS або Digital Ocean: все працює так само!


До речі, чи буде у мене однакова структура каталогів у VM порівняно з рідним Linux?
Утку

3
Так. Для ваших цілей це точно так само, як і вбудована установка.
seumasmac

Це найбезпечніша відповідь, але залежно від книги я б припустив, що вступ до книги командного рядка не виявить багатьох (якщо такі є) відмінностей. Після огляду посібника єдине, що мені зачепилося, - це пояснення структури каталогів.
pllee

1
@Utku Якщо в книзі згадується / dev / sda або / dev / hda, і ти не можеш знайти його у встановленні, спробуйте шукати / dev / vda. Це єдина можлива різниця, про яку я можу придумати, що має для вас значення.
Кіммакс

1
Вам навіть не потрібно використовувати VM, можливо також використання прямого компакт-диска , якщо ви не хочете займати купу місця на своєму HD. Його також можна завантажувати з флешки, а створення флеш-накопичувача / завантажувального пристрою займає дуже мало часу.
Chris Cirefice

18

OS X достатньо для вивчення командного рядка, оскільки це сертифікований UNIX та відповідає POSIX. Якщо ви дивитесь на спеціальну книгу командних рядків для Linux, ви повинні пам’ятати, що інструменти користувача в OS X походять від BSD, тоді як інструменти в Linux є GNU і між ними є деякі тонкі (і не настільки тонкі) відмінності.

Якщо ви хочете дізнатися за допомогою інструментів GNU, ви можете встановити GNU userland через macports або домашню мову, або можете зробити повну установку Linux у VM.


Отже, я думаю, що в командному рядку немає "загальної" книги? Книга використовує або інструменти GNU, або BSD. Це так?
Утку

1
Якщо у вас є книга на оболонці (наприклад bash), вона підійде майже до будь-якої системи, яка її запускає. Вона змінюється, коли ви починаєте використовувати функції операційної системи або конкретні інструменти поза оболонкою.
теппік

1
@teppic Але наскільки корисна оболонка сама по собі ? AFAIK, оболонка сама по собі марна, оскільки не має жодної команди для виконання. Навіть основні команди на зразок lsповинні бути або з GNU, або з BSD (будь ласка, виправте, якщо я помиляюся). Отже, я думаю, що це означає, що мені потрібно вибрати одну ланцюжок інструментів (або оточення) і почати вивчати там командний рядок. Це так?
Утку

@Utku команди однакові (здебільшого), але параметри та вихід можуть відрізнятися (часто тому, що GNU реалізує багато розширень). Легко повертатися назад та назад між інструментами BSD та GNU.
Кейсі

@casey Отже, я можу просто почати з книги на OS X. Тоді, якщо я зіткнуся з поведінкою, не описаною як у книзі, я можу спробувати її на Linux або просто подивитися на BSD варіант тієї ж команди?
Утку

9

Поки що кілька хороших відповідей, але ще однією причиною триматися осторонь інструментів командного рядка OS X за замовчуванням є те, що це дуже старі версії. Наприклад, ОС X grepз 2004 року, а bashз 2007 року! Причина в тому , що компанія Apple відмовляється від корабельних інструментів під ліцензією 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. Utility Conventions / 12.2 Utility Syntax Guidelines / Настанова 9) : "Усі параметри повинні передувати операндам у командному рядку." Як описано в getopt (3) : "Якщо ... встановлена ​​змінна середовища POSIXLY_CORRECT , обробка опцій припиняється, як тільки виникає аргумент примітки."
G-Man каже: "Відновіть Моніку"

3

Найкращий спосіб навчитися Unix - це справжня робота з цим. Я б сказав, що варто зіткнутися з відмінностями між специфічними для Linux прикладами у вашій книзі та версіями Mac для стандартних інструментів, просто щоб мати можливість працювати з власними файлами та даними у вашому звичайному робочому середовищі (OS X).

Зустріч з різницями також буде цінним досвідом навчання, навіть якщо це часом неприємно.

Також використання VM для Linux для практикувань (особливо для потенційно небезпечних команд) також корисно, але нічого не перемагає використання реального світу для навчання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.