Задание 1
В командной строке на своём компьютере я ввёл следующее (показываю вместе с выводом, комментарии после #):
C:\Users\Abdatov>sftp artem.kays@kodomo.fbb.msu.ru # Зашёл на kodomo по протоколу sftp Password: Connected to artem.kays@kodomo.fbb.msu.ru. sftp> cd /home/students/y20/artem.kays/term1/block1/pr4 # Перешёл в директорию с файлом sftp> get Vasiliev_image.jpeg # Скопировал файл к себе на компьютер Fetching /home/students/y20/artem.kays/term1/block1/pr4/Vasiliev_image.jpeg to Vasiliev_image.jpeg /home/students/y20/artem.kays/term1/block1/pr 100% 66KB 1.0MB/s 00:00
После этого в строке поиска графического интерфейса компьютера ввёл название файла и открыл его.
На открывшейся картинке увидел двух мамонтов в степи.
Задание 2
Прикреплённая на kodomo фотография сделана на олимпиаде в Ставрополе во время поджаривания образца кефира.
Эту фотографию я cкачал из интернета, так как на компьютере своих фотографий не нашёл.
На странице авторских прав (©) не указано, поэтому использовал её с чистой совестью.
Задание 3
Командой ls | wc -w можно посчитать количество файлов и директорий в текущей директории. Так как мне нужно было считать только файлы, я использовал конструкцию ls -p | grep -v / | wc -w. Опция -p команды ls приписывает в выводе / к именам директорий, а опция -v команды grep возвращает строки, не содержащие символы, указанные в команде. Поэтому данная конструкция считает только те слова, в которых нет /, то есть названия файлов, но не директорий.
Чтобы посчитать файлы с именами, заканчивающимися на .txt, я использовал ту же конструкцию, но к ls -p приписал *.txt. Этим я обозначил маску для всех искомых файлов.
Код:
$ cd /P/y20/term1/pr4/files $ ls -p | grep -v / | wc -w 88 $ ls -p *.txt | grep -v / | wc -w 14
Итого: в папке /P/y20/term1/pr4/files 88 файлов, имена 14 из них заканчиваются на .txt.
Примечание: если учесть также файлы с именами, начинающимися на . и .., то получится 91 файл, имена 14 из которых заканчиваются на .txt.
Это можно сделать, добавив к ls опцию -a, благодаря которой файлы такого типа не игнорируются командой ls.
Код:
$ ls -pa | grep -v / | wc -w 91 $ ls -pa *.txt | grep -v / | wc -w 14
Файл Vasiliev_all.fasta в папке ~/term1/block1/credits, объединяющий содержимое всех файлов из папки /P/y20/term1/pr4/files, я получил командой:
cat *.fasta >> ~/term1/block1/credits/Vasiliev_all.fasta
Эта команда была запущена из директории /P/y20/term1/pr4/files, но файл создался в папке ~/term1/block1/credits, так как я указал путь к нему относительно моей домашней директории.
Задание 4
Файл Vasiliev_all.names, состоящий из строк файла Vasiliev_all.fasta, начинающихся на знак >, я получил командой:
grep '^>' Vasiliev_all.fasta >> Vasiliev_all.names
> понимается буквально, так как он в одинарных кавычках.
Чтобы посчитать количество начинающихся на > строк в каждом файле с именем *.fasta, я использовал опцию -c команды grep:
$ grep -c '^>' *.fasta 1.fasta:1 Xax229_230.fasta:2 pan1_mouse.fasta:1 pan3_mouse.fasta:1
В каждой строке вывода до двоеточия стоит название файла, а после него - количество строк искомого типа в нём.
Дополнительное задание: из файлов в папке /P/y08/Term_5/Materials/ я выбрал файл 1MNM.pdb. Для получения числа атомов гистидина в структуре белка, описанной в нём, я использовал команду:
grep '^ATOM' 1MNM.pdb | grep -c 'HIS'
Получил результат 60.