[Перевод] Книга: «Linux. Карманный справочник. 4-е изд.»

image Привет, Хаброжители!

Когда речь заходит о Linux, разработчики и системные администраторы сразу представляют «толстые» руководства, которые предлагают глубокое погружение в каждую деталь операционной системы. Но иногда вам просто хочется иметь под рукой небольшой справочник, который поможет быстро и эффективно справляться с повседневными задачами. Именно таково предназначение книги Дэниела Джей Барретта «Linux. Карманный справочник. 4-е изд.»

Эта книга — не учебное пособие со множеством страниц, заполненных теорией и деталями. Это краткое руководство, сосредоточенное на важных и полезных аспектах Linux, которые помогут вам работать продуктивно.

Что нового в четвёртом издании?

Новые команды!
Барретт добавил 50 новых команд!
Например git и svn для управления версиями, split и column для работы с текстом, pandoc и ffmpeg для конвертирования файлов, snap и flatpak для управления пакетами, mdadm, lvcreate и zfs для управления хранилищами, gpg для шифрования.

Актуализация древних команд
В предыдущем издании некоторые команды устарели или перестали работать.

Чёткая организация
Книга разделена на главы, посвященные концепциям, файлам, основам системного администрирования, работе в Сети и другим темам. Материал в книге упорядочен по функциям.

Хотя основное внимание уделяется командной строке, Барретт вскользь упоминает графические среды, такие как GNOME и KDE Plasma. Однако для полной информации о графических средах может потребоваться отдельное краткое руководство.

Эта книга станет отличным помощником как для начинающих, так и для опытных пользователей Linux, которые хотят быстро получить доступ к полезной информации и освоить основную функциональность системы. Она нацелена на продуктивность и эффективность, гарантируя, что вы сможете справляться с повседневными задачами без лишних усилий.

Так, когда стало известно, что можно ожидать от книги, давайте рассмотрим 5 причин начать использовать командную строку Linux.

5 причин начать использовать командную строку Linux


image


Вы можете использовать Linux, не осваивая командную строку и не копаясь в окнах терминала. Но в этом случае вы упустите быстроту, мощность и низкоуровневый тонкий контроль командной строки.

К чему вся эта шумиха?

Кто-то клянется ею, кто-то ругается на нее. Мы говорим о командной строке, этом почтенном человеко-компьютерном интерфейсе, который существует уже более пятидесяти лет и все еще не собирается никуда уходить. Даже в современном мире шикарных графических интерфейсов и удобных сенсорных экранов командной строке найдется место.

Когда в конце 1960-х — начале 1970-х годов разрабатывалась Unix, не существовало ни графического интерфейса пользователя (GUI), ни среды рабочего стола (DE). Единственной игрой в городе был ввод текста. Если вы хотели взаимодействовать с компьютером, то использовали клавиатуру и не задумывались об этом.

Это имело определенные последствия для разработки. Поскольку вы были ограничены набором текста, каждый аспект конфигурации, работы и администрирования компьютера должен был управляться набором команд. Так было в Unix полвека назад, так есть и в Linux сегодня. Из командной строки можно сделать все. Нет ничего недоступного для вас.

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

Откройте окно терминала, и вы получите полный доступ к командной строке, а значит, ко всем командам Linux и всем настройкам, управляющим вашей установкой Linux.

1. Совершенствование навыков системного администрирования

Если вы собираетесь администрировать Linux-системы даже для друзей, семьи и коллег, вы столкнетесь со множеством различных дистрибутивов, а также с различными DE.

Использование командной строки позволяет вам делать то, что вы не можете сделать через графический интерфейс приложения или через настройки самого DE. DE и графические приложения — это уровни абстракции между вами и Linux. Могут существовать инструменты, которые помогут вам администрировать вашу установку Linux, но они не будут обладать той точностью, которой обладает командная строка.

Команды Linux могут иметь десятки опций. Чем сложнее команда, тем меньше шансов, что все эти опции будут воспроизведены в GUI-инструменте. К тому же у каждого DE будут свои приложения и свой способ выполнения задач. Вместо того, чтобы изучать графический интерфейс для всех DE, проще открыть окно терминала и набрать универсальные команды Linux, которые работают везде. Если есть инструмент командной строки, который не входит в комплект поставки конкретного дистрибутива, вы можете быстро установить его.

Иногда выбор делается за вас. Умение работать в командной строке — единственный способ администрировать headless-сервер, на котором не установлен DE, или удаленную машину, когда у вас есть только SSH-доступ к ней.

2. Повышение эффективности

Команды Linux могут иметь множество опций. Именно это делает их точными. Выберите опции, которые делают именно то, что вам нужно, и именно это и будет сделано. Команды Linux предназначены для совместной работы. Они могут генерировать вывод, который принимается другими командами.
Подобное объединение команд называется конвейеризацией. Эта команда возвращает список расширений файлов в текущем каталоге и количество каждого типа. В Linux нет команды для этого, но вы можете легко собрать ее, используя существующие команды Linux.

image


ls выводит список файлов. Имена файлов поступают в команду rev, которая меняет местами символы в каждом имени. Команда cut обрезает каждое имя после первой найденной точки, если таковая имеется. Вторая команда rev возвращает строку в исходный порядок. В результате мы получаем список расширений. Список сортируется, и uniq подсчитывает количество вхождений каждого уникального расширения файла. Затем список снова сортируется в порядке убывания.

image


Это здорово, но нужно помнить о многом. Особенно это касается команд, у которых множество вариантов.

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

Если вам нужна постоянная запись вывода, вы можете перенаправить вывод не в окно терминала, а в файл. Добавив в конец команды »> file-count.txt», вы создадите файл с именем file-count.txt, содержащий текст, который был бы отправлен в окно терминала.

image


Объединение команд и разделение последовательностей команд значительно повышает эффективность работы: вам нужно будет меньше запоминать и меньше набирать.

3. Автоматизация задач

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

Нет никаких ограничений на то, чего можно добиться с помощью скриптов. Любая команда, которую вы можете использовать в командной строке, может быть использована в сценарии наряду с такими конструкциями языка оболочки, как проверка и сравнение, циклы и операторы case.

Утомительные, повторяющиеся задачи можно выполнить, запустив вместо этого скрипт. Если сценарий должен выполняться в определенное время или с определенной периодичностью, можете настроить его автоматический запуск с помощью таймера systemd.

4. Устранение неполадок

Устранение неполадок на вашем компьютере невероятно хорошо организовано в командной строке Linux. Это означает, что вы избегаете запутанности графического интерфейса и работаете непосредственно с системой.

Linux регистрирует всевозможные события и процессы, включая процесс загрузки. Доступ к событиям журнала можно получить через systemd journalctl.

Вы можете изучить аппаратные проблемы с помощью таких инструментов, как lshw, lsblk, и lscpu, а также проверить проблемы файловой системы с помощью fsck и проблемы загрузки с помощью GRUB.

image


image


Проблемы с сетью и DNS можно исследовать с помощью ip, dig, host и nslookup.

Проблемы с производительностью можно определить с помощью top или htop, iostat, vmstat и netstat.

5. Доступ к удаленным системам

Вы можете входить в удаленные компьютеры Linux с помощью SSH-соединений, открывая окно терминала на удаленной машине прямо на вашей собственной локальной машине. С помощью SSH-ключей можете устанавливать безопасные соединения без пароля.

Если вам нужно только передать файлы, вы можете использовать rsync для синхронизации каталогов или целых деревьев каталогов между вашим и удаленным компьютером. Конечно, вы можете обернуть эти команды rsync в псевдонимы, функции оболочки или скрипты и запускать их автоматически с помощью таймеров systemd.

________________________________________

Обучение стоит того. Погрузитесь в процесс, но не торопитесь. Вам не нужно изучать все сразу, но каждый кусочек информации, который вы получаете, становится еще одним активом в вашем наборе инструментов Linux.

Никто никогда не становился хорошим механиком, не подняв капот.

Об авторе

imageДэниел Джей Барретт — преподаватель, пишет о Linux и на смежные темы уже более 30 лет. Среди его многочисленных книг — Efficient Linux at the Command Line, Linux Pocket Guide, SSH, The Secure Shell: The Definitive Guide, Linux Security Cookbook, Macintosh Terminal Pocket Guide и MediaWiki. У Дэна большой и разнообразный опыт: он был инженером-программистом, играл в рок-группе, работал системным администратором, преподавал в университете, трудился веб-дизайнером и шутил на публику. Сейчас Дэниел работает в компании Google. Посетите сайт DanielJBarrett.com, чтобы узнать о нем побольше.

Более подробно с книгой можно ознакомиться на сайте издательства:

» Оглавление
» Отрывок

По факту оплаты бумажной версии книги на e-mail высылается электронная книга.
Для Хаброжителей скидка 25% по купону — Linux

© Habrahabr.ru