Linux echo command

Примеры использования head

Самый простой способ использования команды head — с указанием имени файла, но без опций. В таком случае будут выведены на экран первые 10 строк.

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

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

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

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

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

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

Следует заметить, что строки «отсекаются», начиная с последней.

До этого момента мы (и команда head вместе с нами) считали количество текста построчно. Но это не обязательное условие — с таким же успехом единицей измерения может быть байт. Достаточно сообщить команде о новом правиле работы с помощью опции -с, заодно указав и количество байт, которое нужно вывести на экран (NUM):

Как и в случае с опцией —lines, можно «отсечь» ненужный объем текста, используя полную форму опции -с — —bytes. Запись команды проводится по тому же принципу и лишние байты тоже отсчитываются, начиная с конца документа:

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

  • b — умножает число на 512.
  • kB — на 1000.
  • k — на 1024.
  • MB — на 1 000 000.
  • M — на 1 048 576.

Кстати, команду head можно использовать не только самостоятельно, но и в сочетании с другими командами. Например, такая запись хеширует рандомно выбранную переменную среды, выводит первые 32 байта из указанного файла и отображает случайную строку из 24 символов:

На этом наши примеры head linux подошли к завершению.

Запуск команд из истории в Bash

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

Вызвать любую из предыдущих команд  можно, введя ее номер и поставив перед ним восклицательный знак «!». Опираясь на приведенный выше пример истории, можно быстро вывести оперативную страницу руководства, просто введя:

Это немедленно вызовет и выполнит команду в истории под номером 51.

Можно также выполнять команды относительно текущей позиции. Это делается с помощью синтаксиса «!-n», где «n» нужно заменять номером команды, которую нужно выполнить.

К примеру, если нужно вывести и выполнить предпоследнюю набранную команду, то можно набрать «!-2». Итак, если было выведено содержимое длинного пути к каталогу, а затем введена команда echo, и теперь нужно снова вывести путь, то сессия может выглядеть следующим образом:

Чтобы повторно выполнить последнюю команду, вместо использования «!-1» в bash можно использовать «горячую» команду «!!», что выполняет:

Многие используют это в случае, если они набрали команду, требующую привилегий sudo. При наборе «sudo !!» команда будет перевыполнена с привилегиями sudo. Такая сессия выглядит примерно так:

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

Команда tr и ее синтаксис

Ниже приведен синтаксис команды tr. Требуется, как минимум, два набора символов и опции.

tr  "SET1" "SET2"

SET1 и SET2 это группы символов. are a group of characters. Необходимо перечислить необходимые символы или указать последовательность.

-> восмеричные (OCT) символы NNN (1 до 3 цифр)

-> обратный слеш (экранированный)

-> новая строка (new line)

-> перенос строки (return)

-> табуляция (horizontal tab)

-> все буквы и цифры

-> все буквы

-> все пробелы

-> все управляющие символы (control)

-> все цифры

-> все буквы в нижнем регистре (строчные)

-> все буквы в верхнем регистре (заглавные)

Примеры использования команды tr:

echo "something to translate" | tr  "SET1" "SET2"
tr "SET1" "SET2" < file-to-translate
tr "SET1" "SET2" < file-to-translate > file-output

Вот некоторые опции:

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

Вступление

В серверной среде работа с командной строкой занимает много времени. Часто используется оболочка bash – командная оболочка по умолчанию большинства дистрибутивов.

Вероятно, во время терминальной сессии общие команды будут повторяться часто, а вариации данных команд – еще чаще. Конечно, сначала набирать каждую команду вручную очень полезно, так как это – лишняя возможность попрактиковаться, но в какой-то момент это начинает надоедать и раздражать.

К счастью, bash-оболочка имеет некоторые довольно хорошо разработанные функции истории. Умение продуктивно использовать и управлять историей в bash позволяет тратить меньше времени на ввод команд, и  тем самым увеличивает объем выполненной работы. Как известно, среди разработчиков популярен так называемый принцип DRY (Don’t Repeat Yourself). Продуктивное использование истории в bash помогает работать с информацией согласно данному принципу.

Это руководство демонстрирует все функции на VPS с Ubuntu 12.04, но почти все современные дистрибутивы Linux будут работать подобным образом.

Переменные среды и переменные оболочки

Переменные имеют следующий формат:

  • Имена переменных чувствительны к регистру. По соглашению, переменные среды должны иметь имена в ВЕРХНЕМ РЕГИСТРЕ.
  • При присвоении переменной нескольких значений они должны быть разделены двоеточием символ.
  • Вокруг символа равенства нет пробела.

Переменные можно разделить на две основные категории: переменные среды и переменные оболочки.

Переменные среды — это переменные, доступные для всей системы и наследуемые всеми порожденными дочерними процессами и оболочками.

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

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

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

1.3 Функции оболочки

Функции оболочки позволяют при выполнении группы команд
испольэовать одно имя для всей группы. Функции выполняются так же, как
«обычные команды».

Функции описываются с испольэованием следующего синтаксиса:

Когда функция выполняется, ее аргументы становятся поэиционными
параметрами времени ее выполнения. Специальный параметр # содержит
количество позиционных параметров. Позиционный параметр 0 неизменный.

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

Массивы и списки

IFS — разделитель элементов массива

При работе с массивами в качестве разделителя используется переменная . При работе с массивами вы можете задать собственный разделитель — просто установив значение переменной .  Чтобы установить в качестве разделителя  перенос каретки (окончание строки) задайте значение этой переменной: .

Создание и наполнение массивов

Инициализация (объявление):

Разбить строку по словам и создать массив (join array with delimiter):

Создать массив из строки с указанием разделителя:

Добавить элементы в массив:

Вывод элементов массива

Распечатать элементы массива ():

Количество элементов массива:

Индекс случайного элемента массива:

Вывести элементы массива через разделитель :

Срезать/получить первый символ первого элемента массива:

Срезать первый элемент массива:

Копировать массив (присвоить массив другой переменной):

Проверить наличие элемента в массиве:

4.8 Контролирование приглашения.

Значение переменной $PROMPT_COMMAND проверяется непосредственно перед выдачей Bash каждого базового приглашения. Если оно задано и не
ноль, то значение выводится, как если бы оно было напечатано на командной строке.

Приведенная таблица описывает специальные символы, которые могут
появляться в переменной PS1:

\t

время в формате часы: минуты: секунды.

\d

Дата в формате день_недели месяц число.

\n

перевод строки.

\s

имя оболочки, базовое имя $0 (участок, следующий за конечным /)

\w

текущий рабочий каталог

\W

базовое имя $PWD

\u

имя пользователя, под которым вы эарегистрированы

\h

hostname

\#

номер зтой команды

\!

номер истории зтой команды

\nnn

символ, соответствующий восьмиричному числу nnn

\$

если зффективный uid=0, то #, иначе $.

\\

обратная косая черта (backslash)

\[

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

\]

конец последовательности невыводимых символов.

ВпередНазад

Спонсоры:

Хостинг:

Maxim ChirkovДобавить, Поддержать, Вебмастеру

echo Примеры

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

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

  • Отобразите строку текста, содержащую двойные кавычки.

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

  • Отобразите строку текста, содержащую одинарную кавычку.

  • Вывести сообщение, содержащее специальные символы.

    Используйте параметр чтобы включить интерпретацию escape-символов.

  • Символы соответствия шаблону.

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

  • Перенаправить в файл

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

    Если файл file.txt не существует, команда создаст его. При использовании файл будет перезаписан, а символ добавит вывод в файл .

    Используйте команду для просмотра содержимого файла:

  • Отображение переменных

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

    — это переменная оболочки, в которой хранится ваше имя пользователя.

  • Отображение вывода команды

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

  • Отображение в цвете

4.1 Вызов Bash

Кроме односимвольных опций командной строки оболочки (см. раздел
4.5.), есть несколько мультисимвольных опций, которые можно
использовать. Для того, чтобы быть узнанными, эти опции должны
появляться на командной строке перед односимвольными опциями.

-norc

Не читает инициализацию файла ‘~/.bashrc’ в диалоговой
оболочке. Это по умолчанию, если оболочка вызывается как sh.

-rcfile имя_файла

Выполняет команды из файла имя_файла (вместо ‘~/.bashrc’) в
диалоговой оболочке.

-nonprofile

Не загружает файл начальных действий системы ‘/etc/profile’
или любой из файлов персональной инициализации
‘~/.bash-profile’ ,’~/bash-login’ или ‘~/.profile’, когда
Bash вызывается как login.

-version

выводит номер версии оболочки.

-login

включает оболочку, как если бы она вызывалась с login. Это
эквивалентно ‘exec — bash’, но может происходить из другой
оболочки, такой как csh. Если вы хотите заменить вашу
текущую входную оболочку Bash, вы должны набрать ‘exec bash
-login’.

-nonbraceexpansion

Не выполняет brace-расширение (см. раздел 2.2).

-nonlineediting

Не использует библиотеку GNU (СМ. главу 7 «Редактирование
командной строки») для чтения диалоговых командных строк.

-posix

Изменяет поведение Bash в соответствии со стандартом Posix
1003.2, когда операция по умолчанию отличается от этого
стандарта. Это предназначено для того, чтобы строго
подчинить Bash стандарту.

-c строка

Читает и выполняет команды со строки после выполнения опций,
затем выходит.

-i

Заставляет оболочку выполнять команды в интерактивном
режиме.

-s

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

Просмотр предыдущей истории в Bash

Для просмотра истории в Bash используется команда «history». Она выводит предыдущие команды, по команде на строку. В большинстве случаев она должна вывести количество строк, установленное значением «HISTSIZE».  На данный момент команд не так много:

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

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

Чтобы найти в истории все команды, которые содержат определенную строку, можно просто использовать grep после символа вертикальной черты. Например, чтобы найти строки, содержащие «cd», наберите:

Команда head в Linux

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

$ head опции файл

Здесь:

  • Опции — это параметр, который позволяет настраивать работу команды таким образом, чтобы результат соответствовал конкретным потребностям пользователя.
  • Файл — это имя документа (или имена документов, если их несколько). Если это значение не задано либо вместо него стоит знак «-», команда будет брать данные из стандартного вывода.

Чаще всего к команде head применяются такие опции:

  • -c (—bytes) — позволяет задавать количество текста не в строках, а в байтах. При записи в виде —bytes=NUM выводит на экран все содержимое файла, кроме NUM байт, расположенных в конце документа.
  • -n (—lines) — показывает заданное количество строк вместо 10, которые выводятся по умолчанию. Если записать эту опцию в виде —lines=NUM, будет показан весь текст кроме последних NUM строк.
  • -q (—quiet, —silent) — выводит только текст, не добавляя к нему название файла.
  • -v (—verbose) — перед текстом выводит название файла.
  • -z (—zero-terminated) — символы перехода на новую строку заменяет символами завершения строк.

Переменная NUM, упомянутая выше — это любое число от 0 до бесконечности, задаваемое пользователем. Оно может быть обычным либо содержать в себе множитель.

1) Заменить все строчные буквы на заглавные

Мы можем использовать tr для преобразования нижнего регистра в верхний или наоборот.

Просто используем наборы или для замены всех символов.

Вот пример, как преобразовать в Linux с помощью команды tr все строчные буквы в заглавные:

$ echo "hello linux world" | tr   
HELLO LINUX WORLD

А сейчас сделаем замену из файла input.txt

$ cat input.txt
hi this is text

$ tr "a-z" "A-Z" < input.txt
HI THIS IS TEXT

$ cat input.txt
hi this is text

Как мы видим, в файле ничего не изменилось, осталось все строчными буквами. Чтобы изменения были в файле, на необходимо перевести вывод в новый файл. Например, в output.txt

$ tr "a-z" "A-Z" < input.txt > output.txt

$ cat output.txt
HI THIS IS TEXT

Кстати, в команде sed есть опция y которая делает то же самое (sed ‘y/SET1/SET2’)

Examples of the echo command in Linux

Echo is often used in shell scripts to display information such as asking for user to provide an input or displaying the error or warning for a certain action in the script.

The echo command has a simple syntax with a few options:

Let’s see some examples of the echo command.

1. Displaying value of a variable

Let’s say you declared a variable var = 100. You can display the value of this variable using echo command:

It’s output would be displayed as this:

2. Don’t print the final new line character

By default, the output of the echo command adds a new line to the output so that you have the output displayed in one entire line.

You can suppress this new line character using the option -n:

3. Redirect the output to a file

You can use echo command to create a new file in Linux or append new text to an existing file by redirecting the output to a file:

3. Using escape characters with echo command

The option -e with echo allows you to interpret the escape characters. With escape characters, you can display your text on the screen in a different manner of your choice.

The following escape characters are available with escape:

  • \a – alert (plays a beep sound)
  • \b – backspace
  • \c – don’t print the final newline (same as -n option)
  • \f – from feed
  • \n – newline
  • \r – carriage return
  • \t – horizontal tab
  • \v – vertical tab
  • \\ – backslash
  • \’ – single quote
  • \” – double quote

While -e option asks the echo command to interpret the escape characters, the -E option does the opposite and ignores the escape characters.

Now let’s see how to use some of these escape characters with echo command.

Can you guess what would be the output of the above command? Here it is:

Let’s see some other examples of escape characters. The carriage return character prints only the text after that character.

If you use the backspace character, it will remove one character before it:

You can play with other escape characters in the similar way.

4. Display text with single or double quotes with echo command

Dealing with single quotes and double quotes is often a headache.

If you have a single quote in the text that you want to display, you should wrap the entire input within double quotes:

If you want to display the double quotes, you have to ‘escape’ it:

5. Display files in directory

You probably use the ls command to display the files in a directory. You can also use echo command for this purpose.

To display the contents of the present directory, you can use this command:

You can also use echo command to display only a certain type of files:

If you want to list only the directories, use it like this:

6. Use echo command to empty a file in Linux

I have already shown this tip for emptying log files in Linux. If you have a text file and you want to clear its content without deleting the file itself, you can use the echo command in the following fashion:

Bonus Tip: Display echo command output in color

You probably would have come across some bash script that displays the text output in different color. Have you ever wondered how it is done? Let me show you that.

You can use the and change the appearance of the output like background color, underscore, bold etc.

To change the color of the output text, you can use these:

echo -e “\033[30mThis is Black”echo -e “\033[31mThis is Red”echo -e “\033[32mThis is Green”echo -e “\033[33mThis is Yellow”echo -e “\033[34mThis is Blue”echo -e “\033[35mThis is Magenta”echo -e “\033[36mThis is Cyan”echo -e “\033[37mThis is White”

Sample colored output for your understanding:


Echo command output in color

\033[ represents ESC[ in the above commands.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: