Инструменты пользователя

Инструменты сайта


linux:bash

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
linux:bash [2022/11/21 12:22]
admin
linux:bash [2024/12/09 07:00] (текущий)
admin
Строка 1: Строка 1:
 ====== Оболочка ====== ====== Оболочка ======
- 
 Born again shell - усовершенствованная оболочка Bourne shell.\\ Born again shell - усовершенствованная оболочка Bourne shell.\\
 Командный процессор, работающий, как правило, в интерактивном режиме в текстовом окне, так же, может читать команды из файла, т.е. [[:linux:binbash|написание скриптов]].\\ Командный процессор, работающий, как правило, в интерактивном режиме в текстовом окне, так же, может читать команды из файла, т.е. [[:linux:binbash|написание скриптов]].\\
Строка 15: Строка 14:
   * **ldd** - список библиотек от которых зависит программа   * **ldd** - список библиотек от которых зависит программа
   * **zless/zcat/zgrep** - для работы с архивами   * **zless/zcat/zgrep** - для работы с архивами
-  * **** -  +  * **tr '<source>' '<dest>'** - замена/преобразование строк 
-  * **** -  +  * **strings** - Команда для извлечения строк из указанного файла
-  * **** - +
  
  
Строка 47: Строка 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
Строка 73: Строка 71:
   # Различия в файлах, после их сортировки   # Различия в файлах, после их сортировки
 diff -u <(sort file1) <(sort file2) | less diff -u <(sort file1) <(sort file2) | less
 +
 +  # Подстановка имен файлов
 +ls -l ./{*.sh,*.py}
 +ls -l [a-c]*
 +ls -l [^ab]* (отрицание)
 +
 +  # Группировка команд. Важно что между фигурными скобками и командами должны быть пробелы и каждая команда завершаться точкой с запятой
 +xxxls || { echo "alternative branch"; exit 1; }
 </code> </code>
  
Строка 81: Строка 87:
 |1|Вывод|stdout|Экран терминала| |1|Вывод|stdout|Экран терминала|
 |2|Вывод ошибок|stderr|Экран терминала| |2|Вывод ошибок|stderr|Экран терминала|
- 
   * **cmd > file** - перезаписать выводом команды файл >> присоединить   * **cmd > file** - перезаписать выводом команды файл >> присоединить
   * **cmd < file** - входные данные для команды из файла   * **cmd < file** - входные данные для команды из файла
Строка 132: Строка 137:
  
 <code bash> <code bash>
-  # Просмотр текущий переменных+# Просмотр текущий переменных
 env  env 
  
Строка 139: Строка 144:
  
 export myVar=Value export myVar=Value
 +
 +export PATH=$PATH:/place/with/the/file
 +# Для сохранения добавить в один из файлов
 +~/.bash_profile, ~/.bashrc, or ~/.profile
 +
 +# Применить переменные окружения из файла
 +  # пропускаются строки начинающиеся с # или [ 
 +  # в файле перечислены в формате key="value"
 +eval $(grep -v '^[#|\[]' service.env)
 +
 </code> </code>
  
Строка 183: Строка 198:
   # Создать файл указанного размера (10м)   # Создать файл указанного размера (10м)
 dd if=/dev/zero of=out.txt bs=1M count=10 dd if=/dev/zero of=out.txt bs=1M count=10
 +
 +  # Замена пробелов на табуляцию (строчных на прописные "tr a-z A-Z")
 +cat geeks.txt | tr ':[space]:' '\t' > out.txt
 </code> </code>
 +
 +Перечень директорий в строчку, без запятых и проч, для массива в общем
 +<code bash>
 +# только надо переходить в целевую папку
 +echo $(ls -d */ | cut -f1 -d'/')
 +
 +# Вот норм вариант
 +find . -maxdepth 1 -type d -printf "%P "
 +</code>
 +
  
  
linux/bash.1669033376.txt.gz · Последнее изменение: 2022/11/21 12:22 — admin