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

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


linux:bash

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
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.\\
 Командный процессор, работающий, как правило, в интерактивном режиме в текстовом окне, так же, может читать команды из файла, т.е. [[:linux:binbash|написание скриптов]].\\ Командный процессор, работающий, как правило, в интерактивном режиме в текстовом окне, так же, может читать команды из файла, т.е. [[:linux:binbash|написание скриптов]].\\
Строка 15: Строка 14:
   * **ldd** - список библиотек от которых зависит программа   * **ldd** - список библиотек от которых зависит программа
   * **zless/zcat/zgrep** - для работы с архивами   * **zless/zcat/zgrep** - для работы с архивами
-  * **** -  +  * **tr '<source>' '<dest>'** - замена/преобразование строк 
-  * **** -  +  * **strings** - Команда для извлечения строк из указанного файла
-  * **** - +
  
  
Строка 25: Строка 23:
   * **yes | <command>** - ответ на интерактивные вопросы   * **yes | <command>** - ответ на интерактивные вопросы
   * **> 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 ./{*.sh,*.py}
 +ls -l [a-c]*
 +ls -l [^ab]* (отрицание)
 +
 +  # Группировка команд. Важно что между фигурными скобками и командами должны быть пробелы и каждая команда завершаться точкой с запятой
 +xxxls || { echo "alternative branch"; exit 1; }
 </code> </code>
  
Строка 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:/place/with/the/file
 +# Для сохранения добавить в один из файлов
 +~/.bash_profile, ~/.bashrc, or ~/.profile
 +
 +# Применить переменные окружения из файла
 +  # пропускаются строки начинающиеся с # или [ 
 +  # в файле перечислены в формате key="value"
 +eval $(grep -v '^[#|\[]' service.env)
 +
 </code> </code>
  
Строка 150: Строка 163:
   * **Ctrl + R** - поиск по ранее введенным командам   * **Ctrl + R** - поиск по ранее введенным командам
   * **Alt + .** - подставить последнюю команду   * **Alt + .** - подставить последнюю команду
-  * **** -  
-  * **** -  
-  * **** -  
  
  
Строка 178: Строка 188:
  
  
 +===== Примеры =====
 +<code bash>
 +  # Текущая дата в указанном формате
 +echo $(date '+%Y-%m-%d')
  
 +  # Простой цикл в интерактивном режиме
 +while !./run.sh; do sleep 1; done
  
 +  # Создать файл указанного размера (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 bash> <code bash>
-  Текущая дата в указанном формате +только надо переходить в целевую папку 
-echo $(date '+%Y-%m-%d')+echo $(ls -d */ | cut -f1 -d'/'
 + 
 +# Вот норм вариант 
 +find . -maxdepth 1 -type d -printf "%P "
 </code> </code>
 +
  
  
linux/bash.1669011368.txt.gz · Последнее изменение: 2022/11/21 06:16 — admin