50 основных команд linux для новичков

Горячие клавиши

Копирование команд

Часто вам придётся следовать каким-либо инструкциям, которые требуют копирования команд в терминал. Наверное, вы удивитесь, когда обнаружите, что текст, скопированный вами с интернет-страницы при помощи комбинации клавиш Ctrl С, не вставляется в терминал при нажатии Ctrl V. И что, неужели придётся перепечатывать все эти команды и имена файлов вручную? Нет, расслабьтесь! Вставить текст в терминал можно тремя способами: Ctrl Shift V, нажатием средней кнопки мыши или правой кнопки мыши и выбором строки «Вставить».

Экономия набора

или Ctrl P прокрутка недавно использованных команд вверх
или Ctrl N прокрутка недавно использованных команд вниз
Enter выполнение выбранной команды
Tab крайне удобная возможность — автозаподстановка команд и имён файлов. Если с выбранных символов начинается только одна команда, подставится именно она, а если их несколько,то по двойному нажатию tab выведется список всех возможных вариантов.
Ctrl R поиск по командам, которые вы вводили раньше. Если вам нужно повторно выполнить очень длинную и сложную команду, вы можете ввести только её часть, а эта комбинация клавиш поможет найти команду целиком.
History Команда history выводит список всех команд, которые вы вводили. Каждой команде будет присвоен номер. Чтобы выполнить команду под номером x, просто введите «!x». Если у вас получилась слишком длинная история, можно попробовать «history I less», это сделает список прокручиваемым.

Изменение текста

Здесь мышь не работает. Используйте стрелки влево/вправо, чтобы перемещаться по строке.

Ввод с клавиатуры будет добавлять символы. Существующий текст удаляться не будет.

Классические инструменты для программирования: find, grep, awk, sed

Особенности find

Путь: может иметь несколько вариантов, например .

Критерии:

  • ;
  • ;
  • ;
  • ;
  • критерии могут быть объединены с логическими и .

Действие:

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

Примеры команд для поиска:

  • — xt-файлы в ;
  • — эквивалент ;
  • — все файлы размером более 512M в ;
  • — не символьная ссылка в ;
  • — позволяет удалить все файлы, которые не были доступны в течение года;
  • — все файлы, имеющие расширение .c или .h.

Grep: поиск шаблонов в тексте

Grep изначально представлял собой команду global regular expression print или «g/re/p» в текстовом редакторе ed. Данная функция оказалась настолько полезной, что была разработана отдельная утилита под названием grep.

Grep позволяет извлекать строки из текста, который соответствует определённому шаблону. Также можно находить строки с определённым рисунком в большом объёме текста. Сюда относится:

  • поиск в списке процессов;
  • выборочная проверка большого количества файлов на наличие паттерна;
  • исключение некоторого фрагмента текста из большого текстового объёма.

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

Полезные опции grep:

  • : игнорировать случай;
  • : отображение номеров строк вместе со строками;
  • : инвертированный вывод. Отберутся те строки, которые не совпадают с регулярным выражением;
  • : печать конкретного количества совпадающих строк;
  • : включение n-строк после совпадения;
  • : включение n-строк перед совпадением;
  • : печать только совпадающего выражения (а не всей строки);
  • : позволяет использовать «расширенные» регулярные выражения.

Как просмотреть файл в Linux с прокруткой

Бывает, что текстовый файл большой, поэтому его содержимое не помещается в один экран. Использовать в таком случае cat неудобно, зато есть less. Синтаксис у неё такой же:

less <путь_к_файлу/имя_файла>

Команда less обеспечит постраничный просмотр, что очень удобно. При этом:
1) less позволяет просматривать текст по определённому числу строк, для чего достаточно указать — (тире или минус) и количество строк:

less -5 myfile.txt

2) можно начать просмотр с конкретной строки в файле, указав + (плюс) и номер строки, с которой хотим начать чтение:

less +5 myfile.txt

Открыв текст, мы можем управлять его просмотром:

Редактирование файлов в Linux

Довольно часто, обычного просмотра файла недостаточно и в нём надо что-то поправить. Для решения этой задачи cat уже не подойдёт, надо использовать текстовый редактор. В терминале можно пользоваться nano или vim, а в графическом интерфейсе — gedit. Чтобы открыть файл в терминале выполните:

$ nano /путь/к/файлу

Например:

Для большинства файлов в директории /etc/ запись доступна только пользователю root. Поэтому команду надо выполнять от имени суперпользователя с помощью sudo. После нажатия клавиши Enter утилита запросит пароль. Введите его, несмотря на то, что символы пароля не отображаются, это нормально. После внесения изменений сохраните их с помощью сочетания клавиш Ctrl + O.

Аналогично, можно открыть этот же файл в текстовом редакторе:

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

Другие интересные и полезные команды

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 строка
— выводит сообщение в терминалах всех залогиненных пользователей.

Текстовая консоль

Начну, пожалуй, со святая святых — текстовой консоли. Это интерфейс общения системы с пользователем посредством получения от него информации с ввода на клавиатуре и вывода ответа на монитор в текстовом виде. Для работы с ней не нужна графическая подсистема с графической средой окружения, и в ней можно продолжить работу, даже удалив с компьютера графический сервер X, либо среду окружения такую, как GNOME или KDE.

Чтобы получить доступ к текстовым терминалам в Ubuntu нужно использовать комбинации клавиш CTRL+ALT+F1 — CTRL+ALT+F6. Первая консоль — F1, далее F2 и так до F6. Получается, что можно одновременно использовать до шести рабочих окружений с авторизованными в них шестью пользователями. На седьмой консоли — CTRL+ALT+F7 обычно находится графический терминал — привычная система с окнами и мышкой. И именно CTRL+ALT+F7 нужно нажать, чтобы вернуться к привычному окружению после работы с консолью.

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

Работа с историей команд

history
— вывод истории команд (хранится в файле )

!!

— повтор предыдущей команды

sudo !!
— повтор предыдущей команды с правами root.

!число

— повтор команды под определенным номером. Номер можно узнать командой .

!1005
— повтор команды под номером 1005.

!строка

— повтор последней команды, которая начинается с слов указанных в строке.

!he
 => help script

!r
 => rm -rf .* (будьте осторожны применяя эту команду!)

!?строка

— повтор последней команды, которая содержит слова указанные в строке.

!?dir
 => mkdir books

!?dir
 => rmdir songs (будьте осторожны применяя эту команду!)

script

— запись сессии терминала в файл. Для остановки записи введите —

script 

script session_record.txt
— запись сессии терминала в файл session_record.txt.

script -c «mkdir pictures» session_record.txt
— запись одной команды в файл.

Специальные пакеты

ubuntu-desktop — стандартная среда Ubuntukubuntu-desktop — рабочий стол KDExubuntu-desktop — рабочий стол XFCEubuntu-minimal — основные утилиты Ubuntuubuntu-standard — стандартные утилиты Ubuntuubuntu-restricted-extras — несвободные, но полезные пакеты для Ubuntukubuntu-restricted-extras — несвободные, но полезные пакеты для Kubuntuxubuntu-restricted-extras — несвободные, но полезные пакеты для Xubuntubuild-essential — пакеты, используемые для компиляции программlinux-image-generic — последний образ ядра genericlinux-headers-generic —последние headers ядра

Управление процессами в Linux.

ps
ps —help
Список всех процессов, запущенных в системе:ps -e — выдаст список процессов с идентификаторами
( PID ) и их именами
или:ps -eF — выдаст тот же список процессов, но с полной строкой запуска
список задач, порожденных пользователем user:ps -U user
список задач, связанных с текущим терминалом:ps -T
список задач, связанных с терминалом N:ps t ttyN
Если список задач большой, а нас интересует состояние одной или нескольких
задач, можно воспользоваться grep:ps -U root | grep ppp — выдать список задач, содержащих «ppp» в имени
    Для получения сведений об использовании ресурсов компьютера можно
воспользоваться командой top

В верхней части окна выводятся суммарные данные о состоянии системы —
текущее время,
время с момента загрузки системы, число пользователей в системе,
число процессов в разных состояниях,
данные об использовании процессора и памяти.
Ниже выводится таблица, характеризующая отдельные процессы.
Число строк, отображаемых в этой таблице, определяется размером окна.
Содержимое окна обновляется каждые 3 секунды. Нажатие клавиши h
выводит справку по командам, которые позволяют изменить формат отображаемых данных
и управлять некоторыми параметрами процессов в системе:

s или d — изменить
интервал обновления окна.

z — цветное/черно-белое отображение

n или # — количество отображаемых
процессов
Можно отсортировать список процессов по использованию ресурсов процессора
(P), памяти (M),
времени выполнения (T) и т.п.
    В среде утилиты top также существуют подкоманды, которые позволяют управлять процессами в интерактивном режиме:

k — снять ( kill ) задачу. По этой команде будет
запрошен идентификатор процесса ( PID ), после ввода которого, процесс будет
завершен.

r — изменить текущий приоритет задачи (renice).
Как и при выполнении предыдущей команды, будет запрошен PID, и затем, новое значение
приоритета (отображается в колонке NI). Диапазон значений приоритетов — от минус 20
(наивысший) до плюс 19. Отрицательные значения и 0 может устанавливать только
пользователь root.
    Для выхода из top нажмите q

    Эти же действия (принудительное завершение процесса и изменение его приоритета)
можно выполнить и без команды top.
    Процессы в Linux имеют возможность обмениваться
так называемыми «сигналами» с ядром и другими процессами. При получении сигнала
процессом, управление передается подпрограмме его обработки или ядру, если такой подпрограммы не существует. В Linux имеется команда kill, которая позволяет послать заданному процессу любой сигнал. Список сигналов можно получить по команде:kill -l
В результате выполнения этой команды вы увидите список номеров и названий сигналов.
Для того, чтобы послать определенный сигнал выбранному процессу, нужно ввести:kill номер PID выбранного процесса
Например, нам нужно завершить работу приложения Midnight Commander (mc).
Определим идентификатор процесса mc:ps -e | grep mc
Пусть PID= 11597.

Пользователи и группы

whoami — имя, под которым вы залогиненыgroupadd group_name — создать новую группу с именем group_namegroupdel group_name — удалить группу group_namegroupmod -n new_group_name old_group_name — переименовать группу old_group_name в new_group_nameuseradd -c «Nome Cognome» -g admin -d /home/user1 -s /bin/bash user1 — создать пользователя user1, назначить ему в качестве домашнего каталога /home/user1, в качестве shell’а /bin/bash, включить его в группу admin и добавить комментарий Nome Cognomeuseradd user1 — создать пользователя user1userdel -r user1 — удалить пользователя user1 и его домашний каталогusermod -c «User FTP» -g system -d /ftp/user1 -s /bin/nologin user1 — изменить атрибуты пользователяpasswd — сменить парольpasswd user1 — сменить пароль пользователя user1 (только root)chage -E 2005-12-31 user1 — установить дату окончания действия учётной записи пользователя user1pwck — проверить корректность системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadowgrpck — проверяет корректность системных файлов учётных записей. Проверяется файл/etc/groupnewgrp group_name — изменяет первичную группу текущего пользователя. Если указать «-«, ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, первичная группа будет назначена из /etc/passwd

Обновление Ubuntu через Терминал

Некоторые обновления операционных систем служат для устранения «дыр» в безопасности, другие помогают ОС поддерживать новые программы. Но ценнее всего те, которые улучшают саму систему — добавляют в неё новые функции и возможности.

Если вышло обновление с долгосрочной поддержкой (LTS), очень полезно обратить на него внимание. Обновление Ubuntu через Терминал служит сразу многим целям

От преимуществ, которые оно даёт, разумный пользователь отказываться не будет.

При обновлении через терминал необходимо использовать специальные команды.

Операционная система Ubuntu обновляется в основном раз в полгода. Это достаточный период, чтобы успели появиться новые технологии, ноу-хау и решения в мире ИТ. Поэтому следить за обновлениями и своевременно «ставить» их — верный способ быть на острие технологий.

Система Убунту давно славится подходом, который в неё заложила компания Canonical. Он обещает возможность получить всё нужное и сразу, на одном диске или в одном образе. Если выходят обновления программ, система также сообщит вам об этом, и предложит установку.

Менеджер обновлений

Операционные системы Linux раньше не славились вниманием к потребностям новичков. Сейчас всё немного по-другому

Одним из полезных нововведений Ubuntu является Update Manager.

Он позволяет не только получать оповещения о выходе новых версий ОС. Он также предлагает оптимальный вариант установки пакетов с программными новинками.

Поэтому необходимый софт окажется у вас, когда он будет востребован и актуален.

Рассмотрим в деталях, как обновить Убунту через Терминал. Если вы хотите сами узнать о важных и поддерживаемых обновлениях, зайдите в раздел «Система» — «Администрирование» — «Менеджер обновлений».

Ваша ОС сама начнёт поиск новых версий актуальных программ и пакетов к ним. Это наиболее актуально, когда вы заждались новых функций, а процесс скачивания обновлённых версий не начался автоматически.

Приступаем к обновлению

ВАЖНО. Чтобы всё прошло удачно, на вашем ПК должна быть установлена версия системы от 14.04 и новее

Также обзаведитесь правами sudo. В противном случае вы можете столкнуться с проблемами. 

Прежде всего, сохраните все важные данные на отдельный носитель. Оптимальным вариантом будет резервное копирование важных папок, а то и всей файловой системы.

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

sudo apt-get updatesudo apt-get upgrade

Учитывайте зависимости, которые изменились. Следующая команда поможет это сделать:

sudo apt-get dist-upgrade

Если всё прошло удачно, у вас на компьютере будет самая свежая версия уже установленного дистрибутива. С неё и нужно начинать полное обновление Линукс Убунту через Терминал.

Установка новой версии

Чтобы обновить Ubuntu, мы используем инструмент «do-release-upgrade».

Для начала потребуется пакет «update-manager-core». Это новая версия Менеджера обновлений:

sudo apt-get install update-manager-core

Далее, введите такую команду:

sudo do-release-upgrade

Мы предлагаем обновить версию до последней официальной. Именно для этого служит опция «-d» в конце команды.

sudo do-release-upgrade —d

Вы можете получить предупреждение о невозможности использования SSH, или же о риске потери соединения. Внимательно ознакомьтесь с ним и примите условия, нажав «y». Все следующие диалоговые окна можно игнорировать, соглашаясь с представленной информацией.

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

Как только новые пакеты будут загружены, Ubuntu предложит удалить старые:

Remove obsolete packages?53 packages are going to be removed.

Continue   Details y

Ответьте «Да», если вы не устанавливали в ОС важных файлов конфигурации и расширений.

Перезагрузите компьютер, как только установка новой версии будет завершена. Если всё прошло удачно, вы увидите приветственное сообщение с номером новой версии.

Выводы

Как видите, в том, чтобы обновить Ubuntu через Терминал, нет ничего сложного. Вы владеете вводом на клавиатуре? Этого уже достаточно, чтобы получить свежую версию ОС.

Пользователь и система

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

whoami

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

who

или

w

В отличие от whoami, эти команды показывает более подробную информацию: кроме имени пользователя вы также узнаете о том, какая используется терминальная линия, время начала сеанса, IP-адрес и некоторые другие данные.

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

Ключи – это специальные аргументы, которые пишутся через пробел после команды и начинаются с одного или двух дефисов. Они определяют параметры, которые будут применены к команде. Как правило, узнать о доступных ключах вы можете, написав команду и —help (либо -help): к примеру,

uname --help

У команды uname вы можете задать ключ -a (или —all), и тогда на экран будет выведена вся информация об операционной системе:

uname -a

Если вас интересуют конкретно данные о ядре, то наберите следующую команду:

uname -rv

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

ps -a

А команда pstree выведет информацию в виде дерева процессов.

Узнать сетевое имя машины вы можете с помощью команды hostname.

Запуск программ в терминале

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

/путь/к/файлу/программы параметры

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

Разработчики придумали обходной путь. Была создана переменная PATH, в которой хранятся все пути к папкам где обычно находятся программы — /bin, /sbin, /usr/bin, /usr/sbin и так далее. Вы можете посмотреть ее содержимое командой:

Когда вы набираете имя программы система ищет исполняемый файл с таким именем по всем папкам из PATH и если находит — то выполняет. Если же такого файла нет, то выдается сообщение — command not found. Таким образом, чтобы запустить одну из системных программ достаточно набрать имя ее исполняемого файла, например:

И можно передать параметры после пробела:

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

Если же вы хотите запустить программу через терминал ubuntu, которая находится в текущей папке, то ситуация будет немного другой. Система выполняет только поиск по папкам из переменной PATH, в текущей директории она не ищет. Поэтому, если вы наберете имя исполняемого файла, то получите ошибку. Нужно указывать полный путь, как вы помните путь к текущей папке будет ./:

Иногда возникает необходимость передать программе, какие-либо особые переменные окружения. Например, переменная EDITOR указывает какой текстовый редактор нужно использовать по умолчанию. Вы можете указать имя переменной и ее значение перед именем команды используя синтаксис:

имя_переменной=значение команда

Например:

По умолчанию эта команда открывает настройки утилиты sudo в редакторе Vim, но с этой переменной окружения настройки откроются в редакторе nano.

Работа со справочными страницами

apropos

— поиск справочных страниц по ключевому слову.

aropos

apropos user
— поиск мануалов, в описании которых встречается слово «user» (User).

apropos -e delete
— поиск мануалов, в описании которых встречается точное слово «delete».

apropos -w «*create*»
— поиск мануалов по маске, в описании которых встречается  слово «create» (creates, created).

info

— аналог команде man, выводит справочные страницы в другом формате.

info

info useradd

info pwd -o pwdinfo.txt
— вывод справки по команде pwd в файл pwdinfo.txt

man

— вызов страниц из указанного раздела. Вызов справочной страницы о команде.

man 

man 3 undocumented

man 5 terminfo

man 

man awk

manpath
— отображение путей хранения справочных страниц.

whatis

— информация о команде одной строкой.

whatis

whatis mkdir

type

— определяет тип команды (выполняемая программа, внутренняя команда, функция оболочки, алиас).

type

type w
 => w is /usr/bin/w

type cd
 => cd is a shell builtin

type sayhi
 => sayhi is a function

type sites
 => sites is aliased to ‘cd /var/www’

help

— короткая справка по встроенным в оболочку командам (builtin).

help

help cd
— справка по команде cd

help pwd
— справка по команде pwd

help factor
— ничего не выведет, factor — не встроенная команда.

команда —help
— показать доступные флаги для команды.

Основы в терминале Linux

Ниже представлена схема типичной команды в терминале ОС Linux:

Следующие команды позволят вам лучше узнать систему:

  • — если вы хотите получить информацию касательно вашей учётной записи;
  • — чтобы понимать, кто на данный момент находится в системе ( — для того, чтобы узнать, откуда был совершен вход);
  • — если вы хотите открыть список блочных устройств хранения данных;
  • — отображает информацию о процессорах;
  • — предоставляет доступ к топологии аппаратного ПО отображения информации (требуются пакеты , );
  • — показывает объём свободной и уже используемой памяти (используйте также );
  • — если вы хотите получить информацию о распределении данных;

Примечание Для PS0: используйте Ctrl+C, чтобы деактивировать неактуальные команды. Что касается PS1: некоторые команды могут быть недоступны. Чтобы проверить, какие именно, введите .

Терминал

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

Запустить терминал можно следующим образом:

В Unity: Главное меню → Набрать в поисковой строке слово Терминалили нажать комбинацию клавиш: Ctrl Alt T

В Gnome FallbackПриложения → Стандартные → Терминал

В Xfce (Xubuntu): Главное меню → Приложения → Система → Терминал

В KDE (Kubuntu): Главное меню → Приложения → Система → Терминал

В LXDE (Lubuntu): Главное меню → Системные → LXTerminal

После запуска терминала мы видим строку с приглашением к вводу команд, например: vladimir@Zotac-Zbox-Nano:~$

vladimir — имя учетной записи пользователя@ — разделитель между учетной записью и именем компьютера Zotac-Zbox-Nano — имя компьютера : — разделитель ~ — в какой папке выполняется команда, ~ это домашняя папка пользователя, если выполните команду ls то получите список файлов из этой папки $ — приглашение к выполнению команды с правами простого пользователя (# будет означать приглашение на выполнение команд с правами администратора)

Содержимое файлов

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

cat file1 | more

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

С русскоязычной документацией nano вы можете ознакомиться по этой ссылке: http://help.ubuntu.ru/wiki/nano

А документация vim доступна в этом разделе: http://help.ubuntu.ru/wiki/vim

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

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

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

zcat test.gz

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

zless test

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

Оболочки, Bash, echo Linux

В терминале у вас есть то, что называется оболочкой. Это часть операционной системы, которая определяет, как будет вести себя терминал, и будет выглядеть после запуска (или выполнения) команд для вас.

Доступны различные оболочки, но самая распространенная из них называется bash, что означает «Bourne again shell». В этом руководстве предполагается, что вы используете bash в качестве оболочки.

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

Команды

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

Команды делятся на два вида:

Команды для управления программами строятся по такой схеме:

название_программы -ключ значение 

Название програмы — это название исполняемого файла из каталогов записанных в переменной $PATH (/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin и др.) или полный путь к исполняемому файлу (/opt/deadbeef/bin/deadbeef) Ключ — пишется после названия программы, например -h, у каждой программы свой набор ключей, они перечислены в справке к программе, ключи используются для указания какие настройки использовать или какое действие выполнить Значение — адрес, цифры, текст, спецсимволы (*, ~, , &, « », _ ), переменные ($HOME, $USER, $PATH)

Выполнить команды можно следующим образом:

Помните, что терминал чувствителен к регистру! Слова User, user и USER в Linux различаются!

Чтение текстовых файлов

cat

— конкатенация (склеивание) файлов. Часто используется для простого просмотра текстового файла.

cat 

cat /etc/passwd
— просмотр содержимого файла.

cat > essay.txt
— копирует содержимое стандартного ввода в файл. Позволяет печатать короткие тексты в файл прямо в консоли, для прекращения печати нажмите Ctrl+D (EOF).

cat -n file1.txt file2.txt
— объединить два файла и вывести номера строк.

grep

— поиск заданной строки в текстовых файлах.

grep 

grep -i jane /etc/passwd
— поиск слова jane в файле /etc/passwd, без учета регистра символов.

grep ‘Sep 02 .* Updated’ yum.log
— поиск строки из нескольких слов с использованием маски.

grep ‘green apple’ pricelist1.txt pricelist2.txt
— поиск строки green apple в нескольких файлах.

grep -c 1994 bdaylist.txt
— показать количество строк, в которых нашлось совпадение с числом 1994.

grep -n 1994 bdaylist.txt
— показать строки и их номера, в которых нашлось совпадение с числом 1994.

grep -r jane /etc
— рекурсивный поиск слова jane во всех файлах и подкаталогах в директории /etc.

grep -w pop songs.txt
— поиск целого слова pop (kpop, poprock, latinpop не будут показаны в результатах).

grep -v pop songs.txt
— поиск наоборот, будут показаны строки, в которых не встречается слово pop.

grep -lr TODO /var/www/example.ru
— поиск файлов в каталоге /var/www/example.ru, в которых встречается слово TODO.

grep -Lr ‘<title>’ /var/www/example.ru
— поиск файлов в каталоге /var/www/example.ru, в которых не встречается слово <title>.

man ps | grep — -f
— поиск значение ключа для команды .

head

— вывод первых 10 строк файла.

head 

head ~/documents/essay.doc

head -n5 ~/documents/essay.doc
— вывод первых 5 строк файла.

less

— мощная утилита для просмотра содержимого файла, более функциональный вариант утилиты more.

less 

less -c pricelist.txt
— вывести содержимое файла с очисткой экрана.

more

— старая утилита просмотра содержимого файла. Не позволяет скролить вверх.

more 

more -5 -p pricelist.txt
— вывести пять строк файла с очисткой экрана.

tac

— тоже самое, что и команда cat только вывод текста происходит снизу вверх (последняя строка становится первой, предпоследняя становится второй и т.д.).

tac 

tac pricelist.txt

tac part1.txt part2.txt > whole.txt
— конкатенация (склеивание файлов) и запись результата в файл whole.txt

tail

— вывод последних 10 строк файла.

tail 

tail /var/log/nginx/error.log

tail -n7 /var/log/nginx/error.log
— вывод последних 7 строк файла.

tr

— осуществляет посимвольную замену, удаление, преобразование символов строки из стандартного ввода.

tr 

tr b v
— заменить все ‘b’ на ‘v’.

tr abc op
— заменить все ‘a’ на ‘o’, все ‘b’ и ‘с’ на ‘p’.

tr b v < source.txt > result.txt
— заменить все ‘b’ на ‘v’ в тексте файла source.txt и записать результат в файл result.txt (source.txt останется без изменений).

cat source.txt | tr b v > result.txt
— альтернативный вариант предыдущему примеру.

tr » »
— заменить последовательность ‘a-d’, на последовательность ‘w-z’.

tr » »
— заменить все символы в верхнем регистре на нижний регистр.

tr » »
— альтернативный вариант предыдущему примеру.

tr -s ‘ ‘ ‘ ‘
— замещает все повторяющиеся символы на один.

tr -s »
— альтернативный вариант предыдущему примеру.

tr -d »
— удалить все цифры из текста.

tr -c ‘a’ ‘o’
— всё, что не ‘a’ и не пустой символ, то ‘o’.

tr -cd »
— всё, что не цифра — удалить.

cat /etc/passwd | tr » ‘ ‘ | tr -s ‘ ‘ >> trash.txt- удалить все знаки пунктуации и отступы (пробелы и переводы строк) из текста файла /etc/passwd, заменить все повторения пробелов одним пробелом и записать результат в конец файла trash.txt. 

uniq

— исключает повторяющиеся строки из сортированного текста.

uniq 

sort buylist.txt | uniq
— исключает повторяющиеся строки из списка.

sort buylist.txt | uniq -d
— выводит повторяющиеся строки из списка.

sort buylist.txt | uniq -ic- выводит количество повторяющихся строк.

wc

— вывод количества строк, слов и символов в файле.

wc 

wc /etc/passwd

wc -w /etc/passwd
— показать только количество слов в файле.

wc -L /etc/passwd
— показать количество символов в самой длинной строке.

Хитрости, которые сэкономят время

Этот список полезных знаков позволит вам в разы ускорить работу с командами:

  • — повторяет последнюю команду;
  • — позволяет изменить команду, сохраняя последний аргумент:

    • — используется, если файл слишком длинный, чтобы поместиться на экране;
    • — используется для повторного открытия в меньшем объёме;
  • —позволяет изменить команду, сохраняя при этом все аргументы:

    • — при использовании должен быть хвост;
    • — нет необходимости вводить остальную часть команды;
  • — используется для создания пустого файла или очистки существующего.
  • — позволит определить, к каким скриптам идёт обращение со стороны веб-сервера.

Перенаправление и конвейер

Перенаправление вывода какой-либо команды задается символом > либо >>. Различие в том, что при использовании > вывод команды будет записан поверх содержимого файла, а при использовании >> вывод дописывается в конец файла.

Этим очень удобно пользоваться для логирования, если вы хотите записать какие-либо данные в файл. К примеру, эта команда запишет все найденные согласно указанными параметрам файлы в файл log (он автоматически появится в той директории, в которой вы работаете):

find /home/users -name ‘file*’ >> log

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

find /home/users -name ‘file*’ | sort -r

Если вы введете данную строку, то сначала будут найдены все файлы, которые соответствуют условию, а затем командой sort они будут отсортированы в обратном порядке (из-за использования ключа -r).

Что такое bash

Bash расшифровывается как Bourne again shell (что можно перевести как «Еще одна оболочка Борна»), название частично заимствованно от более ранней версии командной оболочки UNIX, которая называлась просто Bourne shell («Оболочка Борна» – по фамилии разработчика Стивена Борна).

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector