Использование команды echo в Linux


Команда Echo в Linux с примерами

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

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

эхо-команда

echo — это оболочка, встроенная в Bash и большинство других популярных оболочек, таких как Zsh и Ksh. Его поведение немного отличается от оболочки к оболочке.

Существует также отдельная утилита /usr/bin/echo , но обычно встроенная версия оболочки имеет приоритет. Мы рассмотрим встроенную в Bash версию echo .

Синтаксис команды echo следующий:

echo [-neE] [ARGUMENTS] 
  • Когда используется опция -n , завершающий символ новой строки подавляется.
  • Если задана опция -e будут интерпретироваться следующие символы, экранированные обратной косой чертой:
    • \ — отображает обратную косую черту.
    • a — Предупреждение (BEL)
    • b — отображает символ возврата.
    • c — подавить любой дальнейший вывод
    • e — отображает escape-символ.
    • f — отображает символ перевода страницы.
    • n — отображает новую строку.
    • r — отображает возврат каретки.
    • t — отображает горизонтальную вкладку.
    • v — отображает вертикальную вкладку.

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

    • Оболочка заменит все переменные, сопоставление подстановочных знаков и специальные символы перед передачей аргументов команде echo .
    • Хотя это и не обязательно, рекомендуется заключать аргументы, передаваемые в echo в двойные или одинарные кавычки.
    • При использовании одинарных кавычек » буквальное значение каждого символа, заключенного в кавычки, будет сохранено. Переменные и команды расширяться не будут.

    echo Примеры

    В следующих примерах показано, как использовать команду echo:

      Вывести строку текста на стандартный вывод.

    echo Hello, World!
    Hello, World!
    echo 'Hello "Linuxize"'
    echo "Hello "Linuxize""
    Hello "Linuxize"
    echo "I'm a Linux user."
    echo $'I'ma Linux user.'
    I'm a Linux user.
    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 для просмотра содержимого файла:

    cat /tmp/file.txt
    The only true wisdom is in knowing you know nothing. Socrates
    echo $USER
    linuxize
    echo "The date is: $(date +%D)"
    The date is: 04/17/19
    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 .

    Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

    Как использовать команду Echo в Linux

    Команда echo идеально подходит для записи форматированного текста в окно терминала. И это не обязательно должен быть статичный текст. Он может включать переменные оболочки, имена файлов и каталоги. Вы также можете перенаправить эхо для создания текстовых файлов и файлов журналов. Следуйте этому простому руководству, чтобы узнать, как это сделать.

    Эхо повторяет то, что вы ему говорите

    Зевс любил покидать гору Олимп, чтобы общаться с прекрасными нимфами. В одном путешествии он сказал горной нимфе по имени Эхо подстеречь его жену Геру, если она последует за ним. Гера действительно пришла искать Зевса, и Эхо делала все возможное, чтобы поддерживать разговор с Герой. Наконец, Гера вышла из себя и прокляла бедную Эхо так, что она только повторила последние слова, сказанные кем-то другим. Что Гера сделала с Зевсом, когда догнала его, остается только гадать.

    И это, в значительной степени, большая часть жизни echo . Он повторяет то, что ему сказали повторить. Это простая функция, но жизненно важная. Например, без echo мы не смогли бы получить видимый вывод из сценариев оболочки.

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

    эхо? эхо!

    Большинство систем Linux предоставляют две версии echo . В оболочку Bash встроен собственный echo , а также существует двоичная исполняемая версия echo .

    Мы можем увидеть две разные версии, используя следующие команды:

    type echo
    whereis echo

    Команда type сообщает нам, является ли команда, которую мы передаем ей в качестве аргумента, встроенной оболочкой, двоичным исполняемым файлом, псевдонимом или функцией. Он сообщает нам, что echo является встроенной оболочкой.

    Как только ответ найден, type прекращает поиск дальнейших совпадений. Таким образом, это не говорит нам, есть ли в системе другие команды с таким же именем. Но он сообщает нам, какой из них он находит первым. И это тот, который будет использоваться по умолчанию, когда мы выполним эту команду.

    Команда whereis ищет двоичный исполняемый файл, исходный код и справочную страницу для команды, которую мы передаем ей в качестве параметра командной строки. Он не ищет встроенные модули оболочки, потому что у них нет отдельного исполняемого бинарного файла. Они являются неотъемлемой частью исполняемого файла Bash.

    Команда whereis сообщает, что echo — это двоичный исполняемый файл, расположенный в каталоге /bin .

    Чтобы использовать эту версию echo , вам нужно явно вызвать ее, указав путь к исполняемому файлу в командной строке:

    /bin/echo --version

    Встроенная оболочка не знает, что такое аргумент командной строки —version , она просто повторяет его в окне терминала:

    echo --version

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

    Запись текста в терминал

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

    echo My name is Dave.

    Текст повторяется для нас. Но по мере экспериментов вы вскоре обнаружите, что все может быть немного сложнее. Посмотрите на этот пример:

    echo My name is Dave and I'm a geek.

    Окно терминала отображает знак > и ждет. Ctrl+C вернет вас в командную строку. Что там произошло?

    Одинарная кавычка или апостроф в слове «I’m» сбивает с толку echo . Он интерпретировал эту одиночную кавычку как начало цитируемого раздела текста. Поскольку он не обнаружил закрывающей одинарной кавычки, echo ожидал ввода дополнительных данных. Он ожидал, что дальнейший ввод будет включать отсутствующую одинарную кавычку, которую он ждал.

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

    echo "My name is Dave and I'm a geek."

    Заключение текста в двойные кавычки — хороший общий совет. В сценариях он четко разграничивает параметры, которые вы передаете в echo . Это значительно упрощает чтение и отладку сценариев.

    Что делать, если вы хотите включить символ двойной кавычки в строку текста? Это легко: просто поставьте перед двойными кавычками обратную косую черту \ (без пробела между ними).

    echo "My name is Dave and I'm a \"geek.\""

    Это заключает слово «компьютерщик» в двойные кавычки. Вскоре мы увидим больше этих символов, экранированных обратной косой чертой.

    Использование переменных с эхом

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

    my_name="Dave"

    Была создана переменная с именем my_name . Ему было присвоено значение текста «Дэйв». Мы можем использовать имя переменной в строках, которые мы передаем в echo , и значение переменной будет записано в окно терминала. Вы должны поставить знак доллара $ перед именем переменной, чтобы echo знал, что это переменная.

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

    echo 'My name is $my_name'
    echo "My name is $my_name"

    Несколько метко стоит повторить:

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

    Использование команд с эхом

    Мы можем использовать команду с echo и включать ее вывод в строку, которая записывается в окно терминала. Мы должны использовать знак доллара $ , как если бы команда была переменной, и заключать всю команду в круглые скобки.

    Мы собираемся использовать команду даты. Один из советов — использовать команду отдельно, прежде чем вы начнете использовать ее с echo . Таким образом, если что-то не так с синтаксисом вашей команды, вы идентифицируете это и исправляете, прежде чем включать его в команду echo . Затем, если команда echo не делает того, что вы ожидаете, вы будете знать, что проблема должна быть связана с синтаксисом echo , поскольку вы уже проверили синтаксис команды.

    Итак, попробуйте это в окне терминала:

    date +%D

    И, убедившись, что мы получаем то, что ожидаем от команды date, мы интегрируем ее в команду echo :

    echo "Today's date is: $(date +%D)"

    Обратите внимание, что команда заключена в круглые скобки, а знак доллара $ находится непосредственно перед первой скобкой.

    Форматирование текста с эхом

    Опция -e (включить экранирование обратной косой черты) позволяет нам использовать некоторые символы, экранированные обратной косой чертой, для изменения макета текста. Это символы с обратной косой чертой, которые мы можем использовать:

    • \a: оповещение (исторически известное как BEL). При этом генерируется звук оповещения по умолчанию.
    • \b: пишет символ возврата.
    • \c: отказ от дальнейшего вывода.
    • \e: пишет escape-символ.
    • \f: записывает символ перевода формы.
    • \n: пишет новую строку.
    • \r: пишет возврат каретки.
    • \t: пишет горизонтальную вкладку.
    • \v: пишет вертикальную вкладку.
    • \\: пишет символ обратной косой черты.

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

    echo -e "This is a long line of text\nsplit across three lines\nwith\ttabs\ton\tthe\tthird\tline"

    Текст разделяется на новую строку, где мы использовали символы \n , и вставляется табуляция, где мы использовали символы \t .

    echo -e "Here\vare\vvertical\vtabs"

    Подобно символам новой строки \n , вертикальная табуляция \v перемещает текст на строку ниже. Но, в отличие от \n символов новой строки, вертикальная вкладка \v не начинает новую строку с нулевого столбца. Он использует текущий столбец.

    Символы возврата \b перемещают курсор на один символ назад. Если на терминал нужно записать больше текста, этот текст перезапишет предыдущий символ.

    echo -e "123\b4"

    «3» заменяется на «4».

    Символ возврата каретки \r заставляет echo вернуться к началу текущей строки и записать любой дальнейший текст с нулевого столбца.

    echo -e "123\r456"

    Символы «123» заменяются символами «456».

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

    echo -e "Make a bleep\a"

    Параметр -n (без новой строки) не является последовательностью, экранированной обратной косой чертой, но влияет на внешний вид текстового макета, поэтому мы обсудим его здесь. Он не позволяет echo добавлять новую строку в конец текста. Командная строка появляется сразу после текста, который записывается в окно терминала.

    echo -n "no final newline"

    Использование эха с файлами и каталогами

    Вы можете использовать echo как своего рода версию ls для бедняков. У вас мало вариантов, когда вы используете echo таким образом. Если вам нужна какая-либо точность или точный контроль, вам лучше использовать ls и его легион опций.

    Эта команда выводит список всех файлов и каталогов в текущем каталоге:

    echo *

    Эта команда выводит список всех файлов и каталогов в текущем каталоге, имя которых начинается с «D»:

    echo D*

    Эта команда выводит список всех файлов «.desktop» в текущем каталоге:

    echo *.desktop

    Ага. Это не использует сильные стороны echo . Используйте ls .

    Запись в файлы с эхом

    Мы можем перенаправить вывод из echo и либо создать текстовые файлы, либо записать в существующие текстовые файлы.

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

    Если мы используем оператор перенаправления >> , файл создается, если он не существует. Вывод echo добавляется в конец файла и не перезаписывает существующее содержимое файла.

    echo "Creating a new file." > sample.txt
    echo "Adding to the file." >> sample.txt
    cat sample.txt

    Первой командой создается новый файл, и в него вставляется текст. Вторая команда добавляет строку текста в конец файла. Команда cat отображает содержимое файла в окне терминала.

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

    Обратите внимание на одинарные кавычки вокруг параметров команды date . Они предотвращают интерпретацию пробела между параметрами как конец списка параметров. Они обеспечивают правильную передачу параметров в date .

    echo "Logfile started: $(date +'%D %T')" > logfile.txt
    cat logfile.txt

    Наш файл журнала создан для нас, и cat показывает нам, что к нему были добавлены и метка даты, и метка времени.

    Это репертуар эха

    Простая команда, но необходимая. Если бы его не было, нам пришлось бы его изобрести.

    В конце концов, махинации Зевса принесли пользу.

    Linux Commands
    Filestar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc
    Processesalias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap
    Networkingnetstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld

    RELATED: Best Linux Laptops for Developers and Enthusiasts

    Как создать файл в Linux

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

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

    Подготовка

    Чтобы создать новый файл, вам необходимо иметь права на запись в родительский каталог. В противном случае вы получите сообщение об ошибке в разрешении отказано.

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

    Создание файла с помощью сенсорной команды

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

    Самый простой и запоминающийся способ создания новых пустых файлов — использовать touch команду.

    Чтобы создать новый файл, просто запустите touch команду, после которой укажите имя файла, который вы хотите создать:

    touch file1.txt

    Если файл file1.txt не существует, приведенная выше команда создаст его, в противном случае она изменит свои временные метки.

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

    touch file1.txt file2.txt file3.txt

    Создание файла с помощью оператора перенаправления

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

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

    > file1.txt

    Это самая короткая команда для создания нового файла в Linux.

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

    Создание файла с помощью команды cat

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

    Чтобы создать новый файл, выполните команду cat, за которой следует оператор перенаправления > и имя файла, который вы хотите создать. Нажмите Enter введите текст и, когда вы закончите, нажмите CRTL+D чтобы сохранить файлы.

    cat > file1.txt

    Создание файла с помощью команды echo

    Команда echo печатает строки, которые передаются в качестве аргументов в стандартный вывод, который можно перенаправить в файл.

    Чтобы создать новый файл, запустите команду echo за которой следует текст, который вы хотите напечатать, и используйте оператор перенаправления > чтобы записать вывод в файл, который вы хотите создать.

    echo "Some line" > file1.txt

    Если вы хотите создать пустой, просто используйте:

    echo > file1.txt

    Создание файла с использованием Heredoc

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

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

    Например, чтобы создать новый файл file1.txt вы должны использовать следующий код:

    cat file1.txtSome lineSome other lineEOF

    Тело heredoc может содержать переменные, специальные символы и команды.

    Создание большого файла

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

    Использование команды dd

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

    Чтобы создать файл с именем 1G.test размером 1 ГБ, выполните:

    dd if=/dev/zero of=1G.test bs=1 count=0 seek=1G

    Использование команды fallocate

    fallocate командной строки для выделения реального дискового пространства для файлов.

    Следующая команда создаст новый файл с именем 1G.test размером 1 ГБ:

    fallocate -l 1G 1G.test

    Выводы

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

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

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


    Новые статьи:  Установка Java JRE / JDK в Linux

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