- Команда Echo в Linux с примерами
- эхо-команда
- echo Примеры
- Выводы
- Команда write в Linux
- Синтаксис
- Использование команды write в Linux
- Предварительная подготовка
- Разрешение на запись
- Вход в терминальный сеанс
- Создание сообщения
- Сообщение с помощью команды echo
- Сообщение из файла
- Сообщение на определённый терминал
- Заключение
Команда Echo в Linux с примерами
Команда echo — одна из самых основных и часто используемых команд в Linux. Аргументы, переданные в echo выводятся на стандартный вывод.
echo обычно используется в сценариях оболочки для отображения сообщения или вывода результатов других команд.
эхо-команда
echo — это оболочка, встроенная в Bash и большинство других популярных оболочек, таких как Zsh и Ksh. Его поведение немного отличается от оболочки к оболочке.
Существует также отдельная утилита /usr/bin/echo , но обычно встроенная версия оболочки имеет приоритет. Мы рассмотрим встроенную в Bash версию echo .
Синтаксис команды echo следующий:
- Когда используется опция -n , завершающий символ новой строки подавляется.
- Если задана опция -e будут интерпретироваться следующие символы, экранированные обратной косой чертой:
- \ — отображает обратную косую черту.
- a — Предупреждение (BEL)
- b — отображает символ возврата.
- c — подавить любой дальнейший вывод
- e — отображает escape-символ.
- f — отображает символ перевода страницы.
- n — отображает новую строку.
- r — отображает возврат каретки.
- t — отображает горизонтальную вкладку.
- v — отображает вертикальную вкладку.
При использовании команды echo следует учитывать несколько моментов.
- Оболочка заменит все переменные, сопоставление подстановочных знаков и специальные символы перед передачей аргументов команде echo .
- Хотя это и не обязательно, рекомендуется заключать аргументы, передаваемые в echo в двойные или одинарные кавычки.
- При использовании одинарных кавычек » буквальное значение каждого символа, заключенного в кавычки, будет сохранено. Переменные и команды расширяться не будут.
echo Примеры
В следующих примерах показано, как использовать команду echo:
- Вывести строку текста на стандартный вывод.
echo -e "You know nothing, Jon Snow.nt- Ygritte"
You know nothing, Jon Snow. - Ygritte
echo The PHP files are: *.php
The PHP files are: index.php contact.php functions.php
echo -e 'The only true wisdom is in knowing you know nothing.nSocrates' >> /tmp/file.txt
Если файл file.txt не существует, команда создаст его. При использовании > файл будет перезаписан, а символ >> добавит вывод в файл . Используйте команду cat для просмотра содержимого файла:
The only true wisdom is in knowing you know nothing. Socrates
echo -e "33[1;37mWHITE"
echo -e "33[0;30mBLACK"
echo -e "33[0;34mBLUE"
echo -e "33[0;32mGREEN"
echo -e "33[0;36mCYAN"
echo -e "33[0;31mRED"
echo -e "33[0;35mPURPLE"
echo -e "33[0;33mYELLOW"
echo -e "33[1;30mGRAY"
Выводы
К настоящему времени вы должны хорошо понимать, как работает команда echo .
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Команда write в Linux
В Linux команда write создаёт линию связи между двумя авторизованными пользователями через терминал, позволяя отправлять сообщения в режиме реального времени.
Синтаксис
Параметр user является обязательным и представляет имя пользователя принимающей стороны. Указание ttyname необходимо в случае нескольких открытых терминалов.
Использование команды write в Linux
Предварительная подготовка
Для команды write требуются как минимум два пользователя, вошедших в систему через сеанс pts (псевдо-терминал) или tty (телетайп).
Так как у меня второго пользователя нет, то я его создаю с именем ivan :
oleg@mobile:~$ sudo su root@mobile:/home/oleg# adduser ivan Добавляется пользователь «ivan» . Добавляется новая группа «ivan» (1001) . Добавляется новый пользователь «ivan» (1001) в группу «ivan» . Создаётся домашний каталог «/home/ivan» . Копирование файлов из «/etc/skel» . Новый пароль : Повторите ввод нового пароля : passwd: пароль успешно обновлён Изменение информации о пользователе ivan Введите новое значение или нажмите ENTER для выбора значения по умолчанию Полное имя []: Номер комнаты []: Рабочий телефон []: Домашний телефон []: Другое []: Данная информация корректна? [Y/n] y root@mobile:/home/oleg#
Добавляю пользователя ivan в группу sudo:
root@mobile:/home/oleg# usermod -aG sudo ivan root@mobile:/home/oleg#
Проверяю доступность разрешений sudo , переключившись командой su на учётную запись пользователя ivan :
oleg@mobile:~$ sudo su ivan ivan@mobile:/home/oleg$ cd ivan@mobile:~$
Теперь пользователь ivan , используя sudo , сможет запускать команды с привилегиями суперпользователя:
ivan@mobile:~$ sudo ls -l /root итого 4 drwxr-xr-x 3 root root 4096 авг 17 2021 snap ivan@mobile:~$
Конечно при работе в реальной многопользовательской среде подобная предварительная подготовка не требуется.
Разрешение на запись
Для связи с другим пользователем oleg получает разрешение на запись с помощью mesg y :
oleg@mobile:~$ mesg y oleg@mobile:~$
Пользователь ivan также получает разрешение на запись:
ivan@mobile:~$ mesg y ivan@mobile:~$
Вход в терминальный сеанс
При работе на одном компьютере с двумя разными пользователями каждый пользователь запускает команду в своём терминальном сеансе и указывает своё имя пользователя.
Команда предлагает ввести sudo и пароль пользователя для продолжения.
Пользователь oleg входит в терминальный сеанс:
oleg@mobile:~$ sudo login oleg Пароль: Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.15.0-58-generic x86_64) . oleg@mobile:~$
То же самое выполняет и пользователь ivan :
ivan@mobile:~$ sudo login ivan Пароль: . ivan@mobile:~$
Чтобы проверить, кто вошёл в систему, используется команда w в любом терминале:
oleg@mobile:~$ w 17:51:14 up 14 min, 3 users, load average: 0,28, 0,39, 0,50 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT oleg :0 :0 17:38 ?xdm? 1:33 0.00s /usr/lib/gdm3/gdm-x-session --run-script env GNOME_SHELL_SESSION_M oleg pts/0 - 17:47 1.00s 0.12s 0.00s w ivan pts/2 - 17:49 2:05 0.14s 0.05s -bash oleg@mobile:~$
Вывод показывает, что пользователи oleg и ivan вошли в систему через консоль pts . Кроме этого пользователь oleg предварительно вошёл в систему через локальный дисплей (GUI). Он же выполнил команду login для обоих пользователей.
Создание сообщения
Чтобы написать сообщение другому пользователю с помощью команды write выполняются следующие действия:
Запускаем утилиту и указываем пользователя:
Команда ожидает входное сообщение. На принимающей стороне пользователь получает подтверждение о соединении со следующей информацией:
ivan@mobile:~$ Message from oleg@mobile on pts/0 at 17:56 .
Пользователь oleg набирает текст сообщения и нажимает Enter для перехода на новую строку:
oleg@mobile:~$ Message from oleg@mobile on pts/0 at 18:03 . write oleg Hi, how are you? write ivan Would you like to drink some beer now?
Сообщение появляется на принимающей стороне в режиме реального времени и пользователь ivan отвечает:
ivan@mobile:~$ Message from oleg@mobile on pts/0 at 18:03 . write oleg Hi, how are you? write ivan Would you like to drink some beer? write oleg Yes, of course. o
Пользователь oleg завершает работу, набрав oo и нажав CTRL + D:
oleg@mobile:~$ write ivan Message from ivan@mobile on pts/2 at 18:03 . Hi, how are you? write ivan Would you like to drink some beer now? write oleg Yes, of course. o write oo oleg@mobile:~$
Пользователь ivan получает сообщение об окончании сеанса и бежит к Олегу:
ivan@mobile:~$ EOF Message from oleg@mobile on pts/0 at 18:03 . write oleg Hi, how are you? write ivan Would you like to drink some beer now? write oleg Yes, of course. o write oo EOF
Поскольку не существует надлежащего способа отличить, когда пользователь заканчивает сообщение, традиционный способ завершения оператора — это символ o . Чтобы сигнализировать об окончании разговора, напишите oo . Завершите работу, нажатием CTRL + D.
Сообщение с помощью команды echo
С использованием команды echo можно ввести сообщение и передать команду write :
oleg@mobile:~$ echo "Hello from oleg" | write ivan
Канал связи немедленно заканчивается для отправителя, а получатель принимает сообщение и ожидает завершения.
Сообщение из файла
Для отправки сообщения из текстового файла создаётся текстовый файл:
Содержимое файла отправляется с помощью команды следующим образом:
oleg@mobile:~$ echo "Hello from oleg" | write ivan < beer.txt
Сообщение на определённый терминал
Когда у пользователя открыто несколько терминальных сеансов, утилита выбирает терминал с наименьшим временем простоя.
Используйте эту утилиту для проверки имени tty и времени простоя.
Чтобы указать, на какой tty отправлять сообщения, запустите:
ivan@mobile:~$ write oleg pts/0
Сообщения поступят только на pts/0 .
Заключение
Изучив в этой небольшой статье примеры использования команду write в Linux вы сможете использовать её в своей работе. Вы уже убедились в том, что это несложно.