# Настройка окружения bash Оболочка командной строки `bash` использует множество стартовых скриптов. С их помощью можно задать различные переменные, функции, алиасы, настройки `bash` Ниже будут предложены команды по созданию минимальных версий стартовых скриптов `bash`: ## /etc/profile Вы могли заметить файлы `~/.profile`, `~/.bash_profile` и ряд других. Они используются для задания элементов окружения для оболочки пользователя. Например, `umask`, а также переменных `PS1` или `PATH`. То же самое и с файлом `/etc/profile`, только он используется для задания общесистемных параметров, а файлы в каталоге пользователя - для задания параметров конкретного пользователя системы. ```bash {{ include('../scripts/profile.sh') }} ``` ### О CFLAGS и CXXFLAGS С помощью данных переменных можно задать флаги компилятора, влияющие в том числе на оптимизацию. Есть следующие уровни оптимизации (и соответствующие флаги) `-O0` - без оптимизации. Не рекомендуется. `-O1` - простейшие минимальные оптимизации. Не рекомендуется. `-O2` - стандартная оптимизация. По умолчанию в GCC. `-O3` - агрессивная оптимизация, почти все пакеты собираются и работают, рекомендуется нами. `-Ofast` - чрезвычайно агрессивная оптимизация, некоторые пакеты не собираются. `-Os` - оптимизация по размеру. `-Og` - оптимизация для отладки. Вы можете сообщить компилятору оптимизировать код для вашего процессора добавив опцию `-march=native`, однако возможность запуска такого кода на других процессорах будет потеряна. ## Bash-completion `bash-completion` расширяет существующие возможности дополнения в bash, позволяя вводить сложные командные строки нажатием буквально нескольких клавиш. Целью является создание программируемых процедур дополнения для большинства распространённых команд Linux/UNIX, которые позволили бы системным администраторам и программистам сократить количество нажатий клавиш при выполнении ежедневных задач. ```bash {{ include('../scripts/completion.sh') }} ``` ## Dircolors Этот файл нужен для цветного вывода таких утилит, как `ls`. Пример: `ls --color=auto`. ```bash {{ include('../scripts/dircolors.sh') }} ``` ## Readline Этот файл нужен для настройки `inputrc`. Если пользователь не имеет индивидуальных установок, он использует глобальный файл. ```bash {{ include('../scripts/inputrc.sh') }} ``` ## Umask Установка значения `umask` важна для безопасности. Здесь права доступа для записи группы по умолчанию выключены для пользователей системы и когда имена пользователя и группы не совпадают. ```bash {{ include('../scripts/umask.sh') }} ``` ## Другие стартовые скрипты ```bash {{ include('../scripts/other.sh') }} ``` ## Применить изменения ```bash bash --login +h ```