Упражнения по работе с командной строкой linux

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

Зачем разделять привилегии?

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

Сложные сети с большим количеством серверов и разветвлённой периферией обслуживают большое количество пользователей. Вместе с тем и сами эти системы в силу своей сложности и масштабов нуждаются в обслуживании не одним, и довольно часто, даже не двумя системными администраторами. В таких случаях очень удобно использовать механизм, предоставляемый утилитой sudo для получения привилегий суперпользователя для любого пользователя на любом компьютере, тем более, что безопасность от этого не страдает. Если учётная запись root будет доступна нескольким системным администраторам, то, во-первых, администрирование системы будет крайне неудобным, во-вторых, невозможно будет отслеживать, кто именно производил те или иные действия по администрированию системы. Утилиты sudo легко решает эти проблемы.

Повторить Команду Несколько Раз в Linux

Используйте следующий синтаксис, чтобы выполнить какую-либо команду 5 раз:

for n in {1..5}; do <КОМАНДА>; done

Давайте поможем Барту Симпсону со школьной доской:

$ for n in {1..5}; do echo «Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ»; done Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ

Дельный Cовет: Выполняйте команды на удаленном Linux сервере через SSH и получайте результат локально! Читать далее →

Если вам необходимо часто использовать такую конструкцию, тогда не помешает создать соответствующую Bash функцию (добавьте в ~/.bashrc):

function run() { number=$1 shift for n in $(seq $number); do [email protected] done }

Использование:

$ run 5 <КОМАНДА>

Дельный Cовет: Каждый Linux администратор обязан знать как построчно прочитать файл с помощью Bash цикла WHILE! Читать далее →

Пример:

$ run 5 echo «Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ» Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ

Опции командной строки

В истории развития операционной системы UNIX программы использовали разные способы задания своих опций: ♦ односимвольные, например ls -а -l (что эквивалентно ls -l -а или ls -al или ls -la); ♦ многосимвольные, например find /var  -xdev; ♦ длинные, например ps  —help; ♦ с аргументами, например kill  -n  15 1, или kill  -n15  1, или du  -В  M, или  du -BM,

или find /etc -type d, или даже ls —sort=slze;

♦ «нестандартные», например set +x,  tar  czf ~ или dd  if=/dev/dvd  of=.

Знак «минус», предваряющий опции, естественно используется для того, чтобы отличать их от аргументов. Среди прочих, он был выбран потому, что редко встречается как первый символ в аргументах команд (в качестве которых зачастую выступают имена файлов).

И еще потому, что на терминале классической UNIX набор более логичного знака «плюс» (что могло бы означать «включить»,«активировать») требовал достаточных усилий по нажатию клавиши SHIFT. В результате получилось, что, например, в команде set опция х (execution trace) в форме -х включает, а +х выключает трассировку выполнения команд.

В тех редких случаях, когда аргумент команды все же начинается с символа «минус» и тем самым похож на опцию (представим, что нужно выполнить действие над файлом с именем -=filenames=-), специальная опция — сигнализирует о конце списка опций, за которым следуют лексемы, обязанные расцениваться как аргументы, вне зависимости от их написания.

Конец списка опций

[email protected]: ~$ stat -=filename=-

stat: неверный ключ —  «=» Попробуйте «stat —help» для получения более подробного описания.

[email protected]: ~$ stat  — —  -=filename=-

Файл: «-=filename=-» Размер:  0                         Блоков: 0                     Блок B/B: 4096         пустой обычный файл Устройство: fc00h/64512d                  Inode: 26870044            Ссылки: 1 Доступ: (0600/-rw -)                      Uid: (  1000/    john)                Gid: ( 1000/     john) Доступ: 2018-08-24    01:37: +0300

Модифицирован: 2018-08-24 01:37: +0300

Изменён: 2018-08-24 01:37: +0300

Создан: —

Короткие, односимвольные опции (например -l -а) без своих аргументов издревле можно было объединять в группы (-lа или -al), однако их в этом случае сложно отличать от многосимвольных (-xdev) или односимвольных, склеенных со своими аргументами (-ВМ).

Поэтому позже появились длинные (в так называемом GNU-стиле) опции, обозначаемые двумя знаками «минус», позволяющие навести некоторый порядок в виде —block-size=M вместо -ВМ или, предположим,

—dont-descent вместо -xdev.

Командный интерфейс Linux

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

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

Естественные языки, которые используют люди для взаимодействия между собой, на порядок сложнее формального командного языка операционной системы. Однако использование глаголов (команд), существительных (аргументов) и наречий (опций) родного языка мало у кого вызывает чувство неудобства. Наоборот, странным покажется тот человеческий индивидуум, который попытается в обществе использовать непосредственное манипулирование, например, указывая (щелкая) пальцем в магазине на товары (значки) и мыча что-то нечленораздельное. Скорее всего, мы примем его за иностранца (или это будет ребенок), еще не в полной мере владеющего языком.

Именно командный интерфейс в современном виде — аудиоформе — больше не является уделом художественных фантастических произведений, где капитаны межгалактических кораблей командуют кораблям «включить защитное поле». Теперь мы все можем при помощи командного аудиоинтерфейса смартфона найти ближайшую пиццерию или маршрут к нужному месту. Надеюсь, что и алфавитно-цифровая форма командного интерфейса, доставшаяся «в наследство» от UNIX из 70-х годов прошлого века, вас тоже не особо испугает. Ok, Google?

Основные команды для работы с файлами

Как посмотреть текущую рабочую директорию? ответ

pwd

Как сменить рабочую директорию? ответ

cd

например, cd /var/www/

Как перейти в родительскую директорию? ответ

cd ..

Как вернуться в домашнюю директорию? ответ

cd — вызов команды без аргументов приводит к переходу в директорию, указанную в переменной окружения $HOME.

Как вывести список файлов в директории? ответ

ls — вывести список файлов в текущей директории

ls /var/log/ — вывести список файлов в директории /var/log/

ls -l — вывести подробный список файлов

Как посмотреть вермя последнего изменения/доступа к файлу /tmp/ ответ

ls -l /tmp/ — посмотреть время последнего изменения файла

ls -lu /tmp/ — посмотреть время последнего доступа к файлу

stat /tmp/ — показывает 3 временные метки:

  • Access — время последнего доступа к файлу (любое открытие файла для чтения: просмотр, поиск по файлу и т.п.)
  • Modify — время последнего изменения файла
  • Change — время изменения статуса файла (прав доступа, владельца, изменение файла).

Как создать новую директорию test? ответ

mkdir test

Как создать пустой файл? ответ

Существует множество способов создать пустой файл. Вот некоторые из них:

  • cp — скопировать любой другой пустой файл
  • touch — «потрогать» несуществующий файл
  • :> — перенаправить в файл вывод команды, которая ничего не делает
  • vi , затем сразу :wq — открыть файл и сохранить его пустым

Как создать файл /tmp/ размером 2Mb? ответ

dd if=/dev/zero of= bs=1M count=2

если в предыдущей команде задать bs=1MB, то файл будет размером 2_000_000 байт.

в данном примере файл будет заполнен нулевыми байтами (0x00).

Как узнать тип файла? ответ

file

например

$ file : empty $ file /usr/bin/perl /usr/bin/perl: symbolic link to `’ $ file /usr/bin/ /usr/bin/: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux , stripped $ file : HTML document, UTF-8 Unicode text, with very long lines

Как переименовать файл? ответ

mv имя_файла новое_имя_файла

Как удалить файл/директорию? ответ

rm имя_файла — удалить файл

rmdir имя_директории или rm -r имя_директории — удалить директорию

shred -uv имя_файла — удаление файла для параноиков (без опции -u просто перезаписывает содержимое файла мусором)

Как создать символическую/жесткую ссылку на файл/директорию? ответ

Как посмотреть размер файла? ответ

ls -l имя_файла — размер файла в байтах

ls -lh имя_файла — размер файла в более привычном формате

Как как узнать размер директории? ответ

du -s имя_директории — размер места в килобайтах (блоках по 1024 байт), которое директория со всем своим содержимым занимает на диске

du -sh имя_директории — в более привычном формате

Как узнать сколько свободного места осталось на разделе диска? ответ

при помощи команды df место_монтирования_раздела или просто df

df -h выведет размеры не в килобайтах, а в более удобном формате.

df -ih выведет информацию о количестве использованных и свободных инодов

Что такое Linux

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

Терминал — графическая программа эмулирующая консоль, говорит нам пользовательская документация с сайта

Все команды терминала работают и в консоли. Консоль работает без графической оболочки и как правило необходима при проблемах с запуском системы.

Читайте также:  iOS 13 и iPadOS: какие устройства можно обновить 

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

Примеры наиболее популярных команд (терминал можно запустить с помощью горячих клавиш: Ctrl+Alt+T):

(обновление индекса пакетов)

(непосредственное обновление программ)

Рассмотрим составляющие команды:

  • sudo — команда запуска с правами администратора (после ее ввода необходимо ввести пароль администратора, сам пароль не виден, но пугаться не стоит, он вводится и затем жмем клавишу enter);
  • apt-get — является мощным инструментом по установке и обновлению пакетов;
  • update — обновление списка пакетов, upgrade — обновление самих пакетов.

— установка программы;

— удаление программы;

Программы лучше всего устанавливать, добавляя их репозитории, это даст возможность дальнейшего автоматического обновления программы, предварительно проверив что программы нет в Центре приложений Ubuntu (таким образом проверяем если данный репозиторий у нас не подключен).

Для большинства команд можно получить справку, введя после команды дополнительную команду —help.

Пример:

Предлагаю каждому пользователю поделиться скриншотом запущенной полезной команды.

И напоследок несколько интересных команд:

— команда выводит на экран версию ядра Linux;

— список активных сетевых соединений;

— команда хорошего настроения

Популярные эмуляторы терминала

Как оказывается есть различные эмуляторы терминала. Каждый их них по-своему интересен.

Рассмотрим наиболее популярные эмуляторы терминала:

Guake — ниспадающий терминал, напоминающий консоль из популярной игры Quake. Терминал загружается в память, поэтому вызов терминала происходит быстрее стандартного терминала. Доступен в репозитории Ubuntu, поэтому установить можно из Центра приложений Ubuntu.

Final term — «умный» эмулятор терминала. Запоминает вводимые команды и при следующем наборе предлагает их в выпадающем меню. Как и большинство эмуляторов терминала, Final term поддерживает работу горячих клавиш, но через редактирование файла настроек. К сожалению, при ознакомлении он завис, но на это есть объяснение, Final term длительное время не выходит из этапа альфа тестирования.

Переходим к установке. На момент написания данной статьи репозиторий программы не работал, поэтому устанавливать будем из исходников. Дополнительный инструмент Git, который установим для установки Final term нам пригодится в дальнейшем для установки других программ.

Что такое Linux

(необходимые довольно популярные инструменты)

(дополнительные пакеты для GTK )

(загружаем исходники)

(переходимвпапку finalterm)

(создаемпапку build )

(переходимвпапку build )

(инструмент для автоматической сборки программы из исходного кода)

Что такое Linux

(инструмент для автоматической сборки программы из исходного кода)

(непосредственно установка)

Terminator — кроссплатформенный эмулятор терминала, поддерживающий системы Microsoft Windows, Mac OS X, Linux , Unix X11. Удобный эмулятор терминала, позволяет создать горизонтальные и вертикальные вкладки, настроить отображение интерфейса, множество горячих клавиш и подключить дополнительные плагины.

Установить можно из Центра приложений Ubuntu.

RXVT (цветной терминал с поддержкой unicode) — очень легковесный эмулятор терминала. Никаких настроек не обнаружил. По минимализму напоминает встроенный XTerm, однако в RXVT удалены некоторые функции, такие как: эмуляция Tektronix 4014 и конфигурирование в инструментальном стиле.

Доступен в родном репозитории Ubuntu.

Ну а тем, кто продолжает использовать стандартный Терминал предлагаю его немного украсить рисунком, например пингвином по имени Tux (официальный талисман Linux).

Что такое Linux

Далее открываем домашнюю папку (папка Home/имя пользователя), включаем отображение скрытых файлов и редактируем файл с названием .bashrc, добавляя в него строчку: fortune | cowsay -f tux

Всем отличного настроения. До встречи в обсуждениях темы.

Команды для работы с файлами

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. 

Читайте также:  Команда Fdisk в Linux (Создание разделов диска)

cat /proc/cpuinfo — выдаст подробную информацию о процессоре, cat /proc/version — о версии ядра Linux.

touch — создание пустого файла.

touch doc — создаст файл doc. find — поиск файлов. find / -name «doc*» — найдет все файлы, которые начинаются с doc.

ln — создание ссылки на файл. ln file1 file2 — создаст жесткую ссылку. Ключ -s используется для создания символической ссылки.

tar — программа для работы с архивами. tar -zxvf — распакует архив tar -cvf myfile — заархивирует файл myfile, создав архив  

more — вывод файлов с остановкой для просмотра, в отличие от cat, который выводит весь файл сразу. Можно прокручивать текст построчно, с помощью клавиши ввода или постранично с помощью пробела.

less — программа для просмотра файлов аналогичная more, но позволяет прокручивать текст вверх и управлять с помощью курсорных клавиш.

nano — простой полноэкранный текстовый редактор. Рекомендуется для новичков, поскольку содержит минимум функций и основные команды отображаются на экране.

vi — довольно мощный текстовый редактор, но он имеет свою нестандартную систему команд, поэтому требует время на освоение.

mc (Midnight Commander) — мощный файловый менеджер, аналог Norton Commander для DOS или FAR для Windows. Позволяет удалять, копировать, переименовывать, просматривать, редактировать файлы, менять их атрибуты и т. д. Midnight Commander обычно не входит в стандартный набор системных программ, поэтому его нужно устанавливать отдельно. Но он настоятельно рекомендуется к использованию, поскольку сильно упрощает работу с файлами.

Рис. 2. Midnight Commander в gnome-terminal

Команды Linux, дающие информацию о системе

whoami #вывести имя под которым Вы зарегистрированы date #вывести дату и время time <имя программы> #выполнить программу или команду и получить информацию о времени, #нужном для ее выполнения who #определить кто из пользователей работает на машине uname -a #вывести информацию о версии операционной системы cat /etc/issue #показать версию операционной системы (, etc.) lsb_release -a #название дистрибутива и версия uname -m #узнать, сколько бит в linux ОС free #вывести информацию по использованию памяти df -h #вывести информацию о свободном и используемом месте на дисках uptime #показывает текущее время, время, прошедшее после загрузки ОС, количество текущих #пользователей в компьютерной системе и нагрузку за последние 1, 5 и 15 минут работы после загрузки, #количество текущих пользователей в компьютерной системе и нагрузку за последние 1, 5 и 15 минут top (htop) #выводит список работающих в системе процессов и информацию о них ps axu | grep php #список процессов, в имени которых встречается php ps aux | head -n 1; ps aux | grep :searchd #процессы с пояснением параметров сверху netstat -lnp | grep :9000 #узнать, что висит на 9000 порту netstat -luntp #показывает все открытые порты с использующими их приложениями lsusb #информация об устройствах, подключенных через USB lscpu #характеристики процессора

Как завершить какой-нибудь процесс? Если во время вывода top нажать k (от слова kill), то будет предложено

PID to kill:

нужно ввести идентификатор (PID) процесса и затем нажать enter. Это нечто вроде диспетчера задач в Windows.

Просматриваем Linux-файл в сжатом виде

Порой, в системе встречаются текстовые файлы в сжатом виде и формате gz. Это могут быть конфигурационные файлы ядра либо логи программ. Открыть такие файлы можно тоже через терминал, не прибегая к распаковке. Для этого существует множество аналогов вышеназванных утилит с той лишь разницей, что они имеют приставку z: zgerp, zegrep, zcat, zless.

Давайте откроем сжатый файл в Linux для просмотра:

zcat

Или выполним просмотр сжатого файла с прокруткой:

zless test

Вот, пожалуй, и всё. Теперь вы точно в курсе, как правильно открывать и просматривать текстовые файлы в терминале Linux.

Источники: — -otkryt-tekstovyj-fajl-linux; — ; — -text-file.

Apache

Веб-сервер чуть медленнее, чем Nginx. Один из самых популярных в интернете.

Одна из ключевых особенностей — .htaccess файлы дополнительной конфигурации. Можно управлять отдельными папками. Размещаете этот файл в папке и прописываете в нём правила.

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

service apache2 restart — перезапуск Apache

service apache2 reload — применение новых конфигов без перезапуска сервера.

service apache2 stop — остановка веб-сервера

Команды для управления сетью

В стандартный функционал «Терминала» входит и просмотр данных по параметрам сети, скорости и качестве передачи данных.

  1. ip – команда для работы с сетью, благодаря наличию множества опций она многофункциональна. К примеру, добавив функцию address show, можно посмотреть информацию о сетевых адресах, а с route управлять маршрутизацией.
  2. ping – помогает определить качество подключения к сети или наличие его как такового. 
  3. nethogs – выводит данные о количестве израсходованного трафика. 
  4. traceroute – команда, аналогичная ping, но дополнительно дающая информацию о полном маршруте передачи пакетов, скорости доставки на каждом узле и так далее.
  5. mtr – мощная утилита для диагностики сети, совмещающая функционал команд ping и traceroute.