- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Как запустить Bash скрипт в Linux
- Подготовка
- Запустить Bash скрипт из пути к скрипту
- Запустить Bash скрипт, используя bash
- Полезно?
- Почему?
- Как прочитать
- Запуск Bash в деталях
- Диаграмма
- Login Shell?
- Интерактивный?
- В оболочке входа?
- В интерактивной оболочке?
- Ни один вариант?
- Типичные трудности и эмпирические правила
- Задания cron
- Скрипты, вызывающие друг друга
- Образ Docker в песочнице
- Где находится .bashrc?
- 13 ответов
- Где находится .bashrc?
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Как запустить Bash скрипт в Linux
Как системный администратор, вполне вероятно, что вы написали несколько сценариев Bash для автоматизации вашей работы. Например, вы можете запускать сценарии Bash для резервного копирования вашей работы или для регистрации некоторых событий, происходящих на вашем сервере.
Мини — курс по виртуализации
Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена
Скрипты Bash, как и скрипты, написанные на других языках программирования, могут запускаться различными способами.
В этой статье мы расскажем о всех способах запуска скрипта Bash в Linux.
Подготовка
Прежде чем вы сможете запустить ваш скрипт, вам нужно, чтобы ваш скрипт был исполняемым. Чтобы сделать исполняемый скрипт в Linux, используйте команду chmod и присвойте файлу права execute . Вы можете использовать двоичную или символическую запись, чтобы сделать ее исполняемой.
Если вы не являетесь владельцем файла, вам необходимо убедиться, что вы принадлежите к правильной группе или что права доступа предоставлены «другой» группе в вашей системе.
В некоторых дистрибутивах ваш файл будет выделен другим цветом, когда он исполняемый.
Теперь, когда ваш файл исполняемый, давайте посмотрим, как можно легко запустить скрипт Bash.
Запустить Bash скрипт из пути к скрипту
Чтобы запустить Bash скрипт в Linux, просто укажите полный путь к скрипту и укажите аргументы, которые могут потребоваться для запуска Bash скрипта.
В качестве примера, скажем, у вас есть Bash-скрипт, расположенный в вашем домашнем каталоге.
Чтобы выполнить этот скрипт, вы можете указать полный путь к скрипту, который вы хотите запустить.
Кроме того, вы можете указать относительный путь к скрипту Bash, который вы хотите запустить.
Таким образом вы узнали, как легко запустить Bash-скрипт в своей системе.
Запустить Bash скрипт, используя bash
Чтобы запустить скрипт Bash в вашей системе, вы должны использовать команду bash и указать имя скрипта, который вы хотите выполнить, с необязательными аргументами.
Полезно?
Почему?
😪 Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.
😍 Полезные IT – статьи от экспертов раз в неделю у вас в почте. Укажите свою дату рождения и мы не забудем поздравить вас.
Источник
Как прочитать
Здравствуйте. Что-то я запутался с bash. Я добавил переменные в файл /etc/bashrc через редактор, перечитал файл — все ок, выхожу, снова авторизуюсь — правила не работают. Как я понял, правила нужно добавлять в
/.bashrc, но как этот файл найти в моей ОС Linux. Если добавлять через export, то правила куда-то сохраняются, по всей видимости, именно в него. Я наблюдаю только файл
Попробуй создать руками с вот таким содержимым.
Это файл в домашней директории.
Хотя, наверное, в начале лучше пустой попробовать с нужными параметрами.
в /etc/profile же
где? это надо сделать в tty консоли.
а вообще как уже было сказано, для этого существует
где? это надо сделать в tty консоли.
в /etc/profile тоже ничего не наблюдаю
Ну создать то я создам, а сейчас то куда правила сохраняются? Я смотрю чере env — они сохраняются 100%. Делаю под рутом.
Если добавлять через export, то правила куда-то сохраняются, по всей видимости, именно в него.
Какие правила? export действует только на память текущего шелла, в файл export не пишет.
«Правила», которые на самом деле переменные, валяются в памяти и никуда сами не сохраняются. Если знаком с программированием, то баш это просто интерпретатор, а переменные — его обычные переменные в памяти. При своем запуске («авторизация») баш не сразу выдает интерактивный промпт, а сначала выполняет содержимое
/.bashrc. Если туда написать один в один то же, что ты сейчас пишешь в консоли, оно очевидно так же выполнится при следующем входе.
А еще у баша есть чисто внутренние переменные, а есть те, которые попадают в environment — его копия передается при запуске других программ, чтобы те им пользовались. export переводит переменную в environment.
вот для рута настройки и сохраняются. Делай под тем пользователем, для которого настройки и нужны.
Смысл в том, что
/.bash_profile читается при login, а
/.bashrc при интерактивном старте оболочки. Создал
/.bash_profile, добавил туда переменные(правила). Теперь все ок.
Какие правила? export действует только на память текущего шелла, в файл export не пишет.
Вы что-то путаете.
при желании, можно включить локальную переменную оболочки в основное окружение. Для этого используется команда export http://www.opennet.ru/docs/RUS/zlp/004.html
если правильно понял то $ source
Перечитает фаил без перезагрузки и выхода-входа
Источник
Запуск Bash в деталях
Если вы нашли эту страницу в поиске, то наверняка пытаетесь решить какую-то проблему с запуском bash.
Возможно, в вашем окружении bash не устанавливается переменная среды и вы не понимаете, почему. Возможно, вы засунули что-то в различные загрузочные файлы bash или в профили, или во все файлы наугад, пока это не сработало.
В любом случае, смысл этой заметки — как можно проще изложить процедуру запуска bash, чтобы вы могли справиться с проблемами.
Диаграмма
Эта блок-схема обобщает все процессы при запуске bash.
Теперь подробнее рассмотрим каждую часть.
Login Shell?
Сперва нужно выбрать, находитесь вы в командной оболочке входа (login shell) или нет.
Оболочка входа — это первая оболочка, в которую вы попадаете при входе в систему для интерактивного сеанса. Оболочка входа не требует ввода имени пользователя и пароля. Вы можете форсировать запуск оболочки входа, добавив флаг —login при вызове bash , например:
Оболочка входа настраивает базовую среду при первом запуске оболочки bash.
Интерактивный?
Затем вы определяете, является оболочка интерактивной или нет.
Это можно проверить по наличию переменной PS1 (она устанавливает функцию ввода команд):
Или посмотреть, установлен ли параметр -i , с помощью специальной переменной дефиса — в bash, например:
Если в выдаче есть символ i , то оболочка является интерактивной.
В оболочке входа?
Если вы находитесь в оболочке входа, то bash ищет файл /etc/profile и запускает, если он существует.
Затем ищет любой из этих трёх файлов в следующем порядке:
Когда находит один, то запускает его и пропускает другие.
В интерактивной оболочке?
Если вы находитесь в интерактивной оболочке без входа в систему (non-login shell), предполагается, что вы уже побывали в оболочке входа, окружение настроено и будет унаследовано.
В этом случае выполняются по порядку следующие два файла, если они существуют:
Ни один вариант?
Если вы не находитесь ни в оболочке входа, ни в интерактивной оболочке, то ваше окружение действительно будет пустым. Это вызывает большую путаницу (см. ниже о заданиях cron).
В этом случае bash смотрит на переменную BASH_ENV вашей среды и выполняет соответствующий файл, который там указан.
Типичные трудности и эмпирические правила
Задания cron
У меня в 95% случаев отладка запуска bash связана с тем, что задание cron работает не так, как ожидалось.
Эта проклятая задача работает нормально, когда я запускаю её в командной строке, но фейлится при запуске в crontab.
Здесь две причины:
- Задания cron не являются интерактивными.
- В отличие от скриптов в командной строке, задания cron не наследуют среду оболочки.
Обычно вы не замечаете или не заботитесь о том, что скрипт оболочки не является интерактивным, потому что среда наследуется от интерактивной оболочки. Это означает, что все PATH и alias настроены так, как вы ожидаете.
Вот почему зачастую приходится установить конкретный PATH для задачи cron, как здесь:
Скрипты, вызывающие друг друга
Обычно так происходит, когда кто-то пытался исправить какую-то ошибку и вроде бы всё заработало. К сожалению, когда нужно разделить эти разные типы сессий, то возникают новые проблемы.
Образ Docker в песочнице
Чтобы поэкспериментировать с запуском оболочки, я создал образ Docker, который можно использовать для отладки запуска оболочки в безопасной среде.
Для принудительного логина и имитации оболочки входа:
Для проверки набора переменных BASH_ENV :
Для отладки crontab каждую минуту выполнятся простой скрипт (в /root/ascript ):
Источник
Где находится .bashrc?
Я чувствую глупость, но я не могу найти ответ на это где угодно. Я пытаюсь выполнить эти инструкции, чтобы отредактировать мое приглашение bash, но нет .bashrc ни в моем каталоге пользователя (
/.bashrc), ни в моем домашнем каталоге, ни в главном каталоге файловой системы.
В /etc/ нет .bashrc (однако есть bash.bashrc).
Создать файл .bashrc в моем пользовательском или домашнем каталоге? Есть ли лучший, более свежий набор инструкций для изменения подсказки bash?
13 ответов
Пользовательский, скрытый по умолчанию.
Если нет, просто создайте его.
Пользовательский характер :
В домашней папке каждого пользователя (99.99% времени) есть .bashrc, а также одна системная (я не знаю, где находится Ubuntu).
Самый быстрый способ доступа к ней — nano
/.bashrc с терминала (замените nano на то, что вы хотите использовать).
Если этого нет в домашней папке пользователя, используется общесистемная .bashrc как резерв, когда он загружается перед файлом пользователя. Вы можете просто скопировать и вставить его (конечно, с правами root), но .bashrc не является абсолютно необходимым (может потребоваться, чтобы все работало, я не обнаружил) на уровне пользователя, поскольку он в основном переопределяет общесистемный с пользовательскими настройками. Вы можете написать свой собственный, хотя.
Основными компонентами для этих пользователей могут быть PS1 (приглашение Bash по умолчанию отображает user@localhost:pwd $) и псевдонимы, а также установку цветового приглашения и, возможно, (сообщение состояния занятости).
Источник
Где находится .bashrc?
Я чувствую себя глупо, спрашивая, но я не могу найти ответ на это нигде. Я пытаюсь следовать этим инструкциям для редактирования моего приглашения bash, но его нет ни .bashrc в моем каталоге пользователя (
/.bashrc ), ни в моем домашнем каталоге, ни в главном каталоге файловой системы.
Нет .bashrc в /etc/ (есть bash.bashrc , однако).
Создать .bashrc файл в моем пользовательском или домашнем каталоге? Есть ли лучший, более свежий набор инструкций для изменения приглашения bash?
/.bashrc . Но перед этим я должен также спросить, если вы новичок в Linux. Если вы новичок в Linux, то я могу опубликовать подробные инструкции здесь.
Не забудьте, что это скрытый файл в вашем домашнем каталоге (вы не будете первым, кто сделает это, ls -l и подумает, что его там нет).
Там должно быть .bashrc на первой странице. Если не просто создать его с помощью:
и добавьте в строки, которые нужно добавить в него.
Разрешения мои .bashrc являются:
( chmod 644 .bashrc чтобы сделать это rw r r ).
Специфично для пользователя , скрыто по умолчанию.
Если нет, просто создайте его.
Система в целом :
В каждой домашней папке пользователя есть файл .bashrc (99,99% времени), а также один в масштабе всей системы (местоположение которого я не знаю в Ubuntu).
Самый быстрый способ получить к нему доступ — nano
/.bashrc через терминал (замените его nano на то, что вам нравится).
Если это не присутствует в домашней папке пользователя, то общесистемная система .bashrc используется как запасной вариант, поскольку она загружается перед файлом пользователя. Вы можете просто скопировать и вставить его (конечно, с правами суперпользователя), но a .bashrc не является абсолютно необходимым (может потребоваться, чтобы все заработало. Я не обнаружил) на уровне пользователя, поскольку он в основном переопределяет всю систему один с пользовательскими настройками. Вы можете написать свой собственный, хотя.
Основными компонентами, которые могут настраивать пользователи, являются PS1 (приглашение Bash по умолчанию отображается user@localhost:pwd $ ) и псевдонимы, а также настройка цветного приглашения и, возможно, PS2 (сообщение о состоянии занятости).
Это скрыто, потому . что имя файла начинается с. Перечислите это с
или включите «Показать скрытые файлы» в меню просмотра в nautilus ( Ctrl — H тоже поможет).
Вы можете отредактировать его в своем любимом текстовом редакторе из вашего домашнего каталога, например, cd чтобы перейти в свой домашний каталог, а затем:
Источник