Перейти к содержанию

Помогите, плз, с тестами


Рекомендуемые сообщения

Здравствуйте!

Дали задание, состоящее из многих пунктов.Выполняю их на виртуализированной Mandriva Linux Free 2010. Несколько из них сделал самостоятельно, а другие не могу, так как не могу разобраться в синтаксисе команд и переменных. Конкретно: не умею составлять конвейер. Привожу задания:

1. Выведите на экран список всех каталогов и файлов, имена которых содержат три символа из каталога /usr/share.

Я так понимаю, нужно составить конвейер из команд ls /usr/share и grep? В методичках есть только описания команд. К командам man и ls --help прошу не отправлять.

2. Выведите на экран список всех каталогов и файлов, имена которых начинаются на 'd' из каталога /usr/ bin.

3. Создайте схемы каталогов согласно рисунку:

http://img-fotki.yandex.ru/get/5302/bombaster78.0/0_59294_514061c6_L.jpg

http://fotki.yandex.ru/users/bombaster78/view/365204/

В принципе, каталоги тоже могу создать, но как сделать это красиво? В подтверждение нужно представить скриншот списка всех использованных команд (собираюсь делать через histori).

Остальное постараюсь сделать сам, опираясь на синтаксис Ваших примеров.

Благодарю всех откликнувшихся.

Ссылка на комментарий
Поделиться на другие сайты

Конвейеры Вам не нужны. Речь идёт о wildcard'ах шелла (* и ?). Например, 1:

Вывести содержимое каталога: ls

Без содержимого вложенных директорий: ключ -d

Имена состоят из трёх символов: ???

Получается ls -d /usr/share/???

Аналогично 2, но количество символов неизвестно, поэтому нужно использовать *

По пункту 3: у mkdir есть ключ -p, который позволяет создавать не только указанный каталог, но и все родительские. Например,

mkdir -p ~/x/y/z создаст всю указанную иерархию каталогов. Если этот ключ не указывать и каталогов x или y не существует, получите ошибку. Подробнее - man mkdir. Вдобавок можно воспользоваться конструкцией x/{a,b,c}, которая развернётся в x/a x/b x/c. Комбинируя это с ключом -p, можно быстро создать указанную иерархию.

Ссылка на комментарий
Поделиться на другие сайты

Спасибо, по 1-му и 2-му пунктам все получилось. Сегодня возьмусь за 3-й. Но вот конвейеры строить я так и не научился. Просветите, пожалуйста, на этот счет. Может, литературу какую порекомендуете, в которой все описано просто и с большим количеством примеров?

И ещё: как при помощи команды cat создать файл в конкретной директории?

Благодарю за помощь.

Ссылка на комментарий
Поделиться на другие сайты

Команда1 | команда2 | команда3. Это означает, что команда2 прочитает то, что выведет команда1, а команда 3 - то, что выведет команда2. Поток ввода (stdin) и поток вывода (stdout) - это трубы, которые по умолчанию подключены к терминалу. Пайпы (конвейеры) позволяют соединять их друг с другом, вывод одной с вводом другой. Собственно, слово pipe и переводится, как "труба". Немного модернизированный пример из статьи http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%B2%D0%B5% D0%B9%D0%B5%D1%80_(UNIX)

ps ax | grep terminal | grep -v grep | awk '{print $1}'

1. ps ax выведет список запущенных в системе процессов

2. выведенный текст получит на свой вход команда grep и выведет строки, в которых есть слово "terminal":

ineu@ineu ~ % ps ax | grep terminal  3750 ?        S      0:00 /bin/sh /home/ineu/.soft/bin/switch_win gnome-terminal 3760 ?        Sl     0:01 gnome-terminal 4004 pts/1    S+     0:00 grep --color=auto --exclude-dir=.svn --exclude-dir=cache --exclude=*.log terminal

3. из этих строк следующая команда grep выведет строки, в которых нет слова "grep" (отрицание - опция -v)

ineu@ineu ~ % ps ax | grep terminal | grep -v grep                    3750 ?        S      0:00 /bin/sh /home/ineu/.soft/bin/switch_win gnome-terminal 3760 ?        Sl     0:01 gnome-terminal

4. из получившегося на этот момент текста команда awk выведет первую колонку:

ineu@ineu ~ % ps ax | grep terminal | grep -v grep | awk '{print $1}'37503760

Создать файл: открыть в редакторе несуществующий и сохранить. Или использовать команду touch, которая обновляет время доступа/модификации к файлу или создаёт файл, если его нет.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...