Оглавление
основы оболочки
оболочка, bash, ядро
Отношения между Bash, Shell и Kernel подобны отношениям между нашими глазами, обработкой световых сигналов и мозгом.
- Ядро: как следует из названия, ядро Linux эквивалентно вашему мозгу.
- Оболочка: это аналог процессора световых сигналов для глаз, который может обрабатывать цветные объекты, видимые глазами, в сборку команд, которую может принять мозг.
- Баш: Эквивалент большого и красивого глаза. Есть много видов глаз (в т.ч. зш и т.п.), но такой нравится всем
- терминал: терминал, который эквивалентен форме существования ваших глаз, то есть терминалов может быть несколько.
Формальное объяснение:
- Ядро: ядро
, его основные модули (или компоненты) включают в себя следующие части: управление хранилищем, управление процессором и процессами, файловая система, управление устройствами и драйверами, сетевое взаимодействие и инициализация системы (загрузка), системные вызовы и т. д., чтобы завершить контроль над оборудованием. - Оболочка:
обычно известная как оболочка (используется для отличия от ядра), это слой оболочки вне машины для взаимодействия человека с компьютером. Это интерфейс для взаимодействия между людьми и компьютерами. Программное обеспечение (анализатор команд), которое «обеспечивает пользовательский интерфейс», получает пользовательские команды, а затем вызывает соответствующее приложение. Его производительность заключается в том, что пользователь вводит команду, а оболочка немедленно интерпретирует и выполняет команду. Он не ограничивается такими понятиями, как системы и языки, методы работы и методы производительности. Например, мы обычно вводим команды в черной рамке, называемой интерфейсом командной строки (CLI); кликаем по экрану, называемом графическим интерфейсом пользователя (GUI). - Bash:
его название представляет собой ряд сокращений: Bourne-Again SHell, как следует из названия, представляет собой регенерированную оболочку Таким образом, Bash является разновидностью оболочки и является наиболее распространенной оболочкой. По умолчанию в Mac используется оболочка bash.
Общий сценарий оболочки — xx.sh, а рекомендуемый способ выполнения —
начало файла ./xx.sh:
#!/bin/bash
Или для совместимости с разными средами
#!/bin/env bash
Поэтому файл sh — это просто пакет шелл-команд, используемых в терминале, который удобно вызывать
Использование $ в сценарии оболочки
ссылка на блог об использовании $
- $0: сама команда оболочки. От 1 до 9: указывает количество параметров оболочки.
- $*: отображать все параметры, переданные скрипту, в виде одной строки.
- $?: показывает выполнение последней команды
- $#: количество параметров, переданных скрипту
- $$: Текущий идентификационный номер процесса запущенного скрипта.
- $!: Идентификационный номер последнего процесса, запущенного в фоновом режиме.
- $-: отображает текущие параметры, используемые оболочкой.
При ссылке на переменные используйте символ $ для прямой ссылки и включайте переменные цикла.
[root@localhost ~]# x=1024
[root@localhost ~]# echo $x
1024
переменная
локальная переменная
Пользовательская переменная, допустимая для текущего процесса, недопустимая для других процессов и дочерних процессов текущего процесса.
переменная среды
Текущий процесс действителен и может вызываться дочерними процессами
env
: просмотр переменных окружения текущего пользователя.set
: запросить все переменные текущего пользователя (временные переменные и переменные среды)
export 变量名 = 变量值
或者
变量名 = 变量值 ; export 变量名
#系统中有一个PATH,环境变量
Временное дополнение:
~$ echo $PATH # 显示当前环境变量
/usr/local/sbin:/usr/local/bin # 显示举例,多个路径中间用“:”隔开
~$ PATH="$PATH:/home/workdir" # 添加“/home/workdir”目录
/usr/local/sbin:/usr/local/bin:/home/workdir # 显示举例,多个路径中间仍用“:”隔开
~$ export PATH
~$ source ~/.bashrc
Внесите постоянное изменение:
# 在相应文件中添加
PATH=$PATH:/home/workdir
глобальная переменная
Его могут использовать все пользователи и программы в мире, а также унаследованные и вновь созданные пользователи по умолчанию.
имя файла | иллюстрировать | Примечание |
---|---|---|
~/.bashrc | Информация bash текущего пользователя, прочитанная, когда пользователь входит в систему | Определите псевдонимы, umask, функции и т. д. |
~/.bash_profile | Переменные среды для текущего пользователя, читаемые при входе пользователя в систему | |
~/.bash_logout | Когда текущий пользователь выходит из текущей оболочки, последнее чтение | Определите программу выполнения при выходе пользователя и т. д. |
/ect/bashrc | Глобальная информация bash, действительная для всех пользователей | |
/etc/профиль | Информация о глобальной переменной среды | Система и все пользователи действуют |
~/.bashrc
Добавьте функцию оболочки в
()
Неважно, здесь он или нет, и тогда =
не оставляйте вокруг него пробелы, а отступ должен следовать за его автоматическим отступом, иначе будет сообщено об ошибке
function waff() {
ns_root="/opt/ns-allinone-3.32/ns-3.32/"
cd $ns_root && sudo ./waf $*
}
При выполнении:
waff --run hello-simulator
Таким образом, вам не нужно переходить в ns-3.32
папку для запуска ./waf
команды
Напишите сценарии оболочки и добавьте переменные среды
Это нужно для того, чтобы добавить путь к скрипту в переменную окружения, а затем скомпилировать файл, выполнив скрипт
~/.bashrc:
export PATH="/opt/ns-allinone-3.32/wafenv.sh:$PATH"
вафенв.ш:
#!/bin/bash
ns_root="/opt/ns-allinone-3.32/ns-3.32/"
cd $ns_root && sudo ./waf $*
осуществлять:
accelerator@LAB:/opt/ns-allinone-3.32$ wafenv.sh --run hello-simulator
Waf: Entering directory `/opt/ns-allinone-3.32/ns-3.32/build'
Waf: Leaving directory `/opt/ns-allinone-3.32/ns-3.32/build'
Build commands will be stored in build/compile_commands.json
'build' finished successfully (0.735s)
Hello Simulator