Линукс команды терминала: Основные команды Linux терминала с примерами использования
Содержание
Полезные команды Linux (Линукс) — все о базовых и системных командах, которые могут понадобиться в работе
Операционная Система Linux – наиболее популярная среди пользователей виртуального хостинга и облачных сервисов.
Подключиться к Linux можно в интерфейсе командной строки или с помощью графического интерфейса (через эмулятор Terminal). Так как чаще всего работа ведется с сервером, то на нем редко используют графический интерфейс и все взаимодействие с Linux происходит через терминал и текстовые команды.
Команды в Linux вводятся в командную строку, каждая запущенная команда – отдельный процесс. Поэтому любому администратору необходимо знать определенный набор команд для успешной работы с сервером и управления файлами.
Обращаем особое внимание, что в Linux почти всегда учитывается регистр, в том числе в именах файлов и каталогов, команд, аргументов и опций.
Подготовили для вас небольшую шпаргалку, в которую собрали команды для командной строки линукс.
Базовые команды Linux
Самые основные команды терминала Linux, которые могут потребоваться при работе – получение справки или инструкции.
man — manual, получение справки
Команда линукс, которая позволяет получить информацию о другой команде. Чтобы вывести справочные данные введите команду man перед командой,о которой вы хотите узнать, например: man ping
Выйти из режима справки можно, нажав клавишу Q.
Если по каким-то причинам команда man не работает, то используйте help
Так как не весь список команд Linux имеет полноценную инструкцию, то можно запросить краткую справку по команде с помощью help.
clear — команда очищает всю информацию, которая была выведена в консоль.
history — с ее помощью показываются ранее введенные команды. По умолчанию показывает 10 последних операций, если после команды поставить число, например, history 20, то будут выведены последние двадцать произведенных действий.
Системные команды для терминала Linux
ping — команда для определения работоспособности ресурса, с ее помощью можно узнать активен или нет определенный ресурс. Указывать можно имя домена или IP-адрес.
Пример команды: ping nic.ru
Для остановки команды нажмите ctrl+c.
traceroure
Команда ping позволяет определить наличие проблемы, если она есть. Чтобы узнать, где обрывается соединение используют команду traceroure. Суть данной команды состоит в том, что поток данных разбивается на небольшие пакеты и передается на целевой узел, а там собирается обратно в единый поток. Каждый пакет проходит определенное количество узлов, пока достигнет своей цели. У каждого пакет свое время жизни, которое и отображается в выводе команды.
Например, traceroute nic.ru
На каждый узел отправляется по три пакета, для каждого из них засекается время прохождения. И если на одном из узлов возникнет проблема (время ответа будет отличаться), вы увидите на каком.
top — команда для отображения запущенных процессов и информации о них. Чтобы остановить выполнение команды нажмите клавишу q. Во время выполнения команды top можно использовать встроенные команды, например:
M — сортировать по используемой памяти,
P — сортировать по загрузке процессора,
1 — показать статистику по ядрам процессора.
ssh – команда для работы по SSH из терминала. Пример команды для перезагрузки веб сервера httpd: ssh user@server «service httpd restart»
Удаленный юзер и сервер в тексте всегда обозначаются как user@server, а по отдельности как и .
whereis – это сервисная утилита, у которой нет графического интерфейса, она полезна в случаях, если требуется узнать место расположения бинарных или исходных файлов на компьютере. Она поможет найти мануалы по выполнению тех или иных команд.
id – команда для отображения системного идентификатора (номер, идентифицирующий пользователя) указанного пользователя. Когда информация определена, то система покажет следующие данные:
- Имя и идентификатор пользователя
- Имя и идентификатор основной группы пользователя
- Имена и идентификаторы дополнительных групп пользователя, если они есть.
Пример: id olga
Результат будет иметь вид: uid=2988(olga) gid=1(staff) В этом примере идентификатор пользователя olga — 2988, имя ее основной группы — staff, идентификатор группы — 1.
host позволяет делать отправку запросов серверам доменных имен. При использовании host пользователь может указать имя сервера доменных имен, который должен обработать запрос. Утилита может осуществлять обратное разрешение доменных имен, например, получать список доменных имен, связанных с заданным IP-адресом. Данная команда схожа по функционалу с утилитой dig.
Команда выглядит следующим образом:
host [параметры] имя-домена-или-ip-адрес [имя-сервера-доменных-имен]
Например, host nic.ru
dig – команда делает отправку запросов серверам доменных имен. При использовании dig пользователь может указать имя сервера доменных имен, который должен обработать запрос, чаще всего команда используется для диагностики серверов доменных имен.
Команда выглядит следующим образом:
dig [@имя-сервера-доменных-имен] [параметры] имя-домена-или-IP-адрес
whois – команда для получения информации о домене.
Например, whois nic.ru
Список команд Linux для работы с файлами и директориями
find – команда для поиска файлов. После нее вводится название файла, который требуется найти. Также с ее помощью можно искать файлы по определенным параметрам, например, find /usr/bin -type f -atime +100 команда означает, что требуется найти все файлы в папке ‘/usr/bin’, со временем последнего обращения к которым прошло более 100 дней.
ls – команда для отображения содержимого директории, в которой вы находитесь. Введите адрес конкретной папки после команды, и вам отобразится ее содержимое. Добавленный аргумент -R показывает файлы из поддиректорий.
Команда ls -la покажет список файлов в текущей директории с учетом скрытых файлов
cd — команда сменить директорию (change directory). С ее помощью происходит перемещение между папками. Например, cd /buh/q1/feb/27. Чтобы переместиться в предыдущую директорию наберите cd- , команда без дополнений cd означает переход в домашнюю папку.
file — с помощью этого запроса вы сможете узнать что перед вами: изображение, директория или текстовый документ, также сможете получить информацию о них (например, для изображений это информация EXIF).
mv — данной командой можно перемещать файлы из одной папки в другую. Например, для переноса файла info.txt на рабочий стол команда выглядит следующим образом: mv info.txt /home/имя учетной записи/Desktop. Чтобы изменить название файла выполняем эту команду с указанием нового названия документа: mv info.txt info2.txt
cp — для создания копии файла в другой директории. В теле команды необходимо путь до файла, который копируем и адрес, куда размещаем скопированный файл: cp info.txt /home/user1/Desktop
Поскольку info. txt находится в текущей директории, до него можно не писать полный путь.
Чтобы скопировать каталог добавляем -r: cp -r Untitled /home/Username/Desktop
Команда: cp -r Untitled test_dir скопирует папку Untitled в test_dir
dd — утилита используется для работы с разделами. Она позволяет делать копии разделов, перемещать их или удалять.
rm — команда, которая удаляет директории и все что в них содержится без возможности восстановления. Пример команды: rm путь до директории, которую нужно стереть с компьютера
Чтобы удалить файл выполните команду rm -f file1, где file1 — файл, требующий удаления.
rmdir dir1 – удалит директорию (папку) с именем dir1
mkdir — команда создает новую директорию (папку). Если вам необходимо создать папку на рабочем столе под новое задание, то наберите команду: mkdir ~/Desktop/Newtask.
cat — показывает содержимое файлов, которое отображается в терминале. Пишем: cat путь до файла, содержимое которого надо осмотреть.
Если файл большой, то используйте сочетание клавиш (для приостановки) и (для продолжения), чтобы вся информация не промелькнула слишком быстро. +q>+s>
grep – команда для поиска текста в указанном файле. Например, grep 750.desktop +q>+s>
head — команда также показывает содержимое файлов, но только первые 10 строк. Количество строк можно изменить, указав параметр -n. +q>+s>
Например, команда: head -n 20 ~/Desktop/info.txt покажет первые двадцать строк документа info. +q>+s>
zip — команда для упаковки файлов в архив в формате .zip. +q>+s>
Команда zip file1.zip file1 создаст сжатый zip-архив. +q>+s>
Команда zip -r file1.zip file1 file2 dir1 — создаст сжатый zip-архив и включит в него нескольких файлов и/или директорий. +q>+s>
Команда unzip file1.zip распакует zip-архив. в терминале Linux означает Ctrl) сохраняем файл и выходим из редактора – Ctrl+X. +q>+s>
Помимо nano можно с помощью команды vi вызвать другой редактор текста — vim. На первый взгляд он кажется сложнее, но если один раз в нем разобраться, то работа с vi, вероятно, покажется вам более удобной. +q>+s>
du – отображает использование диска для данного файла или каталога и каждого из его подкаталогов в байтах. При выполнении без какой-либо опции du отображает использование диска для данного файла или каталога и каждого из его подкаталогов в байтах. +q>+s>
chmod — команда для изменения прав доступа к файлам и директориям. Например, команда может выглядеть так: +q>+s>
chmod u=rwx,g=rx,o=r file2 +q>+s>
Она устанавливает следующие разрешения для файла file2: +q>+s>
- пользователь (user) может читать (read), писать (write) и выполнять (xecute) его; +q>+s>
- члены группы (group) могут прочитать (read) и выполнить (xecute) его; +q>+s>
- а также другие (others) могут только читать (read) его. +q>+s>
chown – команда для изменения владельца файлов или директорий. +q>+s>
Пример команды: chown [параметры] <имя владельца:имя группы владельцев> <имя файла или директории> +q>+s>
Назначим пользователя pavel владельцем файла picture.jpg: chown pavel picture.jpg +q>+s>
Команды консоли линукс по управлению пользователями +q>+s>
groupadd – команда для создания группы пользователей +q>+s>
Введите в консоли groupadd group_name для создания новой группы с названием group_name +q>+s>
Для удаления группы group_name введите: groupdel group_name +q>+s>
Чтобы переименовать группу потребуется команда: groupmod -n new_group_name old_group_name +q>+s>
useradd – команда для создания нового пользователя. +q>+s>
Например, useradd user2. +q>+s>
useradd -p user2 — задать пароль пользователя user2. +q>+s>
Для удаления пользователя и его домашнего каталога: userdel -r user2 +q>+s>
Чтобы создать пользователя user2, назначить ему домашний каталог /home/user2, включить в группу admin и оставить комментарий Nome Cognome, введите команду: useradd -c «Nome Cognome» -g admin -d /home/user2 -s /bin/bash user2 +q>+s>
passwd — команда для смены пароля. Сменить пароль root пользователю user2: passwd user2 chage -E 2023-12-01 user2 — установить дату окончания действия учётной записи пользователя user2. +q>+s>
whoami — команда для вывода имени текущего пользователя, находящегося в текущий момент а системе. Используется без дополнительных аргументов. +q>+s>
w — команда, которая покажет пользователей, залогинившихся в данный момент в системе. Кроме этого выдаётся информация: длительность подключения, адрес с которого произошло было выполнено подключение, команде, которую выполняет пользователь. +q>+s>
su — команда для подключения к системе с правами суперпользователя (root). Перед началом работы с полным правами потребуется ввод пароля. Для выхода необходимо выполнить команду logout ищи закрывать терминал. +q>+s>
sudo — в отличие от предыдущей команды, команда sudo даёт выполнение только одной команды с правами суперпользователя. Перед началом выполнением также потребуется пароль, но текущего пользователя. +q>+s>
Заключение +q>+s>
Существует огромное количество команд для работы с терминалом Linux. Мы рассмотрели наиболее часто используемые у пользователей. У начинающих администраторов сразу могут возникнуть сложности с запоминанием команд, но постоянная практика поможет это исправить. +q>+s>
Основные команды Linux | Cloud4Y
Возможно, вы уже видели нашу статью «23 команды для Git». А в этой статье вы познакомитесь с основными командами для Linux-терминала. С их помощью вы научитесь ориентироваться в пространстве, управлять директориями и файлами, обновляться и работать с пользователями. Готовы? Тогда приступаем!
Базовые команды
1. Команда pwd
(Print Working Directory) очень полезна, если у вас нет ничего, кроме командной строки под рукой. Ответ системы на эту команду помогает понять, где вы находитесь, в какой директории.
2. Команда ls
нужна, чтобы понять, что расположено в директории. Но правильнее использовать её более конкретную версию, ls -l
. В этом случае консоль выведет хорошо детализированный список, где указаны дата создания файла, его размер, автор и выданные файлу права.
3. Команда man и её разновидность help используется, чтобы получить полную справочную информацию по конкретной команде или общую информацию об имеющихся возможностях. Допустим, если ввести man bash, то система выдаст руководство по терминалу.
4. Для автозавершения команды можно дважды нажать клавишу Tab. Тогда командная строка Linux предложит вам доступные варианты завершения команды. Это ускоряет и упрощает процесс ввода команд.
5. Команда clear
очищает всю информацию, которая ранее была выведена на консоль.
6. Команда history
наоборот, показывает 10 последних команд, которые вводились. Запрос можно конкретизировать, написав history 14
, например. Тогда в консоли отобразится 14 последних команд.
7. С помощью команды cd:
можно перейти в другую директорию по абсолютному (cd /home/work/log) или относительному пути (cd log
— команда перейти в /home/work/log из директории /home/work, например). Относительный — это значит относительно вашей текущей директории, где вы сейчас находитесь.
8. Команда cd ..
позволяет подняться наверх на один уровень, cd ../..
— на два и так далее.
Получить консультацию об облачных сервисахЗаказать звонок
Работа с директориями и файлами
Теперь поговорим о работе с папками и файлами в Linux.
9. При помощи команды mkdir:
можно создать новый каталог в системе. Например, mkdir: Cloud4Y
— это команда на создание папки с названием Cloud4Y.А если написать mkdir: /work/Cloud4Y
, то папка создастся в директории /work.
10. Команда touch:
используется для создания файла. Например, touch: back.log
создаёт пустой файл с названием «back.log», который можно позднее открыть и редактировать.
11. Для копирования файлов используется команда cp что_копировать куда_копировать
. Например, cp back.log /home/work/later
— указав относительный путь, мы копируем файл в директорию /home/work/later. Но будьте осторожны, если в папке «куда копировать» файл с таким именем уже есть, система не будет ничего спрашивать, а перезапишет его.
12. Копировать можно и директорию целиком. Для этого в команду вводится ключ R. Например, cp -r путь_к_копируемой_папке новое_место_хранения
. Это выглядит следующим образом: cp /opt/dev/log /home/work/later
.
13. Используйте вместо cp
(copy) команду mv
(move), чтобы не копировать, а сразу переместить файл. Например, mv back.log /home/work/later
. Чтобы переместить файл, находясь в любом другом месте, используйте абсолютный путь: mv /opt/ dev/log/back.log /home/work/later
.
14. При желании можно переименовать файл в момент переноса. Это выглядит примерно так mv back.log /home/work/later/todo2023_02_08.log
15. Для переименования директории используется примерно такой же принцип: mv /opt/ dev/log/ /home/work/later/
.
16. Команда rm
(remove) позволяет удалять файлы. Например, rm Wazzup.txt
удалит файл Wazzup.txt, а rm *
сотрёт все файлы в текущей директории. Для удаления папки нужно добавить флаг -r. Вот так, например: rm -r Cloud4Y_folder
.
17. При удалении некоторых файлов система может уточнить, действительно ли вы хотите это сделать. Ответить один-два раза можно, но когда удаляется под сотню таких файлов, лучше воспользоваться командой rm -rf Cloud4Y_folder
, благодаря которой всё удалится без лишних вопросов.
18. Очень хорошая команда для создания архива, способная работать даже в пустой системе: tar
(в комбинации с флагом cvzf для создания стандартного архива). Например, команда tar -cvzf myarchive.tar.gz /home/work/later
делает архив папки /home/work/later.
19. Для распаковки нужно поменять флаг «c» на «x» и удалить «z»: tar -xvf myarchive.tar.gz
.
Работа с приложениями
На Windows установка приложения — это запуск exe-файла типа Setup с тыканием «Далее» до победного конца. В Linux процесс выглядит иначе. Есть менеджер пакетов (приложений), который вызывается для установки конкретного приложения. Менеджер yum используется на red hat, centos, а dpkg, apt на debian, например.
20. Для установки достаточно написать в консоли команду yum install имя_пакета
или apt install имя_пакета
. Удаление осуществляется похожим способом: apt remove имя_пакета
(или yum remove
).
21. Проверить наличие свободного места на диске можно при помощи команды df -h
. Отдельно вес папки вы узнаете, если напишете в консоли du –sh
или du -sh *
, чтобы увидеть вес всех папок.
Управление пользователями
22. Команда useradd
создаёт новую учетную запись. Например useradd Cloud4Y_user
. Но свежесозданному аккаунту нужен не только логин, но и пароль. Его можно задать следующей командой.
23. passwd
— задаёт пароль для учётной записи. Сразу после создания аккаунта нужно написать passwd Cloud4Y_user
, чтобы система предложила задать пароль для этого пользователя. Учтите, при наборе пароля вы не увидите даже звёздочек, но система учтёт каждую нажатую клавишу.
24. Команда userdel удаляет выбранную учётную запись. Например, так: userdel Cloud4Y_user
.
25. Отдельно стоит упомянуть команду выключения Linux, shutdown
. Её можно дополнить следующим образом: shutdown время сообщения
. Например, shutdown 10:10 reset_terminal
.
Итак, команды, которые вам точно надо знать, это pwd
, cp
, mv
, mkdir
, touch
. Другие перечисленные тоже важны, но для полного погружения в мир консольных команд для Linux рекомендуем обратиться к официальной документации.
cloud server
Что такое команды Curl в Linux? Полное руководство с примерами.
ВПС
10 марта 2023 г.
Edward S.
4min Read
Команда cURL — важный инструмент Linux, обычно используемый для передачи данных и устранения неполадок с подключением. cURL поддерживается libcurl, бесплатной библиотекой для передачи URL-адресов на стороне клиента.
Давайте углубимся и узнаем, как его использовать.
Что такое команда cURL?
cURL (клиентский URL) — это инструмент командной строки, который позволяет передавать данные на сервер или с сервера без взаимодействия с пользователем, используя поддерживаемую библиотеку libcurl. cURL также можно использовать для устранения проблем с подключением.
Проверить версию cURL
Как и с любой командой Linux, прежде чем мы начнем работать с cURL, нам нужно войти в наш VPS. Если вам нужна помощь, ознакомьтесь с этим руководством по SSH.
Во-первых, давайте проверим, какая версия cURL доступна, с помощью следующей команды:
curl --version
Вывод покажет версию cURL и список поддерживаемых протоколов. Теперь мы можем посмотреть на некоторые примеры команд cURL
Базовый синтаксис команд cURL
Давайте узнаем, как использовать команды cURL. Базовый синтаксис cURL выглядит следующим образом:
curl [ОПЦИИ] [URL]
Самое простое использование cURL — отображение содержимого страницы. В приведенном ниже примере отображается домашняя веб-страница testdomain.com .
curl testdomain.com
Будет отображен полный исходный код домашней страницы домена. Если протокол не указан, curl интерпретирует это как HTTP.
Параметры командного файла cURL
Команды cURL могут загружать файлы из удаленного расположения. Вы можете сделать это двумя способами:
- -O сохранит файл в текущем рабочем каталоге с тем же именем, что и удаленный.
- -o позволяет указать другое имя файла или местоположение
Пример этого показан ниже:
curl -O http://testdomain.com/testfile.tar.gz
Приведенная выше команда сохранит это как testfile.tar.gz .
curl -o newtestfile.tar.gz http://testdomain.com/testfile.tar.gz
Приведенная выше команда сохранит это как newtestfile.tar.gz .
Если по какой-либо причине загрузка прерывается, вы можете возобновить ее с помощью cURL. Вы можете сделать это с помощью следующей команды:
curl -C - -O http://testdomain.com/testfile.tar.gz
Используя cURL, мы также можем загрузить несколько файлов, как показано ниже:
curl - O http://testdomain.com/testfile.tar.gz -O http://mydomain.com/myfile.tar.gz
Если вы хотите загрузить несколько файлов с нескольких URL-адресов, перечислите их все в файле. Команды cURL можно комбинировать с xargs для загрузки различных URL-адресов.
Например, если у нас есть файл allUrls.txt , который содержит список всех URL-адресов для загрузки, то приведенный ниже пример можно использовать для загрузки всех файлов.
xargs –n 1 curl -O < allUrls.txt
cURL Команды для HTTP
cURL также можно использовать при наличии прокси-сервера. Если вы находитесь за прокси-сервером, прослушивающим порт 8090 на сайте sampleproxy.com, загрузите файлы, как показано ниже:
curl -x sampleproxy.com:8090 -U имя пользователя:пароль -O http://testdomain.com/testfile. tar.gz
В приведенном выше примере можно пропустить -U имя пользователя:пароль , если прокси-сервер не требует метода аутентификации.
Типичный запрос HTTP всегда будет содержать заголовок. Заголовок HTTP отправляет дополнительную информацию об удаленном веб-сервере вместе с фактическим запросом. Хотя с помощью инструментов разработчика браузера вы можете проверить информацию заголовка, вы можете проверить ее с помощью команды cURL.
Ниже приведен пример получения информации заголовка с веб-сайта.
curl -I www.testdomain.com
Используя cURL, вы можете сделать запрос GET и POST . Запрос GET будет выглядеть следующим образом:
curl http://mydomain.com
Пример запроса POST будет таким, как показано ниже:
curl –data «text=Hello» https:// myDomain.com/firstPage.jsp
Здесь text=Hello — это параметр запроса POST. Это поведение будет похоже на HTML-формы.
Вы также можете указать несколько методов HTTP в одной команде cURL. Сделайте это с помощью – следующий вариант , например:
curl –data «text=Hello» https://myDomain.com/firstPage.jsp --next https://myDomain.com/displayResult.jsp
Содержит POST запрос, за которым следует запрос GET.
Каждый HTTP-запрос будет иметь пользовательский агент, который отправляется как часть запроса. Это указывает на детали веб-браузера клиента. По умолчанию запрос cURL содержит curl и номер версии в качестве сведений об агенте пользователя. Пример вывода показан ниже:
«GET / HTTP/1.1» 200 «_» «curl/7/29/0»
Вы можете изменить эту информацию пользовательского агента по умолчанию с помощью следующей команды:
curl -I http://mydomain.com -- user-agent «Мой новый браузер»
Теперь измененный вывод будет:
«GET / HTTP/1.1» 200 «_» «Мой новый браузер»
cURL для файлов cookie
команды cURL можно использовать для проверки того, что файлы cookie загружаются по любому URL-адресу. Итак, если вы обращаетесь к https://www.samplewebsite.com , то вы можете вывести в файл, сохранить куки и получить к ним доступ с помощью cat или редактора VIM.
Ниже приведен пример такой команды:
curl --cookie-jar Mycookies.txt https://www.samplewebsite.com /index.html -O
Аналогично, если у вас есть файлы cookie в файле, то Вы можете отправить его на сайт. Пример такой команды показан ниже:
curl --cookie Mycookies.txt https://www. samplewebsite.com
cURL для FTP
Команда cURL поддерживает FTP! Вы можете использовать их для загрузки файлов с удаленного сервера.
curl -u имя пользователя:пароль -O ftp://sampleftpserver/testfile.tar.gz
В приведенной выше команде ftp://sampleftpserver — это FTP-сервер, который принимает соединения. Имя пользователя и пароль можно не указывать для анонимных FTP-соединений. Введите команду и наблюдайте, как заполняется индикатор выполнения.
Вы также можете загружать файлы с помощью следующей команды:
curl -u имя пользователя:пароль -T testfile.tar.gz ftp://sampleftpserver
Опять же, мы можем пропустить имя пользователя и пароль для анонимных FTP-соединений.
Ограничение выхода cURL
При использовании cURL вы не можете знать, насколько большим будет вывод. Вы можете ограничить пропускную способность, чтобы убедиться, что она не регулируется cURL.
Приведенная ниже команда ограничивает пропускную способность до 100 КБ:
curl --limit-rate 100 КБ http://testdomain.com/samplefile.tar.gz -O
Заключение
cURL — мощная и широко используемая команда. Это полезно, когда вы зависите от командной строки. Он имеет несколько опций и поддерживает несколько протоколов. Это отличная причина выучить эту команду!
Помните, если вы хотите изучить некоторые расширенные команды, просто обратитесь к руководству, которое должно быть во всех версиях Unix:
man curl
Мы надеемся, что это руководство дало вам хорошую отправную точку для использования cURL! Как вы будете использовать эту команду? Дайте нам знать об этом в комментариях!
Откройте для себя другие команды Linux для управления сервером
Как проверить место на диске в Linux
Как рассчитать выполнение процесса с помощью команды Time
Как передать файлы с помощью команды Scp
Как отслеживать изменения с помощью команды Watch
Как выключить и перезапустить сервер
Как передать и синхронизировать данные с помощью Rsync
Эдвард — редактор контента с многолетним опытом написания статей в области ИТ, маркетинга и системного администрирования Linux. Его цель — побудить читателей создать впечатляющее присутствие в Интернете. Еще он очень любит собак, гитары и все, что связано с космосом.
Другие работы Эдварда С.
Как установить и использовать Sed Command в Linux
ВПС
22 декабря 2022 г.
Laura Z. & Noviantika G.
7min Read
В Unix-подобных операционных системах sed означает потоковый редактор , который выполняет такие функции, как поиск, замена, вставка и удаление строк из указанного файла или диапазона. . Он поддерживает регулярные выражения, что позволяет программе выполнять сложное сопоставление с образцом.
Команда Linux sed чаще всего используется для замены текста. Он ищет указанный шаблон в файле и заменяет его нужной строкой.
Кроме того, он изменяет файлы построчно, все из командной строки. Все изменения, сделанные на вашем виртуальном частном сервере (VPS) с помощью команд sed, являются временными, сохраняя исходный файл неизменным.
В этой статье объясняется общий синтаксис программы, допустимые параметры и подкоманды. Мы также рассмотрим 10 основных способов использования команды sed.
Синтаксис команды sed
Вот как выглядит общий синтаксис команды sed:
sed options... [script] [input_file...]
Вы можете добавить следующие параметры командной строки, чтобы изменить операцию:
-
-b
или--binary —
открывает входные файлы в двоичном режиме, чтобы строки заканчивались переводом строки. -
--debug
-
--follow-symlinks —
-
--help —
-
-i
--in-place [=SUFFIX]
-
--posix
— отключает все расширения POSIX sed и упрощает написание переносимых скриптов. -
--version
— выводит текущую версию программы sed. -
-Э, -р,
или--regexp-extended
– использует расширенное регулярное выражение. -
-e script
или--expression=script
— добавляет указанный скрипт для запуска при обработке ввода. -
-f файл-скрипта
— добавляет содержимое определенного файла скрипта для запуска с командой при обработке ввода. -
-l N
или--line-length=N
— указывает желаемую длину переноса строки для команды -l. Его значение по умолчанию —70
. -
-n
,--quiet,
или--silent
– отключает печать вывода, если пользователь не использует команду -p. -
-s
или--separate
– считает указанные файлы отдельными, а не единым непрерывным длинным потоком. -
--sandbox
— гарантирует, что команда sed работает только с входными файлами в командной строке и отключает внешние программы. -
-u
или--unbuffered
– минимизирует выходной и входной буфер. -
-z
,--null-data
или--zero-terminated
– входные данные рассматриваются как набор строк, заканчивающихся нулевым байтом.
Приведенные ниже подкоманды относятся к GNU sed. Некоторые из них являются стандартными POSIX, а другие являются расширениями GNU sed:
-
a \ text
— помещает переменнуюtext
в вывод перед переходом к следующей строке. -
e
– выполняет команду и отправляет результаты в выходной поток. -
d
– удаляет пространство шаблона и сразу запускает следующий цикл. -
D
— удаляет текст из пространства шаблона до первой новой строки. Перезапускает цикл с результирующим пространством шаблонов без чтения текущей строки или ввода. -
g
илиG
– заменяет содержимое пространства шаблонов на содержимое пространства удержания. -
l
– печатает пространство шаблонов в однозначном виде. -
q [код выхода]
— прекращает обработку ввода, затем sed завершает работу. -
s command
илиs/regexp/replacement/[flags]
— сопоставляет пространство шаблонов с предоставленным regexp. Если найдено, программа заменит совпавшую строку заменой. -
n
илиN
– печатает пространство шаблона и заменяет его следующей строкой. Если ввода больше нет, он выйдет из sed без обработки скрипта. -
v
— заставляет sed обнуляться, если он не поддерживает расширения GNU. -
z
– очищает содержимое пространства шаблонов. -
x
– меняет местами содержимое трюма и шаблона. -
=
— печатает текущий номер строки ввода. -
:
— указывает расположение меток для команд ветвления, таких как b, t и T.
Как установить команду sed
Пакет sed входит в состав большинства дистрибутивов Linux. Однако, если он не установлен по умолчанию, выполните следующие действия:
- Получите доступ к SSH через VPS и войдите в систему, используя учетную запись sudo .
- Обновите текущую систему, введя эту команду:
sudo apt-get update
- Установите пакет sed, введя следующую команду:
sudo apt-get install sed
- Проверьте версию, выполнив следующую команду:
sed --version
Примеры команд sed
В следующих разделах мы представим десять примеров sed, чтобы понять основы использования потокового редактора sed.
Как заменить строку с помощью команды sed
Команда sed обычно используется для замены текста. Он будет искать указанный шаблон в файле и заменять его нужной строкой.
Для этого используйте команду замены s и разделители для разделения полей. Замените значение «old_string» исходным именем и «new_string» предпочтительным текстом:
sed ‘s/old_string/new_string/’ samplefile.txt
Например, заменить слово «изображения» с «Фото для замены n-го вхождения шаблона в строке с помощью команды sed Вставьте соответствующий символ, косую черту ( / ) или вертикальную черту ( | ) , и замените символ решетки ( # ) на желаемое число для замены n-го вхождения шаблона в строке. Вот основной синтаксис: Например, чтобы заменить первое вхождение слова «музыка» на «песня» в строке внутри файла playlist. txt , введите: По умолчанию sed заменяет только первое вхождение указанного строка в каждой строке. Он ищет исходный экземпляр, заменяет его и переходит к следующей строке ввода. Чтобы заменить все вхождения шаблона в одной строке, добавьте флаг замены /g для глобальной замены. Вот сценарий sed: Например, чтобы заменить все вхождения, содержащие «орел» , на «сокол» в строке внутри animals.txt , запустите: Чтобы заменить все шаблоны от n до всех вхождений в одной строке, объедините /# и /g . Вот скрипт sed: Например, приведенная ниже команда заменяет слово «рыбы» на «водолей» из второго, третьего и четвертое вхождение до последнего вхождения в файле sed 's/old_string/new_string/#' samplefile.txt
sed 's/music/song/1' playlist.txt
Как заменить все вхождения шаблона в строке с помощью команды sed
sed 's/old_string/new_string/g' samplefile.txt
sed 's/eagle/falcon/g' animals.txt
Как заменить и вхождение с n-го на все вхождения в строке с помощью команды sed
sed 's/old_string/new_string/#g' samplefile. txt
sed ‘s/pisces/aquarius/2g’ astrology.txt
Как заключать в скобки первый символ каждого слова с помощью команды sed
Вот пример команды sed для печати первого символа каждого слова в скобках:
echo «желаемое_предложение» | sed 's/\(\b[A-Z]\)/\(\1\)/g'
Например, чтобы отобразить первый символ «Пример команды sed» в скобках, введите:
echo "Пример команды sed" | sed ‘s/\(\b[A-Z]\)/\(\1\)/g’
Как заменить строку в определенном номере строки с помощью команды Sed
Чтобы заменить строку на определенный номер строки, добавьте нужное значение перед s . Вот общий синтаксис:
sed '#s/old_string/new_string/' samplefile.txt
Например, чтобы заменить слово «торт» на «хлеб» во второй строке food. txt , введите:
sed '2 s/cake/bread/' food.txt
Как дублировать замененную строку с флагом /p с помощью команды sed
Чтобы дублировать замененную строку в окне терминала, используйте /p или печать флага . Однако, если строка не имеет шаблона поиска и не подставляется, команда выводит его только один раз.
Вот общий синтаксис:
sed 's/old_string/new_string/p' samplefile.txt
Например, чтобы заменить слово «телефоны» на «планшеты» на гаджетах . файл txt и продублируйте результаты в окне терминала, запустите:
sed 's/phones/tablets/p' gadgets.txt
Как заменить строку в диапазоне строк с помощью команды sed
Добавьте номера строк в команду sed, чтобы заменить несколько строк в определенном диапазоне. Замените первый # на начальный текстовый номер, а второй # на последнюю строку, которую вы хотите включить.
Вот основной синтаксис:
sed '#,# s/old_string/new_string/'0036, расположенный в третьей, четвертой и пятой строке файла country.txt , со словом «france» :sed '3,5 s/germany/france/' country.txtHow to Печать только замененных строк с помощью команды sed
По умолчанию sed отображает все содержимое файла и замещающий его текст в выходных данных. Добавьте в команду необходимые атрибуты, если у вас много текста и вы хотите выделить измененные строки.
Параметр -n отключает автоматическую печать, а параметр 9Команда 0035 p указывает sed отображать строки, в которых происходит замена.
Вот общий синтаксис:
sed -n 's/old_string/new_string/p' samplefile.txtНапример, чтобы заменить третий экземпляр «зеленый» на «синий » 9003 6 в строку внутри файла colors.txt и распечатайте измененный текст в окне терминала, введите:
sed -n 's/green/blue/3p' colors. txtКак удалить строки из определенного файла с помощью Сед Команда
Команда удаления удаляет строки из текущего входного файла, не открывая содержимое. Доступно пять сценариев sed:
Удаление определенной строки ввода с помощью подкоманды d :
sed '#d' , выполните следующее:sed '1d' city.txtУдаление нескольких строк в определенном диапазоне:
sed '#,#d' samplefile.txtЗамените символы # на начало и конец диапазона строк. Например, чтобы удалить первую, вторую и третью строку из файла cars.txt , введите следующее:
sed '1,3d' cars.txtУдаление последней строки содержимого файла:
sed ' $d' samplefile.txtНапример, чтобы удалить последнюю строку из файла computers.txt , выполните следующее:
sed '$d' computer.txtУдаление с n-й до последней строки:
sed 'nth,$d' samplefile. txtНапример, чтобы удалить предпоследнюю строку ввода из файла books.txt , введите:
sed '2,$d' books.txtУдаление строки соответствия шаблону:
sed '/pattern/d' /оабо /d' filestrings.txtЗаключение
sed — это редактор текстового потока, встроенный в системы Unix и оболочки командной строки для выполнения фундаментальных преобразований текста во входном потоке. Это позволяет вам выбирать, заменять, дублировать, добавлять, удалять и изменять текст, не открывая файл.
Являясь частью репозитория команд Linux, он работает, создавая один проход по входным данным, что делает его более эффективным, чем большинство других утилит. Он также может фильтровать текст в конвейере, что отличает программу от других редакторов командной строки. Кроме того, он поддерживает регулярные выражения, что позволяет выполнять расширенное сопоставление текста.
Мы надеемся, что эта статья помогла вам узнать больше о команде sed. Если у вас есть какие-либо вопросы или предложения, оставьте их в разделе комментариев ниже.
Команда Linux sed: часто задаваемые вопросы
В этом разделе приведены ответы на наиболее часто задаваемые вопросы о команде sed.
Чем sed отличается от grep?
Как sed, так и grep являются инструментами обработки текста в Linux. Помимо редактирования строки, первый предлагает дополнительные команды преобразования текста, такие как замена, которые grep не поддерживает.
Команда grep в основном используется для поиска определенных текстовых шаблонов в больших файлах и вывода на печать.
Как используется sed в сценарии Bash?
В сценарии bash команда sed имеет три основных назначения: печать в стандартный вывод, удаление текста и замена определенной строки. Программа определяет, на какой линии она будет работать из указанного диапазона адресов.
Как вызвать переменную в команде sed?
Переменная — это символ, которому мы присваиваем значение, и добавление его в команду sed обеспечивает лучшую читаемость.