Linux mint командный файл

2. Командные файлы в Linux.

Для того чтобы текстовый файл можно было использовать как командный, существует несколько возможностей.

Пусть с помощью редактора создан файл с именем f1, содержащий одну строку следующего вида: date; pwd; ls. Можно вызвать оболочку shell как команду, обозначаемую sh, и передать ей файл fl, как аргумент или как перенаправленный вход: $ sh fl или $ sh < fl. В результате выполнения любой из этих команд будет выдана дата, затем имя текущего каталога, а потом содержимое каталога.

Файл можно выполнить и в текущем экземпляре shell. Для этого существует специфическая команда . (точка): .fl.

Более удобный вариант работы с командным файлом — это превращение его в выполняемый файл, т.е. просто сделать его командой (запускающей этот файл по его названию), что достигается изменением кода защиты. Для этого надо разрешить выполнение этого файла. Например, chmod 711 fl сделает у этого файла код защиты «rwx—x—x». Тогда простой вызов fl приведет к выполнению тех же трех команд, которые были записаны в файл.

Результат будет тот же, если файл с содержимым date; pwd; ls будет представлен в виде:

так как переход на другую строку также является разделителем в последовательности команд.

Начинать командный файл надо всегда с пустой строки или пустого оператора «:». Их выполнение происходит в режиме интерпретации с помощью shell-интерпретатора.

Работу всех команд операционной системы упрощенно можно представить следующим образом: команда — это некоторое устройство, которое выполняет преобразование входного потока в выходной.

Входной поток в команде может быть задан четырьмя способами: указанием адреса входного потока справа от команды; отсутствием в команде прямого указания на адрес входного потока; перенаправлением входного потока с помощью символа «

Читайте также:  Geforce experience linux mint

Выходной поток может быть задан пятью способами: по умолчанию, без явного указания на выходной поток; явным указанием выходного потока; перенаправлением выходного потока одной команды на вход другой (символ |); перенаправлением в начало файла (символ «>»); перенаправлением в конец файла (символ «>>»).

Выходной поток одной команды может быть направлен во входной поток другой команды посредством организации конвейера команд. Для создания конвейера команд между объединяемыми командами ставится знак |.

Для вывода всех файлов текущего каталога на экран служит команда ls -1. Для ограничения выходного потока этой команды, вывода каталога отдельными фрагментами, служит команда more. Соединив эти две команды в конвейер ls –l| more получим, что содержимое текущего каталога готовится командой ls -l, выходной поток которой знаком конвейера | направлен на вход команды more. А команда more выводит информацию на экран с временными паузами.

Другие команды при соединении в конвейер позволяют получать результат, который каждая команда в отдельности получить не позволит. Примеры:

Показать общее количество файлов в текущем каталоге: ls –l| wc –l.

Показать общее количество пользователей, работающих в данный момент на ЭВМ: who | we –l.

Показать последние 10 раз, когда заходил в систему пользователь с текущим login’ом «vasjkov»: last vasjkov | head.

Отсортировать список файлов по алфавиту, подготовить его к печати и отпечатать его: sort list | pr | lpr.

Показать состав работающих на ЭВМ пользователей в алфавитном порядке: who | sort.

Достать страницу из справочной системы shell и отправить ее по почте Алексею Васькову: man sh | mail vasjkov.

Сформировать список содержимого текущего каталога, выделить размер каждого файла из списка, список отсортировать по цифрам, показать только последний (а следовательно, наибольший) файл из списка: ls -l | awk ‘ ‘ | sort -n | tail –l.

Читайте также:  Линукс минт нет соединения

Файл «textfile» отсортировать и напечатать: sort textfile | lp.

Найти в текущем каталоге файлы, имена которых заканчиваются на 1994, найти в этих файлах слово «profits» и напечатать строки, содержащие это слово. Поиск требуемого слова в файлах произвести командой grep: cat *. 1994 | grep profits | lp.

Выдать на экран список файлов текущего каталога (команда list) в 4 колонки (опция -4 команды рг) по 5 строк на странице (опция -l5) и не выдавать заголовок списка и конечное сообщение (опция -t): ls | pr -t -l5 -4.

Сформировать список файлов текущего каталога, преобразовать его в 3 колонки и распечатать: ls | pr -3 | lpr.

Файл «fruits» отсортировать и вывести на экран колонками, как при табуляции: sort fruits | sp.

Определить, кто входит в систему с терминала ttyl5: who |grep ttyl5.

Вывести неповторяющийся список элементов файла animals с указанием числа повторений этих элементов. Такой способностью обладает команда uniq с опцией -с: sort animals | uniq -с.

Найти в телефонном справочнике phone.lst абонента по двум критериям поиска: Тэд, живущий в Лос Анжелесе: grep Ted phone.lst | grep ‘Los Angeles’.

Отформатировать текст из файла text_5 в 2 колонки перед выводом на печать: рr -2 text_5 | lpr.

Перед печатью файл data_15 сначала упорядочить, затем разделить на страницы: sort data 15 | pr | lpr.

Источник

Принцип создание командных файлов для Linux

Вот в Windows все понятно, два варианта: либо пишем команды непосредственно в cmd, либо создаем текстовый файл с расширение bat, и в нем пишем нужные команды которые будут выполнятся при открытии этого файла . А вот в Linux (Ubuntu) не совсем мне все ясно. Знаю что терминал выступает как в windows командная строка, т. е. я могу в терминале писать нужные последовательности команд. Но вот как создать командный файл в Linux? Чтобы он хранился на компьютере и я в любой момент мог его запустить ( ибо каждый раз набирать в терминале одно и тоже не очень улыбается) . В общем вопрос: как в Linux создать командный файл?

Читайте также:  Systemctl set default linux

Создаешь файл с любым именем (и расширением — в Linux расширений нет, кстати, это просто конец имени). Пишешь в него любой код, но первую строчку делаешь
#!/bin/bash
# означает комментарий, и оболочка по этой строке определит, как запускать командный файл. Кстати, bash — не единственная коммандная среда под Linux. После этого делаешь файл исполняемым — либо в свойствах ставишь галочку, либо выполняешь
chmod +x имяфайла
(подробности в man chmod) и можешь запускать, как и когда угодно.

читай тут
http://linuxforum. ru/viewtopic.php?id=221
более подробно тут
http://rus-linux .net/MyLDP/HOWTO-ru/Bash-Progr-Intro-HOWTO/Bash-Prog-Intro-HOWTO.html#toc14

Сделал исполняемый файл, который устанавливает кучку программ пакетно. Из картинок думаю что все видно и понятно. Не забывать поставить крестик в свойствах файла, чтобы он стал запускаемым. Расширения файла — по барабану. Это не Винда!
Запускается в Терминале и. сидишь только наблюдаешь, как программки устанавливаются. Можно покурить, можно чай попить 🙂

Источник

Оцените статью
Adblock
detector