Командная строка linux обучение

Содержание
  1. Руководство по выживанию в оболочке Linux для начинающих
  2. Командная строка Linux
  3. Зачем вообще изучать командную строку Linux?
  4. Приглашение командной строки
  5. 10 основных команд
  6. 1. pwd
  7. 4. man
  8. 5. mkdir
  9. 6. rmdir
  10. 7. clear
  11. 8. nano
  12. 9. cat
  13. 10. rm
  14. 11. mv (бонус!)
  15. Примечания
  16. Заключение
  17. Самые полезные приёмы работы в командной строке Linux
  18. Вывод результатов работы команд в виде таблицы
  19. Многократный повтор команды до её успешного завершения
  20. Сортировка процессов по используемой памяти
  21. Сортировка процессов по использованию ресурсов CPU
  22. Одновременный просмотр нескольких лог-файлов
  23. Возврат к предыдущей директории
  24. Мониторинг с регулярными интервалами
  25. Продолжение выполнения программы после окончания сессии
  26. Автоматический ответ yes или no
  27. Создание файла заданного размера
  28. Выполнение последней команды с root-привилегиями
  29. Создание протокола терминальной сессии
  30. Замена пробелов на знаки табуляции
  31. Замена строчных букв на прописные
  32. Автоматическое формирование списка аргументов для команд: xargs
  33. Итоги

Руководство по выживанию в оболочке Linux для начинающих

Перевод статьи «A Beginner’s Guide to Surviving in the Linux Shell».

Командная строка Linux

Черный экран с белым текстом и без всякой графики. Да, на первый взгляд оболочка Linux выглядит пугающе, но она куда более мощная, чем графические инструменты. 70% серверов и 90% супер-компьютеров в мире работают на Linux. Учебная кривая этой операционной системы довольно крутая, чтобы ее изучить, нужно «пожить» в ней некоторое время. Но когда вы освоитесь в командной строке, у вас появятся навыки, выделяющие вас на общем фоне.

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

Зачем вообще изучать командную строку Linux?

Преимущества, которе дает хорошее умение пользоваться командной строкой:

  • Вы будете лучше разбираться в своей операционной системе. Оболочка дает вам прямой доступ к вашей файловой системе, благодаря чему вы начинаете лучше понимать иерархию и структуру ОС. Вам также придется иметь дело с конфигурационными файлами (тоже напрямую), а это даст вам возможность более эффективно контролировать свою операционную систему.
  • Вы сможете удаленно контролировать компьютеры и серверы. Такие сетевые протоколы как SSH и Telnet позволяют удаленно коннектиться к компьютерам в сети, но только с помощью командной строки, без графического интерфейса. Таким образом, вы сможете пользоваться этими протоколами, только если познакомитесь с оболочкой.
  • Вы сможете самостоятельно установить Arch Linux. Этот дистрибутив пугает многих новичков своим методом инсталляции. Чтобы установить Arch Linux, вам придется все делать вручную, от разбивки диска до создания пользователя, и все это – в командной строке. Для этого нужно очень хорошо в ней разбираться.
  • Вы сможете зарабатывать настройкой и администрированием Linux-серверов. Во многих компаниях бывают вакансии «Linux System Administrator». Человек на этой позиции занимается поддержкой компьютеров с Linux, а также вносит необходимые изменения в настройки конфигурации. Этот человек должен очень хорошо знать оболочку Linux и все команды, необходимые для настройки системы.

Приглашение командной строки

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

Стандартно в приглашении командной строки вы увидите имя пользователя, имя хоста (имя вашего компьютера в сети), название директории, в которой вы находитесь, и знак «$». Этот знак указывает на то, что вы зашли как обычный пользователь, а не root (пользователь root в Linux имеет все права и привилегии, для него будет другой знак – «#»).

10 основных команд

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

1. pwd

Команда pwd (print working directory – вывод рабочей директории) выводит полный путь к директории, в которой вы сейчас работаете. Открывая терминал, обычно вы попадаете в свою домашнюю директорию. Таким образом, введя команду pwd, вы получите в выводе /home/(ваше-имя-пользователя). В приглашении командной строки домашняя директория обозначена символом «

Команда cd (change directory – «сменить директорию») меняет рабочую директорию на ту, имя которой вы указываете после имени самой команды. Если вы введете cd myfolder, вашей рабочей директорией станет myfolder. Это имя также отобразится в приглашении командной строки. Но если в вашей текущей директории нет папки с именем myfolder, вы получите сообщение об ошибке.

Читайте также:  Руководство пользователя для калькулятора windows

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

Команда cd .. (в качестве аргумента указаны две точки) сменит рабочую директорию на ее родительскую, т. е., предыдущую в иерархии. В нашем случае мы вернемся в домашнюю папку.

Примечание редакции: для возврата в домашнюю директорию из любой другой можно ввести cd

Также можно указывать абсолютный путь к директории, в которую вы хотите перейти. Абсолютным путем называется полное указание пути, начиная от директории root (/). Например, абсолютный путь к myfolder будет выглядеть как /home/puranjay/myfolder. Именно абсолютный путь вы видите в результате выполнения команды pwd.

Примечание редакции: первый способ указания пути, который использовался в статье, называется относительным. Мы указывали только имя директории myfolder. Это подразумевало, что мы имеем в виду директорию myfolder – дочернюю для нашей рабочей директории. Обозначение родительской директории двумя точками (cd ..) это тоже относительный путь, потому что мы перемещаемся в директорию, родительскую по отношению к нашей рабочей директории.

Команда ls (list – «список»), введенная без дополнительных аргументов, выводит содержимое текущей рабочей директории, а именно – список содержащихся в ней файлов и директорий.

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

Также можно в качестве аргумента команды ввести абсолютный путь к директории, содержимое которой вы хотите посмотреть. Например, если вы находитесь в домашней директории и запустите команду ls /boot, оболочка выведет содержимое директории boot, находящейся в корневой (/) директории. Ваша рабочая директория при этом не изменится.

Также стоит помнить о том, что «boot» и «/boot» с точки зрения оболочки это разные директории. Просто «boot» это директория или файл в текущей директории, а «/boot» – директория или файл, находящиеся в корневой директории (/). Если вы запустите команду ls boot, вы получите сообщение об ошибке, потому что в текущей (домашней) директории такой папки или такого файла нет.

4. man

Команда man (manual – «руководство») открывает страницу руководства по команде, имя которой вы вводите в качестве аргумента. Это руководство содержит информацию по всем командам, доступным в Linux. Там вы найдете сведения о правильном использовании команды и различных доступных опциях.

Для выхода из страницы man нажмите клавишу «q».

Например, если мы запустим команду man ls, мы получим руководство и команде ls.

5. mkdir

Команда mkdir (make directory – «создать директорию») создает новую директорию с именем, введенным в качестве аргумента команды. Находиться она будет в нашей текущей директории. Например, mkdir hello создаст директорию hello внутри текущей директории. После ее создания можно ввести cd hello и перейти в эту новую директорию. В приглашении командной строки «

» сменится на «hello».

6. rmdir

Команда rmdir (remove directory — «удалить директорию») удаляет/стирает директорию, указанную в качестве аргумента команды. Если мы введем rmdir hello, мы удалим ранее созданную директорию hello.

Нельзя удалить директорию, находясь в ней. Поэтому с помощью cd .. мы перейдем на уровень выше в иерархии и уж затем удалим папку hello.

Также нельзя удалить директорию с помощью команды rmdir, если эта директория не пустая (мы получим сообщение об ошибке).

Чтобы все же заставить оболочку удалить не пустую директорию с помощью команды rmdir, нужно добавить к ней флаг — ignore-fail-on-non-empty. Например, если мы запустим rmdir —ignore-fail-on-non-empty hello, мы удалим папку hello, несмотря на то, что в ней что-то лежит.

Удаление не пустой директории

7. clear

Команда clear очищает окно терминала, удаляя все предыдущие выводы команд. Это бывает полезно, когда вам нужно убрать беспорядок в окне.

8. nano

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

В большинстве дистрибутивов Linux редактор nano уже предустановлен.

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

Для выхода из nano нажмите CTRL+X. При этом редактор спросит вас, хотите ли вы сохранить файл.

Если нажмете «Y», вам будет предложено ввести имя для этого файла. Нажатие ENTER после ввода имени закроет nano. Файл с указанным именем будет сохранен в текущей директории.

9. cat

Команда cat (от слова concatenate – «объединять») используется для вывода содержимого файла в окне терминала. Используется, главным образом, для просмотра содержимого файла. Для этого нужно ввести саму команду, а в качестве аргумента – имя файла (или абсолютный путь к файлу), который вы хотите просмотреть. Содержимое файла будет выведено на экран.

Примечание редакции: имя команды образовано от слова «конкатенация», и основное ее назначение – объединение нескольких файлов в один. Указав в качестве аргументов два разных файла, вы сможете просмотреть их одновременно и даже перезаписать результат в третий файл. Любопытные факты: в Linux есть также команда tac (cat наоборот) – для объединения файлов в обратном порядке, и команда dog – cat с улучшенным функционалом.

10. rm

Команда rm (remove – «удалить») похожа на команду rmdir, но она удаляет любые файлы, не только директории. Для использования этой команды следует указать в качестве аргумента имя файла, который вы хотите удалить. Таким образом можно удалить файл в текущей директории. А если указать абсолютный путь к файлу, то можно удалить любой файл в любой директории.

11. mv (бонус!)

Команда mv (move – «переместить») используется для перемещения и переименования файлов. Формат команды – mv исходное-положение пункт-назначения. Если файлы находятся не в текущей директории, нужно указать путь к ним (относительный или абсолютный).

Примечания

  • Оболочка Linux чувствительна к регистру, так что desktop и Desktop это два разных имени.
  • Следует с осторожностью прописывать пути к файлам, потому что, например, boot и /boot это две разные директории.
  • Единственный способ научиться работать в оболочке Linux это провести в ней некоторое время, используя ее ежедневно. Если основная операционная система на вашей машине это Linux, то вам будет проще.
  • Старайтесь найти способ делать все, что вам понадобилось сделать в Linux, с помощью командной строки. Если у вас при этом возникают вопросы, найти ответы на них можно на Stack Overflow.
  • Если вы хотите стать настоящим мастером в Linux, можете почитать «Linux Bible» – самое глубокое из всех руководств по этой ОС.

Заключение

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

Источник

Самые полезные приёмы работы в командной строке Linux

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

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

Вывод результатов работы команд в виде таблицы

Иногда вывод результатов работы команд выглядит как мешанина из беспорядочных строк. Найти то, что надо, в таких данных можно, но работать с ними неудобно. Например – что-то подобное можно получить в ответ на команду mount . Хорошо бы то же самое вывести в виде таблицы. И это не только возможно, но ещё и очень просто:


Результаты работы команды mount, оформленные в виде таблицы

По умолчанию команда формирует табличное представление, ориентируясь на пробелы между словами. А что, если в качестве разделителей используются другие символы, вроде двоеточий? Например – в выводе cat /etc/passwd ?

Упорядочить можно и такие данные – достаточно указать символ-разделитель с параметром –s . Например, ниже приведена команда для символа «:».


Отформатированный вывод /etc/passwd

Многократный повтор команды до её успешного завершения

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

Решить подобную задачу поможет цикл while true . Выглядит всё это так:


Команда будет повторяться до её успешного завершения

В этом примере конструкция >/dev/null 2>&1 перенаправляет вывод программы в /dev/null , включая и Standard Error, и Standard Out.

Вероятнее всего, это – один из самых полезных приёмов работы с командной строкой Linux.

Сортировка процессов по используемой памяти


Отсортированный список процессов

Сортировка процессов по использованию ресурсов CPU

Сортировка процессов по использованию CPU делается так:


Отсортированный список процессов

Для того, чтобы вывести сведения об архитектуре, используйте команду getconf LONG_BIT .

Одновременный просмотр нескольких лог-файлов

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


Работа с multitail

Установить эту утилиту, если вы её у себя не найдёте, можно командой apt-get install multitail .

Возврат к предыдущей директории

Для того, чтобы вернуться к предыдущей директории, просто наберите cd –.

Мониторинг с регулярными интервалами

Использование утилиты watch (например, watch df –h ) поможет организовать наблюдение за выводом любой команды. Например, можно наблюдать за объёмом свободного пространства, и за тем, как он меняется.

Пожалуй, вы сами сможете найти подходящие сценарии для использования этой команды.

Продолжение выполнения программы после окончания сессии

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

Для того, чтобы этого добиться, можно воспользоваться командой nohup , название которой расшифровывается как «no hang-up». Выглядит это так:

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


Команда nohup

В примере, показанном на рисунке выше, в текущей директории будет создан файл nohup.out , содержащий вывод команды:


Файл nohup.out

Полезная штука, согласны?

Автоматический ответ yes или no

Предположим, вы хотите автоматизировать процесс, который требует от пользователя постоянно отвечать yes . Сделать это можно, используя команду yes :

Возможно, вместо этого вы решите автоматизировать отрицательные ответы. Тут поможет такая конструкция:


Автоматизация ответа YES

Создание файла заданного размера

Создавать файлы заданного размера можно, используя команду dd :

Вышеприведённая команда создаст файл размером 10 Мб, заполненный нулями.


Создание файла заданного размера

Выполнение последней команды с root-привилегиями

Иногда можно забыть ввести sudo перед командой, которой нужны root-привилегии. Вводить всё заново нет нужды – достаточно воспользоваться такой командой:


Выполнение последней команды с root-привилегиями

Создание протокола терминальной сессии

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

После выхода из сессии протокол будет записан в файл typescript .

Замена пробелов на знаки табуляции

Вот команда, которая позволяет заменить пробелы на знаки табуляции:

На самом деле, она универсальна и умеет работать с любыми символами.

Замена строчных букв на прописные

А вот – пример вышеописанной команды для замены строчных букв в файле с текстом на прописные:


Замена строчных букв в файле на прописные

Автоматическое формирование списка аргументов для команд: xargs

Утилита xargs , пожалуй, достойна звания одной из самых полезных возможностей командной строки Linux. Её можно использовать для передачи вывода некоей команды в качестве аргумента для другой. Например, вот как можно выполнить поиск .png-файлов и сжать их, или сделать с ними что-нибудь ещё:

Или, возможно, у вас имеется файл со списком URL, и вы хотите загрузить ресурсы по этим адресам, или ещё как-то их обработать:

Тут надо учитывать, что вывод первой команды передаётся в качестве аргумента в конце команды xargs . Если при конструировании второй команды надо явно указать место, куда должны попасть выходные данные первой, достаточно воспользоваться парой фигурных скобок, <> и параметром –i для замены аргумента в нужном месте:


Команда xargs

Итоги

Полезности для командной строки Linux – тема невероятно обширная. Поэтому любой список, подобный нашему, можно пополнять очень и очень долго. Например, много неожиданного скрыто в командах awk и sed . Пожалуй, главное – чтобы такие вот списки шли в дело.

А какими интересными приёмами работы в командной строке пользуетесь вы?

Источник

Оцените статью