Базовые команды для терминала MAC OS (для linux тоже пойдет)

2,3K прочитали

В данной статье есть пересечения с вот и вот, но уклон больше на операционную систему от Apple - Mac OS. Не знаю, кто-то пользуется терминалам в маках или нет, но рутинные задачи или задачи требующие однотипных действий лучше всего выполнять в терминале системы.

Ps: перед командами я использую знак $, так как решетку в Дзен нельзя поставить (появляется хештег), так что смотрите сами, надо ли для команды права суперпользователя.

И так, начнем...

Микрофишка

Используйте Tab, когда пишите какую-либо команду или путь до файла или директории (не обязательно писать самому до конца, иногда названия такие длинные или сложные, что по тысячи раз стираешь и пишешь заново). Если одно нажатие на Tab ничего не дает, нажмите дважды и увидите список возможных вариантов, после дополните свой так, чтобы однозначно определить вариант. Разберем на примере:

Первая команда ls (ниже опишу подробнее) показывает содержание текущей директории, вторая команда rm удаляет выбранный файл. На данном скриншоте мы написали "rm f" и нажимаем на Tab
Первая команда ls (ниже опишу подробнее) показывает содержание текущей директории, вторая команда rm удаляет выбранный файл. На данном скриншоте мы написали "rm f" и нажимаем на Tab
После нажатия на Tab терминал автоматически дописал слово, но остановился на file, так как дальше не знает, какой именно файл нам необходим
После нажатия на Tab терминал автоматически дописал слово, но остановился на file, так как дальше не знает, какой именно файл нам необходим
При двойном нажатии терминал выведет список возможных кандидатов, а после добавления нижнего подчеркивания (_) и нажатия на  Tab терминал дописал нужный нам файл
При двойном нажатии терминал выведет список возможных кандидатов, а после добавления нижнего подчеркивания (_) и нажатия на Tab терминал дописал нужный нам файл

Работа с файловой системой

$ cd .. ; возвращает на одну директорию назад
$ cd / ; возврат в корень
$ cd ~ ; перемещает до домашней директории (/Users/<You>)
$ cd ~/Desktop ; перемещает до рабочего стола

Для определения, где мы вообще находимся используем pwd (print working directory).

Чтобы глянуть что вокруг (какие файлы и папки) используем команду list:

$ ls ;  показывает файлы в текущей директории
$ ls /Users ; показывает файлы в директории /Users
$ ls -al ; выводит полный список файлов и папок (даже скрытых)

Создание и удаление директорий (папок) возможно с помощью команд make и remove directory:

$ mkdir name ; создание директории
$ mkdir -p name/name/name ; папки в папках
$ rmdir name ; удаление директории
$ rmdir -rf name ; удаления директории с внутренними поддиректориями

А если понадобится что-то сравнить, то используем следующие команды:

$ diff (-rq) folder1 folder2 ; cравнение двух папок (можно и для файлов использовать)
$ comm file1.txt file2.txt ; построчное сравнение файлов

В мак оси можно открывать различные прогулины с помощью утилиты open:

$ open . ; открытие finder в текущей папке
$ open -a Fishdom ; можно открывать все, что в папке Программы
-5
$ open -e file ; открытие документа в textEditor
$ open -t file ; открытие документа в SubLime (или в другом редакторе, который у вас стоит по умолчанию)

Работа с файлами

Основные действия с файлами: создание, удаление, чтение и редактирование. Но с файлами можно делать все, что угодно:

$ touch name ; создание файла
$ rm name ; удаление файла
$ cat name ; вывод содержимого файла
$ nano name - редактирование файла (вместо nano можно использовать vi, vim, emacs, кому что в общем)
$ echo "some_text" > name ; команда записывает в файл фразу some_text (если файл был создан, то она все перезапишет, если файла не было, то создаст);
$ echo "some_text" >> name ; дописывает в конце файла фразу some_text
$ mv file1 file2 ; переименование файла (mv - команда перемещения)
$ mv file1 /Users/Denimoll/Desktop ; перемещение файла на рабочий стол
$ cp file1 /Users/Denimoll/Desktop ; копирование файла на рабочий стол

Пару рандомных команд

Может кому-то пригодятся, у меня были сохранены на всякий случай:

$ cupsfilter file.txt>file.pdf ; перевод txt в pdf
$ chflags (no)hidden file ; скрываем (показываем) файл/папку
$ defaults write com.apple.finder AppleShowAllFiles TRUE(FALSE) ; показ всех скрытых папок и файлов в finder