You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

100 lines
4.9 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Задания
# 1
Вы в директории /home/stud/data. Какая из команд переместит вас в домашнюю директорию?
```
1 cd .
2 cd /
3 cd /home/stud
4 cd ../..
5 cd ~
6 cd home
7 cd ~/data/..
8 cd
9 cd ..
```
# 2
Создайте файл dummy в /tmp. Попробуйте удалить его указав флаг -i для команды rm. В чём отличие удаления файла с этим флагом и без него?
# 3
Создайте папку backup в домашней директории. Одновременно скопируйте файл .bashrc в /tmp/ и в backup с помощью cp.
# 4
Повторите структуру директории:
```
project/
├── .git
├── data
└── raw
├── 2022-07-23-exp1.log
├── 2022-08-03-exp2.log
├── 2022-11-23-exp3.log
├── 2022-07-23-exp1.dat
├── 2022-08-03-exp2.dat
├── 2022-08-03-exp2-calibration.dat
├── 2022-11-23-exp3.dat
└── 2022-11-23-exp3-calibration.dat
├── backup
└── shared
```
# 5
Скопируйте файлы экспериментов в backup, но распределите по папкам разные типы файлов. .data в backup/dataset, dat-calibration в backup/calibration, логи в backup/logs. В shared поместите все файлы, созданные 23 числа в папку 23day. Напишите команды в двух вариантах: с относительными путями и с абсолютными.
# 6
Посчитайте количество строк в файле /var/log/messages.
# 7
Инициализируйте файл head_tail_messages с помощью команды head из строк в /var/log/messages, затем добавьте в head_tail_messages последние 23 строки из /var/log/messages.
# 8
Создайте псевдоним "dc", который разрешается в команду "cd" для случаев опечатки.
# 9
Прочитайте мануал `man ls` и напишите `ls` команду, которая выводит список файлов в следующем виде:
* список файлов включает скрытые,
* размер файла указан с метрическими приставками (e.g. 454M вместо 454279954),
* файлы выводятся в историческом порядке,
* вывод в цвете.
Пример, того как он должен выглядеть
```
-rw-r--r-- 1 user group 1.1M Jan 14 09:53 baz
drwxr-xr-x 5 user group 160 Jan 14 09:53 .
-rw-r--r-- 1 user group 514 Jan 14 06:42 bar
-rw-r--r-- 1 user group 106M Jan 13 12:12 foo
drwx------+ 47 user group 1.5K Jan 12 18:08 ..
```
# 10
Запишите в переменную среды PATH значение "". Как это повлияло на выполнение команд? Перезайдите по ssh и попробуйте вызывать любую команду заново. Сохранилиcь ли изменения?
# 11
Выполните в терминале следующую команду в директории /tmp:
```
for species in cubane ethane methane;
do
for temperature in 25 30 37 40;
do
mkdir $species-$temperature;
done
done
```
Что в результате вы получили в консоли? Модифицируйте команду так, чтобы у директорий в начале названия присутствовал глобальный индекс idx.
# 12
(*) Напишите команду или сценарий для рекурсивного поиска самого последнего измененного файла в каталоге. В общем, можете ли вы перечислить все файлы по давности?
# 13
Напишите цикл, который проходит по списку файлов в текущей директории и выводит полный путь к директории и имя файла.
# 14
Выведите результат сложения 10 и 4 с помощью bash синтаксиса для арифметических операций.
# 15
Выведите результат умножения двух переменных с помощью bash синтаксиса для арифметических операций.
# 16
Напишите команду, которая рекурсивно находит все HTML-файлы в папке и упаковывает их в tar.gz архив. Используйте find и xargs. Ваша команда должна работать, даже если в файлах есть пробелы (подсказка: используйте null разделитель).