Команды терминала Linux для начинающих. Часть первая

В помощь приходящему системному администратору консольные команды ubuntu/unix/lunix.

Список ключей для команды ls.

Для повседневной работы, одни из самых используемых ключей для команды ls:

  • -l — вывод подробной информации о содержимом каталога в виде списка;
  • -a (—all) — вывод информации о всех имеющихся объектах явных и скрытых;
  • -A (—allmost-all) — вывод информации о всех имеющихся явных и скрытых объектах (за исключением объектов «.» и «..»);
  • -d (—directory) — вывод информации о директории без вывода его содержимого;
  • -F — к объектам являющимся каталогами добавит в конце символ слеш «/», к объектам являющимися исполняемыми файлами добавляется «*», к объектам являющимися символьными ссылками — «@»;
  • -r (—reverse) — данные ключи меняют сортировку на обратную;
  • -i — отображение номера индексных дескрипторов объектов;
  • -S — сортировка объектов по размеру от большого к меньшему;
  • -Sr — сортировка объектов по размеру от меньшего;
  • -t — сортировка объектов по времени модификации файлов;
  • -R (—recursive) — вывод информации об имеющихся объектах в том числе и объектах во вложенных каталогах.

Способы работы с командой ls и ее ключи, упоминаемые в статье это далеко не весь список. Если вы желаете использовать всю мощь этой на первый взгляд простой команды, то как уже упоминалось ранее, более подробную информацию можно получить при вызове встроенного мануала $ man ls .

Подсчёт

В европейской культуре очень большим авторитетом пользуются точные числа и количественные оценки. Поэтому пользователю часто бывает любопытно и даже необходимо точно посчитать что-нибудь многочисленное. Компьютер как нельзя более удобен для такой процедуры. Стандартная утилита для подсчёта строк, слов и символов — wc (от англ. «word count» — «подсчёт слов»). Однако Мефодий запомнил, что в Linux многое можно представить как слова и строки, и решил с её помощью посчитать свои файлы.

[[email protected] methody]$ find . | wc -l 42 [[email protected] methody]$Пример 10. Подсчёт файлов при помощи find и wc

Удовлетворённый Мефодий получил желаемое число — «42». Для этого ему потребовалась команда find — рекомендованный ему Гуревичем инструмент поиска нужных файлов в системе. Мефодий вызвал find с одним параметром — каталогом, с которого начинать поиск. find выводит список найденных файлов по одному на строку, а поскольку критерии поиска в данном случае не уточнялись, то find просто вывела список всех файлов во всех подкаталогах текущего каталога (домашнего каталога Мефодия). Этот список Мефодий передал утилите wc, попросив её посчитать количество полученных строк «-l». wc выдала в ответ искомое число.

Задав find критерии поиска, можно посчитать и что-нибудь менее тривиальное, например, файлы, которые создавались или были изменены в определённый промежуток времени, файлы с определённым режимом доступа, с определённым именем и т. п. Узнать обо всех возможностях поиска при помощи find и подсчёта при помощи wc можно из руководств по этим программам.

Синтаксис

Рассмотрим синтаксис.

wc [параметры] [файлы]

Основные опции:

  • -с — показывает размер в байтах;
  • -m — считает количество символом в документе;
  • -l — считает количество строк в документе;
  • -L — показывает длину наибольшей строки в документе;
  • -w — количество слов в документе;
  • —help — показывает справочную информацию;
  • —version — информация о версии.

Примеры

Сосчитаем сколько байт в файле под названием «file». Для этого будем использовать ключ «-с».

wc -c file

Запустим утилиту без опций, укажем только название файла.

wc file

Команда без параметров сосчитала сколько строк, слов, байтов и название файла.

Здесь:

  • первая цифра 13 — количество строк;
  • вторая цифра 13 — количество слов;
  • 37  — количество байт;
  • file — название документа.

Выведем на экран количество слов в документе «test». Для этого будем использовать аргумент -w.

wc -w test

Опция -w считает слова вместе с пробелами.

Подсчитаем строки в документе test. Будем использовать опцию -l.

wc -l test

Читайте также:  Mandrakelinux 10.1. Справочное руководство. Больше, гораздо больше...

Часто в операционной системе Linux средствами терминала нужно узнать сколько пользователей зарегистрировано. С этой задачей легко справится утилита wc. Список пользователей хранится в файле passwd, необходимо только сосчитать их.

wc -l /etc/passwd

Что такое Linux

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

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

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

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

Что такое Linux

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

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

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

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

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

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

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

Что такое Linux

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

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

Пример:

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

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

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

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

Что такое 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

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

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

uniq [-c | -d | -u] [-i] [-f число_полей] [-s число_символов] [входной_файл [выходной_файл]]

Опции программы имеют следующие значения:

-u Выводить только те строки, которые не повторяются на входе. -d Выводить только те строки, которые повторяются на входе. -c Перед каждой строкой выводить число повторений этой строки на входе и один пробел. -i Сравнивать строки без учёта регистра. -s число_символов Игнорировать при сравнении первые число_символов символов каждой строки ввода. Если эта опция указана совместно с -f, то будут игнорироваться первые число_полей полей, а затем ещё число_символов символов. Символы также нумеруются начиная с единицы. -f число_полей Игнорировать при сравнении первые число_полей полей каждой строки ввода. Полем является строка непробельных символов, отделённая от соседних полей пробельными символами. Поля нумеруются начиная с единицы.

Читайте также:  Как настроить интернет в Android 4 на VirtualBox?

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

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 — распакует архив 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

Основные команды Bash

Команда CD

Если вы хотите перемещаться в терминале линукс по каталогам, вам нужно использовать команду cd.

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

cd /home/YOUR_USER_NAME или проще: cd ~

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

Знаете ли, что командная оболочка реализовала очень удобную функцию подсказок вам нужно перейти в каталог с длинным названием, freebestwebhosting, вам не нужно вводить ее полностью. Вместо этого, вы можете ввести только часть букве free и нажат на клавишу tab, и интерпретатор bash самостоятельно дополнит команду.

Команда CAT

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

Читайте также:  Как пользоваться командами ping и tracert

cat

Команда GREP

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

cat /var/log/apache2/ | grep

В результате запроса вы увидите данные только по пользователю с ip адреса

Команда TAIL

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

tail -f /var/log/apache2/

Команда SSH

SSH — это протокол подключения к серверу. Для того, чтобы подключиться к серверу по ssh, введите команду в формате:

ssh [email protected] и нажмите enter.

И если ваш сервер поддерживает подключение по ssh, вам нужно будет ввести пароль и вы попадете на нужный вам сервер в оболочку Bash или оболочку, которая настроена по умолчанию на вашем сервере.

Стандартный порт SSH — 22. Многие администраторы, для того, чтобы немного обезопасить сервер закрывают доступ к ssh через порт 22, а открывают альтернативный порт, например 2231.

Если ваш сервер находиться на не стандартном порте 22, а на порте к примеру 2231, тогда команда подключения через ssh к серверу будет выглядеть так:

ssh [email protected] -p2231

Как изменить права на файл (chmod)

У файлом, как и у каталогов, есть права и владельцы эти файлов. Для того, чтобы изменить права на файл .htaccess вашего сайта введите команду:

chmod 644 .htaccess

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

Пример команды:

chmod -R 775 catalog

Как получить root права в linux и выполнять команды от root. Команда sudo.

Для получения root прав, без смены пользователя, можно воспользоваться командой sudo перед основной командой. Пример команды sudo:

sudo less /etc/php5/apache2/

Команда сменить владельца файла или каталога (chown и sudo)

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

Для смены владельца файла или каталога, нужно воспользоваться двумя командами: sudo и chown:

sudo chown john:john затем enter и введите пароль для root и снова enter.

Команда sudo позволит без входа пол пользователем root, выполнить команду от root. jonh — это ваш пользователь, второй john — это группа пользователя john (может быть любой).

Резюме

В данной статье мы рассмотрели несколько полезных команд оболочки Bash в Linux и Unix подобных системах. Эти команды вам могут пригодиться для настройки собственного VDS сервера, например от хостинга Таймвеб.

В следующих статьях мы рассмотрим не менее полезные команды оболочки bash, познакомимся с консольным редактором nano и vim, файловыми менеджером mc и многими другими.

Потоки ввода-вывода терминала и переадресация

В терминале Linux работа осуществляется через три потока ввода-вывода: вход (stdin), выход (stdout) и ошибка (stderr).

Данные потоки представлены файловыми дескрипторами. Их также принято считать идентификаторами: 0 для stdin, 1 для stdout, 2 для stderr.

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

  • > для отправления в поток;
  • < для получения из потока;
  • >> для добавления в поток;
  • << для непосредственного присоединения потока (используется в «heredoc»);
  • <<< используется в «herestring» (на сегодняшний день не особо распространенная команда);
  • & используется для записи в поток, например &1 для записи в stdout.

Анатомия командной строки переадресации с использованием потоков

Дополнительные примеры переадресации приведены ниже:

  • чтобы отправить stdout и stderr в один и тот же файл (короткий вариант bash v4+) pip install rtv > 2>&1 ac -pd &> ;
  • чтобы пропустить и stdout, и stderr: wget _line_ &> /dev/null /dev/null — это «нулевой» файл для удаления потоков. А ещё это паблик со смешными мемами для ITшников (ВК и Телеграм);
  • чтение из stdin в качестве вывода команды: diff <(ls dirA) <(ls dirB);
  • добавить stdout в файл журнала sudo yum -y update >> yum_