akademik78 Опубликовано 25 февраля, 2011 Жалоба Поделиться Опубликовано 25 февраля, 2011 Здравствуйте! Дали задание, состоящее из многих пунктов.Выполняю их на виртуализированной Mandriva Linux Free 2010. Несколько из них сделал самостоятельно, а другие не могу, так как не могу разобраться в синтаксисе команд и переменных. Конкретно: не умею составлять конвейер. Привожу задания: 1. Выведите на экран список всех каталогов и файлов, имена которых содержат три символа из каталога /usr/share. Я так понимаю, нужно составить конвейер из команд ls /usr/share и grep? В методичках есть только описания команд. К командам man и ls --help прошу не отправлять. 2. Выведите на экран список всех каталогов и файлов, имена которых начинаются на 'd' из каталога /usr/ bin. 3. Создайте схемы каталогов согласно рисунку: http://fotki.yandex.ru/users/bombaster78/view/365204/ В принципе, каталоги тоже могу создать, но как сделать это красиво? В подтверждение нужно представить скриншот списка всех использованных команд (собираюсь делать через histori). Остальное постараюсь сделать сам, опираясь на синтаксис Ваших примеров. Благодарю всех откликнувшихся. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 25 февраля, 2011 Жалоба Поделиться Опубликовано 25 февраля, 2011 Конвейеры Вам не нужны. Речь идёт о 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, можно быстро создать указанную иерархию. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
akademik78 Опубликовано 26 февраля, 2011 Автор Жалоба Поделиться Опубликовано 26 февраля, 2011 Спасибо, по 1-му и 2-му пунктам все получилось. Сегодня возьмусь за 3-й. Но вот конвейеры строить я так и не научился. Просветите, пожалуйста, на этот счет. Может, литературу какую порекомендуете, в которой все описано просто и с большим количеством примеров? И ещё: как при помощи команды cat создать файл в конкретной директории? Благодарю за помощь. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 26 февраля, 2011 Жалоба Поделиться Опубликовано 26 февраля, 2011 Команда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, которая обновляет время доступа/модификации к файлу или создаёт файл, если его нет. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.