| 
						
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -0,0 +1,146 @@
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# Решения
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# 1
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Вы в директории /home/stud/data. Какая из команд переместит вас в домашнюю директорию?
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				3 cd /home/stud
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				5 cd ~
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				8 cd
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				9 cd ..
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# 2
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Создайте файл dummy в /tmp. Попробуйте удалить его указав флаг -i для команды rm. В чём отличие удаления файла с этим флагом и без него?
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				mkdir /tmp/dummy
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				rm -r -i /tmp/dummy
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				rm: remove directory '/tmp/dummy'? y
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				rm -r  /tmp/dummy
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Отличие в запросе подтверждения действия.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# 3
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Создайте папку backup в домашней директории. Одновременно скопируйте файл .bashrc в /tmp/ и в backup с помощью cp.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				$ mkdir ~/backup
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				$ cp .bashrc ~/backup; cp .bashrc /tmp/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# 4
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Повторите структуру директории:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				mkdir project
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				cd project
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				mkdir .git
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				mkdir data
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				mkdir raw
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				cd raw
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				touch 2022-07-23-exp1.log
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				touch 2022-08-03-exp2.log
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				touch 2022-11-23-exp3.log
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				touch 2022-07-23-exp1.dat
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				touch 2022-08-03-exp2.dat
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				touch 2022-08-03-exp2-calibration.dat
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				touch 2022-11-23-exp3.dat
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				touch 2022-11-23-exp3-calibration.dat
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				cd ../
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				mkdir backup
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				mkdir shared
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# 5
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Скопируйте файлы экспериментов в backup, но распределите по папкам разные типы файлов. .data в backup/dataset, dat-calibration в backup/calibration, логи в backup/logs. В shared поместите все файлы, созданные 23 числа в папку 23day. Напишите команды в двух вариантах: с относительными путями и с абсолютными.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				cd backup 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				mkdir dataset calibration logs
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				cp ./raw/*-exp?.dat backup/dataset/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				cp ./raw/*-exp?-calibration.dat backup/calibration
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				cp ./raw/*.log ./backup/logs/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				export PD=/home/stud/project
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				mkdir $PD/backup/dataset $PD/backup/calibration $PD/backup/logs
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				cp $PD/raw/*-exp?.dat backup/dataset/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				cp $PD/raw/*-exp?-calibration.dat backup/calibration
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				cp $PD/raw/*.log ./backup/logs/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# 6
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Посчитайте количество строк в файле /var/log/messages.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				sudo wc -l /var/log/messages
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				sudo cat /var/log/messages | wc -l
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# 7
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Инициализируйте файл head_tail_messages с помощью команды head из строк в /var/log/messages, затем добавьте в head_tail_messages последние 23 строки из /var/log/messages.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				sudo head /var/log/messages > head_tail_messages
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				sudo tail -n 23 /var/log/messages >> head_tail_messages
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# 8
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Создайте псевдоним "dc", который разрешается в команду "cd" для случаев опечатки.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				alias dc=”cd”
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# 9
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Прочитайте мануал `man ls` и напишите `ls` команду, которая выводит список файлов в следующем виде:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				* список файлов включает скрытые,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				* размер файла указан с метрическими приставками (e.g. 454M вместо 454279954),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				* файлы выводятся в историческом порядке,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				* вывод в цвете.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				ls -caht или ls -cahtl
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# 10
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Запишите в переменную среды PATH значение "". Как это повлияло на выполнение команд? Перезайдите по ssh и попробуйте вызывать любую команду заново. Сохранились ли изменения?
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				export PATH=””
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				следствие: ни один исполняемый файл системой теперь не находится
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				после переподключения система вернулась в прежнее состояние
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# 11
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Модифицируйте команду так, чтобы у директорий в начале названия присутствовал глобальный индекс idx.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				idx=0;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				for species in cubane ethane methane;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				do
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    for temperature in 25 30 37 40;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    do
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        mkdir $idx-$species-$temperature;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        ((idx+=1));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    done
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				done
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				idx=-1; for species in cubane ethane methane; do  for temperature in 25 30 37 40;  do  mkdir $idx-$species-$temperature; ((idx+=1)); done; done
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# 12
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				(*) Напишите команду или сценарий для рекурсивного поиска самого последнего измененного файла в каталоге. В общем, можете ли вы перечислить все файлы по давности?
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Плохое решение
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				ls -Rlht
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Лучше
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				find ./ -type f -printf "%T+ %H%P\n" 2>/dev/null | sort -r
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				где 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				%T+ - время последнего изменения в формате 2004-04-28+22:22:05.0,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				%H - путь к директории, в которой файл найден,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				%P - имя файла.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# 13
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Напишите цикл, который проходит по списку файлов в текущей директории и выводит полный путь к директории и имя файла.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				for f in $(ls); do echo $(pwd)/$f; done
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# 14
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Выведите результат сложения 10 и 4 с помощью bash синтаксиса для арифметических операций.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				echo $((10 + 4))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# 15
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Выведите результат умножения двух переменных с помощью bash синтаксиса для арифметических операций.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				a=1; b=2; echo $((a*b))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# 16
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Напишите команду, которая рекурсивно находит все HTML-файлы в папке и запаковывает их в tar.gz архив. Ваша команда должна работать, даже если в файлах есть пробелы.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				find . -type f -name "*.html"  -print0 | xargs -0 tar cfz htmls.tar.gz
 |