Консольные команды linux: Базовые команды Linux для тестировщиков и не только / Хабр

Содержание

44 команды Linux которые вы должны знать

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

Я уже писал о командах терминала Linux, но тогда затронул лишь несколько самых интересных, самых полезных команд, рассчитывая на то, что пользователь уже достаточно знаком с возможностями терминала. Но нужно сделать ещё одну статью, рассчитанную на новичков, тех, кто только делает свои первые шаги в освоении Linux.

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

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

Содержание статьи:

Команды Linux для управления файлами

1. ls

Утилита для просмотра содержимого каталогов. По умолчанию показывает текущий каталог. Если в параметрах указать путь, то она перечислит содержимое конечного каталога. Полезные опции -l (List) и -a (All). Первая форматирует вывод в виде списка с более подробной информацией, а вторая включает показ скрытых файлов. Подробнее здесь.

2. cat

Печатает содержимое файла, переданного в параметре, в стандартный вывод. Если передать несколько файлов, команда склеит их. Также можно перенаправить вывод в ещё один файл с помощью символа ‘>’. Если нужно вывести только определенное количество строк, используйте опцию -n (Number). Подробнее тут.

3. cd

Позволяет перейти из текущего каталога в указанный. Если запустить без параметров — возвращает в домашний каталог. Вызов с двумя точками возвращает на уровень вверх относительно текущего каталога. Вызов с тире (cd -) возвращает к предыдущему каталогу. Более детально здесь.

4. pwd

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

5. mkdir

Создание новых каталогов. Наиболее удобная опция -p (Parents), позволяет создать всю структуру подкаталогов одной командой, даже если они ещё не существуют. Подробнее о том как создать папку читайте в отдельной статье.

6. file

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

7. cp

Копирование файлов и каталогов. Она не копирует каталоги по умолчанию рекурсивно (то есть все поддиректории и все файлы в поддиректориях), поэтому не забудьте добавить опцию -r (Recursive) или -a (Archive). Последняя включает режим сохранения атрибутов, владельца и временного штампа в дополнение к рекурсивному копированию.

8. mv

Перемещение или переименование файлов и каталогов. Примечательно, что в Linux это одна и та же операция. Переименование — это перемещение файла в ту же папку с другим именем. Подробнее — здесь.

9. rm

Удаляет файлы и папки. Очень полезная команда Linux: с её помощью вы можете убрать весь беспорядок. Если нужно рекурсивное удаление, используйте опцию -r. Однако будьте осторожны: конечно, для того чтобы повредить систему вам нужно будет серьёзно постараться, однако можно удалить собственные важные файлы. Rm удаляет файлы не в корзину, из которой потом всё можно будет восстановить, а полностью стирает. Действия оператора rm необратимы. Поверьте, ваши оправдания в духе «rm съела мою курсовую» никому не будут интересны. Подробнее в этой статье.

 10. ln

Создает жёсткие или символические ссылки на файлы. Символические или программные ссылки — это что-то похожее на ярлыки в Windows. Они предоставляют удобный способ доступа к определённому файлу. Символические ссылки указывают на файл, но не имеют никаких метаданных. Жёсткие ссылки, в отличие от символических, указывают на физический адрес области диска, где хранятся данные файла.

11. chmod

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

12. chown

Изменяет владельца файла. Только суперпользователь может изменять владельцев. Для рекурсивного изменения используйте опцию -R.

13. find

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

14. locate

В отличие от find, команда locate ведёт поиск в базе данных updatedb для шаблонов имён файлов. Эта база данных содержит снимок файловой системы, что позволяет искать очень быстро. Но этот поиск ненадёжен, потому что вы не можете быть уверены, что ничего не изменилось с момента последнего снимка. Подробнее — тут.

15. du

Показывает размер файла или каталога. Самые полезные опций: -h (Human), которая преобразует размеры файлов в легко читаемый формат, -s (Summarize), которая выводит минимум данных, и -d (Depth), устанавливающая глубину рекурсии по каталогам.

16. df

Анализатор дискового пространства. По умолчанию вывод достаточно подробный: перечислены все файловые системы, их размер, количество использованного и свободного пространства. Для удобства есть опция -h, делающая размеры легко читаемыми.

17. dd

Как сказано в официальном руководстве, это команда терминала для копирования и преобразования файлов. Не очень понятное описание, но это всё, что делает dd. Вы передаёте ей файл-источник, пункт назначения и пару дополнительных опций. Затем она делает копию одного файла в другой. Вы можете задать точный размер данных, которые нужно записать или скопировать. Работает утилита со всеми устройствами. Например, если вы хотите перезаписать жёсткий диск нулями из /dev/zero, можете сделать это. Также она часто используется для создания LiveUSB или гибридных ISO образов.

18 mount / umount

Это команды консоли Linux для подключения и отключения файловых систем Linux. Можно подключать всё: от USB накопителей, до ISO образов. И только у суперпользователя есть права для этого.

Linux команды консоли для работы с текстом

19. more / less

Это две простенькие команды терминала для просмотра длинных текстов, которые не вмещаются на одном экране. Представьте себе очень длинный вывод команды. Или вы вызвали cat для просмотра файла, и вашему эмулятору терминала потребовалось несколько секунд, чтобы прокрутить весь текст. Если ваш терминал не поддерживает прокрутки, вы можете сделать это с помощью less. Less новее, чем more и поддерживает больше опций, поэтому использовать more нет причин.

20. head / tail

Ещё одна пара, но здесь у каждой команды своя область применения. Утилита head выводит несколько первых строк из файла (голова), а tail выдает несколько последних строк (хвост). По умолчанию каждая утилита выводит десять строк. Но это можно изменить с помощью опции -n. Ещё один полезный параметр -f, это сокращение от follow (следовать). Утилита постоянно выводит изменения в файле на экран. Например, если вы хотите следить за лог файлом, вместо того, чтобы постоянно открывать и закрывать его, используйте команду tail -nf.

21. grep

Grep, как и другие инструменты Linux, делает одно действие, но делает его хорошо: она ищет текст по шаблону. По умолчанию она принимает стандартный ввод, но вы можете искать в файлах. Шаблон может быть строкой или регулярным выражением. Она может вывести как совпадающие, так и не совпадающие строки и их контекст. Каждый раз, когда вы выполняете команду, которая выдает очень много информации, не нужно анализировать всё вручную — пусть grep делает свою магию.

22. sort

Сортировка строк текста по различным критериям. Наиболее полезные опции: -n (Numeric), по числовому значению, и -r (Reverse), которая переворачивает вывод. Это может быть полезно для сортировки вывода du. Например, если хотите отсортировать файлы по размеру, просто соедините эти команды.

23. wc

Утилита командной строки Linux для подсчёта количества слов, строк, байт и символов. Подробнее тут.

24. diff

Показывает различия между двумя файлами в построчном сравнении. Причём выводятся только строки, в которых обнаружены отличия. Измененные строки отмечаются символом «с», удалнные — «d», а новые — «а». Подробнее — здесь.

Кстати, я подготовил ещё одну подробную статью, в которой описан именно просмотр содержимого текстового файла в Linux c помощью терминала.

Команды Linux для управления процессами

25. kill / xkill / pkill / killall

Служат для завершения процессов. Но они принимают различные параметры для идентификации процессов. Kill нужен PID процесса, xkill — достаточно кликнуть по окну, чтобы закрыть его, killall и pkill принимают имя процесса. Используйте ту, которая удобна в определенной ситуации.

26. ps / pgrep

Как уже говорилось, чтобы уничтожить процесс, нужен его идентификатор. Один из способов получить его, это утилита ps, которая печатает информацию о запущенных процессах. По умолчанию вывод очень длинный, поэтому используйте опцию -e, чтобы увидеть информацию об определённом процессе. Это только снимок состояния на момент вызова, и информация не будет обновляться. Команда ps с ключом aux выводит полную информацию о процессах. Pgrep работает следующим образом: вы задаете имя процесса, а утилита показывает его идентификатор. Подробнее о команде ps описано тут.

27. top / htop

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

28. time

Время выполнения процесса. Это секундомер для выполнения программы. Полезно, если вам интересно, насколько сильно ваша реализация алгоритма отстает от стандартной. Но, несмотря на такое название, она не сообщит вам текущее время, используйте для этого команду date.

Команды Linux окружения пользователя

29. su / sudo

Su и sudo — это два способа выполнить одну и ту же задачу: запустить программу от имени другого пользователя. В зависимости от вашего дистрибутива вы, наверное, используете одну или другую. Но работают обе. Разница в том, что su переключает вас на другого пользователя, а sudo только выполняет команду от его имени. Поэтому использование sudo будет наиболее безопасным вариантом работы. Я писал про права суперпользователя в этой статье.

30. date

В отличие от time, делает именно то, чего вы от неё и ожидаете: выводит дату и время в стандартный вывод. Его можно форматировать в зависимости от ваших потребностей: вывести год, месяц, день, установить 12-ти или 24-ти часовой формат, получить наносекунды или номер недели. Например, date +»%j %V», выведет день в году и номер недели в формате ISO.

31. alias

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

32. uname

Выводит некую основную информацию о системе. Без параметров она не покажет ничего полезного, кроме строчки Linux, но, если задать параметр -a (All), можно получить информацию о ядре, имени хоста и узнать архитектуру процессора.

33. uptime

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

34. sleep

Вам, наверное, интересно как же её можно использовать. Даже не учитывая Bash-скриптинг, у неё есть свои преимущества. Например, если вы хотите выключить компьютер через определенный промежуток времени или использовать в качестве импровизированной тревоги.

Команды Linux для управления пользователями

35. useradd / userdel / usermod

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

36. passwd

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

Linux команды для просмотра документации

37. man / whatis

Команда man открывает руководство по определённой команде. Для всех основных команд Linux есть man страницы. Whatis показывает, какие разделы руководств есть для данной команды.

38. whereis

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

Команды Linux для управления сетью

39. ip

Если список команд Linux для управления сетью вам кажется слишком коротким, скорее всего вы не знакомы с утилитой ip. В пакете net-tools содержится множество других утилит: ipconfig, netstat и прочие устаревшие, вроде iproute2. Всё это заменяет одна утилита — ip. Вы можете рассматривать её как швейцарский армейский нож для работы с сетью или как непонятную массу, но в любом случае за ней будущее. Просто смиритесь с этим.

40. ping

Ping — это ICMP ECHO_REQUEST дейтаграммы, но на самом деле это неважно. Важно то, что утилита ping может быть очень полезным диагностическим инструментом. Она поможет быстро проверить, подключены ли вы к маршрутизатору или к интернету, и дает кое-какое представление о качестве этой связи.

41. nethogs

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

42. traceroute

Это усовершенствованная версия ping. Мы можем увидеть не только полный маршрут сетевых пакетов, но и доступность узла, а также время доставки этих пакетов на каждый из узлов. Подробнее — тут.

Выводы

Мы рассмотрели основные команды Linux, которые могут пригодиться вам при повседневном использовании системы. Если вы считаете, что есть другие команды, которые нужно добавить в этот список, напишите в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

20 полезных команд в Linux, которые должен знать каждый

Вы новичок в Linux и хотите быстро его изучить? Сегодня мы изучим команды в консоли Linux, которые необходимо знать каждому. В Linux консольных команд очень много. Мы отобрали самые важные, с которыми пользователи встречаются чаще всего.

 

cat

Команда cat (сокращенно от concatenate) в консоли отображает содержимое файла. Это быстрее, чем открывать его в редакторе. И нет опасности, что вы его нечаянно отредактируете. Например, чтобы прочитать файл jenkins.log, вам нужно ввести:

cat jenkins.log

 

cd

Эта команда вам хорошо знакома по Windows. С помощью ее можно перейти в папку.

Например, если ввести

cd kv

Мы переходим в папку kv.

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

cd ~

 

curl

Команда позволяет скачивать файл через URL. curl может быть не установлена на вашем компьютере. Для установки воспользуйтесь командой

sudo apt-get install curl

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

curl https://www.nvidia.com/content/dam/en-zz/Solutions/geforce/16-series/new/[email protected] -o nvidia.jpg

С помощью этой команды мы скачиваем картинку с сайта и сохраняем ее под названием nvidia.jpg

 

chmod

chmod позволяет установить атрибуты доступа на файл или папку.

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

Есть три основных вида прав:

    r — чтение;

    w — запись;

    x — выполнение;

Они устанавливаются на файлы и папки. Вот пример из файлового менеджера:

Второй способ записи прав – восьмеричный формат. Для этого используются цифры. Вот таблица для его использования.

    0 — никаких прав;

    1 — только выполнение;

    2 — только запись;

    3 — выполнение и запись;

    4 —  только чтение;

    5 — чтение и выполнение;

    6 — чтение и запись;

    7 — чтение запись и выполнение.

Например:

764 — все для владельца, чтение и запись для группы, и только чтение для остальных. 

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

chmod 764 sample.txt
 

 

echo

Команда знакома многим если не всем. В Linux она тоже работает (как и в Windows). Она выводит строку текста в окно терминала.

echo This is a text

Echo может работать с системными переменными. Например:

echo $user
echo $home

 

find

Команда find может помочь найти файл. Как ее использовать? Образец запроса:

find . -name *win*

В этом примере мы ищем файл с текстом *win* в названии в текущей папке.

 

finger

finger предоставляет некоторую информацию о пользователе. Когда он последний раз вошел в систему, его имя.

 

free

free предоставляет информацию о свободной оперативной памяти на компьютере. По умолчанию информация выводится в байтах. Чтобы увидеть цифры в гигабайтах наберите:

free –h

 

grep

Эта команда может быть полезна для поиска определенного текста в файлах. Она показывает строки, где есть искомое слово. В примере ниже мы ищем слово Minsk в файлах txt в папке.

grep Minsk *.
txt

 

history

Если вы забыли какие команды ранее набирали – попробуйте history. Она выведет всю историю команд. В нашем примере получилось более 500 команд (!). Да, мы умеем развлекаться в Linux.

history

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

!557

 

kill

Самая «жестокая» команда в Linux. Думаем, не сложно догадаться, что она делает. Она завершает конкретный процесс (kill=убивать). Для этого нужно знать его PID или номер. Наберите pse. И вы увидите все процессы, запущенные на компьютере. Выберите номер и наберите:

kill 3221

В нашем случае мы завершим Firefox.

 

ls

Одна из самых популярных команд Linux. Она выводит список файлов и папок в текущей директории.

С помощью аргумента:

ls –l

можно вывести подробную информацию о папке – размер, дату создания, права.

 

mv

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

mv ~/kv/sample.txt .

Эта команда переместит файл sample.txt в текущую папку.

 

mkdir

Создает новую папку. Необходимо указать имя папки.

mkdir newfolder

Если хотите создать папку внутри папки, можно написать так:

mkdir newfolder/first

 

ps

Эту команду мы уже видели. Она может выводить список процессов. Чтобы увидеть список процессов у конкретного пользователя, нужно набрать:

ps –u exodus

Если нужно увидеть все процессы, печатаем:

ps –e

 

pwd

Красивая и простая команда – она отображает текущую рабочую директорию.

pwd

 

sudo

sudo необходима, когда вы нужно использовать root-права. Например, для установки дополнительных пакетов:

sudo apt-get install nmap

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

 

ssh

ssh позволяет подключиться к удаленному Linux-компьютеру. Для этого вам необходимо указать пользователя и IP-адрес.

ssh [email protected]

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

 

top

Команда top выводит информацию в реальном времени о состоянии вашей Linux-машины.

top

Первая строчка (top) дает нам общее представление о загрузке системы. Здесь указано:

  текущее время

  up — продолжительность работы системы с момента запуска

  user — текущее количество пользователей системы

  load average — средняя загруженность системы

Далее можно увидеть таблицу. Расшифруем ее.

Первые два столбца — номер процесса (PID) и имя пользователя, его запустившего (USER).

Следующие 2 столбца показывают, какой приоритет имеет процесс в данный момент (PR) и приоритет, присвоенный ему командой NICE (NI).

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

  VIRT — виртуальная память, которую использует процесс

  RES — физическая память, занятая данным процессом

  SHR — общий объем памяти, которую данный процесс делит с другими

  S — текущий статус процесса: R — running; S — sleeping, Z — zombie

  %CPU — процент используемого времени центрального процессора

  %MEM — процент ОЗУ, используемой процессом

  TIME+ — продолжительность работы процесса с момента запуска

  COMMAND — название команды (программы), которая инициировала процесс.

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

 

uname

uname покажет информацию о машине, за которой вы работаете, версию Linux, название сборки, ее версию.

uname –a

Если вам негде практиковать Linux – помните, что Android на вашем смартфоне это и есть Linux. Поэтому скачиваем приложение Termux и начинаем практиковаться. 

 

Что такое команды 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 — редактирует конечный пункт назначения символической ссылки. Однако это работает только в сочетании с опцией -i.
  • --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. Однако, если он не установлен по умолчанию, выполните следующие действия:

  1. Получите доступ к SSH через VPS и войдите в систему, используя учетную запись sudo .
  2. Обновите текущую систему, введя эту команду:
 sudo apt-get update 
  1. Установите пакет sed, введя следующую команду:
 sudo apt-get install sed 
  1. Проверьте версию, выполнив следующую команду:
 sed --version 

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

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

Как заменить строку с помощью команды sed

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

Для этого используйте команду замены s и разделители для разделения полей. Замените значение «old_string» исходным именем и «new_string» предпочтительным текстом:

 sed ‘s/old_string/new_string/’ samplefile.txt 

Например, чтобы заменить слово «images» на «photos» в файле scenery.txt , введите следующее:

 sed 's/images/photos/' scenery.txt 

How для замены n-го вхождения шаблона в строке с помощью команды sed

Вставьте соответствующий символ, косую черту ( / ) или вертикальную черту ( | ) , и замените символ решетки ( # ) на желаемое число для замены n-го вхождения шаблона в строке. Вот основной синтаксис:

 sed 's/old_string/new_string/#' samplefile.txt 

Например, чтобы заменить первое вхождение слова «музыка» на «песня» в строке внутри файла playlist.txt , введите:

 sed 's/music/song/1' playlist.txt 

Как заменить все вхождения шаблона в строке с помощью команды sed

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

Чтобы заменить все вхождения шаблона в одной строке, добавьте флаг замены /g для глобальной замены. Вот сценарий sed:

 sed 's/old_string/new_string/g' samplefile.txt 

Например, чтобы заменить все вхождения, содержащие «орел» , на «сокол» в строке внутри animals.txt , запустите:

 sed 's/eagle/falcon/g' animals.txt 

Как заменить и вхождение с n-го на все вхождения в строке с помощью команды sed

Чтобы заменить все шаблоны от n до всех вхождений в одной строке, объедините /# и /g .

Вот скрипт sed:

 sed 's/old_string/new_string/#g' samplefile.txt 

Например, приведенная ниже команда заменяет слово «рыбы» на «водолей» из второго, третьего и четвертое вхождение до последнего вхождения в файле astrology.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 

Например, чтобы заменить слово «телефоны» на «планшеты» в файле gadgets.036 gadgets.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.txt 

How to Печать только замененных строк с помощью команды sed

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

Параметр -n отключает автоматическую печать, а параметр 9Команда 0035 p указывает sed отображать строки, в которых происходит замена.

Вот общий синтаксис:

 sed -n 's/old_string/new_string/p' samplefile.txt 

Например, чтобы заменить третий экземпляр «зеленый» на «синий » в строку внутри файла 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 обеспечивает лучшую читаемость.

Оставить комментарий

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

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