Справочник 70 основных команд Linux: полное описание с примерами
Одним из коренных отличий семейства ОС Linux от ОС Windows является ведущая роль командной строки или терминала в администрировании системы. Для успешной работы с «Линукс» одного графического интерфейса недостаточно. Полноценное управление тут возможно только через терминал. А в работе с терминалом никак не обойтись без изучения основных команд Linux.
В Linux насчитывается несколько сотен основных команд и их модификаций. Они группируются по нескольким категориям. По расположению — могут быть утилитами командной строки или встроенной функцией командной оболочки. По частоте применения – используемыми постоянно, эпизодически и редко. По типам действий – от получения справки до управления файлами и процессами. Именно третья, функциональная составляющая и станет основой группировки утилит в этой статье.
В обзоре собраны все важнейшие команды Linux, которые могут пригодиться для администрирования ОС Linux. Статья рассчитана как на новичков, так и на продвинутых пользователей, уже знакомых с основным функционалом терминала. Эту своеобразную шпаргалку можно смело добавлять в закладки всем, кто хочет извлечь из «Линукс» максимум полезных свойств и повысить свою продуктивность в несколько раз.
Справочная информация / документация
(Manual). Показывает инструкцию к программам и командам Linux. Чтобы получить руководство для программы, наберите:
Для инструкции по команде, введите:
whatis
Выводит краткое описание программы. Пример:
whereis
Показывает полный путь к исполняемому файлу и другим файлам программы. Пример:
Вся необходимая информация о команде будет доступна, если набрать:
whoami
Ctrl + R
Права суперпользователя
Большое число базовых команд Linux, например, установка программ или создание файлов в корневой системе, требуют для исполнения права пользователя root или суперпользователя. Применение данного режима несёт серьёзные изменения для операционной системы, поэтому нужно точно понимать, как сработает запущенная команда.
Способы получить права root в Linux
- Вход от имени суперпользователя в виртуальной консоли, введя логин и пароль пользователя root.
- Разовое переключение на роль суперпользователя в терминале с помощью специальных утилит.
О втором варианте расскажем подробнее.
(Super User Do). Позволяет исполнять команды с правами суперпользователя. Перед переходом в режим root администратора система выполнит запрос пароля и логина root. Пример:
sudo su
sudo gksudo
Максимальную производительность приложений Linux зависит от правильного подбора платформы для ОС. Мощный виртуальный сервер от Eternalhost обеспечит интернет-ресурсу стабильную работу и пространство для развития.
Управления файлами и каталогами
(List). С помощью этой утилиты можно посмотреть, что содержится в папке. Без указания конкретного пути показывает текущий каталог. Если путь указан, то переход совершиться в конечный его каталог. Чтобы вывести каталог в виде списка с дополнительной поясняющей информацией введите:
Для показа скрытых файлов:
(Concatenate / Catenate). Команда двойного назначения. Показывает на экране что содержит файл или стандартный ввод. Также к «склеивает» несколько переданных подряд файлов в один. Если нужно посмотреть содержимое одного файла, вводим:
Если нужно узнать содержимое нескольких файлов подряд:
Для «склейки» файлов, вводим:
Чтобы задать нужное количество строк в показанном:
(Change Directory). Меняет текущий каталог, в котором работает терминал на указанный. Когда терминал запущен, он использует по умолчанию корневой каталог (root), вернуться в который можно, набрав:
Чтобы указать другую папку для работы с файлами, нужно ввести:
Чтобы подняться по древу каталогов на уровень вверх набираем:
Чтобы вернуться к предыдущей директории:
Двойной амперсанд – не полноценная команда, а управляющий оператор. Он предназначен для выполнения последовательного ряда команд. Чтобы терминал выполнил команды одну за другой, нужно разделить их следующим образом:
mkdir
(Make Directory). Создаёт новую директорию. Можно также создать полную структуру подкаталогов, если ввести сочетание:
(Copy). Утилита, позволяющая скопировать файл или каталог. Копирование файлов и каталогов. Чтобы копирование прошло рекурсивно, т. е. включало все поддиректории и файлы в них, надо добавить к команде:
А если надо дополнить рекурсивное копирование сохранением всех атрибутов, сведения о владельце и временный штамп, добавляем «архивную» опцию -a, чтобы получилось:
(Remove). Отвечает за удаление папок и файлов. Использовать оператор rm следует крайне осторожно. В Linux файлы удаляются не в корзину, откуда их можно восстановить, а стираются безвозвратно. Для рекурсивного удаления используйте сочетание:
(Link). Создаёт программные ссылки на файлы. По функционалу это похоже на ярлыки в Windows.
Типы ссылок Linux
- символические ( -s ) – указание на адрес файла ил папки без метаданных;
- твёрдые или жёсткие ( -P ) – содержат сведения о физическом адресе на диске, где хранится файл.
Удалить ссылку в Linux можно при помощи атрибута –f .
chmod
(Change Mode). Изменяет разрешения доступа к файлу. Под доступом имеется в виду классическая триада: чтение r, изменение w и запуск x. Общий вид:
Популярные комбинации разрешений для команды chmod
Вид разрешения | Символьный код | Числовой код |
Нет допуска | — | 0 |
Чтение | r— | 4 |
Изменение | -w- | 2 |
Запуск | —x | 1 |
Запуск + Изменение | -wx | 3 |
Чтение + Запуск | r-x | 5 |
Чтение + Изменение | rw- | 6 |
Запуск + Изменение + Запуск | rwx | 7 |
chown
(Change Owner). Команда для смены владельца файла и его группы. Для смены владельца используем синтаксис:
Для смены группы файла:
Если надо поменять оба параметра:
Команду можно применить только с правами суперпользователя. Чтобы изменить владельца/группу рекурсивно добавляем:
chgrp
(Disk Free). Даёт полную информацию о свободном пространстве на диске. Анализ включает перечисление файловых систем смонтированных разделов, обзор занятого и свободного места на диске. Для более удобного вывода информации, лучше применять сочетание:
Как удалить с терминала запись тестовая операция
Подключение банковского терминала, возможно, только при использовании драйвера kkmserver.
Программа поддерживает протокол INPAS (DualConnector SmartSale).
Для подключения банковского терминала, необходимо обратится в банк, к вашему менеджеру, который сопровождает эквайринг и сообщить ему, что вам нужно кассовое решение для терминала. Менеджер составит заявку на выезд к вам инженера и замену/ обновление терминала.
Инженер банка настраивает драйвер терминала на компьютере, устанавливает необходимый банковский софт и делает соответсвующие проверки. После этого можно делать подключение к программе.
Если настройка производится самостоятельно, потребуется скачать и установить банковский софт: NET Framework 2.0, INPAS Common Connectors и драйвер kkmserver.
Запускаем на установку файл INPAS DualConnector и выбираем тип «Автоматическая установка».
После установки, нажмите кнопку «Завершить», автоматически запустится банковская программа DC Control.
Зайдите во вкладку «USB драйвера», выберите производителя терминала и установите драйвер.
После установки USB драйвера, откройте диспетчер устройств и найдите терминал эквайринга в разделе Порты COM и LPT. Windows, должен присвоить номер COM-порта вашему устройству. Сравните этот номер с тем, что указан в DC Control во вкладке «XML Generator» с параметром «Номер порта» и сохраните настройки.
Перейдите на вкладку «Проверка связи», отметьте галочкой две верхние операциии и нажмите кнопку «Запуск». В случае успешной связи с терминалом на против отмеченных операций появится надпись «Успех (i)».
Если проверка пройдена успешно, можно подключать терминал к программе kkmserver.
Установка и настройка kkmserver
Скачайте последнюю версию kkmserver с сайта разработчика, по ссылке: https://kkmserver.ru/Donload/Setup_KkmServer.exe
После загрузки дистрибутива нужно запустить его на выполнение, пример в Google Chrome:
Если система защиты Windows спросит о разрешении на запуск, необходимо разрешить запуск программы, пример в Windows 10:
Далее следуйте указаниям установщика дистрибутива. При установке может потребоваться установка дополнительных компонент, например .NET Framework 4.8. Установите компоненту.
Запустите программу двойным кликом по ярклыку KkmServer, который расположен на рабочем столе или из трея, если программа уже была установлена ранее .
Если вы только установили kkmserver, в открывшемся окне, установите тип запуска «Автозапуск: ‘Свернутое в Трей’» и откройте «Настройки».
Сбоку в меню выберите « Настройка оборудования» после, в самом низу, выберите «Добавить устройство»
На открывшейся странице выберите «Тип устройства: Эквайринговый терминал», выберите Протокол устройства «Inpas» и нажмите кнопку «Добавить устройство».
На открывшейся странице, в поле «Тип соединения», выберите «COM порт (DualConnector)», в поле «COM порт», выберите COM порт который указан в драйвере DualConnector или диспетчере устройств и нажмите кнопку «Сохранить настройки».
Настройка Multi Point
После сохранения настроек в kkmserver, перейдите в личный кабинет руководителя ПВЗ: https://manager.multi-point.net
Откройте раздел Настройки->Отделения->нажмите на кнопку Редактировать на против нужного отделения.
В открывшейся форме редактирования отделения, перейдите на вкладку «Данные», найдите раздел «Настройка ККТ» и у опции «Автоматический эквайринг» установите значение «Да».
Тестовая операция
После сохранения настроек, перейдите в личный кабинет оператора: https://operator.multi-point.net и авторизуйтесь в системе.
Подробнее о том, как войти в личный кабинет оператора, читайте в статье: Вход в кабинет оператора
Для теста достаточно провести операцию продажи и возврата. Для этого, нажмите на кнопку «Исполнение», которая расположена в правой колонке личного кабинета.
Заполните форму. Выберите поставщика, статус, способ оплаты Картой, в поле Название, введите «Тест», в поле сумма введите 1 и нажмите «Провести». Если на предыдущих этапах все было настроенно корректно, у вас на терминале появится сумма к оплате 1 руб. приложите или вставьте карту и проведите оплату.
После проведения оплаты, требуется провести операцию возврата и отмены чека. Как провести возврат, читайте в статье: Как отменить чек и удалить операцию?
Как очистить/удалить текущую строку в терминале?
Если я использую терминал и набираю строку текста для команды, есть ли горячая клавиша или какой-либо способ очистить/удалить эту строку?
например, если моя текущая строка / команда-это что-то действительно длинное, как:
есть ли горячая клавиша или команда отправиться из вышеперечисленного:
обычно я буду нажимать ↓ ключ, и если моя текущая строка является совершенно новой в истории, это очистит ее. Но если я буду через мою историю команд через ↑ ключ и начать редактирование или использование этих команд ↓ только изменит приглашение на следующую новейшую команду в истории, поэтому она не работает здесь, Если я не нажму ↓ несколько раз.
12 ответов
можно использовать Ctrl + U очистить до начала.
можно использовать Ctrl + W чтобы удалить только слово.
вы также можете использовать Ctrl + C отменить.
Если вы хотите сохранить историю, вы можете использовать Alt + Shift + # сделать это замечание.
просто обобщить все ответы
- очистите линию: вы можете использовать Ctrl + U чтобы прояснить до начала.
- очистить строку: Ctrl + A Ctrl + K стереть текущую строку в терминале
- отменить текущую команду/строку: Ctrl + C .
- отозвать удаленную команду: Ctrl + Y (тогда Alt + Y )
- перейти в начале строки: Ctrl + A
- перейти в конце строки: Ctrl + E
- удалите передние слова, например, если вы находитесь в середине команды: Ctrl + K
- удалить символы слева до начала слова: Ctrl + W
- очистить вся командная строка: Ctrl + L
- переключение между началом строки и текущей позицией курсора: Ctrl + XX
У меня есть полный список ярлыков:
- Ctrl + a переместить курсор в начало строки
- Ctrl + e переместить курсор в конец строки
- Ctrl + b переместить назад один символ
- Alt + b Отодвинься на одно слово
- Ctrl + f шаг вперед характер
- Alt + f переместить вперед на одно слово
- Ctrl + d удалить текущий символ
- Ctrl + w вырезать последнее слово
- Ctrl + k вырезать все после курсора
- Alt + d вырезать слово после курсора
- Alt + w вырезать слово перед курсор
- Ctrl + y вставить последнюю удаленную команду
- Ctrl + _ отменить
- Ctrl + u вырезать все перед курсором
- Ctrl + x x переключение между первой и текущей позицией
- Ctrl + l очистить терминал
- Ctrl + c отменить команду
- Ctrl + r команда поиска в истории-введите поисковый запрос
- Ctrl + j завершить поиск в текущей записи истории
- Ctrl + g отменить поиск и восстановить исходную строку
- Ctrl + n следующая команда из История
- Ctrl + p предыдущая команда из истории
Ctrl + на , Ctrl + K стереть текущую строку в терминале. Затем вы можете вспомнить его с Ctrl + Y Если вам нужно.
или если вы используете режим vi, нажмите Esc следовал по cc
чтобы вернуть то, что вы только что стерли, Esc а то p
альтернатива Ctrl + на , Ctrl + K и Ctrl + E , Ctrl + U .
Я не уверен, что вам это нравится, но я использую Ctrl + на (для начала строки) и Ctrl + K (чтобы удалить строку) я был знаком с этими командами из emacs и выяснил их случайно.
- Ctrl + u : движение до начала вашей линии до кольцевого буфера
- Ctrl + k : движение до конца вашей линии до кольцевого буфера
Ctrl + w : движение символы и (несколько) слова, оставленные от курсора до кольцевого буфера
Ctrl + y : вставить последний запись из кольцевого буфера, а затем вы можете использовать Alt + y для вращения через кольцевой буфер. Нажмите несколько раз, чтобы продолжить» предыдущую » запись в кольцевом буфере.
CTRL + R и начать печатать для поиска предыдущих команд в истории. Покажет полные строки.
CTRL + R снова в цикл.
Не проходят или отклоняются операции
На чеке выводится надпись «Тестовая операция», когда терминал работает в демонстрационном режиме. Если провести операцию на сумму больше одного рубля, терминал распечатает чек с кодом ответа «116» — «Недостаточно средств». И не важно, что денег на карте клиента достаточно.
Надпись «Тестовая операция» пропадет с чеков, когда терминал выйдет из демонстрационного режима и активируется. Обычно это происходит в течение получаса с момента, когда представитель банка настроил вам терминал. Когда терминал активируется, придет СМС.
Если СМС не приходит, обратитесь в чат поддержки — вам подскажут, что делать.
Не проходит оплата в терминале PAX, Verifone или Ingenico. Что делать?
Скорее всего, проблема со связью. Нужно наладить соединение банка с терминалом.
Что делать, если не проходит оплата через терминал aQsi?
Зависит от ошибки. Вот самые частые:
Чтобы устранить ошибку:
После этого оплата будет проходить.
Это ошибка появляется вместе с такими симптомами: связь на кассе есть, фискальный накопитель не заполнен, но данные в налоговую не передаются.
Причины и способы исправления
Что проверить | Как исправить |
---|---|
Когда вы в последний раз закрывали смену | Смена не должна длиться больше суток. Если прошло больше 24 часов с начала смены, закройте ее — и все наладится. Как закрывать смену |
Срок подписки ОФД | Возможно, нужно продлить подписку ОФД. После продления ошибка исчезнет — и работа aQsi наладится. Что такое ОФД и как его выбрать |
Куда передаются данные для ОФД | Чтобы проверить корректность подключения к ОФД, перейдите в «Настройки» → «Тех. обслуживание ККТ» → «Подключение к ОФД». Здесь нужно убедиться, что данные ОФД вписаны верно: одна неправильная цифра в IP — и данные не попадут куда нужно. Данные ОФД |
Если ничего из этого не помогло, скорее всего, проблема на стороне ОФД. Обратитесь в техподдержку своего оператора.
Если вы используете aQsi и в качестве онлайн-кассы, и в качестве терминала, нужно использовать простой режим или пробивать покупки через базу товаров. Режим эквайрингового терминала не подойдет: в нем aQsi перестает работать как онлайн-касса. А если оплата все же проходит, данные об операции не уходят в ОФД и не фискализируются.
Чтобы исправить ситуацию, нужно активировать простой режим или оформлять продажи через базу товаров.
Чтобы активировать простой режим:
Чтобы продавать через базу товаров:
Как передать в ОФД данные об уже проведенных операциях в aQsi?
Ситуация: вы используете aQsi и в качестве онлайн-кассы, и в качестве терминала, а сотрудник случайно активировал режим эквайрингового терминала и провел через него несколько продаж. В режиме эквайрингового терминала aQsi не работает как онлайн-касса и не фискализирует операции.
Чтобы не было проблем с налоговой, нужно передать данные об этих продажах в ОФД. Есть два варианта, как это сделать: провести через простой режим как безналичную оплату или сделать чек коррекции.
Если с момента проведения операции еще не прошло суток , ее можно провести через простой режим как «Безналичные». Так вы отразите поступление на расчетный счет и операции будут фискализированы. Что нужно сделать:
Терминал Seagate
Терминал НЖМД Seagate имеет строгую организацию. Команды терминала объединены в уровни по общности выполняемых функций. Определить количество уровней терминала очень просто – для переключения между уровнями служит команда
где х – требуемый уровень. Например, для перехода на уровень 1 с уровня Т нужно набрать в терминале
Если все введено правильно, то должно появиться приглашение первого уровня
Стоит сразу оговориться – современные диски Seagate делаются двух, абсолютно различных, форматов – формата U и формата Barracuda. Различия этих форматов – прежде всего в организации служебной области. Системная область U-подобных накопителей (U4, U6, U8, U10, Ux, Barracuda 5400.1) организована по стандартной модульной схеме, модули можно как записать в накопитель, так и считать из него. Барракудоподобные накопители Seagate (Seagate Barracuda, Barracuda II, Barracuda III, Barracuda IV, Barracuda V, Barracuda 7200.7, Barracuda 7200.8, Barracuda 7200.9, Momentus, U5, U7, U9) не имеют стандартной модульной структуры в явно выраженном виде, элементы служебной информации не могут быть вычитаны из системной области прямыми командами.
Итак, немного поэкспериментировав с командой /x, легко узнать, что U-подобные накопители имеют 10 уровней, а барракудоподобные – 14. Различия прежде всего наблюдаются в том, что у барракудоподобных НЖМД имеются уровни, которые предназначены для отладки микропрограммы и восстановления накопителя при разрушенной системной информации (уровни Е и F).
Самый важный уровень любых Seagate – уровень Т (от английского слова Test) – так называемый тестовый, или диагностический, уровень. Как правило. На этом уровне можно записывать и считывать служебную информацию, производить процедуры тестирования HDD и т.п. Переход на уровень Т осуществляется командой
Ctrl + z [Формат записи команды – Ctrl + z означает, что клавиши Ctrl и z для выполнения команды должны быть нажаты одновременно]
Общие команды
Имеется определенное множество общих команд, на которые накопитель должен ответить, находясь на любом уровне, вне зависимости от выполняемых в текущий момент операций. Эти команды необходимы для мониторинга состояния HDD и для перевода его в специализированные режимы функционирования.
Описанная выше команда Ctrl + z переключает накопитель в режим диагностического монитора – режим, когда накопитель может принимать и отрабатывать команды того уровня, на котором находится.
Команда точка с запятой ( ; ). Эта команда покажет машинный статус накопителя. Ответ команды будет выглядеть примерно так:
Age=aa Type=bb MxCyl=cccc MxHd=d MxSct=eee Bsz=ffff TCode=gggg
Age – Текущая отрабатываемая накопителем программа
Type – Текущий тип накопителя (тип – это условное понятие корпорации Seagate, обозначающее количество физических головок, представленных в нем)
MxCyl – Максимальное количество цилиндров для этого типа (HEX)
MxHd – Максимальное количество головок для этого типа (НЕХ)
MxSct – Максимальный сектор для этого типа (НЕХ)
BSz – Размер буфера (НЕХ)
Tcode – Код текущего теста
Команда точка ( . ). Показать активный статус накопителя. Накопитель в ответ на подачу команды выдаст следующуб строку данных:
Pgm=aa Trk=bbbb(cccc).d.eee Zn=f Err=gg ErCt=hhhh Hlth=iiii Chlth=jjjj Ready
Pgm – Активный режим. 00 показывает, что включен диагностический монитор. 50 обозначает работу по интерфейсу. Остальные цифры – текущий тест программы самотестирования (селфскана).
Trk=bbbb(cccc).d.eee — Текущие (на которые спозиционировался накопитель во время подачи команды) трек, головка и сектор.
Zn – Зона, в которой находится головка накопителя, в момент подачи команды
Err – Код ошибки текущей операции
ErCt – Число ошибок со времени последней перезагрузки НЖМД или последней команды перезапуска журнала ошибок
Hlth – Накопленные байты здоровья винта – 4 символа
CHlth – Текущие байты здоровья винта – 4 символа
Ready Статус винта. Может быть Ready или Ntrdy (Готов или Не готов)
Наконец, еще одна важная общая команда Seagate — команда знак процента ( % ) – показать статический статус накопителя. Ответ будет примерно таким:
aabbccccddeeffgg AX’iiiiiiii ‘ “jjjjjjjjjjjj’
aa – Текущее состояние (age)
bb – Программа (уровень селфскана)
cccc – Суммарное состояние «здоровья» НЖМД (байты аккумулированного здоровья)
dd – Тип HDD
ee – Значение тестового регистра
ff – Байт кода ошибки
gg –Максимальное количество головок для этого типа HDD
iiiiiiii – Серийный номер НЖМД
jjjjjjjjjjjj – Серийный номер платы электроники
Обзор главных команд
Внимание! Использование указанных в этом разделе текущей статьи терминальных команд Вы осуществляете на свой страх и риск, неправильный ввод команд (изменение регистра, параметров и т.п.) может привести к выводу (часто – необратимому) накопителя из строя! Категорически не рекомендуется экспериментировать с не описанными здесь командами – скорее всего, они не перечислены тут потому, что имеют деструктивное для данных или даже НЖМД свойство.
Прежде всего, следует настроить скорость порта HDD для максимально комфортной работы – если требуется передать в накопитель или принять от него большие массивы данных, чем выше скорость, тем быстрее данные будут переданы и тем меньше риск того, что порт НЖМД «захлебнется» данными. Настройка скорости порта HDD производится командой Bxxx, в которой ххх – это требуемая скорость работы порта. Скорость порта кодируется так, как указано в таблице ниже.
Значения ххх команды Bxxx (работает на всех уровнях)
Значение ххх Скорость порта
1228 1,228,000
921 921,000
625 625,000
460 460,000
230 230,000
115 115,000
576 57,600
192 19,200
96 9,600
48 4,800
24 2,400
Накопители Seagate Barracuda, начиная с семейства Barracuda 7200.7, могут сами показывать поддерживаемые ими скорости порта – для этого достаточно подать команду В1. На эту команду накопитель ответит следующим образом:
Очень важная команда уровней Т и 2 – команда Е – показать логи сертификационных тестов. Просмотр этих логов может помочь найти тест селфскана, из-за которого он не прошел, или обнаружить необходимые настройки. После буквы Е необходимо ввести номер лога, который вы хотите просмотреть (например, я хочу просмотреть лог седьмого теста селфскана – нужно ввести команду Е07):
;Log 07 — Health 0000 — Cert Rev = 3.10 — Rom Rev = 3.10 — Time = 00:00:01 Log Type = 01
HEAD 1x WEIGHTS 2x WEIGHTS
00 -004A 001F -0001 0000
01 -002A 0037 0024 0001
The AFC 1x sum of squares weight limit is HEX 00402EA6
The AFC 2x sum of squares weight limit is HEX 0006CB97
Temp Diode 6B8C
( 22 C )
Temp Diode 8C8C
T>
В некоторых случаях требуется сбросить байты здоровья к нулю. Для этого на уровне Т существует команда Н,,22.
Наиболее часто используемая команда уровня Т – это команда N. Эта команда устанавливает age накопителя в требуемый уровень. Если у вас U-подобный накопитель – после буквы N достаточно поставить номер требуемого уровня самотестирования, нажать <ввод>, и либо после перезапуска питания, либо после подачи команды Ctrl + t накопитель начнет проходить селфскан с указанного Вами теста. У барракудоподобных накопителей после команды N и выбранного уровня самотестирования необходимо ввести ключ 22 – только после этого текущий статус age будет изменен (например, для запуска селфскана на U-подобных накопителях требуется подать следующую последовательность команд:
если же у Вас барракудоподобный накопитель, необходимо ввести команды так:
если команды введены правильно, накопитель начнет процедуру самотестирования.
Внимание! Запуск селфскана неизбежно приведет к разрушению пользовательских данных, часто – с первых секунд работы селфскана! Внимание! Запуск селфскана может привести к неработоспособности накопителя!
Альтернатива команде N – команда Т уровня Т. При этом команда Т не требует подтверждения запуска (ключ 22) на барракудоподобных Seagate – после ввода Тхх, где хх – номер теста, и нажатия <ввод>, накопитель немедленно приступит к выполнению выбранного теста.
Внимание! Запуск команды Т неизбежно приведет к разрушению пользовательских данных, часто – с первых секунд работы теста! Внимание! Запуск команды Т может привести к неработоспособности накопителя!
В некоторых случаях может потребоваться отключить верхнюю головку в пакете магнитных головок – как правило, из-за близости верхней крышки, верхняя головка пакета может выйти из строя. Отключение головок по очереди производится посредством команды Y, после которой необходимо указать новый тип накопителя. Текущий тип можно узнать по ответу на команду точка с запятой. Тип накопителя нужно ввести правильный – если Вы введете некорректный тип, накопитель может уйти в бесконечную перезагрузку, начать стучать ограничителем актуатора об упор позиционера, и т.п. самый правильный способ – просмотр типа накопителя у младшей модели. К примеру, мы имеем Seagate Barracuda IV емкостью 40 гигабайт. Ответ на команду точка с запятой:
Age=50 Type=A1 MxCyl=DC91 MxHd=0 MxSct=068 BSz=0800 TCode=0000
Для отключения верхней головки необходимо ввести тип от накопителя емкостью 20 гигабайт (тип А0):
Ctrl + z
T>YA0 [Enter]
После ввода этой команды барракудоподобные накопители просто примут изменения и при следующей перезагрузке потребуют правки паспорта (выдадут диагностическое сообщение Stuff Was Unreadable). U-подобные накопители сначала выдадут измененную зонную таблицу для новой модели – закрепить изменения потребуется командой W (записать данные с системную область).
Внимание! Команда W деструктивна для данных! Внимание! Изменение типа накопителя приведет к немедленной потере данных пользователя!
Для U-подобных накопителей имеется возможность чтения и записи служебной информации прямыми командами на уровне Т. Для чтения модулей из служебной зоны служит команда
где хх – идентификатор модуля в служебной зоне. Если хх = 0, будет производиться чтение содержимого микросхемы ПЗУ. Для записи модулей в служебную зону U-подобных накопителей Seagate служит команда
где хх – идентификатор модуля для записи. Если требуется перепрограммировать микросхему ПЗУ, для U-подобных накопителей нужно ввести команду
f0000,eeee
Внимание! Команды записи служебной информации могут быть деструктивными для данных пользователя, либо могут привести к необратимой порче накопителя. Использование этих команд должно быть крайне осторожным.
Для работы со служебной зоной барракудоподобных накопителей требуется специализированное ПО и высокоскоростной терминальный адаптер. Запись служебной области производится из заранее считанных треков. Процедура считывания очень сложна, и состоит из цикла команд s (позиционирование на треке), R (считать сектор с текущего трека в буфер чтения) и B (показать буфер) на уровне 2. Команды s и R подаются с координатами в виде хххх,у,zzz, где хххх – трек, уу – головка, а zzz – сектор. Ручное чтение системного трека выглядело бы следующим образом:
Переключение накопителя в диагностический режим
Переход на уровень 2
Позиционирование на искомый трек
Чтение сектора командой R
Просмотр буфера, содержащего считанный сектор, и сохранение его из терминала в файл
Как видим, вручную это слишком сложно. К примеру, если даже представить, что действия оператора доведены до автоматизма, на сохранение одного сектора служебной зоны вручную потребуется 10 – 12 секунд; сохранение целого трека, например, для накопителя Seagate Barracuda IV (647 секторов), потребует приблизительно 2 часов времени – это если учесть, что оператор за все время выполнения операции не допустил ни одной ошибки.
Запись системных треков – процесс еще более трудоемкий, так как запись производится в накопитель по одному байту – методом изменения буфера записи с последующей записью его в необходимый сектор. При этом используется команда U, после заполнения буфера – команды s и W с описанными выше координатами. Если даже действия оператора полностью автоматизированы, для занесения в один сектор необходимых данных (512 байт) по одному байту (1 байт вручную заносится примерно 6 секунд) потребуется около 50 минут; для записи одного трека таким образом потребуется примерно 22 дня.
Еще одна команда уровня Т – команда хаш ( # ) – изменения серийного номера накопителя.
Просмотреть буфера накопителя можно посредством команды B уровня 1. К примеру, для просмотра буфера 1 НЖМД следует подать команды
Если все выполнено успешно, вы получите в терминал дамп этого буфера:
buffer 0001 comparing to 0001 RD:0200:10:00 WR:0210:10:00
Addr 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 1 2 3 4 5 6 7 8 9 A B C D E F
000200 7AE60A00 ECF90A00 DEF90A00 77F20100 E6F2C201 D1104A88 67B9BE88 9AC9FE70
000220 7EC9F6F2 B42BF7F2 A02B9AC9 FE70F3F3 A02B4A67 889BDB00 9AC9FE70 DB00FB88
000240 E6F3D308 7931D110 4A8867B9 BE889AC9 FE707EC9 F6F3B42B F7F3A02B 9AC9FE70
000260 F3F4A12B F3F5A02B 4A67889B DB00E6F3 530867F3 FE00D110 4A8867B9 BE889AC9
000280 FE707EC9 F6F3B42B F7F3A22B F7F4A12B F7F5A02B 4A67889B DB00E6F3 D3087931
0002A0 D1104A88 67B9BE88 9AC9FE70 7EC9F6F3 B42BF7F3 A02B9AC9 FE70F3F4 A12BF3F5
0002C0 A02B4A67 889BDB00 F78EA2D1 F78EA3D1 E608B6F9 F60852F6 E6F30800 E6F25C5D
0002E0 E001E6F0 A68BF6F0 54F6E6F0 54F6E609 7CFAF20B 7AF6F20A 7CF6E608 00F6E688
000300 0068E6F0 A68DFA08 52424825 0800DAC0 3CBDFAC0 4EBDDAC0 3CBDFAC0 6ABDDAC0
000320 3CBDFAC0 86BDDAC0 3CBDFAC0 A6BD6EB7 E052DA08 78FCE092 DA0878FC E032E6F1
000340 0002F6F1 3E81E011 F6F14281 F68E4681 DA0878FC E062DA08 78FCDA08 86036FB7
000360 E0A2DA08 78FC218B E6FEFF00 60ECF01E 7C8CF02C F03D0126 0142C04C 5C8CC02D
000380 70CDF04C DB008890 88808870 8860E6F8 0002E009 E0060E60 9A6D06A0 E6FC0600
0003A0 DA08CE63 8A6DFEA0 6EB7E052 DA0878FC E042E6F1 0002F6F1 3E81E021 F6F14281
0003C0 F68E4681 DA0878FC E062DA08 78FCE6FC 0008F0D8 F0E9DA08 6407F1E8 F0C6C0ED
0003E0 DA086803 F0640881 1890F078 F0C926F7 FEFF38C0 8DECE6FC 0008E6FD FEFFE00E
000400 DA083607 F0C46FB7 40C6EA21 2004E6FC 872BE6FD 2100DA08 7A180F60 8A60FE00
1>
Если Вам нужно сравнить содержимое двух буферов, для этого нужно ввести команду В в виде Вх,у, где х – сравниваемый буфер, а у – буфер для сравнения.
Очень интересна команда F на уровнях Т и 1. На уровне Т команда F служит для правки паспорта накопителя. Seagate называет паспорт накопителя термином stuff (штучка), сам stuff состоит из ключей (keys). Паспорт содержит все необходимые для функционирования накопителя ключи в явном виде. Для правки ключей паспорта необходимо ввести на уровне Т команду F, накопитель выдаст приглашение:
Теперь можно править ключи. К примеру, для того, чтобы изменить имя модели накопителя, необходимо ввести в приглашении паспорта строку с именем модели. Все ключи вводятся в шестнадцатеричном виде. Пример: я хочу поменять название накопителя на This is myself hard drive. В строке приглашения правки паспорта вводим:
ASCI1B54686973206973206D7973656C66206861 72642064726976650D0A 20202020202020202020202020
На уровне 1 U-подобных накопителей команда F возвращает данные об установленных перемычках (00 – slave, 01 – Master with ATA slave or single drive, 02 – Cable Select, 03 – Master with non-ATA slave), а у барракудоподобных это активация записи бита данных игнорируя адаптивы.
Команда N на уровне 1 производит операции со SMART накопителя. Наиболее востребована функция сброса SMART (создания нового сектора SMART) – это команда N1.
Тестирование головок (на предмет наличия/отсутствия, а также на предмет исправности) производитсяч на уровне 2, командой H. При подаче команды H с параметром, обозначающим головку, накопитель скажет, какая эта голова реально. Например, одноголовый накопитель будет отвечать так:
Что однозначно указывает, что у него всего лишь 1 физическая голова, причем она реально – нулевая, то есть нижняя в пакете.
Команда L в формате Lxx,zz,yyyy – производит настройки выполнения повторов тестовых команд (например, команд O уровня 2 – тест позиционирования, Q уровня 2 – тест чтения/записи, и т.п.)
Bit 7 6 5 4 3 2 1 0
. . . . . . . +—— 1 = Продолжать при ошибке, 0 = Остановиться
. . . . . . +——— 1 = Остановиться если ошибок нет
. . . . . +———- 1 = Остановить шпиндель при ошибке, 0 = наоборот
. . . . +———— 1 = Зарезервировано
. . . +————— 1 = Показать сообщение об ошибке при ошибке
. . +—————- 1 = Остановиться при коде ошибки=yyyy, 0 = повтор
. +—————— 1 = Начать заново все.
+——————— 1 = Начать с активной команды
Значение хх кодирует поведение петли (см. выше расшифровку), yyyy — кодирует код ошибки останова или повтора команды, а zz есть старший байт повторяемой команды. К примеру, если мы хотим, чтобы пущенная после команды L команда не останавливалась при ошибке, и команда отработалась 90h раз, команда L должна быть подана в следующем виде:
На уровне 2 также отрабатываются команды управления шпиндельным двигателем, необходимые для процедур хот-свопа. Это команды Z (остановить шпиндельный двигатель) и u (запустить шпиндельный двигатель). Также с уровня 2 подается команда просмотра таблицы зон накопителя (команда х):
Zone 0: 0015 — 17AF 833 552.156
Zone 1: 17B0 — 2FE0 833 552.156
Zone 2: 2FE1 — 40F0 833 552.156
Zone 3: 40F1 — 5700 784 510.588
Zone 4: 5701 — 696B 784 510.588
Zone 5: 696C — 7D00 718 477.647
Zone 6: 7D01 — 8B8B 686 454.117
Zone 7: 8B8C — 9B24 653 435.294
Zone 8: 9B25 — A9D6 616 414.117
Zone 9: A9D7 — BA00 588 385.882
Zone A: BA01 — C4BA 548 371.092
Zone B: C4BB — D105 522 352.941
Zone C: D106 — DC91 490 330.756
Sys= 7000-7028 02B9 SPTK on sys trks
Total LBAs = 0263190A
2>
Уровни 3 и 4 содержат команды, мало пригодные для целей ремонта. Уровень 5 закрыт производителем. Очень интересен уровень 6 – это уровень работы с батч-файлами. Батч файл – это своеобразный скрипт, описывающий какую-то процедуру, которая должна производиться в автоматическом режиме, например, циклическая операция чтения – записи – позиционирования с целью разогрева НЖМД. Команда Вх уровня 6 запускает батч-файл с номером х. По команде Dx на уровне 6 можно посмотреть листинг батч-файла х, а команда Ех позволяет редактировать батч-файл х.
Уровень 7 предназначен для работы с адаптивами – любые команды на этом уровне, кроме общих, очень опасны! Запуск команд с этого уровня может привести к стуку накопителя, и даже к выходу из строя его электроники.
Уровень 8 предназначен для исполнения пакетных команд записи и многочисленных тестов сервосистемы и БМГ. К примеру, группа команд С, в зависимости от параметров, производит различные калибровки и подстройки сервосистемы (например, С08,х – произвести операцию случайного позиционирования по головке х; С0D,хххх,уууу – операция позиционирования от головки к головке, на одном и том же цилиндре, здесь хххх – первая головка, уууу – следующая головка, между которыми производится позиционирование).
U-подобные накопители имеют весьма полезный уровень 9 – уровень, предназначенный для работы с дефектами. Команды R и W запускают тесты чтения и записи соответственно – при этом подаются они в одинаковом формате:
Rxx,yy; Wxx,yy; Rxx,yy,1; Wxx,yy,1
Здесь – хх – это стартовый цилиндр, уу – количество секторов для тестирования (если этот параметр пропущен – работа идет со всем цилиндром), ключ 1 включает автореассигн найденных сбойных секторов.
Ключевая команда уровня 9 U-подобных накопителей – команда F, которая позволяет управлять дефектами:
Fxx,A — Вставить реассигн для сектора xx.
Fxx,B — Вставить сектор xx в P-List
F0,C — Удалить все реассигны.
Fxx,F — Удалить дефект на секторе xx.
Не стоит забывать, что после ввода дефектов в дефект-листы, поверхность накопителя следует форматировать.
Следующие уровни (А, В, С, D, E, F) – доступны только для барракудоподобных накопителей. Уровни с А по D мы пропустим, так как на них нет интересных с точки зрения ремонта команд.
На уровне Е сосредоточены команды для работы с форматом и зонной таблицей накопителя. Изменение зонной таблицы возможно с использованием команды а, ответ на которую будет выглядеть примерно так:
1. Zone: 0009 9
2. Start Cyl: 0000cc89 52361
3. End Cyl: 0000de3b 56891
4. NRZ Freq: 00069646 431686
5. Secs Per Trk: 02a4 676
6. Write Split Pos: 0230 560
7. Read Split Pos: 0216 534
8. Sec Freq: 086e 2158
9. Base Ctr: 0003 3
10. Read ID Pos: 0148 328
11. Write ID Pos: 0162 354
12. Wedge Sec Sze: 07fc 2044
13. Sec Info Tbl Add: b460 46176
14. Phase Off: 02 2
15. PLO Offset: 02 2
16. NReg: 0e 14
17. MReg: ab 171
18. DRReg: 61 97
19. PLO Len: 0a 10
18. DRReg: 61 97
19. PLO Len: 0a 10
20. Write Off Delay: 1d 29
21. Byte/SPHSConvNum: 3a 58
Параметры, перечисленные в этой таблице, можно редактировать в формате ах,у, где х – параметр, который мы желаем изменить, а у – новое его значение.
Наименее приятен для пользователя уровень F – это тот уровень, на который накопитель вываливается сам в случае фатальных разрушений рабочей системной области (аналог альтернативной системной области накопителей Maxtor). Если накопитель попал на этот уровень – как правило, требуется серьезное хирургическое (замена БМГ) или программное (перезапись микропрограммы НЖМД) вмешательство, однако кое-что можно все таки попытаться сделать.
Во-первых, на уровне F работают команды позиционирования (s) и чтения сектора (r), естественно, команда просмотра буфера (В) – также доступна. Используя связку из этих команд, можно оценить степень разрушения системной области или степень разрушения головок (читают они или нет информацию). Если системная область все-таки читается, можно попытаться загрузить недостающую ее часть в память НЖМД и попытаться перейти на уровень Т для выхода на интерфейс и считывания данных. Для этого служит команда R – считать системный сектор в ОЗУ накопителя. При этом если после R поставить индекс 1 – накопитель будет пытаться считать Reserve track defect list, если 2 – будут считываться адаптивы загрузки, а если 4 – будет производиться попытка считывания всей СА. Если использование команды R не дало результата – хирургия неминуема.
Можно попытаться остановить (Z) и раскрутить (U) шпиндельный двигатель с последующей попыткой чтения системной области. Теоретически это может способствовать кратковременной очистке головок от грязи и корректной инициализации накопителя. Однако в любом случае, даже если это и помогло – то все равно не надолго, и без оперативного вмешательства не обойтись.
Коды ошибок
Накопитель временами выдает весьма любопытные сообщения, содержащие коды ошибок, которые могут оказаться как нельзя кстати для локализации и последующего устранения неисправности. Например
AutoRd Err 47 at 00fe80.00.0000
AutoRd Err 43 at 00fe80.00.01ae
Видно, что это ошибки чтения, и указаны их координаты (00fe80.00.0000 – трек, головка, сектор), однако сама ошибка закодирована (47, 43 – это ошибки). Наиболее часто встречаются следующие коды ошибок:
03 – Рассчитанная контрольная сумма не соответствует полученному значению
14 – Ошибка записи
16 – Таумаут позиционирования
33 – Не загружены адаптивы
43 – Ошибка данных ЕСС-коррекции
47 – Бит синхронизации данных утерян
4В – Переполнение лога ошибок
65 – Ошибка сенсора удара (зафиксирован удар)
70 – Сертификационный оверлей на диске не валиден
А0 – Ошибка передачи сигнала в коммутатор-предусилитель
А6 – Прошивка несовместима
FB – Пропущен критический параметр
⌨️ Терминал для начинающих: полезные команды для работы в командной строке Windows, Linux и MacOS
Работа с терминалом может пугать тех, кто привык работать с графическими пользовательскими интерфейсами (GUI). Тем не менее, это важный инструмент, к работе с которым разработчику Python нужно привыкнуть. И как только вы улучшите свои навыки по работе с терминалом, он станет чрезвычайно мощным инструментом в вашем арсенале. С помощью всего нескольких команд в терминале вы можете выполнять задачи, которые невозможно или, по крайней мере, очень утомительно выполнять в графическом интерфейсе.
В этом уроке вы узнаете, как:
- Найти терминал в операционной системе
- Открыть терминал
- Осуществить навигацию по файловой системе с помощью основных команд
- Создать файлы и папки с помощью терминала
- Управлять пакетами с помощью pip-команд
- Отслеживать файлы с помощью Git в терминале
Если вы новичок в работе с терминалом или хотите расширить свое понимание его возможностей, то это руководство станет отличным стартом. В нем вы познакомитесь с некоторыми основными командами и узнаете, как использовать pip и Git для управления проектами в терминале.
Бесплатный материал: Нажмите здесь, чтобы получить бесплатную памятку полезных команд, которые помогут вам начать работу с терминалом.
Установите и откройте терминал
Раньше термин терминал ассоциировался с неуклюжим аппаратным обеспечением , которое вы использовали для ввода данных в компьютер. В настоящее время люди под терминалом обычно подразумевают эмулятор терминала и имеют в виду какое-то терминальное программное обеспечение, которое можно найти на большинстве современных компьютеров.
- Оболочка — это программа, с которой вы взаимодействуете при выполнении команд в терминале.
- Интерфейс командной строки (CLI) — это программа, предназначенная для запуска в оболочке внутри терминала.
Другими словами, оболочка предоставляет команды, которые вы используете в интерфейсе командной строки, а терминал — это приложение, которое вы запускаете для доступа к оболочке.
Если вы используете компьютер с Linux или macOS, то терминал уже встроен. Вы можете начать использовать его прямо сейчас.
В Windows у вас также есть доступ к приложениям командной строки, таким как Command Prompt . Однако при работе с данным руководством и работы с терминалом в целом вместо этого следует использовать приложение терминала Windows.
Далее вы узнаете, как установить и открыть терминал в Windows и как найти терминал в Linux и macOS.
Windows
Терминал Windows — это современное и многофункциональное приложение, которое дает вам доступ к командной строке, нескольким оболочкам и расширенным параметрам настройки. Если у вас Windows 11 или выше, есть вероятность, что терминал Windows уже присутствует на вашем компьютере. В противном случае вы можете скачать приложение из Microsoft Store или из официального репозитория GitHub .
Прежде чем продолжить работу с этим учебным пособием, вам необходимо настроить терминал на вашем компьютере с Windows. Вы можете ознакомиться с документом « Your Python Coding Environment on Windows: Setup Guide » , чтобы узнать, как установить терминал Windows .
После установки терминала Windows вы найдете его в меню «Пуск» в разделе Terminal . При запуске приложения вы должны увидеть окно, которое выглядит следующим образом:
Данное изображение и все последующие взяты отсюда.
Для удобства вы можете создать ярлык на рабочем столе для терминала или закрепить приложение на панели задач для быстрого доступа.
Linux
Вы можете найти терминальное приложение в меню приложений вашего дистрибутива Linux. Кроме того, вы можете нажать Ctrl + Alt + T на клавиатуре или использовать панель запуска приложений и выполнить поиск по слову Terminal .
После открытия терминала вы должны увидеть нечто похожее:
То, как вы открываете терминал, также может зависеть от того, какой дистрибутив Linux вы используете.
macOS
Обычный способ открыть приложение терминала в macOS — открыть Spotlight Search и выполнить поиск Terminal . Вы также можете найти приложение терминала в папке приложения внутри Finder.
Когда вы открываете терминал, вы видите окно, похожее на изображение ниже:
После запуска терминального приложения вы увидите окно, ожидающее команд. Это похоже на взаимодействие со скриптом Python, который ожидает ввода данных пользователем .
Если вы хотите взаимодействовать с терминалом, вам нужно знать, какие команды терминала вы можете ввести, чтобы продолжить. В следующем разделе вы узнаете об основных командах терминала, которые помогут вам начать работу.
Изучите основные команды терминала
Для эффективной работы с терминалом важно понимать некоторые основные команды терминала и знать, как их использовать. Команды терминала — это инструкции, которые вы вводите в терминал для выполнения определенной задачи.
В зависимости от вашей операционной системы вы будете запускать команды терминала в определенной оболочке. Для Linux это, скорее всего, Bash , для более новых версий macOS — Zsh , а для Windows — PowerShell . Эти оболочки различаются по своим функциям, но у них общие основные команды.
В этом разделе вы познакомитесь с наиболее часто используемыми командами терминала. Чтобы ознакомиться с ними, выберите свою операционную систему в переключателе платформ ниже:
Вот команды Windows, которые вы рассмотрите:
Слова, написанные прописными буквами, являются ссылками на аргументы, допускаемые командами.
Далее вы узнаете, как перемещаться по файловой системе, а также создавать, редактировать и удалять файлы и каталоги. К концу этого раздела у вас будет прочная база для работы с терминалом и вы сможете уверенно выполнять многие повседневные задачи. Вы можете сохранить этот настрой и с его помощью решать другие задачи в терминале, такие как использование pip , взаимодействие с Git и создание интерфейсов командной строки с помощью Python .
Навигация по вашей файловой системе
Файловая система — это иерархическая структура каталогов и файлов на компьютере. Обычно это то, что вы видите, когда открываете приложение файловой системы с графическим интерфейсом, такое как проводник Windows или Finder в macOS. Это также отличное место для начала вашего путешествия по терминалу, но опять же, вы просто знакомитесь со всеми возможностями терминала.
Папка, которую вы сейчас открыли в файловой системе, является текущим рабочим каталогом (current working directory, cwd). Как вы заметите, вы используете рабочий каталог в качестве точки отсчета для многих операций с файловой системой. Понимание устройства файловой системы и текущего рабочего каталога важно для эффективной навигации и управления файлами и каталогами в терминале.
После того как вы открыли приложение терминала, то, скорее всего, окажетесь в пользовательской папке вашей операционной системы. Вы увидите командную строку , ожидающую вашего ввода. В качестве ввода можно использовать самые разные команды. Но некоторые общие команды предназначены для навигации по файловой системе.
Чтобы начать работу, узнайте свой текущий рабочий каталог:
Команда pwd ( расшифровывается как print working directory ) используется для определения вашего текущего местоположения в файловой системе. Здесь pwd показывает, что текущим рабочим каталогом является /Users/realpython .
Рабочий каталог — это текущий каталог, в котором вы работаете. Здесь по умолчанию будут выполняться команды.
Подробнее о текущем рабочем каталоге
Есть два термина, которые стоит изучить в контексте текущего рабочего каталога:
- Переменные среды
- PATH (путь)
Переменные среды — это переменные, в которых хранится информация о состоянии среды, в которой работает терминал. Их можно использовать для хранения такой информации, как текущий рабочий каталог, расположение установленного программного обеспечения или домашний каталог пользователя. Терминал может получить доступ и использовать эту информацию, чтобы определить, как работать и где искать файлы.
PATH — это переменная среды, в которой хранится список каталогов. Чтобы увидеть, какие пути находятся в вашем PATH , вызовите следующую команду:
Когда вы вводите команду в терминал, система начинает искать программу, соответствующую этой команде, в каталогах, перечисленных в PATH . Список, который появляется после выполнения предыдущей команды, — это список мест, которые будет искать ваша система при выборе программы для запуска.
Чтобы увидеть, какие файлы и папки содержатся в директории /Users/realpython , вы можете использовать ls ( сокращение от list) :
Если вы введете ls и нажмете на Enter , вы увидите список всех элементов в текущем рабочем каталоге. В этом случае в примере показаны папки, которые вы, скорее всего, найдете в пользовательском каталоге на компьютере с macOS.
Вы также можете использовать флаг -a с командой ls , которая являет сокращением от all. Флаг -a покажет вам все элементы в текущем рабочем каталоге, включая скрытые элементы.
Другой флаг, который вы можете использовать, это -l , сокращение от long . Когда вы используете этот флаг вместе с ls , команда показывает вам подробную информацию об элементах в текущем рабочем каталоге.
Вы также можете комбинировать эти флаги, чтобы показать подробную информацию обо всех элементах, включая скрытые, с помощью ls -al :
Вывод покажет тип файла, разрешение, владельца, размер и временную отметку всех элементов в текущем рабочем каталоге, включая скрытые файлы и папки. Вот, например, скрытые элементы .DS_Store и .Trash .
Скрытые файлы и папки по умолчанию не отображаются. Это нормально для обычных пользователей. Но для вас, как разработчика, скрытые элементы могут быть интересны. В них часто хранятся данные конфигурации или настройки для различных приложений или самой системы.
Поначалу приведенный выше вывод может показаться немного ошеломляющим. Взгляните на эту строку, чтобы лучше понять вывод:
Эта строка дает вам ценную информацию об элементе. Там есть каталог с именем Desktop . Дата последнего изменения — 7 ноября в 16:00, размер — 704 байта.
Кроме того, вы можете увидеть информацию о правах владельца и группы. Если вы хотите узнать больше о нотации разрешений файловой системы, вы можете ознакомиться с notation of traditional Unix permissions .
Каждая папка в выводе ls представляет собой подпапку внутри вашего текущего рабочего каталога. Чтобы изменить текущий рабочий каталог на Desktop/ подпапку , используйте команду cd от change directory (смена директории):
Когда вы сначала вводите cd , а затем имя каталога, текущий рабочий каталог будет изменен на указанный. После запуска команды cd Desktop текущий рабочий каталог изменится на /Users/realpython/Desktop .
Обратите внимание, что вы не указываете слеш / или индикатор диска, как C:\ , в начале Desktop . Вызов такого пути указывает на то, что вы хотите перейти по пути, относящемуся к каталогу, в котором вы сейчас находитесь.
Вы использовали относительный путь в приведенной выше команде для перехода во вложенную папку. Относительные пути упрощают обращение к элементам в вашей файловой системе, поскольку вам не нужно указывать полный путь от корневого каталога. При этом вы также можете перейти в любой каталог вашей файловой системы, используя полный или абсолютный путь:
В этом случае cd команда изменяет текущий рабочий каталог на каталог C:\Users\realpython\Desktop , независимо от его предыдущего местоположения.
- Linux + macOS
В этом случае cd команда изменяет текущий рабочий каталог на каталог /Users/realpython/Desktop , независимо от его предыдущего местоположения.
Если вы используете для команды cd несуществующий путь, терминал выдаст ошибку. Вскоре вы узнаете, как создавать новые каталоги. Перед этим сделайте заключительное действие в вашей файловой системе.
Чтобы переместиться на один каталог вверх, вы обычно используете не имя родительской папки, а две точки:
Две точки ( .. ) представляют родительский каталог текущего каталога. Использование cd .. перемещает вас на один каталог вверх в иерархии файловой системы.
В приложении файловой системы с графическим интерфейсом, таком как Windows Explorer или macOS Finder, вы должны щелкать маленькие значки папок курсором мыши. В терминальном приложении вы используете команды для выполнения задач — например, cd для перемещения между папками и ls для получения обзора элементов в каталоге.
Создание файлов и папок
В этом разделе вы узнаете, как создавать файлы и папки и управлять ими непосредственно из терминала с помощью некоторых новых команд. Кроме того, вы также продолжите узнавать информацию о содержимом каталога с помощью ls и перемещаться между папками с помощью cd .
Благодаря знаниям из этого раздела, вы сможете создавать и организовывать свои проекты в терминале.
Сначала убедитесь, что вашим текущим рабочим каталогом является Desktop . Затем используйте mkdir для создания новой папки с именем rp_terminal :
Вы используете команду mkdir для создания нового каталога. Команда расшифровывается как make directory . Здесь вы создаете новый каталог rp_terminal .
Затем перейдите в rp_terminal/ и создайте новый файл с именем hello_terminal.py . Выберите свою операционную систему ниже и используйте соответствующую команду для конкретной платформы:
Когда вы запускаете команду touch , вы создаете пустой файл с заданным именем. В данном случае файл представляет собой скрипт Python с именем hello_terminal.py .
Если файл с указанным именем уже существует, то использование touch обновляет временную метку файла до текущей даты и времени, но не изменяет его содержимое. Команда touch также обновляет время доступа и модификации файла, даже если его содержимое остается неизменным.
Используйте ls , чтобы убедиться, что вы успешно создали файл:
Между 0 и временной меткой написано, что hello_terminal.py в настоящее время пуст. Прежде чем вы начнете использовать команду echo для добавления содержания в hello_terminal.py , посмотрите, что происходит, когда вы вводите echo с некоторым текстом:
Как разработчик Python, вы знаете, что текст, который вы только что передали в echo , является вызовом функции print() . Точнее, команда echo отправляет строку в стандартный поток вывода ( stdout ) .
Stdout – место назначения по умолчанию для данных, отправляемых программой командной строки. Данные отображаются на экране, но вы можете указать терминалу перенаправить stdout в файл:
Опять же, вы используете echo для вывода заданной строки. Но на этот раз вы используете символ вставки > для отправки вывода в hello_terminal.py .
Когда вы перенаправляете вывод команды echo в несуществующий файл, вы создаете файл на том же шаге.
Один из способов проверить, сработала ли команда, — снова просмотреть содержимое вашей папки:
Отлично, сейчас размер hello_terminal.py 26 байт. Чтобы убедиться, что он содержит вызов функции print() , вы можете использовать команду cat :
К сожалению, команде cat не связана с кошками. Это сокращение от concatenate .
Когда вы используете cat с несколькими файлами в качестве аргументов, вы можете объединить их и отображать содержимое один за другим. Если вы используете cat только с одним файлом, то cat – это удобный способ отображения содержимого файла в терминале.
Теперь, когда вы знаете, что hello_terminal.py содержит допустимый код Python, вы можете запустить скрипт Python :
Когда вы используете команду python , терминал ищет исполняемый файл Python в вашем PATH .
Если вы запустите команду python без каких-либо аргументов, вы запустите интерактивный интерпретатор Python , также известный как REPL . Когда вы запускаете команду с файлом скрипта в качестве аргумента, Python запускает предоставленный скрипт.
В этом случае вы выполняете hello_terminal.py и видите результат своей функции print() непосредственно в терминале. Это работает, потому что print() использует stdout по умолчанию.
Благодаря этому отдельному выходному каналу для сообщений об ошибках вы можете независимо перенаправлять или фильтровать обычные выходные и диагностические сообщения.
Благодаря знаниям, полученным в этом разделе, вы теперь можете создавать, редактировать и проверять файлы Python в терминале. Теперь вы хорошо подготовлены для перехода к работе с инструментом командной строки, который необходим на вашем пути в качестве разработчика Python. Он называется pip , и он позволяет вам добавлять внешние пакеты в ваши проекты Python.
Управление пакетами с помощью pip
Менеджер пакетов pip — важный инструмент для управления пакетами Python . Чтобы избежать установки пакетов непосредственно в вашу системную установку Python, вы можете использовать виртуальную среду .
Виртуальная среда предоставляет изолированный интерпретатор Python для вашего проекта. Любые пакеты, которые вы используете в этой среде, не зависят от вашего системного интерпретатора. Это означает, что вы можете хранить зависимости вашего проекта отдельно от других проектов и системы в целом.
Создайте виртуальную среду
Python имеет встроенный venv модуль для создания виртуальных сред. Этот модуль помогает создавать виртуальные среды с помощью изолированной установки Python. После того как вы активировали виртуальную среду, вы можете устанавливать в нее пакеты. Пакеты, которые вы устанавливаете в одну виртуальную среду, изолированы от всех других сред в вашей системе.
Вы можете выполнить следующие шаги, чтобы создать и активировать виртуальную среду с именем venv :
Обратите внимание, что командная строка изменилась. Это напоминание о том, что вы работаете в указанной виртуальной среде.
Когда вы активируете виртуальную среду с помощью модуля Python venv , вы добавляете новую запись в PATH переменную среды. Новая запись указывает на расположение исполняемого файла Python виртуальной среды. Это гарант того, что когда вы запускаете команды или сценарии Python, они будут использовать этот конкретный исполняемый файл Python вместо любой другой версии Python, которая может быть установлена в вашей системе.
Устанавливаем пакет
В этом разделе вы установите Rich library Уилла Макгугана , которая позволит вам создавать красочные текстовые приложения пользовательского интерфейса (TUI) для терминала.
Перед установкой rich проверьте, какие пакеты Python в настоящее время установлены в вашей виртуальной среде:
Выполнение команды python -m pip list выводит список всех пакетов, установленных в текущей среде. И pip, и setuptools – это пакеты по умолчанию, которые вы найдете при запуске новой виртуальной среды.
Для установки rich используйте следующую команду:
Кроме rich , вы также установили некоторые другие зависимости, которые вам понадобятся, когда вы захотите их использовать с rich . Чтобы проверить все установленные на данный момент пакеты, вы можете запустить python -m pip list еще раз:
Чтобы увидеть предлагаемые возможности rich , запустите rich без каких-либо аргументов:
В зависимости от возможностей вашего терминала вы должны увидеть такие примеры:
На скриншоте выше вы можете получить представление о том, что вы можете делать с библиотекой rich . В конце концов, терминал не обязательно должен быть темным!
Теперь, когда ваш экран заполнен сверху вниз, вы можете снова очистить окно терминала. Для этого можно использовать clear команду:
Вы используете clear команду для очистки экрана терминала. Он удаляет весь текст и содержимое, отображаемые в данный момент на терминале, оставляя пустой экран. Например, вы можете очистить экран терминала перед запуском новых команд.
В некоторых терминалах вы можете использовать Ctrl + L или Cmd + L в качестве сочетаний клавиш для очистки экрана.
В этом разделе вы узнали, как использовать pip непосредственно из терминала. Для любого Python-разработчика крайне важно знать, как использовать pip в терминале, поскольку это помогает эффективно управлять пакетами, используемых в проектах, и обновлять их.
Если вы хотите узнать больше о виртуальных средах и pip , вы можете ознакомиться с учебником Real Python по виртуальным средам Python и учебным пособием о том, как использовать Python pip для управления зависимостями ваших проектов . Оба являются важными инструментами, которые облегчат вашу жизнь как разработчика Python.
Еще один полезный инструмент для управления вашими проектами — Git. Читайте дальше, чтобы узнать, как улучшить свои навыки работы с терминалом и погрузиться в мир контроля версий с помощью Git.
Взаимодействие с Git
Git — это система контроля версий , которую обычно используют разработчики, независимо от того, на каком языке программирования они пишут свой код. Система контроля версий отслеживает изменения, вносимые в файлы с течением времени, и помогает вам при необходимости вернуть код к предыдущей версии.
В этом разделе вы узнаете, как взаимодействовать с Git непосредственно из терминала. Вы будете инициализировать репозиторий Git, отслеживать файлы и создавать коммиты.
Для Git существует множество клиентов с графическим интерфейсом . Они могут быть удобны в использовании и помогут вам лучше понять логику Git.
Тем не менее, изучить основы взаимодействия с Git в терминале все же стоит. Изучение основных команд терминала Git поможет вам понять, как работает Git внутри.
Создание репозитория Git
Первым шагом в использовании Git является инициализация репозитория . Репозиторий — это контейнер, в котором хранятся все файлы вашего проекта, папки и метаданные.
Создайте новый репозиторий Git с помощью следующей команды:
Когда вы запускаете команду git init , Git создает пустой репозиторий в текущем рабочем каталоге. В свою очередь, это создает новый подкаталог с именем .git/ , который содержит все необходимые файлы репозитория.
После инициализации репозитория вы можете проверить статус вашего репозитория:
Команда git status показывает текущий статус вашего репозитория: на какой ветке вы находитесь и есть ли какие-либо коммиты .
Коммит Git — это моментальный снимок изменений, внесенных в файлы в репозитории Git. Когда вы вносите изменения в свои файлы и сохраняете их, вы можете сделать снимок этих изменений, создав фиксацию в ветке. Когда вы делаете новые коммиты, ветвь указывает на последние коммиты.
В данном случае вы находитесь на main ветке, и еще нет коммитов. Вы также можете создавать новые ветки для работы над новыми функциями или исправлениями ошибок, а затем переключаться между ветвями по мере необходимости. Если вы хотите, вы можете создать несколько веток для одновременной работы с разными версиями вашей кодовой базы.
Кроме того, git status показывает, какие файлы Git не отслеживает. Вы можете игнорировать определенные файлы и папки, например, папку venv/ , чтобы Git не отслеживал их.
Какие файлы игнорировать
Общее правило – игнорировать любые файлы, которые специфичны для вашей локальной среды разработки или файлы, которые генерируются вашим процессом сборки. Некоторые примеры файлов, которые обычно следует игнорировать, включают:
- Файлы, содержащие конфиденциальную информацию, например, пароли или закрытые ключи.
- Двоичные файлы, создаваемые процессом сборки, например, скомпилированные исполняемые файлы или файлы объектов.
- Файлы, специфичные для вашей локальной среды разработки, такие как файлы виртуальной среды или файлы конфигурации редактора, специфичные для пользователя
- Временные файлы или файлы, созданные вашей операционной системой, такие как .DS_Store в macOS или Thumbs.db в Windows
- Логи или другие файлы, которые генерируются вашим приложением во время выполнения.
Просмотрите GitHub’s collection of .gitignore templates , чтобы получить представление о наиболее часто встречающихся файлах .gitignore. Там же вы найдете Python specific .gitignore example.
Вы можете игнорировать файлы в Git, создав файл .gitignore и указав в нем файлы и папки, которые вы хотите игнорировать:
Как вы узнали ранее, эта команда создает новый файл с именем .gitignore и записывает venv в него. Проверьте текущие элементы в вашем репозитории Git, используя другую команду, которую вы уже знаете:
Теперь у вас есть .gitignore файл рядом с вашим hello_terminal.py файлом, вашей venv/ папкой и .git/ папкой . Чтобы проверить, игнорирует ли Git venv/ папку , запустите git status еще раз:
Отлично, Git теперь показывает только файлы .gitignore и hello_terminal.py как неотслеживаемые файлы. Git знает, что файлы есть, но вы еще не добавили их в репозиторий.
Отслеживание файлов с помощью Git
Когда вы начинаете новый проект, вы, вероятно, захотите отслеживать свои изменения с течением времени. В предыдущем разделе вы инициализировали новый репозиторий с расширением git init . Теперь пришло время начать отслеживать файлы.
Вы используете git add команду, чтобы сообщить Git, какие файлы вы хотите отслеживать:
Помните точку . в списке каталогов раньше? Точка указывает на текущий каталог. Использование . в конце команды git add указывает Git отслеживать все файлы в текущем каталоге. После того, как вы добавили файлы в репозиторий, вы можете проверить статус ваших файлов с помощью git status команды:
В выводе видно, что файлы hello_terminal.py и .gitignore добавлены и готовы к фиксации:
С помощью команды git commit вы делаете снимок текущего состояния ваших файлов и сохраняете его в истории репозитория. Флаг -m добавляет сообщение с описанием ваших изменений. Вывод показывает ветку, в которой вы находитесь, и количество измененных файлов.
После того, как вы зафиксируете какие-либо изменения, рекомендуется снова проверить состояние вашего репозитория Git:
Видно, что коммитить нечего, а это означает, что все изменения были успешно зафиксированы.
Рабочий процесс, который вы использовали в этом разделе, является типичным при использовании Git в терминале. Вы используете команду git add , чтобы сообщить Git, какие файлы отслеживать. Затем вы используете git commit для создания снимка текущего состояния ваших файлов и сохраняете его в истории репозитория.
Кроме того, рекомендуется часто использовать git status для проверки текущего состояния вашего репозитория.
Хотя вы получили некое представление об использовании Git в терминале, Git может предложить вам как разработчику Python гораздо больше. Если вы хотите узнать больше о Git, вы можете ознакомиться с введением в Git и GitHub для разработчиков Python и изучить дополнительные советы по работе с Git для разработчиков Python .
Следующие шаги
Чем больше вы пользуетесь терминалом, тем привычнее вам будет. Интересный способ внедрить терминал в свои рабочие процессы в качестве разработчика Python — создать скрипты Python с интерфейсами командной строки. Например, вы можете создать:
Помимо использования pip и Git для управления вашими проектами Python, есть еще больше примеров с использованием терминала:
- Интерфейсы командной строки. Многие популярные библиотеки и фреймворки Python, такие как Django , Flask и Poetry , включают в себя интерфейсы командной строки, которые позволяют выполнять такие задачи, как создание новых проектов, запуск серверов разработки и управление базами данных.
- Автоматизация и сценарии. Терминал позволяет автоматизировать повторяющиеся задачи и создавать сценарии для управления рабочим процессом разработки, например, для запуска тестов или развертывания приложения .
- Отладка. Терминал может быть полезен для отладки вашего кода. Например, вы можете использовать print() или logging in Python , чтобы вывести что-либо в терминале и понять, что происходит в вашем коде. Вы также можете использовать pdb для отладки кода Python .
- Производительность. Многие инструменты командной строки работают быстрее, чем их аналоги с графическим интерфейсом, и идеально подходят для работы с большими наборами данных или выполнения сложных задач, таких как обработка и анализ данных .
В целом, терминал — это мощный инструмент, который может помочь вам оптимизировать рабочий процесс разработки, автоматизировать задачи, отлаживать код и получать доступ к расширенным функциям библиотек и фреймворков. С практикой вы обнаружите, что терминал — бесценный инструмент для вашего пути в качестве разработчика Python.
Заключение
Когда вы освоитесь с терминалом, вы, вероятно, сможете перемещаться по своей файловой системе быстрее и с большим контролем, чем при использовании мыши и нажатии кнопок.
В этом уроке вы узнали, как:
- Найти терминал в операционной системе
- Открыть терминал
- Осуществить навигацию по файловой системе с помощью основных команд
- Создать файлы и папки с помощью терминала
- Управлять пакетами с помощью pip команд
- Отслеживать файлы с помощью Git в терминале
Вы улучшили свои навыки программирования, научившись выполнять три действительно важные задачи в терминале: перемещаться по файловой системе, управлять пакетами Python с помощью pip и делать коммиты в Git. Изучение команд терминала — отличная инвестиция для вас как для Python-разработчика. Просто не торопитесь и постепенно знакомьтесь с этим мощным инструментом. Достаточно скоро он станет важным инструментом, без которого вы не сможете жить.