Скопируйте открытый ключ на клиентскую машину
Теперь войдите на клиентский компьютер, с которого вы будете выполнять команду ssh, чтобы установить SSH-соединение с удаленным хостом. Здесь две учетные записи пользователей Ubuntu использовались для проверки SSH-соединения на локальном сервере. Одна учетная запись пользователя использовалась в качестве клиента, а другая учетная запись пользователя использовалась в качестве сервера в этом руководстве.
Выполните следующую команду, чтобы создать папку с именем ~ /.ssh на клиентском компьютере, если она не существует.
Выполните следующую команду, чтобы скопировать открытый ключ с удаленного хоста в папку ~ /.ssh клиента.
Вы должны предоставить пароль имени пользователя удаленного хоста для копирования открытого ключа на клиентскую машину. Если файл скопирован правильно, вы получите следующий результат. Теперь клиентский компьютер готов установить соединение с сервером с помощью службы ssh.
Шаг 3 – копирование открытого ключа
После того, как вы создали пару ключей, необходимо добавить открытый ключ на нужный вам виртуальный сервер.
Вы можете сделать это двумя способами:
Либо используя команду ssh-copy-id , чтобы скопировать на сервер в authorized_keys :
ssh-copy-id [email protected]
Либо копируя ключи при помощи SSH:
cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Вне зависимости от выбранной команды вы увидите следующее (с вашими данными):
The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established. RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts. [email protected]'s password: Now try logging into the machine, with "ssh '[email protected]'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
После этого вы можете авторизоваться как пользователь ([email protected]), и пароль не будет запрошен.
Добавление репозиториев в командной оболочке
Как это ни странно, но эффективнее и удобнее производить управление репозиториями из командной оболочки. Как правило, в Debian-системах используется СУП APT, поэтому все представляемые далее команды будут относиться к этой системе управления пакетами.
Пусть требуется добавить репозиторий для загрузки и установки интегрированной среды разработки «CodeLite». Информацию о репозитории и даже исчерпывающие инструкции по его настройке в системе приведены на официальной странице Wiki проекта. Итак, с помощью команды apt-add-repository (используя sudo) нужно добавить адрес репозитория. Эта команда попытается добавить соответствующую запись в файл :
$ sudo apt-add-repository 'deb https://repos.codelite.org/ubuntu/ bionic universe'
Здесь следует обратить внимание на ту часть записи, в которой указывается версия дистрибутива (bionic), в данном случае это Ubuntu 18.04 Bionic Beaver. Для каждой из версий существуют свои особенности в сборке ПО и формировании для неё пакетов
Обычно разработчики делают сборки для нескольких версий дистрибутивов и указывают соответствующие ссылки для них. Это следует учитывать, иначе пакеты могут быть некорректно установлены.
Далее необходимо обновить индекс базы данных состояния пакетов, поскольку был добавлен новый репозиторий:
$ sudo apt-get update
Теперь можно установить и сам пакет codelite:
$ sudo apt-get install codelite
В данном примере намеренно сначала добавляется репозиторий без импорта открытого ключа, чтобы продемонстрировать, что в случае отсутствия такого ключа APT заблокирует установку пакетов. При этом будет выдано соответствующее сообщение, предупреждающее, что репозиторий является непроверенным. О том, как добавлять ключи при настройке репозиториев, рассказывается в главе «Добавление ключей подписей репозиториев».
Необходимо также отметить, что вся информация о репозиториях для систем Ubuntu (а также и сами пакеты, которые можно найти и скачать вручную) хранится на ресурсе https://launchpad.net/. Хотя поиск и ручная навигация по данному ресурсу не самые удобные, но при желании найти то, что нужно вполне возможно. Например, страница с информацией о репозитории пакета yd-tools (графический индикатор для утилиты Яндекс.Диск) выглядит следующим образом:
Рис. 1: Сводная информация о репозитории на ресурсе launchpad.net для систем Ubuntu.
Как можно видеть, в данном случае выбрана ветка репозитория для версии Ubuntu 18.04 и соответствующие ей ссылки для загрузки готовых пакетов (и если нужно, также и архивов с исходными кодами) необходимо добавлять в файл . Также указан отпечаток (Fingerprint — открытый ключ) для данного репозитория.
Установка и удаление программ
Для установки и удаления программ используются различные утилиты, в зависимости от версии дистрибутива Linux. В основанных на Debian дистрибутивах (Ubuntu, Linux Mint и т. д.) для этой цели используются команды apt-get или aptitude. Первый вариант упрощенный, второй имеет большую функциональность. Некоторые действия, например, установку и удаление, нужно выполнять от root, либо использовать команду sudo.
sudo apt-get update — получение нового списка пакетов.
sudo apt-get upgrade — обновить программы, перед этим нужно обновить список пакетов, выполнив предыдущую команду. Обе команды желательно выполнять периодически (часто это делается автоматически), а также перед установкой новых программ.
sudo apt-get install mc — установка программы mc.
sudo apt-get remove mc — удаление программы mc. В дистрибутивах, основанных на Red Hat, где используются RPM-пакеты, часто используют менеджер yum.
yum update — обновление системы.
yum install mc — установка программы mc.
yum remove mc — удаление программы mc. Есть и другие пакетные менеджеры и варианты установки программного обеспечения.
Работа с секретами
Наша система полностью готова, чтобы ей пользоваться.
Для начала дадим разрешение на хранение секретов по пути secret:
vault secrets enable -path=secret/ kv
Мы должны получить ответ:
Success! Enabled the kv secrets engine at: secret/
Теперь выполним простую операцию по созданию секрета. Введем команду, предложенную на официальном сайте разработчика:
vault kv put secret/hello foo=world
* команда kv взаимодействует с хранилищем Vault. В данном примере мы добавляем пару ключ-значение, соответственно foo-world.
Мы должны получить ответ:
Success! Data written to: secret/hello
Посмотреть содержимое можно командой:
vault kv get secret/hello
На что мы получим:
===== Data =====
Key Value
— ——
foo world
Также можно внести за раз множество значений:
vault kv put secret/hello foo=world excited=yes
Посмотреть список созданных секретов можно командой:
vault kv list secret
Теперь удалим секрет командой:
vault kv delete secret/hello
Полный перечень команд можно увидеть так:
vault -help
После чего можно будет получить помощь по конкретной команде vault, например:
vault kv -help
Данной информации достаточно, чтобы познакомиться с продуктом. Пойдем дальше.
Аутентификация и политики
Hashicorp Vault позволяет управлять доступами с помощью политик и токенов авторизации. Рассмотрим процесс настройки.
Работа с токенами
Для начала научимся управлять токенами. Простая команда для создания нового:
vault token create
Система сгенерирует новый ключ и сделает вывод на экран.
Также мы можем создать временный токен:
vault token create -period=1h
* на один час.
Посмотреть информацию о токене можно через его аксессор. Сначала получим список аксессоров:
vault list auth/token/accessors
После смотрим токен по аксессору:
vault token lookup -accessor uW9Ajr8VzFiCwHzHWn75qWVe
Войти в систему с помощью токена можно командой:
vault login
После вводим наш токен. Или одной командой:
vault login s.Db9j6Q4TvyFDr3j2aQmXttrX
Посмотреть информацию о токене, под которым мы зарегистрировались в системе, можно командой:
vault token lookup
А данной командой мы создаем пользователя и привязываем его к политике my-policy:
vault token create -policy=my-policy
Если политики нет в системе, то мы получим предупреждение:
WARNING! The following warnings were returned from Vault:
* Policy «my-policy» does not exist
Нас это не должно заботить — на следующем шаге мы ее создадим.
При необходимости привязать токен к нескольким политикам, перечисляем из в опциях policy:
vault token create —policy=my-policy -policy=my-policy2
Работа с политиками
Выше мы создали токен и привязали его к политике my-policy. Создадим ее:
vault policy write my-policy — << EOF
path «secret/data/foo/*» {
capabilities =
}
path «secret/data/hello/*» {
capabilities =
}
path «secret/data/*» {
capabilities =
}
EOF
* в данной политике мы разрешаем чтение всех секретов в secret. Для ранее созданного секрета secret/hello мы разрешим чтение и обновление записей, а для секрета secret/foo также мы разрешаем создавать записи
Обратите внимание, что на самом деле, данные хранятся в secret/data..
Посмотреть список политик можно командой:
vault policy list
Посмотреть информацию о конкретной политике можно командой:
vault policy read my-policy
Проверка политики
И так, мы создали токен, привязали его к политике, создали саму политику. Проверим, что наши права работают.
Если нужно, можно создать еще токен и привязать его к нашей политике:
vault token create -policy=my-policy
Зарегистрируемся с нужным нам токеном (который привязан к проверяемой политике):
vault login
Попробуем сначала создать секрет в ветке secret/foo и в нем указать пару ключ-значение:
vault kv put secret/foo/new foo=world
Команда должна выполниться успешно.
Теперь сделаем то же самое для secret/hello
vault kv put secret/hello/new foo=world
Мы должны получить ошибку
Error writing data to secret/data/hello/new: Error making API request.
URL: PUT http://127.0.0.1:8201/v1/secret/data/hello/new
Code: 403. Errors:
* 1 error occurred:
* permission denied
Теперь логинимся под токеном с полными правами и добавим запись:
vault kv put secret/hello/new foo=world
И снова заходим под токеном с ограниченными правами. Пробуем обновить запись:
vault kv put secret/hello/new foo=world2
Команда должна выполниться успешно, так как мы разрешили политикой обновлять записи.
Аутентификация на основе пользователей
Также в Hashicorp Vault мы можем создать пользователя с паролем и привязать к нему политику. Администратор сможем входить в систему под учетной записью, а не с помощью токена.
Разрешаем метод auth по пути userpass:
vault auth enable userpass
Создаем пользователя:
vault write auth/userpass/users/dmosk password=»test-pass» policies=»my-profile»
* данной командой мы создали пользователя dmosk с паролем test-pass и привязали его к политике my-profile.
Войти в систему можно командой:
vault login -method=userpass username=dmosk
Вводим пароль и попадаем в систему под пользователем dmosk. Можно выполнить тесты, которые мы .
Вход на серверную машину с помощью SSH без пароля
Теперь открытый ключ существует как на клиентских, так и на серверных машинах. Когда клиентский компьютер отправляет запрос на соединение серверу с помощью команды ssh, сервер сопоставляет открытый ключ клиента с открытым ключом сервера. Если совпадения найдены, то соединение будет установлено от клиента к серверу. Вы можете подключиться к серверу или удаленному хосту, используя имя хоста или IP-адрес. Локальный сервер использовал это руководство, чтобы показать использование авторизованных ключей для установления SSH-соединения с клиентского компьютера на серверный. Одна учетная запись использовалась как серверная машина, на которой установлен сервер OpenSSH, а другая учетная запись использовалась здесь как клиентская машина. Выполните следующую команду на клиентском компьютере, чтобы установить соединение с сервером.
Следующий вывод появится после выполнения указанной выше команды. Выходные данные показывают, что имя пользователя клиентской машины — «yesmin». Имя пользователя серверной машины — fahmida. SSH-соединение установлено правильно, поскольку имя пользователя изменилось на «fahmida» с «yesmin». Теперь можно легко получить доступ к содержимому серверной машины. Если пользователь сейчас выполняет какую-либо команду, вывод будет сгенерирован на основе сервера.
Команды для работы с файлами
ls — выводит список файлов в текущем каталоге. Чтобы отобразить список файлов в любом каталоге, нужно набрать путь к каталогу после команды, например: ls /usr/bin. Некоторые ключи команды ls:
-a — показать скрытые файлы;
-s — указать размер файлов в блоках;
-t — сортировка по времени модификации файлов, сначала новые файлы;
-X — сортировка по расширению названия файлов, файлы без расширения выводятся вначале;
-l — расширенный формат вывода: показывает атрибуты, владельцев и группу файлов, размер, дату и время их создания;
-r — изменить порядок сортировки на обратный. Например, команда
ls -lat /etc выведет содержимое каталога /etc в расширенном виде и с сортировкой по времени создания файлов.
cp — копирование файлов. cp doc1 doc2 — создаст копию файла doc1 под именем doc2.
rm — удаление файлов. rm doc — удалит файл doc. rm * — удалит все файлы в текущем каталоге. rm *doc — удалит все файлы, которые заканчиваются на doc. Ключ -i используется для подтверждения удаления каждого файла, ключ -r для удаления каталогов и файлов внутри этих каталогов.
rmdir — удаление директории. rmdir alex — удалит каталог alex.
Нужно быть очень осторожным с командами rm и rmdir, особенно в режиме суперпользователя, поскольку можно удалить не только свои, но и системные файлы, что может привести к краху системы.
pwd — вывод текущей директории.
mkdir — создание новой директории. mkdir alex — создаст каталог alex.
mv — перемещение или переименование файлов. mv new old — переименует файл new в old.
cat — соединение файлов или вывод файлов на стандартное устройство вывода. cat doc — выведет файл doc.
cat /proc/cpuinfo — выдаст подробную информацию о процессоре, cat /proc/version — о версии ядра Linux.
touch — создание пустого файла.
touch doc — создаст файл doc. find — поиск файлов. find / -name «doc*» — найдет все файлы, которые начинаются с doc.
ln — создание ссылки на файл. ln file1 file2 — создаст жесткую ссылку. Ключ -s используется для создания символической ссылки.
tar — программа для работы с архивами. tar -zxvf file.tar.gz — распакует архив file.tar.gz. tar -cvf my.tar myfile — заархивирует файл myfile, создав архив my.tar.
more — вывод файлов с остановкой для просмотра, в отличие от cat, который выводит весь файл сразу. Можно прокручивать текст построчно, с помощью клавиши ввода или постранично с помощью пробела.
less — программа для просмотра файлов аналогичная more, но позволяет прокручивать текст вверх и управлять с помощью курсорных клавиш.
nano — простой полноэкранный текстовый редактор. Рекомендуется для новичков, поскольку содержит минимум функций и основные команды отображаются на экране.
vi — довольно мощный текстовый редактор, но он имеет свою нестандартную систему команд, поэтому требует время на освоение.
mc (Midnight Commander) — мощный файловый менеджер, аналог Norton Commander для DOS или FAR для Windows. Позволяет удалять, копировать, переименовывать, просматривать, редактировать файлы, менять их атрибуты и т. д. Midnight Commander обычно не входит в стандартный набор системных программ, поэтому его нужно устанавливать отдельно. Но он настоятельно рекомендуется к использованию, поскольку сильно упрощает работу с файлами.
Рис. 2. Midnight Commander в gnome-terminal
Генерация вашей пары GPG ключей
После установки GnuPG вам нужно будет сгенерировать свою собственную пару GPG ключей, состоящую из закрытого и открытого ключей. Закрытый ключ — это твой мастер-ключ. Он позволяет расшифровывать/зашифровывать файлы и создавать подписи, которые подписываются закрытым ключом.
Открытый ключ, которым вы пользуетесь, можно использовать для проверки того, что зашифрованный файл действительно пришёл от вас и был создан с помощью вашего ключа. Он также может быть использован другими для шифрования файлов.
Чтобы сгенерировать пару ключей, откройте терминал и введите следующее:
Это позволит начать генерацию ключевых пар. Вам будет предложено ввести свое полное имя и адрес электронной почты. Сделайте это и нажмите Enter.
Вас попросят либо подтвердить свой выбор, либо отредактировать его, либо отложить. Выберите свой вариант и нажмите Enter.
Прежде чем ключ будет сгенерирован, вам нужно будет предоставить безопасную парольную фразу. Введите его и нажмите Enter.
Для генерации ключа может потребоваться некоторое время. Как только это будет сделано, вы увидите подтверждение.
Создать SSH туннель
Туннели обычно создают для перенаправления траффика. SSH tunnel это то же самое что и SSH port forwarding.
Допустим вы хотите направить траффик со своего localhost (127.0.0.1) на
удалённый
хост 192.168.0.2.
На
удалённом
хосте у вас есть пользователь с именем andrei и вы знаете его пароль.
Сперва нужно определиться с портами на локальном хосте и на удалённом.
Предположим, вы выбрали 9119 для локального и
9200 для
удаленного
хостов.
То есть вы хотите, чтобы всё, что идёт на localhost:9119 было перенаправлено на
192.168.0.2:9200
Выполните
ssh -L 9119:192.168.0.2:9200 [email protected]
The authenticity of host ‘192.168.0.2 (192.168.0.2)’ can’t be established.
ECDA …
…
[email protected]’s password:
Last login: Sun Jan 31 13:23:00 2021
Проверьте ip выполнив
ip a
Если вам нужен туннель с поддержкой графического интерфейса
X Window System
используйте флаг -X
ssh -X -L 9119:192.168.0.2:9200 [email protected]
Подключение к серверу через SSH
Мы уже выяснили, что представляет собой SSH и команды для него. Теперь установим соединение с сервером.
Естественно, перед началом надо арендовать виртуальный хостинг или VDS у одного из доступных провайдеров. У Timeweb, к примеру.
Если у вас macOS или Linux
- Запускаем программу Terminal.
- Вводим в консоль команду со следующим синтаксисом ssh имя пользователя@адрес сервера. В моем случае это ssh [email protected].
- Указываем пароль суперпользователя (его отправляет хостинг-провайдер сразу после регистрации).
- Жмем Enter.
Все. Соединение установлено, можно переходить к работе непосредственно с сервером.
Если у вас Windows
- Скачиваем и устанавливаем программу PuTTY.
- В строку IP-адрес вводим адрес своего VDS или виртуального хостинга.
- Жмем на кнопку Open.
- Вводим пароль администратора, чтобы получить доступ к управлению.
Управление протоколом SSH
У команды для подключения к удаленному PC по SSH есть две важных опции:
- ssh -p номер порта имя пользователя@адрес сервера — заменяет стандартный 22-й порт на иной, что положительно сказывается на безопасности и устойчивости к автоматическим хакерским атакам от ботов.
- ssh-copy-id -i путь до файла с ключом имя пользователя@адрес сервера— копирует ключ на сервер, чтобы вход осуществлялся без логина и пароля, а именно через ключ.
Сторонние репозитории
Как уже сказал, по умолчанию к дистрибутиву подключены лишь официальные репозитории. Они хороши тем, что включенные в них программы протестированы с дистрибутивом. Репозитории могут быть разными для разных версий дистрибутива, чтобы обеспечить совместимость одного с другим и на уровне версий.
Из сказанного должно быть понятно, что подключать к системе сторонние репозитории следует осторожнее, убедившись, что там содержится программа или программы именно для вашего дистрибутива
Ещё, осторожность не помешает и в смысле безопасности. Старайтесь подключать только официальные репозитории разработчиков программ, те, которым вы доверяете
Подключать репозитории к системе можно разными способами. Обычно, как это делать, написано на официальных сайтах программ. Но, есть нюансы.
Пример подключения PPA-репозитория:
Выполнив такую команду мы получаем информацию об указанном репозитории и запрос — продолжить или отменить его подключение.
Синтаксис команды:
Если в процессе выполнения команды вернулась ошибка:
Значит в системе нет нужных компонентов для выполнения команды, их установка:
Теперь команда подключения PPA-репозитория выполнится без проблем.
Обычно репозиторий подключается и оставляется в системе. Сейчас он нужен для установки программы, а потом пригодится для её обновления. Но, бывает, что программа больше не нужна, вы её удалили, а следовательно можно удалить и подключение репозитория.
Пример удаления подключения того же самого PPA-репозитория:
Репозиторий не зарегистрированный на этом проекте можно подключить к системе лишь вручную.
Для этого требуется:
- прописать адрес репозитория;
- импортировать для него ключ.
Пример, как Яндекс предлагает добавить в систему репозиторий своего облачного Диска:
По сути, эта команда печатает часть строки (заключенную в кавычках) в указанный следом файл. Такого файла нет по умолчанию, поэтому он создаётся. Создаётся в системной директории, куда право писать имеет лишь администратор. Поэтому надо выполнять эту команду под root-ом.
вначале команды тут не поможет. Можно поступить так:
Т.е. перешли в режим root, выполнили команду, вышли.
Пример импорта ключа для репозитория того же Яндекс.Диска:
Т.е. вначале скачали файл ключа, потом импортировали его в систему.
Скаченный файл ключа после импорта можно удалить.
Конечно, после того, как любой новый репозиторий был подключен к системе, требуется выполнить обновление данных. А после уже можно приступать к установке оттуда программ. Команды обновления всех подключенных репозиториев и установки программ смотрите выше.
Установка .deb
Часто на официальных сайтах программ вместо инструкций по установке под Linux предлагают просто скачать установочный файл. Для Debian/Ubuntu — это файл с расширением . Установить его можно так:
Обычно на этом всё заканчивается. После завершения процесса установки программой можно пользоваться. Но, иногда бывает, что в процессе установки возникают ошибки такого типа:
Т.е.программа для своей работы требует дополнительный пакет, которого не оказалось в системе. Обычно зависимости программ от дополнительно необходимых пакетов разруливаются автоматически, — когда чего-то нет, то оно скачивается и устанавливается. Но в отдельных случаях это сделать не удаётся, и тогда возникает подобная ошибка.
Решением может быть команда:
Она автоматически пытается исправлять установленные программы, в частности пытается решить проблемы, возникшие при их установке. Если это сделать не получается, то неработающие программы она предлагает удалить.
Ручное решение проблемы — это самостоятельная установка требуемых для программы пакетов. Скорее всего потребуется подключать дополнительные репозитории, т.к. в подключенных системе автоматически не удалось найти требуемое. Совсем в крайнем случае — это скачивание и установка вручную откуда-то нужных дополнительно пакетов. Стоит воспользоваться поиском по интернету, скорее всего вы не первый, у кого возникла эта проблема. Всегда есть шансы найти готовое решение.
Установка, обновление и удаление пакетов
В Linux почти все программное обеспечение имеет открытый исходный код, поэтому в большинстве своем распространяется через открытые репозитории. Для его загрузки и установки используются менеджеры пакетов. В каждом семействе дистрибутивов он свой.
apt (в Debian, Ubuntu и им подобных)
sudo apt-get install название пакета — устанавливает пакет из подключенных репозиториев. Ищется по названию и версии.
sudo apt remove название пакета — удаляет из системы установленный пакет.
sudo apt purge название пакета — удаляет установленный пакет и вместе с ним уничтожает все зависимые данные. От приложения не остается никаких следов. Такой вариант подходит, когда нужна полная переустановка пакета «с нуля».
sudo apt autoremove — автоматически выполняет уборку среди установленных пакетов, убирая ненужные остатки кода.
sudo apt-add-repository адрес репозитория — подключает к системе дополнительный репозиторий с пакетами, не вошедшими в базу репозиториев по умолчанию. Требуется для установки некоторых редких open-source-приложений.
sudo apt-get update — обновляет информацию о пакетах, имеющихся в системе и тех, что хранятся в подключенных репозиториях.
sudo apt-upgrade — обновляет версии установленных пакетов до самых свежих, доступных в подключенных репозиториях.
dnf (в Red Hat Linux, CentOS, Fedora)
sudo dnf install название пакета — устанавливает программу на выбор.
sudo dnf config-manager –add-repo адрес репозитория — подключает к системе дополнительный репозиторий.
sudo dnf upgrade — обновляет версии установленных пакетов до самых свежих, доступных в подключенных репозиториях.
sudo dnf remove название пакета — стирает с жесткого диска имеющийся в системе пакет.
sudo dnf autoremove — разыскивает мусор среди имеющихся пакетов и в автоматическом режиме вычищает его.
pacman (в Arch Linux и Manjaro)
sudo pacman -S название пакета — устанавливает пакет на выбор.
sudo yaourt -S название пакета — устанавливает пакет на выбор из репозитория AUR.
sudo pacman -Sy — обновляет информацию о пакетах, имеющихся в системе и тех, что хранятся в подключенных репозиториях.
sudo pacman -Syu — обновляет версии установленных пакетов до самых свежих, доступных в подключенных репозиториях.
sudo pacman -R название пакета — стирает с жесткого диска имеющийся в системе пакет.
sudo pacman -Rs название пакета — стирает не только установленное приложение, но и все зависимые от него элементы.
Работа с текстом
Парочка полезных команд для взаимодействия с любыми видами текстов на сервере через SSH.
cat — показывает текст из выбранного файла. В качестве аргумента передаем этой утилите текстовый документ, и cat выведет в консоль его содержимое. Синтаксис:
cat путь до файла, содержимое которого надо осмотреть
Чтобы взглянуть на содержимое файла timeweb.txt, который лежит на рабочем столе, напишем в терминал:
cat ~/Desktop/timeweb.txt
head — это «голова». Она работает по схожему с cat принципу. Отображает текст из файлов, где он имеется. Разница заключается в количестве отображаемого контента. Пользователь сам выбирает, сколько строчек текста вывести на экран, поставив аргумент -n. Команда head -n 4 ~/Documents/timeweb.txt покажет только первые четыре строки документа timeweb.txt из папки Documents.
tail — это «хвост». Работает, как head, но с противоположной стороны. Команда tail -n 8 ~/Documents/timeweb.txt покажет только первые восемь строк документа timeweb.txt из папки Documents.
touch — одна из множества команд для SSH, которую используют не по назначению. У нее весьма специфичная задача по изменению времени последнего открытия отдельных элементов файловой системы. Но ее быстро перепрофилировали чуть ли не в стандартный метод создания файлов. touch ~/Desktop/timeweb.html создаст HTML-документ с именем Timeweb на рабочем столе.
vi — используя с дополнительными аргументами, можно создавать новые текстовые файлы. Например vi /путь до директории, где нужно создать новый текстовый файл/. Или же редактировать уже существующие. Чтобы изменить содержимое какого-нибудь файла в домашней папке, надо ввести: vi /home/имя учетной записи/kakoy-to-tekstoviy-file.txt. Альтернативой vi может служить nano. Более современный и лояльный к новичкам редактор. К сожалению, может отсутствовать в системе по умолчанию и требовать установки.
wc путь до файла — показывает количество символов, количество строк и слов в выбранном текстовом документе.
grep — ищет конкретный кусочек текста в большом документе или распечатке из консоли. Чтобы дать понять, как он работает, покажу пример. Буду искать слово «немного» в файле timeweb.txt, лежащем у меня на рабочем столе. Сделаю это одной командой cat ~/Desktop/timeweb.txt | grep немного. Перед grep я использовал cat, чтобы вывести содержимое документа в консоль, а потом отфильтровать.
diff — сравнивает два файла и наглядно показывает строки, в которых обнаружились различия. Синтаксис: diff название первого файла название второго файла. Это может выглядеть так:
diff timeweb-1.html timeweb-2.html