Ввод значений пользователем в Bash с помощью команды read

Alexey 04.05.2020 0 Файловая система Bash, cut, echo, find, grep, ls, printf, tree, директории / папки

Команда tree также полезна для рассматриваемого вопроса. По умолчанию она показывает все файлы и каталоги на полную глубину, а некоторые символы ascii показывают дерево каталогов.

tree

Но если мы хотим получить только каталоги, без дерева ascii и с полным путём из текущего каталога, вы можете сделать:

tree -dfi

Используемые аргументы:

-d Список только каталогов. -f Печатает префикс полного пути для каждого файла. -i Делает так, что tree не печатать строки отступа, полезно, когда используется вместе с опцией -f.

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

tree -dfi "$(pwd)"

А чтобы ограничить количество подкаталогов, вы можете установить максимальный уровень подкаталогов с уровнем -L, например:

tree -dfi -L 1 "$(pwd)"

Как работают bash скрипты в ОС Linux

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

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

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

Создание

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

alias wpdir=’cd /var/www/_html/’

Читайте также:  Правила использования операторов grep и find в Linux

В этом примере, я назвал alias wpdir, который вызовет команду cd /var/www/_html/, то есть перейдет в рабочую директорию с сайтом.

И при вводе wpdir, я теперь всегда буду попадать в папку сайта. В вашем случае — это может быть какой-то другой путь и т.д.

Это очень удобно, потому что не нужно постоянно прописывать пусть до нужной директории. Таким образом можно создать кучу разных alias и вводя 3-4 буквы переходить с одной директории в другую.

Как добавить псевдоним для домена

Добавление псевдонима для существующего домена происходит в два этапа (добавление в хостинг-панели и указание соответствующей ресурсной записи на DNS-серверах).

Как добавить псевдоним для домена

1 этап. Добавление псевдонима в панели управления

Как добавить псевдоним для домена

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

Как добавить псевдоним для домена

Готово, повторите действия для других псевдонимов, которые хотите добавить для домена.

Как добавить псевдоним для домена

2 этап. Добавление записи на DNS-серверы

Как добавить псевдоним для домена

После того как псевдоним будет добавлен в панели управления веб хостингом, следует направить его на IP-адрес, с которого открывается основной сайт. Настройка зависит от того, какие DNS-серверы используются для домена, который используется в качестве псевдонима: Как узнать, какие DNS указаны для вашего домена.

Как добавить псевдоним для домена

и Если для домена указаны и , запись о псевдониме будет добавлена автоматически. От вас не требуется никаких дополнительных действий. В течение 15 минут по имени псевдонима будет открываться основной сайт.

Как добавить псевдоним для домена

другие DNS-серверы Если для вашего домена используются отличные от и , и , обратитесь к своему DNS-провайдеру с вопросом указания IP-адреса для домена (его можно узнать по инструкции Как узнать IP-адрес сайта), который будет использоваться как псевдоним.

Как добавить псевдоним для домена

Ввод значения с клавиатуры, начинающийся с подсказки в Bash с помощью команды read

Для того, чтобы пользователь знал, что требуется ввести, ему нужно дать подсказку в виде текста. Это можно сделать с помощью команды echo, убрав перевод на новую строку с помощью опции \с (можно прочитать по → этой ссылке),но можно все сделать гораздо проще с помощью команды read, используя опцию -p:

[email protected]:~# read -p «Введите имя: » var Введите имя: Виктория [email protected]:~# echo «Было введено имя: » $var Было введено имя: Виктория

Объяснения кажется излишни — вроде должно быть понятно, как работает вывод подсказки в команде read.

Вход в командную строку

Используя Ubuntu в качестве операционной системы, вы можете перейти к командной строке двумя путями, а именно через консоль или через терминал. Если вы хотите зайти в командную строку через терминал, то для этого необходимо нажать Ctrl+Alt+F(1-6) – в зависимости от выбранного номера (F1, F2…) вы попадаете в первую, вторую или другую по счету виртуальную консоль (они независимы и запускаются во время загрузки Ubuntu), каждая из которых имеет интерфейс командной строки. Если вы нажмете Ctrl+Alt+F7, то перейдете в седьмую виртуальную консоль, которая имеет графический интерфейс.

Что касается терминала, то это графическая программа, которая эмулирует консоль. Вы можете найти ее в меню, выбрав «Приложения», затем «Стандартные», а затем «Терминал», либо нажав сочетание клавиш Ctrl+Alt+T. Вы сможете выполнять команды, продолжая находиться в графическом интерфейсе. Также возможен вариант, когда вам необходимо подключиться к серверу, на котором установлена Ubuntu. В этом случае вам нужно воспользоваться специальной программой (например, puTTy): наберите нужный ip-адрес, а затем введите имя пользователя и пароль.

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

Примеры работы с учетными записями

Команда useradd

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

useradd NewUser

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

Например, в нашей системе указанная выше команда добавила следующую запись в файл /etc/passwd.

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

Во-первых, второе поле содержит «х». Это означает, что заполнитель для информации о пароле находится в /etc/shadow. Но мы не установили пароль. Это означает, что тестовый пользователь не сможет войти в систему.

Во-вторых, домашний каталог. Дело в том, что /home/test не существует. Даже после того, как вы установили пароль, произойдет ошибка, если пользователь войдет в систему. В зависимости от другой конфигурации ваша система Linux может запретить пользователю входить без действительного домашнего каталога. Скорее всего, пользователь test позволит войти в систему, по крайней мере, в текстовом режиме. Но пользователь test не сможет создать свой домашний каталог.

В-третьих, оболочкой по умолчанию является sh, а не bash. Мы не используем sh как оболочку. Вы, вероятно, тоже не знаете, потому что bash является оболочкой по умолчанию в большинстве дистрибутивов Linux.

В то время как useradd-х поведение можно немного изменить, отредактировав /etc/, существует мало шансов, что приведенная выше команда создаст полную учетную запись пользователя. Useradd является низкоуровневая утилита. Тем не менее, просмотр настроек в /etc/ может быть полезен.

Синтаксис команды useradd

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

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

useradd опцииимяпользователя

Создание нового пользователя

Чтобы просто создать пользователя используется команда useradd без каких-либо опций. Указывается только имя пользователя.

sudo useradd pupkin

Данная команда создает нового пользователя с системными параметрами по умолчанию, которые прописаны в файле /etc/default/useradd

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

sudo passwd pupkin

Создание нового пользователя с домашней директорией в /home

Создадим пользователя и его домашнюю директорию.

sudo useradd -m pupkin

Домашняя директория создается по умолчанию в каталоге /home. Имя директории совпадает с именем пользователя.

Читайте также:  Маршрутизация трафика Kali Linux в Tor посредством Whonix.

Создание нового пользователя с произвольной домашней директорией

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

Создаем домашнюю директорию для будущего пользователя:

sudo mkdir -p /users/pupkin

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

sudo cp -rT /etc/skel /users/pupkin

Создаем пользователя и указываем домашнюю директорию:

sudo useradd -d /users/pupkin pupkin

Меняем права доступа у домашней директории:

sudo chown -R pupkin:pupkin /users/pupkin

Задаем пароль для пользователя:

sudo passwd pupkin

Можно просмотреть информацию о пользователе, которая сохранена в файле /etc/passwd

cat /etc/passwd | grep pupkin pupkin:x:1001:1001::/users/pupkin:/bin/sh

Создание нового пользователя с произвольными UID, GID

Каждый пользователь в Linux имеет свой числовой идентификатор — UID, а также идентификатор основной группы пользователя — GID.

При создании пользователя можно задать произвольные номера UID и/или GID. При указании номера группы, группа с этим номером должна быть создана заранее.

useradd -u 1234 -g 1222 pupkin

Создание пользователя с указанием оболочки (shell)

По умолчанию новые пользователи создаются с оболочкой /bin/sh Чтобы задать другую оболочку, используется опция -s /путь/до/оболочки

sudo useradd -m -s /bin/bash pupkin

Смотрите также: Как определить и изменить командную оболочку (shell) в Linux

Создать пользователя и добавить его в группы

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

sudo useradd -m -G adm,cdrom,wheel -s /bin/bash pupkin

Смотрите также: «Добавление пользователя в группу. Списки пользователей и групп в Linux»

unzip

unzip — распакует архив в текущую директорию

Работа с файлами

cp — копирование файлов и директорий.

mv — перенос файлов и директорий.

rm — удаление файлов и директорий.

chmod — изменение прав доступа на файл или директорию. Права можно задавать как цифрами в двоичной или десятичной системе счисления, так и в понятном для человека.

Три вариант записи прав пользователя

chown — изменение владельца файла или директории.

Правка файлов

nano — простой текстовый редактор. Идёт по умолчанию в куче дистрибутивов. В большинстве случаев его хватает для правки конфигов.

vim — «православный» текстовый редактор. Сложный для восприятия новичками. Но если если изучить, вы будете неудержимы и вас будут уважать все линкусоиды.

Автоматизация

bash — популярная командная оболочка. Можно писать последовательные команды для выполнения. Часто повторяемые рутинные операции хорошо писать в баш скрипты. Пусть за вас потеет машина. Основные возможности описаны на

Python — простой и понятный язык программирования на котором можно писать всё что угодно, включая скрипты для администрирования.

Если вкратце, то это минимально необходимый набор. Буду рад вашим дополнениям в комментариях.