|  | @@ -79,7 +79,8 @@ $ watch -n 1 date # запускает каждую секунду команд
 | 
	
		
			
				|  |  |  $ watch -g "df -h" # перезапускает команду df пока не изменится ее вывод
 | 
	
		
			
				|  |  |  $ tr ":" "\" # заменяетодин символ на другой
 | 
	
		
			
				|  |  |  $ dd if=/dev/urandom of=bigfile bs=64M count=17 iflag=fullblock # создать файл размером больше 1 гигабайта
 | 
	
		
			
				|  |  | -````
 | 
	
		
			
				|  |  | +$ ls -la && echo $? # $? возвращает код выполнение команды
 | 
	
		
			
				|  |  | +```
 | 
	
		
			
				|  |  |  <h6>История команд</h6>
 | 
	
		
			
				|  |  |  ```bash
 | 
	
		
			
				|  |  |  $ history # выводит историю команд
 | 
	
	
		
			
				|  | @@ -285,14 +286,44 @@ $ sudo apt upgrade cowsay # обновить пакет cowsay
 | 
	
		
			
				|  |  |  $ apt search cowsay # поиск пакетов
 | 
	
		
			
				|  |  |  $ apt show cowsay # информация о пакете
 | 
	
		
			
				|  |  |  ```
 | 
	
		
			
				|  |  | -<h6>Установка python из исходников</h6>
 | 
	
		
			
				|  |  | +<h6>Установка программ. Установка python из исходников</h6>
 | 
	
		
			
				|  |  | +https://habr.com/ru/articles/673488/
 | 
	
		
			
				|  |  |  ```bash
 | 
	
		
			
				|  |  |  $ wget https://www.python.org/ftp/python/3.12.3/Python-3.12.3.tgz # скачать архив с ихсодниками
 | 
	
		
			
				|  |  |  $ sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev 
 | 
	
		
			
				|  |  |  $ configure --enable-optimizations --prefix="$HOME/.python3.12"
 | 
	
		
			
				|  |  |  $ sudo make -j2 && sudo make altinstall # j2 - исплоьзовать 2 ядра при сборке
 | 
	
		
			
				|  |  |  $ echo "export PATH=$PATH:$HOME/.python3.12/bin" >> ~/.bashrc
 | 
	
		
			
				|  |  | +$ sudo apt install <имя пакета> # установить или обновить пакет
 | 
	
		
			
				|  |  | +```
 | 
	
		
			
				|  |  | +<h6>htop</h6>
 | 
	
		
			
				|  |  | +```bash
 | 
	
		
			
				|  |  | +/ <имя процесса> - поиск процесса
 | 
	
		
			
				|  |  | +k - выбор сигнала для процесса
 | 
	
		
			
				|  |  |  ```
 | 
	
		
			
				|  |  | +<h6>Сигналы</h6>
 | 
	
		
			
				|  |  | +- `SIGHUP`, номер `1`, как правило используется для того, чтобы уведомить процесс о необходимости перечитать файл конфигурации или обновить своё состояние иным образом
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  | +- `SIGKILL`, номер `9`, используется, чтобы убить процесс. У процесса нет возможности перехватить сигнал, чтобы обработать
 | 
	
		
			
				|  |  | +   
 | 
	
		
			
				|  |  | +- `SIGTERM`, номер `15`, используется, чтобы выйти из процесса мягко, процесс может перехватить сигнал и правильно завершить свою работу
 | 
	
		
			
				|  |  | +```bash
 | 
	
		
			
				|  |  | +$ kill -9 <ID процесса> # послать 9-ый сигнал
 | 
	
		
			
				|  |  | +$ killall watch # убийство процесса по имени (killall входит в пакет psmisc)
 | 
	
		
			
				|  |  | +$ pkill watch
 | 
	
		
			
				|  |  | +$ kill -15 <ID процесса> # 
 | 
	
		
			
				|  |  | +```
 | 
	
		
			
				|  |  | +<h6>wget</h6>
 | 
	
		
			
				|  |  | +```bash
 | 
	
		
			
				|  |  | +% wget google.com # скачать index.html в текущую директорию
 | 
	
		
			
				|  |  | +```
 | 
	
		
			
				|  |  | +<h6>zsh</h6>
 | 
	
		
			
				|  |  | +```bash
 | 
	
		
			
				|  |  | +$ sudo apt install -y zsh # установка
 | 
	
		
			
				|  |  | +% echo $SHELL
 | 
	
		
			
				|  |  | +```
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  <h6>Задания на bash</h6>
 | 
	
		
			
				|  |  |  ```bash
 | 
	
		
			
				|  |  |  $ mkdir -p {2020..2024}/{01..12}
 |