Основные команды терминала ядра Linux
Управление системами и ее компонентами через терминал происходит посредствам указания и отправлением на исполнение специальных команд. Многие команды терминала Linux работают даже если в системе отсутствуют дополнительные компоненты, тогда как другие могут исполняться только при наличии определенного софта. Основных команд терминала Linux существует небольшое (относительно) количество. Их можно подразделить на несколько групп. Среди их команды обеспечивающие: — управление файловой системой; — изменение конфигурации оборудования; — управление правами доступа; — работу и отображение справки. Команды терминала Linux, которые связаны с работой с файловой системой, следующие:
- cd – переход в указанный каталог (указывается после команды),
- ls – просмотр содержание директории, mv – перенос файла (после команды указывается имя файла или полный путь до него, потом пробел и место назначения);
- cp – копирование файла (принцип работы такой же, как и при mv),
- rm – удаление файла (указывается путь),
- rmdir – удаление каталога, в котором отсутствуют файлы,
- mkdir (создание директории).
Чтобы управлять доступом в Линукс, нужно использовать следующие команды:
- chmod – задает уровень доступа,
- chown – изменяет владельца элемента ФС,
- chgrp – изменение группы владельца файла.
Команды терминала Linux, которые используются для конфигурации оборудования очень разнообразны. Их существует огромное количество. Например, команда ifup с параметром eth0 запускает интерфейс подключение к сети через Ethernet, а команда mount (с указанием пути) – монтирует накопитель (например флешку). Чтобы найти нужную команду и ознакомиться с подробной информацией о ней, необходимо использовать команду apropos. Для получения сведений о конкретной команде (например, cp) необходимо в терминале прописать man, а затем имя интересующей команды и нажать Enter.
Циклы
В Bash есть четыре типа циклов: for, while, until и select.
FOR
# 1 for arg in elem1 elem2 ... elemN do # statements done # 2 for i in {1..5}; do echo $i; done # 3 for (( i = ; i < 10; i++ )); do echo $i done # 4 for FILE in $HOME/*.bash; do mv "$FILE" "${HOME}/scripts" chmod +x "${HOME}/scripts/${FILE}" done
WHILE — Цикл while проверяет условие и перебирает последовательность команд, пока это условие истинно. Условие — это не что иное, как первичное значение, используемое в условиях if..then.
while ` condition ` do # statements done # Squares of numbers from 0 through 9 x=0 while ]; do # value of x is less than 10 echo $(( x * x )) x=$(( x + 1 )) # increase x done
UNTIL — Цикл until — полная противоположность цикла while. Какое-то время он проверяет условие теста, но продолжает цикл, пока это условие ложно
until ` condition `; do #statements done
SELECT — Цикл выбора помогает нам организовать пользовательское меню. Он имеет почти тот же синтаксис, что и цикл for
select answer in elem1 elem2 ... elemN do # statements done
В этом примере пользователю задается вопрос, какой диспетчер пакетов он хотел бы использовать. Затем он спросит, какой пакет мы хотим установить, и, наконец, приступит к его установке.
PS3="Choose the package manager: " select ITEM in bower npm gem pip do echo -n "Enter the package name: " && read PACKAGE case $ITEM in bower) bower install $PACKAGE ;; npm) npm install $PACKAGE ;; gem) gem install $PACKAGE ;; pip) pip install $PACKAGE ;; esac break # avoid infinite loop done
LOOP CONTROL — Бывают ситуации, когда нам нужно остановить цикл до его нормального завершения или перешагнуть через итерацию. В этих случаях мы можем использовать встроенные в оболочку операторы break и continue.
Оператор используется для выхода из текущего цикла до его завершения
Оператор проходит одну итерацию
for (( i = ; i < 10; i++ )); do if ]; then continue; fi echo $i done
Сеть
ifconfig — показать информацию о сетиiwconfig — показать информацию о беспроводной сетиsudo iwlist scan — поиск беспроводных сетейsudo /etc/init.d/networking restart — перезапустить сеть/etc/network/interfaces — файл для ручной настройки сетиifup interface — включить интерфейсifdown interface — отключить интерфейс
ping host — пропинговать host и вывести результат
whois domain — получить информацию whois для domainwget file — скачать fileifconfig eth0″ — показать конфигурацию сетевого интерфейса eth0ifup eth0″ — активировать интерфейс eth0ifdown eth0″ — деактивировать интерфейс eth0ifconfig eth0 192.168.1.1 netmask 255.255.255.0″ — выставить интерфейсу eth0 ip-адрес и маску подсетиifconfig eth0 promisc» — перевести интерфейс eth0 в promiscuous-режим для «отлова» пакетов (sniffing)ifconfig eth0 -promisc» — отключить promiscuous-режим на интерфейсе eth0dhclient eth0″ — активировать интерфейс eth0 в dhcp-режиме.route -n» — вывести локальную таблицу маршрутизацииroute add -net 0/0 gw IP_Gateway» — задать ip-адрес шлюза по умолчанию (default gateway)route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1″ — добавить статический маршрут в сеть 192.168.0.0/16 через шлюз с ip-адресом 192.168.1.1route del 0/0 gw IP_gateway» — удалить ip-адрес шлюза по умолчанию (default gateway)echo «1» > /proc/sys/net/ipv4/ip_forward» — разрешить пересылку пакетов (forwarding)hostname» — отобразить имя компьютераip link show» — отобразить состояние всех интерфейсовmii-tool eth0″ — отобразить статус и тип соединения для интерфейса eth0ethtool eth0″ — отображает статистику интерфеса eth0 с выводом такой информации, как поддерживаемые и текущие режимы соединенияnetstat -tupn» — отображает все установленные сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID’ы и имена процессов, обеспечивающих эти соединенияnetstat -tupln» — отображает все сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID’ы и имена процессов, слушающих портыtcpdump tcp port 80″ — отобразить весь трафик на TCP-порт 80 (обычно — HTTP)iwlist scan» — просканировать эфир на предмет, доступности беспроводных точек доступаiwconfig eth1″ — показать конфигурацию беспроводного сетевого интерфейса eth1cat /proc/net/dev — показать сетевые интерфейсы и статистику по нимdig domain – получить DNS информацию domain
Резервное копирование данных
Команды терминала Ubuntu часто используются, чтобы создать резервные копии данных. Если информация будет повреждена или утеряна, с их помощью возможно восстановить данные из бэкапов. Они применимы как для информации на внутренних носителях ПК, так и на внешних дисках.
Создать полную копию «/home» в файл внутри определённой папки:
Восстановить из резервной копии данные по адресу (директория и файл заменяемы):
Синхронизировать две папки (папки в конце):
Выполнить синхронизацию через SSH:
А вот так можно создать копию локального диска в файле на удалённом компьютере (пример синтаксиса):
Так можно выполнить поиск в папке всех файлов с расширением «.txt» и скопировать их в директорию под другим адресом:
Дистрибутивы Linux для пользователей Windows и MacOS
Попытка перехода с проприетарной ОС на операционную систему с открытым исходным кодом может быть нелёгким опытом, особенно для пользователя со слабой технической подготовкой. Чтобы облегчить эту задачу и были созданы дистрибутивы Linux похожие на Windows или MacOS. Они снабжены удобным пользовательским интерфейсом, а также имеют облегченный механизм установки и настройки приложений.
Xubuntu
Основа: Debian, Ubuntu.Архитектура: i686, x86_64.Преимущества:
- лёгкость установки и настойки;
- элегантное окружение рабочего стола;
- легковесность;
- высокая быстрота и стабильность.
Это разновидность популярнейшего дистрибутива Ubuntu ориентирована на простоту, адаптируемость и доступность для массового пользователя. По умолчанию Xubuntu поставляется с облегченной средой рабочего стола Xfce, которую также легко настроить и реорганизовать, как рабочий стол в Windows.
Xubuntu ориентирован на оптимальный баланс между лёгким весом и производительностью. В дистрибутиве «из коробки» есть достаточно приложений для решения большинства повседневных задач, без установки дополнительного ПО. Поэтому Xubuntu одинаково хорошо подходит для современных машин, и для слабых ноутбуков или компьютеров.
Помимо полной версии, существует и максимально облегченная разновидность ОС под названием Xubuntu Core. Здесь нет предустановленных приложений, а оставлен только базовый интерфейс и десктоп Xfce.
elementary OS (eOS)
Основа Debian, Ubuntu.Архитектура: x86_64.Преимущества:
- лёгкая установка (графическая утилита);
- легковестность и нетребовательность к ресурсам;
- высокая скорость работы;
- полная совместимость с репозиториями и пакетами Ubuntu.
Быстрый и простой в использовании десктопный дистрибутив на основе Ubuntu LTS популярен среди пользователей, переходящих на Linux с проприетарных платформ. Пользовательский интерфейс elementary OS визуально во многом напоминает MS Windows и macOS, что значительно облегчает работу с ним для новичков.
Каждая сборка содержит минимально необходимый набор встроенных приложений, а дополнительные можно легко установить через встроенный менеджер пакетов AppCenter. Базовый репозиторий дистрибутива включает в себя последние версии Gtk +, Openssh, Openssl, Python, Samba, Vim, Xorg-server, Perl и других полезных инструментов.
Zorin OS
Основа Debian, Ubuntu (LTS).Архитектура: x86_64.Преимущества:
- адаптивный рабочий стол;
- возможность запускать программы для Windows и macOS;
- легковесность;
- высокая скорость работы.
Это дистрибутив на основе Ubuntu был специально разработан для новичков в Linux. Его графический интерфейс и набор встроенных программ очень напоминают операционную систему Windows.
Рабочий стол Zorin можно настроить так, чтобы он имитировал внешний вид ряда других сред рабочего стола и операционных систем, таких как GNOME 2, GNOME 3, macOS и Windows 7. Zorin OS поставляется с приложением Zorin Appearance, которое позволяет пользователям запускать многие программы Windows и macOS.
Параметры grep
Опция -r
—recursive
Еще больше увеличит зону поисков опция -r, которая заставит команду grep рекурсивно обследовать все дерево указанной директории, то есть субдиректории, субдиректории субдиректорий, и так далее вплоть до файлов. Например:
grep -r menu /boot /boot/grub/grub.txt:Highlight the menu entry you want to edit and press 'e', then
/boot/grub/grub.txt:Press the key to return to the GRUB menu.
/boot/grub/menu.lst:# GRUB configuration file ‘/boot/grub/menu.lst’.
/boot/grub/menu.lst:gfxmenu (hd0,3)/boot/message
Опция -i
—ignore-case
Приказывает команде игнорировать регистр символов, таким образом, поиск будет производиться как среди заглавных, так и среди строчных букв.
Опция -c
—count
Эта опция не выводит строки, а подсчитывает количество строк, в которых обнаружен ОБРАЗЕЦ. Например:
grep -c root /etc/group 8
То есть в восьми строках файла /etc/group встречается сочетание символов root.
—line-number
При использовании этой опции вывод команды grep будет указывать номера строк, содержащих ОБРАЗЕЦ:
Опция -v
—invert-match
Выполняет работу, обратную обычной — выводит строки, в которых ОБРАЗЕЦ не встречается:
grep -v print /etc/printcap # # # for you (at least initially), such as apsfilter # (/usr/share/apsfilter/SETUP, used in conjunction with the # LPRng lpd daemon), or with the web interface provided by the # (if you use CUPS).
Опция -w
—word-regexp
Заставит команду grep искать только строки, содержащие все слово или фразу, составляющую ОБРАЗЕЦ. Например:
grep -w "длинная ко" example/*
Не дает вывода, то есть не находит строк, содержащих выражение «длинная ко». А вот команда:
grep -w "длинная коса" example/* example/alice.txt:длинная коса!
находит точное соответствие в файле alice.txt.
Опция -x
—line-regexp
Еще более строгая. Она отберет только те строки исследуемого файла или файлов, которые полностью совпадают с ОБРАЗЦОМ.
grep -x "1234" example/* example/123.txt:1234
Внимание: Мне попадались (на собственном компьютере) версии grep (например, GNU 2.5), в которых опция -x работала неадекватно. В то же время, другие версии (GNU 2.5.1) работали прекрасно
Если что-то не ладится с этой опцией, попробуйте другую версию, или обновите свою.
Опция -l
—files-with-matches
Команда grep с этой опцией не возвращает строки, содержащие ОБРАЗЕЦ, но сообщает лишь имена файлов, в которых данный образец найден:
grep -l 'Алиса' example/* example/alice.txt
Замечу, что сканирование каждого из заданных файлов продолжается только до первого совпадения с ОБРАЗЦОМ.
Опция -L
—files-without-match
Наоборот, сообщает имена тех файлов, где не встретился ОБРАЗЕЦ:
grep -L 'Алиса' example/* example/123.txt example/ast.txt
Как мы имели случай заметить, команда grep, в поисках соответствия ОБРАЗЦУ, просматривает только содержимое файлов, но не их имена. А так часто нужно найти файл по его имени или другим параметрам, например времени модификации! Тут нам придет на помощь простейший программный канал (pipe). При помощи знака программного канала — вертикальной черты (|) мы можем направить вывод команды ls, то есть список файлов в текущей директории, на ввод команды grep, не забыв указать, что мы, собственно, ищем (ОБРАЗЕЦ). Например:
ls | grep grep grep/ grep-ru.txt
Находясь в директории Desktop, мы «попросили» найти на Рабочем столе все файлы, в названии которых есть выражение «grep». И нашли одну директорию grep/ и текстовой файл grep-ru.txt, который я в данный момент и пишу.
Если мы хотим искать по другим параметрам файла, а не по его имени, то следует применить команду ls -l, которая выводит файлы со всеми параметрами:
ls -l | grep 2008-12-30 -rw-r--r-- 1 ya users 27 2008-12-30 08:06 123.txt drwxr-xr-x 2 ya users 4096 2008-12-30 08:49 example/ -rw-r--r-- 1 ya users 11931 2008-12-30 14:59 grep-ru.txt
И вот мы получили список всех файлов, модифицированных 30 декабря 2008 года.
Команда grep незаменима при просмотре логов и конфигурационных файлов. Классически примером использования команды grep стал программный канал с командой dmesg. Команда dmesg выводит те самые сообщения ядра, которые мы не успеваем прочесть во время загрузки компьютера. Допустим, мы подключили через USB порт новый принтер, и теперь хотим узнать, как ядро «окрестило» его. Дадим такую команду:
dmesg | grep -i usb
Опция -i необходима, так как usb часто пишется заглавными буквами. Проделайте этот пример самостоятельно — у него длинный вывод, который не укладывается в рамки данной статьи.
Удаление текста и исправление опечаток
Исправлять опечатки или удалять ненужные символы можно такими комбинациями:
- Ctrl+D (Delete) — удаляет один символ после курсора.
- Alt+D — удаление всех символов после курсора в текущей строке.
- Ctrl+H (Backspace) — удаление символа перед курсором.
- Alt+Backspace — удаление слова перед курсором.
- Alt+T — замена текущего слова на предыдущее.
- Ctrl+T — поменять местами два расположенных рядом последних символа. Такая комбинация клавиш пригодится при необходимости быстро исправить опечатку, когда символы были написаны неправильно.
- Ctrl+_ — отменяет последний ввод. Использовать можно не один раз, пока не будет получен требуемый результат.
Управление доступом к файлам
chmod
— изменение битов режима доступа к файлу.
chmod
chmod -R 711 /usr/local/scripts
— право выполнения на все файлы в каталоге, для группы и всех остальных.
chmod g-w passwords.txt
— отнять у группы право записи.
chmod og+r menu.txt guests.txt
— добавить группе и всем остальным пользователям право чтения.
сhmod g-x, o= script.sh
— отнять право выполнения у группы, всем остальным запретить доступ к файлу.
сhmod g=u userlist.txt
— группе выдаются такие же права, что и у владельца файла.
chmod —reference=file1 file2
— скопировать права file1 для file2
chown
— изменение владельца файлов и каталогов.
chown
chown jane report.doc stats.txt
— пользователь jane становится владельцем файлов report.doc и stats.txt.
chown jane: report.doc
— пользователь jane становится владельцем файла report.doc. Также группа владельцев меняется на jane.
chown :accounters report.doc
— смена группы владельцев файла report.doc.
chown john:accounters report.doc
— пользователь john становится владельцем файла report.doc. У файла также меняется группа владельцев, к которой он принадлежит на accounters.
chown -R jane:testers /var/www/example.ru/fortest
— рекурсивная смена пользователя и группы для всех файлов в каталоге.
chown 1003:1004 /var/www/example.ru
— установка владельца c UID(UserID)=1003 и группы c GID(GroupID)=1004.
chown -Rc —reference ~/music ~/pictures
— рекурсивное копирование владельца и группы у ~/music для всех файлов в каталоге ~/pictures
chgrp
— смена группы пользователей для файла.
chgrp
chgrp designers logo.png
— установка группы пользователей designers для файла logo.png.
chgrp -R accounters ~/reports
— установка группы пользователей accounters для всех файлов в каталоге ~/reports.
getfacl
— вывод списка контроля доступа (ACL) для файла.
getfacl
getfacl file.txt
getfacl -t file.txt
— вывод параметров доступа в табличном виде.
getfack -Rt ~/reports
— вывод параметров доступа для всех файлов в каталоге.
sudo
— запуск команды от имени другого пользователя (root по умолчанию)
sudo
sudo -u janedoe mkdir ~janedoe/reports
— выполнить команду от имени пользователя janedoe.
sudo mkdir /var/www
— выполнить команду от имени пользователя root.
umask
— изменение маски прав доступа по умолчанию при создании нового файла.
umask
umask
— показать текущую маску по умолчанию.
umask u+w,g-w,o=
— добавить право записи для владельца — , отнять право записи для группы — , для остальных пользователей запретить доступ к файлу .
umask a=rw
— установить право записи и чтения для всех пользователей.
umask 0000
— полный доступ для всех пользователей. (так не надо делать :-))
17 команд терминала, о которых должен знать каждый пользователь Ubuntu:
17 команд для новичков в Ubuntu#1. ls: перечислить содержание директории
Если вы хотите увидеть скрытые директории и файлы (в том числе начинающиеся с точки), флаг -a.
Посмотрите руководство для большей информации (man ls).
#2. cd: изменить директорию
Запомните,
. означает текущую директорию
.. означает «родительскую» директорию
~ означает домашнюю директорию пользователя
#3. pwd: вывести адрес текущей рабочей директории
#4. mkdir: создать папку
#5. rm: удалить файл/директорию
Замечание: эта команда удаляет папку (директорию) только если она пустая, если вы не определите флаг -f для полного удаления. Но будьте осторожны с аргументами -r и -f. (-rf очень опасен)
#6. sudo: выполнить как суперпользователь, для получения его привилегий
Например,
Затем введите пароль от вашего аккаунта, и вы сможете выполнять какие-либо административные задачи, как root. Так что, если вы получаете какие-либо ошибки доступа при использовании какой-нибудь команды, поставьте перед ней sudo — это может помочь.
#7. mv: переименовать или переместить файл/директорию
команда выше переместит файл file1 из текущей директории в назначенную папку
Это переименует файл new_logo.jpg.
#8. cat: Просмотреть содержание файла
#9. man: подробное руководство по утилитам/командам/программам
Например, если вы хотите узнать больше о команде rm, то выполните команду:
#10. cp: скопировать файлы/папки
Команда выше скопирует файл movie_name.mp4 в определённую директорию
#11. wget: загружайте файлы
GNU Wget полезен в загрузке файлов из интернета через командную строку:
#12. gksudo: выполняйте графические приложения с привилегиями администратора root
Команда выше откроет nautilus с root-привилегимями. Это как sudo, но в графическом режиме.
#13. shutdown: чтобы выключить ваш компьютер из терминала
где время может быть 0, если вы хотите выключить компьютер сейчас, или вы можете определить точное время — 10:30.
#14. restart: перезагрузка компьютера
Для управления пакетами в Ubuntu есть особые команды. Они требуют root-привилегий, так что просто добавьте sudo перед ними (команда спросит ваш пароль и начнёт работать!). Кстати, если хотите установить microsoft excel office, советую пройти по вышеуказанной ссылке.
#15. apt-get: консольная утилита для управления пакетами
Есть различные опции, такие как:
install – чтобы установить пакет
Например, чтобы установить PyRoom (текстовый редактор без отвлекающих элементов)
remove – чтобы удалить пакет
update – чтобы обновить список пакетов и их версии
upgrade — чтобы обновить все пакеты в вашей системе
#16. add-apt-repository – чтобы добавить PPA-репозиторий
Например, чтобы добавить PPA-репозиторий для программы Eidete (программа для скринкастинга)
После добавления PPA требуется команда apt-get update
#17. apt-cache: чтобы просмотреть детали пакета из кеша
search: поиск определённых пакетов через apt-cache
Например:
Горячие клавиши
Копирование команд
Часто вам придётся следовать каким-либо инструкциям, которые требуют копирования команд в терминал. Наверное, вы удивитесь, когда обнаружите, что текст, скопированный вами с интернет-страницы при помощи комбинации клавиш Ctrl+C , не вставляется в терминал при нажатии Ctrl+V . И что, неужели придётся перепечатывать все эти команды и имена файлов вручную? Нет, расслабьтесь! Вставить текст в терминал можно тремя способами: Ctrl+Shift+V , нажатием средней кнопки мыши или правой кнопки мыши и выбором строки «Вставить». Экономия набора
или Ctrl + P | прокрутка недавно использованных команд вверх |
↓ или Ctrl + N | прокрутка недавно использованных команд вниз |
Enter | выполнение выбранной команды |
Tab | крайне удобная возможность — автозаподстановка команд и имён файлов. Если с выбранных символов начинается только одна команда, подставится именно она, а если их несколько,то по двойному нажатию tab выведется список всех возможных вариантов. |
Ctrl + R | поиск по командам, которые вы вводили раньше. Если вам нужно повторно выполнить очень длинную и сложную команду, вы можете ввести только её часть, а эта комбинация клавиш поможет найти команду целиком. |
History |
Команда history выводит список всех команд, которые вы вводили. Каждой команде будет присвоен номер. Чтобы выполнить команду под номером x, просто введите »!x» . Если у вас получилась слишком длинная история, можно попробовать «history I less» , это сделает список прокручиваемым. |
Изменение текста
Здесь мышь не работает. Используйте стрелки влево/вправо, чтобы перемещаться по строке. Ввод с клавиатуры будет добавлять символы. Существующий текст удаляться не будет.
Другие интересные и полезные команды
cal
— просмотр календаря.
cal
cal -3
— вывести предыдущий, текущий и следующий месяцы.
cal -m
— первый день в неделе — понедельник.
date
— вывод текущей даты.
date
date
— вывод даты и времени.
date -s «06/19/1994 11:30:00»
— установить время на 19 июня 1994 года.
date «+Time: %H:%M %d.%m.%y»
— смена формата отображения даты и времени.
expr
— простой калькулятор (некоторые символы необходимо экранировать). Пробелы между знаками обязательны.
expr
expr 23 % 3
=> 2
expr 3 \> 2
=> 1
expr \( 20 + 2 \) \* 3 \/ 2
=> 33
factor
— раскладывает число на множители.
factor
factor 22
=> 2 11
look
— отобразить слова, начинающиеся с заданной строки. По умолчанию используется словарь /usr/share/dict/words.
look
look beaut
— вывод всех слов из словаря, которые начинаются со слова ‘beaut’.
man ascii
— шпаргалка кодовой таблица ASCII-символов.
yes строка
— бесконечный вывод строки в терминале.
wall строка
— выводит сообщение в терминалах всех залогиненных пользователей.
Секреты ускоряющие работу в терминале Linux
Авто дополнение по клавише Tab
Tab — это очень полезный трюк. В то время когда Вы вводите какую-либо команду, имя файла, или некоторые другие типы аргументов — можно авто заполнить команду с помощью tab. Терминал просто допечатает за Вас.
Например, если ввести fir в терминале и нажать tab, firefox появляется автоматически. Это избавит вас от необходимости печатать полностью. Можно нажать Tab и оболочка будет готово дополнить команду за Вас. Это также работает для папок, имен файлов и имен пакетов.
Во всяком случаях, когда я не знаю, как полностью выглядит команда, я нажимаю клавишу Tab и вижу команду, либо список возможных совпадений. Если продолжить и ещё ввести несколько букв, то это сузить совпадения при нажатии клавиши Tab.
Дополнительные трюки вы найдете в этой книге.
Архив, в который упакована книга «Команды для терминала Linux» находится в открытом доступе, но защищен паролем. Для того чтобы получить пароль, я от Вас прошу поставить ссылки на этот сайт в Vkontakte, Фэйсбуке, Google Plus, Твиттере или в какой-либо другой социальной сети, на сайте или форуме. Можете выбрать любые понравившиеся статьи и поделиться ссылкой через социальные кнопки, которые можно наблюдать слева. При этом я Вас прошу немного изменять отдаваемый текст в социалку для уникализации или добавлять свой комментарий.
Такая своеобразная плата за книгу поможет развить этот сайт.
Заключение:
Я надеюсь, что после прочтения и применения на деле этой статьи, Вы почувствуете себя немного комфортнее в терминале. Чтобы узнать больше о терминале — и, в конечном счете, освоить его — продолжите свой путь с этой книгой.