Lx4U-book/docs/build-system/set-profile.md

82 lines
4.4 KiB
Markdown
Raw Normal View History

2021-05-07 03:21:17 +08:00
# Настройка окружения bash
Оболочка командной строки `bash` использует множество стартовых скриптов. С их помощью можно задать различные переменные, функции, алиасы, настройки `bash`
Ниже будут предложены команды по созданию минимальных версий стартовых скриптов `bash`:
2021-05-07 03:21:17 +08:00
## /etc/profile
<!-- объяснение строк в скриптах давать как комментарии в самом скрипте -->
2021-05-07 03:21:17 +08:00
Вы могли заметить файлы `~/.profile`, `~/.bash_profile` и ряд других. Они используются для задания элементов окружения для оболочки пользователя. Например, `umask`, а также переменных `PS1` или `PATH`. То же самое и с файлом `/etc/profile`, только он используется для задания общесистемных параметров, а файлы в каталоге пользователя - для задания параметров конкретного пользователя системы.
```bash
{{ include('../scripts/profile.sh') }}
```
2021-05-26 22:09:46 +08:00
2021-05-07 03:21:17 +08:00
### О CFLAGS и CXXFLAGS
С помощью данных переменных можно задать флаги компилятора, влияющие в том числе на оптимизацию.
2021-05-07 03:21:17 +08:00
Есть следующие уровни оптимизации (и соответствующие флаги)
2021-07-20 15:37:42 +08:00
`-O0` - без оптимизации. Не рекомендуется.
2021-05-07 03:21:17 +08:00
2021-07-20 15:37:42 +08:00
`-O1` - простейшие минимальные оптимизации. Не рекомендуется.
2021-05-07 03:21:17 +08:00
2021-07-20 15:37:42 +08:00
`-O2` - стандартная оптимизация. По умолчанию в GCC.
2021-05-07 03:21:17 +08:00
2021-07-20 15:37:42 +08:00
`-O3` - агрессивная оптимизация, почти все пакеты собираются и работают, рекомендуется нами.
2021-05-07 03:21:17 +08:00
2021-07-20 15:37:42 +08:00
`-Ofast` - чрезвычайно агрессивная оптимизация, некоторые пакеты не собираются.
2021-05-07 03:21:17 +08:00
2021-07-20 15:37:42 +08:00
`-Os` - оптимизация по размеру.
2021-05-07 03:21:17 +08:00
2021-07-20 15:37:42 +08:00
`-Og` - оптимизация для отладки.
2021-05-07 03:21:17 +08:00
Вы можете сообщить компилятору оптимизировать код для вашего процессора добавив опцию `-march=native`, однако возможность запуска такого кода на других процессорах будет потеряна.
2021-05-07 03:21:17 +08:00
## Bash-completion
`bash-completion` расширяет существующие возможности дополнения в bash, позволяя вводить сложные командные строки нажатием буквально нескольких клавиш. Целью является создание программируемых процедур дополнения для большинства распространённых команд Linux/UNIX, которые позволили бы системным администраторам и программистам сократить количество нажатий клавиш при выполнении ежедневных задач.
2021-06-03 23:44:25 +08:00
```bash
{{ include('../scripts/completion.sh') }}
```
2021-05-07 03:21:17 +08:00
## Dircolors
2021-05-26 22:09:46 +08:00
Этот файл нужен для цветного вывода таких утилит, как `ls`. Пример: `ls --color=auto`.
```bash
{{ include('../scripts/dircolors.sh') }}
```
2021-05-07 03:21:17 +08:00
## Readline
Этот файл нужен для настройки `inputrc`. Если пользователь не имеет индивидуальных установок, он использует глобальный файл.
2021-06-03 23:44:25 +08:00
```bash
{{ include('../scripts/inputrc.sh') }}
```
2021-05-07 03:21:17 +08:00
## Umask
Установка значения `umask` важна для безопасности. Здесь права доступа для записи группы по умолчанию выключены для пользователей системы и когда имена пользователя и группы не совпадают.
2021-06-03 23:44:25 +08:00
```bash
{{ include('../scripts/umask.sh') }}
```
2021-05-07 03:21:17 +08:00
## Другие стартовые скрипты
```bash
{{ include('../scripts/other.sh') }}
```
2021-05-07 04:11:46 +08:00
## Применить изменения
```bash
bash --login +h
```
2021-06-13 16:26:44 +08:00