Команда echo - это очень простая и в то же время часто используемая встроенная команда оболочки Bash. Она имеет только одно назначение - выводить строку текста в терминал, но применяется очень часто в различных скриптах, программах, и даже для редактирования конфигурационных файлов.
В этой статье мы рассмотрим что представляет из себя команда echo linux, как ее можно использовать и в каких ситуациях. Но сначала рассмотрим синтаксис самой команды.
Содержание статьи
Команда echo linux
Команда echo - это не системная утилита, у нее нет исполняемого файла. Она существует только внутри интерпретатора Bash. Синтаксис команды echo linux очень прост:
$ echo опции строка
Опций всего несколько, давайте рассмотрим их, чтобы вы могли лучше ориентироваться в работе утилиты:
- -n - не выводить перевод строки;
- -e - включить поддержку вывода Escape последовательностей;
- -E - отключить интерпретацию Escape последовательностей.
Это все опции, если включена опция -e, то вы можете использовать такие Escape последовательности для вставки специальных символов:
- /c - удалить перевод строки;
- /t - горизонтальная табуляция;
- /v - вертикальная табуляция;
- /b - удалить предыдущий символ;
- /n - перевод строки;
- /r - символ возврата каретки в начало строки.
Пожалуй, это все, что нужно знать о команде echo, а теперь давайте рассмотрим как с ней работать.
Примеры работы echo
Давайте рассмотрим как пользоваться echo. Сначала просто выведем строку на экран:
echo Linux Open Source Software Technologies
Также можно вывести значение переменной. Сначала объявим переменную:
export VAR=losst
Затем выведем ее значение:
echo Наш сайт $VAR
Как уже говорилось, с помощью опции -e можно включить интерпретацию специальных последовательностей. Последовательность \b позволяет удалить предыдущий символ. Например, удалим все пробелы из строки:
echo -e "Linux \bopen \bsource \bsoftware \btechnologies"
Последовательность \n переводит курсор на новую строку:
echo -e "Linux \nopen \nsource \nsoftware \ntechnologies"
С помощью \t вы можете добавить горизонтальные табуляции:
echo -e "Linux \topen \tsource \tsoftware \ttechnologies"
Можно совместить переводы строки и табуляции:
echo -e "Linux \tnopen \tnsource \tnsoftware \tntechnologies"
Точно так же можно применить вертикальную табуляцию:
echo -e "Linux \vopen \vsource \vsoftware \vtechnologies"
С помощью последовательности \r можно удалить все символы до начала строки:
echo -e "Linux \ropen source software technologies"
Последовательность -c позволяет убрать перевод на новую строку в конце сообщения:
echo -e "Linux open source software technologies\c"
Дальше - больше. Вы можете разукрасить вывод echo с помощью последовательностей управления цветом Bash. Для доступны такие цвета текста:
- \033[30m - чёрный;
- \033[31m - красный;
- \033[32m - зелёный;
- \033[33m - желтый;
- \033[34m - синий;
- \033[35m - фиолетовый;
- \033[36m - голубой;
- \033[37m - серый.
И такие цвета фона:
- \033[40m - чёрный;
- \033[41m - красный;
- \033[42m - зелёный;
- \033[43m - желтый;
- \033[44m - синий;
- \033[45m - фиолетовый;
- \033[46m - голубой;
- \033[47m - серый;
- \033[0m - сбросить все до значений по умолчанию.
Например. раскрасим нашу надпись в разные цвета:
echo -e "\033[35mLinux \033[34mopen \033[32msource \033[33msoftware \033[31mtechnologies\033[0m"
С основными параметрами команды echo разобрались, теперь рассмотрим еще некоторые специальные символы bash. Вы можете вывести содержимое текущей папки просто подставив символ *:
echo *
Также можно вывести файлы определенного расширения:
echo *.mkv
Я уже говорил, что echo можно использовать для редактирования конфигурационных файлов. Вы можете использовать запись echo в файл linux, если он пуст:
echo 1 > /proc/sys/net/ipv4/ip_forward
Если файл не пуст, и вам необходимо добавить свою строчку в конец файла используйте символ перенаправления вывода >>:
echo "UUID=09ec0871-2f55-4dd5-aeb2-cacc4a67907c /var/tmp btrfs subvol=@/var/tmp 0 0" >> /etc/fstab
Если строка содержит какие-либо специальные символы или может быть понята интерпретатором неоднозначно, следует заключить ее в кавычки.
Выводы
В этой статье была рассмотрена команда echo linux. Несмотря на свою простоту, она может применяться для решения различных задач и незаменима при написании простых скриптов. Надеюсь, эта информация была вам полезной.
спасибо
Здорово. Было б круто иметь подобную википедию по коммандам 🙂
Такая википедия есть, и она вызывается в консоли так:
man 🙂
+1000, самая полезная команда это man, первым нужно изучить man по man, и все попрет
Спасибо!!!
Самое главное применение эхо - внедрять инъекции 🙂
echo "/ union" > /mnt/my_usb/persistence.conf
Зачем нужен echo в этом случае и что делает union и >. Спасибо.
"/ union" - будет записан в файл /mnt/my_usb/persistence.conf?
Что значит / union?
Как это у echo нет исполняемого файла? А это что?
~$ which echo
/bin/echo
Команды две. Есть встроенная в шелл. И есть отдельная. /bin/echo.
man почитайте. \с означает не совсем то, о чем вы рассказываете
Еще если вы напишите echo "ваш текст" >~/название вашего файла.txt, то создастся файл с расширением .txt под названием "название вашего файла", содержащий в себе запись "ваш текст"
Cупер. Всю статью одним абзацем! Просто замечательно!...И за статью спасибо!
а что означает сия конструкция
echo -e '\r\e[K'
???
Доброго времени суток.
А разве не этот слэш \ используется для escape последовательностей?
Да, этот.
У вас в начале опечатка, когда команды перечисляете. Вместо \ у вас /
как вывести два процесса например
tcpdump -i lo tcp port 1234 -w /mnt/media/user/tcp.pcap &
echo = $!
journalctl -u test-test -f > /mnt/media/user/journalctl.log &
echo = $!
как записать второй процесс чтобы по команде можно было бы их обоих kill -9 $!
Кто знает прошу помочь, Спасибо.
Последний пример:
$ echo "UUID=09ec0871-2f55-4dd5-aeb2-cacc4a67907c /var/tmp btrfs subvol=@/var/tmp 0 0" >> /etc/fstab
так не получится.
Правильно будет:
$ echo "UUID=09ec0871-2f55-4dd5-aeb2-cacc4a67907c /var/tmp btrfs subvol=@/var/tmp 0 0" | sudo tee --append /etc/fstab
подскажите, что означает echo ** ?
Спасибо! Лаконично и доступно +
Информативно, замечательно!
echo $?
# Выводит статус выполнения предыдущей команды (0\1\127\etc)