Настраиваем основные параметры системы
Утилита systemsetup предназначена для настройки самых базовых вещей вроде даты и времени или таймера режима сна. Если вызывать systemsetup без параметров, то она войдет в интерактивный режим. Ничего особенно полезного здесь нет. Отдельного упоминания заслуживает разве что параметр для активации демона SSH:
sudo systemsetup -setremotelogin on
А еще systemsetup побеждает в номинации «самый длинный параметр» — это -setdisablekeyboardwhenenclosurelockisengaged, он разрешает блокировать клавиатуру сервера, когда тот находится в стойке. А что, не так уж сложно запомнить!
Что такое терминал, или консоль?
Терминал, или консоль, – это специальное окно, в которое вы вводите специальные команды для общения с операционной системой вашего компьютера напрямую без мышки и окон. Терминал, или консоль, еще называют командной строкой. У Windows нет консоли, эта операционная система работает по-другому.
Сюда и надо вводить команды. Да, выглядит не очень, намного приятнее работать с красивым графическим интерфейсом, но со временем привыкаешь и начинает нравиться. А системные администраторы – так вообще кайфуют от консоли. Я даже встречал таких, которые всегда пользуются только консолью.
Что можно делать при помощи консоли?
При помощи консоли можно делать все что угодно: копировать файлы и фрагменты текста, редактировать текстовые документы, открывать и удалять файлы и многое другое. Консоль позволяет делать многое из того, что нельзя сделать мышкой в графическом интерфейсе.
Терминал работает одинаково как в Ubuntu и Linux, так и в Mac OS X. Но вот запускается он по-разному.
Ctrl и command: как стереть разницу в клавишах между mac и windows
В ранних версиях Windows в качестве стандарта клавиш использовался Common User Access, разработанный IBM в 1987. В нём были описаны такие клавиши как Ctrl, Alt, Delete, Insert, F1 и другие. В создании Lisa Apple сразу ориентировалась на графический интерфейс (GUI), в то время как перед IBM стояла задача посложнее: CUA должен был поддерживать старые консольные интерфейсы, а не только новые графические. Логично, что в стандарте IBM не было клавиши Cmd. На заре эры Windows компьютеры Macintosh были бешено популярны, а схема Cmd С/V стала общепринятой и горячо любимой. Microsoft тогда поддержали закрепившийся паттерн, переложив функцию Cmd на максимально похожий на него Ctrl.
В 1994 году Microsoft выпустили первую клавиатуру, в которой появилась клавиша Start — Microsoft Natural Keyboard. Start потом переименовали в Win, поскольку на кнопке был лого Windows. И расположена эта клавиша как раз там, где должен быть Cmd.
В центре архитектуры Windows реет флаг меню Пуск — важнейшей начальной точки взаимодействия, главного меню системы, которое столь знакомо и понятно с первого клика. Решение отдать ему целую клавишу вполне оправдано. Но я считаю само расположение кнопки ужасной ошибкой, потому что моторные привычки миллионов людей, кто работал на Макинтошах были проигнорированы.
Важная модифицирующая кнопка Ctrl уехала в левый угол, удалившись от буквZ-C-V, а следовательно, нажать Ctrl C большим и указательным, не выгибая руку, не получится. Клавиша Win — не модифицирующая, а исполняющая команду. Это значит, ей не обязательно быть рядом с буквенными клавишами. Ей подошло бы место в правом углу, ровно там где меню Пуск находится на экране. Но дизайнеры из консалтинга Ziba Design, которые разрабатывали концепцию этой клавиатуры для Майкрософта, были настолько увлечены игрой с эргономичной формой, что упустили из виду настоящую эргономику и унификацию.
Больше информации
Используй ключи –help и /?
Гугли мануал по командной строке windows/linux в интернете.
Больше команд — linux
Попрактиковаться в линукс в командной строке можно на таких командах:
Создать текстовый файл: cat > file.txt [enter] ввести текст [enter][ctrl d] — и файл создан
Просмотреть текстовый файл: cat file.txt
Просмотреть огромный текстовый файл, который не влеазает на экран: cat file.txt | less
В просмотрщике работают стрелки и q для выхода (escape не работает).
Удалить файл: rm file.txt
Скопировать файл: cp file.txt copy.txt
Переместить/переименовать файл: mv file.txt copy.txt
Скопировать в другую папку: cp file.txt /some/other/directory
Запустить команду и сохранить ее вывод в файл: ls -la > file.txt (эта команда выведет список файлов, но не на экран, а сохранит в файл. Бывает иногда полезно).
Вывести файл, но не весь, а только первые 10 строк: cat file.txt | head -10
Вывести последние 10 строк файла: cat file.txt | tail -10
Вывести только строки файла, содержащие слово «dog»: cat file.txt | grep dog
Найти файлы, в имени которых есть «dog», в каталоге /tmp: find /tmp -iname '*dog*'
Узнать текущее время: date
Создать папку: mkdir folder
Удалить папку: rm -r folder
Померять, сколько времени выполнялась команда: time [команда]
Узнать свой id пользователя: id
Показать список запущенных процессов: ps -lax
Показать что-то вроде диспетчера задач: top (для выхода q)
Запустить редактор, из которого хрен выйдешь, так как никакие привычные кнопки не работают: vi
Подробнее о работе команд можно узнать с помощью параметра –help, дописанного после команды.
Больше команд – windows
Попрактиковаться в комнадной строке в Windows можно так:
Буфер обмена
В командной строке не работает ctrl v,c,x для вставки, копирования и вырезания текста. Иногда (зависит от настроек системы) вставить текст можно через [shift ins], иногда правой кнопкой мыши. Скопировать текст можно, выделив мышью (в Windows надо разрешить выделение текста сначала в настройках окна и нажать Enter после выделения).
Виды команд
Команды бывают внутренние (это маленький список команд, встроенных в оболочку). Встроенные команды — это, например, cd в линукс или exit в Windows. Их мало.
Внешние команды — их большинство — это фактически программы, лежащие на диске. Оболочка ищет их не по всему диску, а только в заранее заданных папках. Список папок перечислен в специальной переменной PATH. Просмотреть эту переменную можно так:
Во всех операционных системах
↑,↓ — стрелки вверх и вниз в командной строке позволяют смотреть предыдущие введенные команды, чтобы 2 раза не набирать. В Windows при закрытии окошка консоли вся история теряется, в других ОС — сохраняется.
[tab] — автодополняет имена файлов и команды. Если в текущем каталоге есть файл file.txt, ты наберешь fi и нажмешь [tab] то он автодополнит имя файла (или предложит варианты, если таких файлов несколько). [ctrl c] — прерывает выполнение команды, например, если она долго тупитВажно: клавиша Esc не работает в командной строке. Клавиши Ctrl C, V, X не работают как «копировать/вырезать/вставить» (иногда для вставки можно использовать Shift Ins). Клавиша Ctrl Q не работает как «выход».
Если сочетание клавиш не работает
Если сочетание клавиш не работает при запуске, может помочь одно из следующих решений.
- Нажимайте и удерживайте все клавиши в сочетании вместе, а не по одной.
- Выключите компьютер Mac. Нажмите кнопку питания на клавиатуре, чтобы включить компьютер Mac. Затем нажмите и удерживайте клавиши во время запуска компьютера Mac.
- Прежде чем нажимать клавиши, подождите несколько секунд, чтобы компьютер Mac успел распознать клавиатуру при запуске. Некоторые клавиатуры оснащены световым индикатором, который коротко загорается при запуске, указывая, что клавиатура распознана и готова к работе.
- Если используется беспроводная клавиатура, подключите ее напрямую к компьютеру Mac, если это возможно. Либо используйте встроенную или проводную клавиатуру. Если используется клавиатура для компьютера с ОС Windows, например клавиатура с логотипом Windows, попробуйте воспользоваться клавиатурой для компьютера Mac.
- Если используется Boot Camp для запуска через ОС Microsoft Windows, установите настройки загрузочного диска так, чтобы запуск выполнялся через ОС macOS. Затем выключите или перезапустите компьютер и повторите попытку.
Следует помнить, что некоторые сочетания клавиш отключены, если на компьютере Mac установлен пароль прошивки.
Задаем сетевые настройки
В паре с systemsetup идет networksetup, менеджер сетевых настроек. Интерактивного режима у него нет, поскольку для пользователя он не несет никакой ценности: все то же самое можно настроить в разделе «Сеть» из «Системных настроек». Зато дергать networksetup из скриптов или удаленно — самое то. Например, команда
networksetup -listnetworkserviceorder
выведет список конфигураций. Да, похоже, параметры придумывал тот же весельчак, что поработал над systemsetup.
Кстати, за выбор конфигурации отвечает другая утилита — scselect. Без параметров она выведет список, а для выбора можно после scselect задать метку или номер из предоставленного списка.
Запускаем всё на свете
Если ты достаточно долго имел дело с «маками», то наверняка сталкивался с launchctl. Это интерфейс к системе launchd, которая начиная с Mac OS X 10.4 (Tiger) пришла на смену длинному списку утилит, позаимствованных из FreeBSD (среди них — init, rc, cron и другие).
На первый взгляд launchd делает очень простую вещь — запускает и останавливает процессы, руководствуясь условиями, описанными в конфигурационных файлах. Ты найдешь их в ~/Library/LaunchAgents, /Library/LaunchAgents и /Library/LaunchDaemons (такие же папки есть в /System/Library/, скрипты в них отвечают за работу частей самой macOS). Отличие демонов от агентов в том, что демоны запускаются от имени системы, а агенты — от имени пользователя.
В перечисленных папках лежат файлы .plist — то есть XML с описаниями условий запуска. Эти условия могут быть очень разными, что делает launchd крайне гибкой системой. Например, процессы можно запускать и останавливать по времени подобно cron, при определенных изменениях в файловой системе (например, когда в каталоге появляется новый файл или когда монтируется носитель), в ответ на сетевой вызов и так далее.
Использование инструментов командной строки
Security
Для управления токеном инициализации, FileVault и безопасным токеном можно использовать специальные инструменты командной строки. Обычно токен инициализации генерируется на Mac и передается в систему управления мобильными устройствами (MDM) в процессе настройки macOS — после того, как система MDM сообщает компьютеру Mac, что она поддерживает эту функцию. Однако токен инициализации также можно сгенерировать на компьютере Mac, для которого уже выполнено развертывание. Например, это может потребоваться в случае добавления поддержки этой функции в систему MDM после первоначального развертывания macOS 10.15. В macOS 10.15.4 или новее сгенерированный токен инициализации передается в систему MDM во время первого входа любого пользователя, чей безопасный токен включен (если система MDM поддерживает эту функцию). Благодаря этому не требуется использовать инструмент командной строки profiles
после настройки устройства, чтобы генерировать и передавать токен инициализации в систему MDM.
Инструмент командной строки profiles
поддерживает ряд новых параметров для взаимодействия с токеном инициализации.
sudo profiles install -type bootstraptoken
. Эта команда генерирует новый токен инициализации и передает его в систему MDM. Для этой команды необходимы данные администратора безопасного токена, что позволит выполнить первоначальное генерирование токена инициализации. Кроме того, система MDM должна поддерживать токены инициализации, а серийный номер компьютера Mac должен быть зарегистрирован в MDM и доступен в Apple School Manager или Apple Business Manager.sudo profiles remove -type bootstraptoken
. Команда удаляет существующий токен инициализации с Mac и из системы MDM.sudo profiles status -type bootstraptoken
. Команда сообщает, поддерживает ли система MDM токены инициализации, а также возвращает текущее состояние токена инициализации на Mac.
Как запустить консоль в linux или ubuntu
Чтобы запустить терминал, нажмите одновременно Ctrl Alt T.
Как запустить консоль в mac os x
Нажмите сочетание горячих клавиш Command (⌘) T.
Или запустите Spotlight, для этого нажмите на значок лупы в верхнем горизонтальном меню справа или с помощью сочетания клавиш <Ctrl> <Пробел>.
В строке поиска
Spotlight
введите слово “Терминал” и нажмите
“Enter”.
В результате откроется окно Терминала.
Как попасть в командную строку?
- Windows XP: Пуск — Выполнить — набрать cmd — нажать [enter]
- Windows7: Пуск — набрать cmd – наждать [enter]
- MacOS: Запустить приложение Терминал (его можно найти поиском в той фигне которая справа вверху экрана)
- Ubuntu: Запустить приложение Терминал или нажать Alt Ctrl F1 (ааа как вернуться назад? Ctrl F7)
- Linux: если ты линуксоид, ты и так знаешь
Как прописывать путь к каталогам или файлам
Директория, папка и каталог – обозначают одно и то же.
После любой из команд вы можете указывать следующие символы, чтобы задавать нужное местоположение каталога или файла:
. – текущий каталог;.. – родительский каталог (один уровень вверх);~ – домашний каталог;/ – корневая директория.
Например, путь /каталог/файл.txt – задает путь к файлу с названием файл.txt, который лежит в каталоге с названием каталог, который, в свою очередь, лежит в корневой (самой верхней) директории.
Команды для работы с каталогами
При помощи консоли можно делать все что угодно с файлами и каталогами. Это, конечно, менее удобно, чем, например, в Проводнике Windows или в Finder Mac OS X, но когда привыкаешь, то это начинает даже нравиться.
Команда | Что делает |
---|---|
pwd | показывает путь к текущему каталогу (Print Working Directory) |
ncdu / | утилита выведет иерархический список директорий, начиная с самого большого размера, утилита интерактивна, мы можем перемещаться по дереву, входить в папки, изменять представление информации, удалять ненужные файлы и директории |
ls | вывод содержимого текущего каталога |
ls | вывод содержимого указанного каталога |
ls -l | просмотр прав доступа |
ls -lah | выводит все файлы, включая скрытые и размеры файлов в Мб |
ls -a | выводит все файлы и каталоги, включая скрытые (и с точками перед названием(.)) |
ls -G | выводит файлы и каталоги в цвете |
ls -R | выводит в том числе и подкаталоги |
tree | выводит все каталоги и подкаталоги |
cd | изменение каталога |
cd / | переход в корневую директорию |
mkdir | создание каталога |
rmdir | удаление пустого каталога |
rm -r | рекурсивное удаление каталога (сначала будут удалены все подкаталоги и все файлы в этих подкаталогах, а потом и сам каталог) |
du -sh | вывести размер текущего каталога |
du -sh * | вывести размер всех каталогов в текущем каталоге |
du -sh | вывести размер указанного каталога |
cp -r /* | копирует все файлы из в |
mc | запуск файлового менеджера Midnight Commander |
find | поиск |
find / -name file.txt | найти файлы с именем file.txt, поиск начать с корневого каталога |
find / -name ‘*.txt’ | найти файлы по маске |
zip -r archive.zip folder/ | заархивировать все файлы и подкаталоги из каталога folder в архив с названием archive.zip |
unzip archive.zip | разархивировать в текущий каталог |
unzip -l archive.zip (или less archive.zip) | просмотреть содержимое архива archive.zip |
tar -xvf | разархивировать в текущий каталог |
Команды для работы с сетью интернет
В линукс показать информацию о настройке сети: ifconfig (или /sbin/ifconfig если у
тебя в PATH нет /sbin)
В Windows показать информацию о сети: ipconfig
Команды и оболочка
Оболочка — это cmd.exe в Windows и bash в линукс, это та программа, которая собственно мигает курсором и выполняет твои команды. Ты набираешь команды, а она их выполняет. Команда обычно состоит из имени команды, и, иногда, дополнительных параметров, отделенных пробелом, вроде:
ls — показать список файлов в линукс
ls -l — показать файлы с подробностями
dir — показать список файлов в windows с подробностями
dir /b — показать только имена файлов, без подробностей
Линукс и мак
В линуксе и маке, [ctrl l] очищает экран, [ctrl k] и [ctrl u] удаляют все перед или после курсора, [ctrl w] удаляет слово перед курсором, [ctrl r] делает поиск по истории команд (для отмены поиска нажми [ctrl c], escape в командной строке не работает, для завершения поиска нажми стрелку вправо/влево), [ctrl d] завершает работу и закрывает консоль.
Еще в линуксе и маке иногда не работают Home и End, используй [ctrl a] чтобы перейти в начала строки и [ctrl e], чтобы в конец. [alt b] (back) и [alt f] (forward) двигают курсор на 1 слово назад/вперед.
Меняем файлы конфигурации
Об утилите defaults я подробно писал в статье «Обвес macOS». Если вкратце, то она отвечает за чтение и изменение конфигурационных файлов, которые лежат в папках Preferences в системной, общей и частных Library.
С точки зрения defaults настройки разделены на домены — посмотреть их список ты можешь командой defaults domains, а вывести переменные в домене — defaults read <название_домена>. Значения переменных можно менять командой
defaults write <домен> <переменная> -<тип> <значение>
Примеры переменных опять же смотри в прошлой статье или в коллекции Кевина Саттла, на которую я уже не раз ссылался.
Очистка экрана
В linux — команда clear или клавиша [ctrl L], в windows — команда cls (clear screen).
Подсказка
Почти у любой команды есть подсказки. Чтобы их увидеть, добавь к имени команды параметр (–help или /?):
В линукс: ls –help — выведет справку по команде ls
В линукс: man bash — выведет подробную длинную справку по команде bash (для выхода жми q,
для прокрутки используй стрелки и PgUp/PgDn)
В Windows: dir /? — выведет справку по команде dir
В Windows: help выведет подсказку по основным командам
Работаем с gatekeeper
Буквы sp в названии утилиты spctl происходят от слов system policy. Это интерфейс командной строки для Gatekeeper, механизма, который изо всех сил мешает запускать неподписанные приложения. Этим он спасает от шифровальщиков неопытных пользователей и, увы, немало раздражает опытных.
Чтобы посмотреть, работает ли Gatekeeper, пиши
spctl --status
Пафосный ответ assessments enabled будет означать, что все под контролем. Если думаешь, что пора ослабить гайки и отключить Gatekeeper, пиши
sudo spctl --master-disable
Когда закончишь с экспериментами, рекомендую вернуть все как было — для этого замени параметр на –master-enable.
Посмотреть список разрешенных приложений можешь командой
spctl --list
А чтобы не листать стену текста и видеть только то, что сам разрешил в диалоговом окне, можешь пофильтровать по отсутствию метки:
spctl --list | grep UNLABELED
Собственно, для ручного добавления приложений в список существует хитрая двухступенчатая схема с метками. Сначала добавляешь приложение и задаешь ему метку:
spctl --add --label "Approved" <файл приложения>
А затем разрешаешь все приложения с этой меткой:
spctl --enable --label "Approved"
После этого можно добавлять метки к новым программам, и они автоматически будут занесены в белый список. Точно так же можно разом отозвать разрешение. Подробнее об этом читай на сайте The Instructional, откуда я брал примеры.
Смотрим и (не) меняем параметры ядра
Команда sysctl относится скорее к древней магии Unix, чем к macOS. Она отвечает за вывод и изменение параметров ядра. Набрав sysctl -ah, ты увидишь более 1200 переменных. Считать одно значение можно, если ввести после команды его название, а с ключом -n будет выведено только значение. Например, команда sysctl -n machdep.cpu.brand_string выдает модель процессора.
Менять параметры можно, вводя команды вида
sysctl kern.maxprocperuid=1000
Эта команда ограничит тысячей максимальное количество процессов, запущенных от одного пользователя), но, если не знаешь, что делаешь, рекомендую не баловаться с рабочей системой. В man ты найдешь таблицу, где перечислены основные параметры. Также мне попадалась интересная статья, в которой автор пишет обертку для sysctl на Swift.
Список файлов
Посмотреть, какие файлы есть в текущем каталоге, можно командой dir в Windows и командой ls в линуксе (ls -a — показывает все файлы, включая скрытые, ls -l — показывает не только имена, но и размер, дату создания файла, права на него).
Посмотреть права на файл в Линукс можно либо командой ls -l, либо stat file.txt
Текущий каталог
В командной строке результат выполнения команд зависит от того, в каком каталоге и на каком диске ты находишься. Какой каталог текущий, в Windows написано в подсказке, а в linux можно узнать командой pwd (print working directory)
Чтобы перейти в другой каталог, в линуксе используют команду cd:
cd / — перейти в корневой каталог (в линукс нет букв дисков, и корневой каталог один на всю систему)
cd /etc/apache — перейти в каталог /etc/apache
cd files — переходит в каталог files внутри текущего
cd .. — переходит в родительский кталог
cd ../.. — переходит на 2 уровня выше
cd ~ — перейти в свой домашний каталог (/home/anon например)
cd ~/test — перейти в /home/anon/test
В Windows, сначала надо перейти на нужный диск командой c:, d:, e: и так далее. Потом использовать cd или chdir:
d: - перейти на диск d:
cd — перейти в корневой каталог
cd windowssystem32
cd ..
cd ....
Управляем wi-fi
Команду airport можно по праву считать секретной — если ты попытаешься просто вызвать ее из терминала, то ничего не выйдет. Дело в том, что она скрыта глубоко в системе, и сначала нужно вытащить ее на свет божий. Сделать это можно командой
sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport
Теперь ты можешь в любой момент набрать airport -s, и встроенный адаптер Wi-Fi проведет быстрое сканирование и выдаст список сетей с указанием BSSID, способа шифрования и прочих характеристик. Подробности о текущем подключении ты можешь узнать, набрав airport -I, а sudo airport -z разорвет его.
Заключение
Это самые популярные команды терминала (консоли), которые используются чаще всего. Если вы новичок, то пусть они вас не пугают, на самом деле все просто, надо только немного привыкнуть. Я уже привык и мне нравится. А вам?