Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
linux:bash [2022/11/21 06:16] admin |
linux:bash [2024/12/09 07:00] (текущий) admin |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Оболочка ====== | ====== Оболочка ====== | ||
- | |||
Born again shell - усовершенствованная оболочка Bourne shell.\\ | Born again shell - усовершенствованная оболочка Bourne shell.\\ | ||
Командный процессор, | Командный процессор, | ||
Строка 15: | Строка 14: | ||
* **ldd** - список библиотек от которых зависит программа | * **ldd** - список библиотек от которых зависит программа | ||
* **zless/ | * **zless/ | ||
- | * **** - | + | * **tr '< |
- | * **** - | + | * **strings** - Команда для извлечения строк из указанного файла |
- | * **** - | + | |
Строка 25: | Строка 23: | ||
* **yes | < | * **yes | < | ||
* **> file** - очистка файла | * **> file** - очистка файла | ||
- | * **** - | ||
- | * **** - | ||
* **** - | * **** - | ||
Строка 49: | Строка 45: | ||
===== Формы команд ===== | ===== Формы команд ===== | ||
* **cmd &** - выполнить в фоновом режиме. | * **cmd &** - выполнить в фоновом режиме. | ||
- | * **{cmd1; cmd2}** - выполнить группой, | + | * **{ cmd1; cmd2; }** - выполнить группой, |
* **cmd1 | cmd2** - направить выход **cmd1** на вход **cmd2** | * **cmd1 | cmd2** - направить выход **cmd1** на вход **cmd2** | ||
* **cmd1 `cmd2`** - выход **cmd2** в аргументами в **cmd1**, $(cmd2) по стандарту POSIX | * **cmd1 `cmd2`** - выход **cmd2** в аргументами в **cmd1**, $(cmd2) по стандарту POSIX | ||
Строка 75: | Строка 71: | ||
# Различия в файлах, | # Различия в файлах, | ||
diff -u <(sort file1) <(sort file2) | less | diff -u <(sort file1) <(sort file2) | less | ||
+ | |||
+ | # Подстановка имен файлов | ||
+ | ls -l ./ | ||
+ | ls -l [a-c]* | ||
+ | ls -l [^ab]* (отрицание) | ||
+ | |||
+ | # Группировка команд. Важно что между фигурными скобками и командами должны быть пробелы и каждая команда завершаться точкой с запятой | ||
+ | xxxls || { echo " | ||
</ | </ | ||
Строка 83: | Строка 87: | ||
|1|Вывод|stdout|Экран терминала| | |1|Вывод|stdout|Экран терминала| | ||
|2|Вывод ошибок|stderr|Экран терминала| | |2|Вывод ошибок|stderr|Экран терминала| | ||
- | |||
* **cmd > file** - перезаписать выводом команды файл >> присоединить | * **cmd > file** - перезаписать выводом команды файл >> присоединить | ||
* **cmd < file** - входные данные для команды из файла | * **cmd < file** - входные данные для команды из файла | ||
Строка 134: | Строка 137: | ||
<code bash> | <code bash> | ||
- | | + | # Просмотр текущий переменных |
env | env | ||
Строка 141: | Строка 144: | ||
export myVar=Value | export myVar=Value | ||
+ | |||
+ | export PATH=$PATH:/ | ||
+ | # Для сохранения добавить в один из файлов | ||
+ | ~/ | ||
+ | |||
+ | # Применить переменные окружения из файла | ||
+ | # пропускаются строки начинающиеся с # или [ | ||
+ | # в файле перечислены в формате key=" | ||
+ | eval $(grep -v ' | ||
+ | |||
</ | </ | ||
Строка 150: | Строка 163: | ||
* **Ctrl + R** - поиск по ранее введенным командам | * **Ctrl + R** - поиск по ранее введенным командам | ||
* **Alt + .** - подставить последнюю команду | * **Alt + .** - подставить последнюю команду | ||
- | * **** - | ||
- | * **** - | ||
- | * **** - | ||
Строка 178: | Строка 188: | ||
+ | ===== Примеры ===== | ||
+ | <code bash> | ||
+ | # Текущая дата в указанном формате | ||
+ | echo $(date ' | ||
+ | # Простой цикл в интерактивном режиме | ||
+ | while !./run.sh; do sleep 1; done | ||
+ | # Создать файл указанного размера (10м) | ||
+ | dd if=/ | ||
+ | # Замена пробелов на табуляцию (строчных на прописные "tr a-z A-Z") | ||
+ | cat geeks.txt | tr ': | ||
+ | </ | ||
- | ===== Примеры | + | Перечень директорий в строчку, |
<code bash> | <code bash> | ||
- | | + | # только надо переходить в целевую папку |
- | echo $(date '+%Y-%m-%d') | + | echo $(ls -d */ | cut -f1 -d'/' |
+ | |||
+ | # Вот | ||
+ | find . -maxdepth 1 -type d -printf "%P " | ||
</ | </ | ||
+ | |||