Всё о работе в командной строке Linux
Лучшая профессиональная работа в Linux немыслима без использования командной строки. Пользователям, привыкшим трудиться в системах с графическим интерфейсом, работа с командной строкой может показаться неудобной: то, что возможно сделать одним перетаскиванием мышью в командной строке потребует ввода с клавиатуры многих слов: команды с аргументами. Однако в Linux этот вид интерфейса всегда был основным, а потому и хорошо развитым. Командная строка (Command Line) или Консоль (Console) или Терминал (Terminal) — интерфейс для управления програмками с помощью команд.
Команды состоят из букв, цифр, символов, набираются построчно, исполняются после нажатия клавиши Enter. Основной инструмент здесь клавиатура. Данный интерфейс встроен в ядро системы, он станет доступен, даже если графический интерфейс не запустится. Преимущества: небольшой расход ресурсов, упругость при составлении перечня действий из команд, возможность автоматического выполнения команд, возможность воспроизводить и вставлять команды. Если сравнивать интерфейсы в разных системах, то можно заметить, что главные команды одинаковы во всех дистрибутивах семейства Linux, а вот графические программы в каждой системе смогут очень сильно различаться.
Как открыть командную строку в Linux
В командных оболочках, утилизируемых в Linux, есть масса способов экономии усилий (нажатий на клавиши) при выполнении более распространённых действий: автоматическое дополнение длинных названий команд или имён файлов, розыск и повторное выполнение команды, уже когда-то исполнявшейся раньше, подстановка списков имён файлов по отдельному шаблону и многое другое. Преимущества командной строки становятся особенно очевидны, когда требуется выполнять однотипные операции над множеством объектов. В системе с графическим интерфейсом требуется столько перетаскиваний мышью, сколько есть объектов, в командной строке будет довольно одной (пусть длинной и сложной) команды.
Как получить доступ к командной строке в Ubuntu? Нет ничто проще. Чтобы открыть эмулятор терминала в Ubuntu, выберите на панели пункт «Приложения->Стандартные->Терминал». Опустится эмулятор терминала — Gnome terminal. Также эмулятор терминала Gnome terminal в Ubuntu возможно запустить из окна запуска приложений. Для этого нажмите Alt+F2 и введите в открывшемся окне заглавие программы — «gnome-terminal». Чтобы получить доступ к настоящей текстовой консоли, возможно воспользоваться комбинациями клавиш Ctrl+Alt+F1… Ctrl+Alt+F6. Ctrl+Alt+F7 — переход обратно в графичный режим.
Командная строка, оболочка, консоль — эти термины используются для обозначения взаимодействия человека-оператора с операторной системой с применением стандартных устройств ввода-вывода, обеспечивающих ввод команд и получение итогов их выполнения. В операционных системах семейства Linux подобное взаимодействие обеспечивается специальным программным провиантом — оболочкой ( shell ) . Наиболее распространенной из них, является оболочка проекта GNU bash ( Bourne Again SHell ). Bash строится на оболочке Bourne ( sh ) созданной Стефеном Борном и включает в себя свойства множества иных оболочек — C ( csh ) , Korn ( ksh ), tc ( tcsh ) . Bash была написана Брайаном Фоксом (Brian Fox ) и в истиннее время поддерживается Четом Рейми ( Chet Ramey ).
Что такое командная строка bash?
Bash расшифровывается как Bourne again shell (что возможно перевести как «Еще одна оболочка Борна»), название частично заимствованно от более ранешней версии командной оболочки UNIX, которая называлась просто Bourne shell («Оболочка Борна» – по имена разработчика Стивена Борна). Bash позволяет интерактивно взаимодействовать с компьютером, вводя некоторые команды и получая на них соответствующий отклик. Также этот командный процессор позволяет исполнять скрипты (команды из файла), может производить автодополнение названий файлов и директорий, благоволит использование переменных, операторов ветвления и цикла. Далее в статье будут приведены наиболее простые и необходимые для работы в bash команды, которые помогут вам сориентироваться и начать сами использовать командную строку для своих задач, но сначала необходимо перейти к интерфейсу инструктивной строки.
Командный интерпретатор bash – это один из нескольких интерпретаторов, доступных в Linux. Иное свое название – Bourne-again shell – интерпретатор bash получил в честь Стивена Борна (Stephen Bourne), творца его ранней версии (/bin/sh). По большей части bash совместим с sh, но содержит множество улучшений, касающихся как функциональность, так и возможности программирования. Bash сочетает возможности интерпретаторов Korn shell (ksh) и C shell (csh) и представляется POSIX-совместимым интерпретатором.
Основные команды для работы в командной строке Linux
Команды для службы с файлами и каталогами:
- pwd – отобразить путь текущего каталога
- cd – перейти в указанный каталог
- ls – показать список файлов каталога, с ключом -l показывает дополнительные сведения о файлах.
- cp – копирование файлов/папок
- mv – смещение файлов/папок
- mkdir – создать папку
- rm – удалить файлы/папки, с ключом -r устраняет и все вложенные папки, с ключом -f — удаляет открытые файлы или каталоги
- rmdir – удаление порожний папки
- chmod – изменить права доступа к файлу
- chown — сменить владельца файла или каталога
- find — отыскать файл. Задается исходный путь для поиска и шаблон поиска, find / -name .X* — разыскивать от корневого каталога файлы, содержащие в имени символы .X
- which — отобразить полный путь выполняемого файла, доступного в данной оболочке, например which ifconfig
- touch — изменить преходящие отметки файла. Удобно использовать для создания пустых файлов – touch myfile основывает пустой файл myfile .
Системные команды
Эти команды обычно используется от имени суперпользователя ( с бригадой sudo ).
- reboot – перезагрузка системы
- poweroff – выключение компьютера
- reset – очищает окно терминала
- passwd – переменить свой пароль, а суперпользователю — поменять пароль любого пользователя
- users — отобразить перечень пользователей, вошедших в систему.
- yum — установка, удаление или обновление программного обеспечения в дистрибутивах Fedora, RedHat и т.п.
- dpkg — аппарат, удаление или обновление программного обеспечения в дистрибутивах Debian, Ubuntu и т.п.
- apt-get — установка, устранение или обновление программного обеспечения в дистрибутивах на основе Debian (Ubuntu, Mint и т.п.)
Управление действиями
- ps – отобразить список текущих активных процессов
- lsof — отобразить список открытых файлов процесса или юзера
- strace — отобразить список системных вызовов
- last — отобразить историю перезагрузок и регистраций юзеров в системе
- kill – послать сигнал процессу, обычно используется для принудительного завершения службы процесса.
- killall – завершение работы всех процессов, имена которых заданы метеопараметром командной строки
- top – отображение списка текущих процессов и интерактивное управление ими.
Сетевые бригады
- ifconfig – конфигурация сетевых интерфейсов
- route — таблица маршрутизации
- ifup / ifdown — подсоединить /выключить сетевой интерфейс
- ip — просмотр или изменение параметров конфигурации протокола IP
- netstat — показать состояние сетевых соединений
- arp, ping, nslookup, traceroute — наиболее часто используемые бригады сетевой диагностики.
Подсказки по использованию команд в Linux
При работе в командной оболочке Linux, в основной массе случаев, можно получить справочную информацию по использованию конкретной команды, введя ее имя с метеопараметром —help:
ls —help — отобразить справку для команды ls. В большинстве случаев, для получения справочной данных, допускается использование ключа -h
ls -h В операционных системах семейства Linux, более подробную ссылочную информацию можно получить из комплекта документации, известного как man-страницы, поскольку он доступен по бригаде man. Этот комплект включает в себя 8 разделов, содержащих справочную информацию, которую возможно вывести на экран с использованием команды man
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Азы работы в командной строке Linux (часть 1)
Возникло желание написать мануал о консоли, базовых командах и азах файловой системы Linux. Когда я начинал своё знакомство с Linux именно такой инструкции мне не хватало. Надеюсь, абсолютным новичкам, которых пугают консольные команды, она поможет «влиться» в число умеющих использовать командную строку Linux.
Командная строка Linux
В зависимости от вашего Linux, ярлык для открытия консоли может быть вынесен на рабочий стол,
добавлен в избранные команды,
доступен в контекстном меню при клике правой кнопкой мыши в области рабочего стола.
Либо вы для вызова эмулятора терминала вы можете воспользоваться сочетанием клавиш CTRL + ALT + t.
В приглашении командной строки отображается имя пользователя и имя хоста. Перед областью ввода команд может быть символ решётки (#) или символ доллара ($). Символ доллара означает, что вы работаете под обычным пользователем, а символ решётки – что под суперпользователем (root).
На скриншоте видно, что я открыл консоль как обычный пользователь (символ $), а затем вошёл как root (символ сменился на #).
В некоторых инструкциях перед командами пишут $ или # и новички, пытаясь выполнить команды копированием-вставкой, получают разнообразные ошибки. Если перед командной вы видите $ или #, то их не нужно печатать – они написаны только для информирования вас о том, нужны ли дополнительные привилегии для выполнения данной команды.
TAB для автодополнения
При вводе команды или имени файла, обязательно используйте клавишу TAB – она автоматически допишет для вас команду или имя файла. Если при нажатии на TAB ничего не происходит, то быстро нажмите TAB два раза, чтобы увидеть все доступные варианты. Если варианты не выводятся, то это верный признак того, что: 1) вы неправильно начали вводить имя команды, 2) программа, которую вы намереваетесь запустить, ещё не установлена.
ENTER для запуска выполнения команд
Набрав команду, нажмите ENTER и после этого она запустится.
CTRL + c для прерывания выполнения программы
Если вы хотите оборвать выполнение команды, то используйте для этого сочетание клавиш CTRL + c. Если вы ввели команду, но передумали её запускать, то вместо удаления строки, можете также нажать CTRL + c.
↑ (курсорная клавиша вверх) для просмотра истории команд
Если вы хотите повторить выполнение команды, то клавишами ↑ и ↓ вы можете пролистать историю ранее введённых команд, выбрать любую из них для повторного выполнения, отредактировать перед запуском.
Азы файловой системы Linux
Если нужно прочитать какие-то данные или сохранить информацию в файл из консоли, нужно уметь указывать путь до файла. В файловой система Linux нет такого понятия как буквы дисков. Там используется понятие «корень». Обозначается корень символом /
После корня указываются папки (в Linux они называются директориями) и файлы. Одни папки могут быть вложены в другие – точно также как в Windows. Вложенные папки и файлы разделяются символом / (точно таким же как корень).
Пример указания пути до файла:
Эта запись означает, что файл book.txt находится в папке mial, а папка mial находится в папке home.
Базовые команды Linux
pwd для показа текущей рабочей директории
Откройте консоль и введите туда
Здесь / (первый слеш) – это корень, home – это название папки (директории), далее / (второй слеш) – отделяет название вложенной папки, mial – название второй вложенной папки.
Команда pwd показывает «текущую рабочую директорию». Текущую рабочую директорию нужно знать при указании относительных путей до файлов и папок, также некоторые программы сохраняют результаты своего выполнения в текущую директорию.
mkdir для создания новых директорий
После mkdir укажите название папки, которую вы хотите создать. Если вы укажите относительный путь, например, так:
То будет создана новая папка test1 в текущей рабочей директории, т.е. в моём случае путь до неё будет
Также можно указать абсолютный путь до папки:
ls для просмотра содержимого каталогов
Команда ls используется для вывода списка файлов и папок текущей рабочей директории:
Теперь мы можем убедиться, что папки test1 и test2 действительно были созданы.
Чтобы список выглядел лучше, можно использовать команду ls с опцией -l
После команды и опций можно указать путь до папки, содержимое которой вы хотим посмотреть. Чтобы увидеть содержимое директории /var/log нужно ввести:
Для просмотра содержимого корневой директории:
cd для перехода по папкам (смены текущей рабочей директории)
Для перехода по папкам используется команда cd после которой пишется директория, в которую вы хотите перейти. Можно указывать относительный путь или абсолютный:
Символ . (одна точка) означает текущую директорию, а символ .. (две точки) означаете родительскую директорию. Следовательно, для перехода на один уровень вверх нужно набрать
cp для копирования файлов
Если вам нужно скопировать файл в другую директорию, то используется команда cp. После неё указывается файл, который нужно скопировать и затем через пробел директория, куда вы хотите поместить файл, например:
Этой командой я скопировал файл test.sh в директорию test1. Проверим
mv для переименования и перемещения файлов.
После команды mv указывается имя файла, который вы хотите переименовать или переместить. Затем через пробел пишется директория, куда вы хотите переместить файл (тогда файл будет перемещён в неё с исходным именем), или директория и новое имя файла (тогда файл будет перемещён и переименован), или только новое имя файла (тогда файл будет переименован).
Файл test.sh из каталога test1 я переместил в каталог test2:
Файл test.sh в каталоге test2 я переименовал в test2.sh:
Файл test2.sh в каталоге test2 я переместил в каталог test1 и присвоил ему имя new.txt:
rm для удаления файлов и папок
Чтобы удалить наши тестовые директории, воспользуемся командой rm. После этой команды укажите путь до файла или папки, которые нужно удалить. Если вы собираетесь удалить директорию, то используйте также опцию -r, она означает рекурсивно удалять каталоги и их содержимое. Можно указать сразу несколько файлов и (или) каталогов:
Для понимания иерархии файловой системы рекомендуется ещё одна статья для новичков «Структура директорий Linux. Важные файлы Linux».
Как копировать текст в командной строке и как вставлять в командную строку Linux
Привычные сочетания клавиш Ctrl+c и Ctrl+v в терминале имеют другое действие. Для копирования нужно использовать Ctrl+Insert, а для вставки Shift+Insert.
Ошибка «команда не найдена»
Причиной данной ошибки могут быть:
- неправильно набрано имя команды
- программа не установлена
- данную команду может выполнять только root
Ещё несколько полезных сочетаний клавиш для командной строки Linux
- Ctrl+l для очистки экрана
- Ctrl+a для перехода в начало введённой команды
- Ctrl+e для перехода в конец введённой команды
- Ctrl+u для удаления всего, что стоит до курсора
- Ctrl+k для удаления всего, что стоит после курсора
- Ctrl+d для завершения текущего сеанса, закрытия консоли
Одна из самых часто используемых:
- Ctrl+R: Поиск по ранее запущенным командам, начните писать искомую и вам будут предлагаться самые подходящие варианты. Для запуска нажмите ENTER.
Имеется функционал копи-пастинга:
- Ctrl+W: Вырезать слово перед курсором, добавить его в буфер обмена.
- Ctrl+K: Вырезать часть строки после курсора, добавить её в буфер обмена.
- Ctrl+U: Вырезать часть строки перед курсором, добавить её в буфер обмена.
- Ctrl+Y: Вставить из буфера обмена последнее, что вы вырезали.