Продолжаем изучать и применять основные и часто используемые команды. Для лучшего понимания этой части, советую сначала проделать основные команды Bash. часть 1, и только потом приступать ко 2 части заданий.
- Создать директорию manyfiles.
mkdir manyfiles
- Создать в ней 100 файлов с именами a1, a2, a3, …. a100.
touch a{1..100}
- Создать директории manyfiles10 и manyfiles30.
mkdir manyfiles10 manyfiles30
- В директорию manyfiles10 перенести файлы а1, …, а10.
mv a{1..10} manyfiles10
- В директорию manyfiles30 скопировать файлы с номерами, кратными 5.
cp a{*0,*5} manyfiles30
- Из директории manyfiles удалить только файлы с четными номерами.
rm a*{0,2,4,6,8}
- Создать директорию manyfiles3 с файлами, как копию директории manyfiles10.
cp -r manyfiles3/ manyfiles10
- Удалить директорию с файлами manyfiles10.
rm -r manyfiles10
- Создайте каталог Toppler, содержащий два файла: high11 и low11.
mkdir Toppler && > Toppler/high11 && > Toppler/low11
- Скопируйте оба эти файла в каталог /tmp.
cp high11 low11 /tmp
- Переместите эти два файла из каталога /tmp в домашний каталог, используя символы подстановки.
mv /tmp/*11 ~
- Рекурсивно скопируйте каталог Toppler в /tmp.
cp -r Toppler/ /tmp
- Переименуйте в /tmp этот каталог в Roller.
mv Toppler/ Roller/
- Переместите полученный каталог со всем содержимым в домашний каталог так, чтобы на экране отображалась подробная информация об этом процессе.
mv -v Roller/ ~
Вычисления, значения переменных…
- Вычислите значения выражений 3 + 5; 6 / 4.
echo $((3+5))
илиecho "6/4" |bc -l
(можно с флагами, можно с двойными скобками) - Найдите 15 % от 75; 5 % от 350.
echo "0.15*75" |bc -l
echo "0.05*350" |bc -l
- Вычислите значение переменной V2 = V1 * 2, если V1 = 4.
V1=4
V2=$((V1*2))
echo $V2 - Задайте переменную VAR1 = Работа в оболочке.
VAR1="Работа в оболочке"
- Выведите значение переменной VAR1.
echo $VAR1
- Создайте переменную VAR2, равную значению VAR1, добавив к переменной Bash.
VAR2=$VAR1'BASH'
- Получите значение переменной окружения HISTFILESIZE, сохраните ее в переменной VAR3.
VAR3=$HISTFILESIZE
echo $VAR3 - Выведите созданные переменные.
echo $VAR1 $VAR2 $VAR3
- Удалите переменную VAR1.
unset VAR1
- Выведите переменную VAR2.
echo $VAR2
grep: поиск строк, отвечающие заданному регулярному выражению
- Вывести строки файла dirlist.txt, содержащие файлы с определенным месяцем(по выбору) и записать их в файл grep_month_name.txt.
grep -i 'июль' dirlist.txt > ~/linux_lab2/grep_month_name.txt
- Записать строки, не содержащие этот месяц, в файл grep_other_monthes.txt.
grep -iv 'июль' dirlist.txt > ~/linux_lab2/grep_other_monthes.txt
- Создать папку grep, переместить в нее файлы, созданные в предыдущих 2 пунктах.
mkdir grep && mv grep_month_name.txt grep && mv grep_other_monthes.txt grep
- Находясь в папке linux_lab2 найти все файлы в этой директории и ее поддиректориях в которых встречается подстрока root, вывести строки с указанием их номеров.
grep -rn 'root'
find: поиск файлов
- Найти все файлы в системе, содержащие в имени bash (с помощью команд find и locate).
locate bash
иfind / -name "bash"
- Найти файлы, измененные за последний час.
find / -mmin 60
- Найти символические ссылки в каталоге / (но не глубже), вывести, на что они указывают.
find / -type l -print
- Поменять приглашение командной строки (переменная PS1), добавить текущее время.
PS1="\u@\t \ w$"
Будьте первым, кто оставит комментарий