Назовите известные вам способы создания пустых файлов
Эти способы тестировались на дистрибутиве Ubuntu, но будут работать на любой системе Linux.
Создание файла определенного размера с помощью dd
Создание файла определенного размера c помощью fallocate
Таким образом вы создали файл hello.txt размером 10 мегабайт.
Создание файла при помощи текстового редактора Vim
Если вы никогда не работали с этим редактором, то этот способ вам не подойдет, т.к. без пары часов за документацией Vim не освоить.
На всякий случай скажу вам способ выйти из этого редактора, т.к. даже это совершенно не очевидно: нажмите Esc , затем : затем введите q! затем нажмите Enter - это способ выхода без сохранения. Для сохранения нужно набрать x! вместо q
Создание файла с содержимым
Пояснение: Выводим строку 123 и перенаправляем этот вывод в файл. Файл будет содержать строку 123
Создание фала при помощи редактора nano
Этот редактор чуть более привычный простому пользователю, чем Vim, однако он должен быть установлен в вашей системе.
Иначе вы получите ошибку о несуществующей команде Command 'nano' not found .
Проверить установлен ли nano в вашей системе можно с помощью следующей команды:
Результатом будет информация об установленном редакторе:
Трюк для создания пустых файлов
Пояснение: символ > перенаправляет вывод, а мы ничего не выводим, просто перенаправляем пустоту в файл. Это самый короткий способ создать пустой файл.
Или лучше такой пример:
Двоеточие в начале, чтобы случайно не записать вывод предыдущей команды в файл.
Создание пустого файла при помощи touch
Пояснение: Команда touch предназначена для того, чтобы поменять дату изменения файла на текущую. Однако ее также часто используют для создания файлов.
Создание пустого файла при помощи echo
Пояснение: Команда echo предназначена для вывода на экран строки, которая в нее передается. Символ > перенаправляет вывод в файл. Соответственно мы перенаправили пустоту в файл.
Создание сразу нескольких пустых файлов при помощи touch
Создание файла с помощью любой команды и символа >
Мы можем создать файл, с помощью команд, которые выводят что-то на экран, записав этот вывод в файл. Например ps aux выводит информацию о текущих процессах в системе. Мы просто можно записать весь вывод этой команды в файл file.txt и потом его проанализировать.
Записываем в файл справку по команде man :
Записываем в файл календарь на 2021 год
Создание файла-сокета c помощью команды mkfifo
После создания вам нужно установить на него права, чтобы нужные программы могли им пользоваться
Создание файла путем объединения других файлов с помощью cat
Пояснение: Команда cat выводит на экран содержимое на экран, однако мы перенаправляем этот вывод в файл. Соответственно мы создали файл big_file в котором находится содержимое из трех других файлов.
Создание файла при помощи HEREDOC
Пояснение: мы сначала пишем cat file.txt причем вместо EOF может быть любая строка, которой нет в тексте, который мы собираемся написать. Затем когда мы завершили заполнение многострочного файла, просто переходим на следующую строку и вводим EOF. В итоге содержимое нашего файла будет:
Спасибо за внимание! Если вы знаете какой-нибудь интересный и полезный способ создания фалов - напишите его в комментариях.
в) touch — замена времени модификации на текущее, если файл не существует, то создается новый пустой файл.
Как создать текстовый файл?
Как обычный файл, но с соответствующим расширением (.txt, .c, .doc).
vi имя_файла [*] вызов редактора и файла
Какие возможности сокращения записи имен файлов Вы знаете с использованием механизма генерации имен файлов?
Это одна из функций shell, позволяющая:
- сократить время набора имени файла или списка имен;
- выполнять однотипные операции (команды ОС) сразу над группой файлов.
? - для замещения одного символа; * - для замещения любой цепочки символов; исключение составляют имена файлов, начинающиеся с точки: шаблон, совпадающий с ними, должен обязательно иметь точку в своем начале; [ ] - диапазон, для замещения одного символа , совпадающего с одним из перечисленных в квадратных скобках.(* - все имена, кроме тех которые начинаются с точки; *.c - все имена с расширением .c ; [abc]* все имена, начинающиеся с a, b и c ).
Какие три команды этой лабораторной работы можно использовать для переименования файлов? Как в этом случае надо использовать команды?
а) $ mv файл1 новое_имя_файла - перемещение или переименование файлов.
б) $ cp файл1 новое_имя_файла
в) $ cat файл1 >новое_имя_файла
Какими способами можно объединить несколько текстовых файлов в один?
cat f1 f2 > f3 – два файла f1 и f2 сливаются в один файл f3.
cat f1 f2 >> f3 – содержимое двух файлов добавляется к f3.
Команда копирования файлов: cp [-k] вх_файл_1 [вх_файл_2 [. вх_файл_n]] вых_файл; mv [-k] вх_ф йл_1 [вх_ф йл_2 [. вх_ф йл_n]] вых_файл- перемещение или переименование файлов. Отличие в том, что перемещаемые файлы в исходном каталоге уничтожаются.
Сколько ссылок можно создать на единственный файл из разных каталогов?
Как создать несколько ссылок с совпадающими именами на несколько файлов в другом каталоге?
С помощью механизма генерации имён файлов. Командой ln примерно в таком формате:
ln isto. txt newkat/
Какое соответствие атрибутов имеют связанные между собой файлы?
Полное. Все связанные файлы имеют совпадающие описатели в каталогах;
На какой атрибут и как влияет удаление одного из связанных файлов?
Число ссылок на файл (число связей). Если удалить один из связанных файлов, то сокращается число взаимных ссылок на -1.
Как отражается на содержимом связанных файлов изменение содержания одного из них и почему?
Если изменяется содержимое одного из связанных файлов, то меняется содержимое всех связанных файлов, т.к. связанные файлы разделяют одни и те же данные на диске.
Какими возможностями обладает команда sort?
sort — алфавитная и числовая сортировка строк.
sort [-ndu] [-k номер_поля_сортировки] [имя_файла]
Команда обладает широкими возможностями. В данном формате позволяет упорядочить строки файла в алфавитном порядке или по числовому значению. Без опций осуществляет сортировку по алфавиту.
п — числовая сортировка;
d — по принципу словаря (игнорируются любые символы, не являющиеся буквами, цифрами или пробелами);
и — уникальная (исключаются повторяющиеся строки);
Номер_поля_сортировки — указывается базовое поле в структуре строки для выполнения сортировки.
Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.
5. В один подкаталог скопируйте имеющиеся файлы HOMEкаталога с изменением имен, а в другой – переместите. Проанализируйте, как изменилось содержание всех трех каталогов и каковы атрибуты всех полученных файлов.
6. Просмотрите содержимое файлов с частично совпадающими именами с использованием механизма генерации имен файлов.
7. С использованием механизма генерации имен файлов слейте содержимое всех файлов в один и поместите его в HOME-каталог. Проанализируйте содержание файла.
8. Создайте ссылку с другим именем в одном из подкаталогов на один из файлов другого подкаталога. Проанализируйте и сравните все атрибуты связанных файлов. Объясните отличия.
9. Создайте еще одну ссылку с другим именем. Проанализируйте и сравните все атрибуты связанных файлов. Объясните отличия.
10. Создайте ссылки на несколько файлов, принадлежащих одному из каталогов, в другом каталоге одной командной строкой. Проанализируйте и сравните все атрибуты связанных файлов. Объясните отличия.
11. Измените содержимое одного из связанных файлов. Проанализируйте содержимое других связанных с ним файлов (или файла). Объясните результат.
12. Уничтожьте один из связанных файлов. Проанализируйте и сравните все атрибуты связанных с ним файлов. Объясните изменения.
13. Упорядочите по алфавиту строки суммарного файла HOME-каталога.
14. Обновите временные характеристики одного из существующих файлов. Проанализируйте результат.
15. Обновите временные характеристики несуществующего файла. Проанализируйте результат работы команды.
16. Проанализируйте с использованием команды history содержание лабораторной работы, продумайте ответы на нижеприведенные контрольные вопросы.
1. Назовите известные Вам способы создания пустых файлов. Как создать текстовый файл?
2. Какие возможности сокращения записи имен файлов Вы знаете с использованием механизма генерации имен файлов?
3. Какие три команды этой лабораторной работы можно использовать для переименования файлов? Как в этом случае надо использовать команды?
4. Какими способами можно объединить несколько текстовых файлов в один?
5. В чем разница работы команд cp и mv?
6. Сколько ссылок можно создать на единственный файл из разных каталогов?
7. Как создать несколько ссылок с совпадающими именами на несколько файлов в другом каталоге?
8. Какое соответствие атрибутов имеют связанные между собой файлы?
9. На какой атрибут и как влияет удаление одного из связанных файлов?
10. Как отражается на содержимом связанных файлов изменение содержания одного из них и почему?
11. Какими возможностями обладает команда sort?
Работа 4. УПРАВЛЕНИЕ ПРАВАМИ ДОСТУПА К ФАЙЛАМ И КАТАЛОГАМ
Посвящена изучению принципов защиты файлов и каталогов ОС UNIX от несанкционированного доступа. В UNIX эти средства являются встроенными и наиболее развиты по сравнению с другими операционными системами. Изучаются вопросы влияния задаваемых прав доступа к файлу на выполнение различных команд по обработке этих файлов.
Для управления правами доступа к файлам и каталогам используется команда:
chmod — изменить права доступа к указанному файлу.
1. Создайте в Вашем HOME-каталоге один текстовый файл, например с именем f1. Выведите на экран полный листинг каталога.
2. Проанализируйте и умейте объяснить, какие права доступа к f1 имеет владелец файла, его группа и остальные пользователи.
3. Проанализируйте права доступа к Вашему головному каталогу. Есть ли ограничения на работу с файлами в этом каталоге?
4. Выведите на экран содержимое файла f1. Объясните, почему операция выполнилась успешно.
5. Запретите права на чтение f1 владельцу и группе. Попытайтесь вывести на экран текст файла. Объясните, почему операция не выполняется.
6. Удалите права на запись в файл. Попытайтесь добавить к файлу текст и удалить его. Объясните результат.
7. Удалите право на модификацию каталога. Повторите операцию удаления. Объясните результат.
8. Создайте подкаталог. Разместите в нем текстовый файл. Проанализируйте права доступа к подкаталогу и объясните возможности по использованию подкаталога.
9. Удалите право владельца на «выполнение» подкаталога.
10. Попытайтесь сделать подкаталог текущим. Объясните результат.
11. Просмотрите содержимое подкаталога. Объясните результат.
12. Попытайтесь вывести длинный листинг подкаталога только для одного из файлов (поиск файла по подкаталогу). Объясните результат.
13. Попытайтесь вывести на экран содержимое файла. Объясните результат.
14. Верните право для подкаталога на «выполнение», удалите право на «чтение» и сохраните право на «модификацию».
15. Выполните пп. 10, 11, 12, 13. Проанализируйте и объясните результаты.
16. Проанализируйте с использованием команды history содержание лабораторной работы, продумайте ответы на нижеприведенные контрольные вопросы.
1. Как кодируются в атрибутах файла и каталога права доступа?
2. Кто может пользоваться и изменять права доступа к файлам?
3. Какие команды для изменения символьных кодов прав доступа Вы знаете? Перечислите и расскажите о назначении каждой из команд.
4. В чем разница в применении команд chmod и umask?
5. Какие команды обработки файлов разрешают (или запрещают) права на чтение, модификацию и исполнение?
6. Какие команды обработки каталогов разрешают (или запрещают) эти же права?
7. Что означает право на выполнение применительно к каталогу?
8. Какими правами надо обладать, чтобы удалить файл или каталог?
9. Какие команды для защиты файлов Вы знаете?
Работа 5. УПРАВЛЕНИЕ ПРОЦЕССАМИ
Цель работы — закрепить представление о возможностях командного языка UNIX по управлению процессами, которым выделяются все необходимые ресурсы вычислительной системы.
ps — запрос информации о процессах текущего терминала; & — запуск фонового процесса;
fg, bg — переводит процесс в активный или фоновый режим; jobs — запрос листинга списка заданий;
nohup — защита фоновых процессов от прерывания выполнения при выходе из сеанса работы с системой;
nice — понижение приоритета процесса; kill — прекращение выполнения процесса.
2. Разработать и запустить простейшую процедуру в фоновом режиме с бесконечным циклом выполнения, предусматривающую,
3. Выполнить п. 1. Объяснить изменения в листинге харатеристик процессов. Объясните содержание PID и PPID.
4. Понизьте значение приоритета процедуры. На что и как повлияет эта операция при управлением вычислительным процессом системы? Как отразятся её результаты в описателях процессов?
5. Проанализируйте листинг процессов. Какой процесс является родительским для процедуры?
6. Выйдите из системы и войдите заново. Проанализируйте листинг процессов. Объясните изменения в системе.
7. Запустите процедуру в фоновом режиме, но предусмотрите её защиту от прерывания при выходе из системы.
8. Выполните п. 6. Объясните изменения PPID-процедуры.
9. Завершите выполнение процесса процедуры.
10. Запустите процедуру в оперативном режиме с перенаправлением вывода в соответствующий файл.
14. Проанализируйте с использованием команды history содержание лабораторной работы, продумайте ответы на нижеприведенные контрольные вопросы.
1. Объясните понятия процесса и ресурса. Какое их значение в организации вычислительного процесса в ОС UNIX?
2. Какая информация содержится в описателях процессов? Как просмотреть их содержание в процессе работы с системой?
3. Какими способами можно организовать выполнение программ в фоновом режиме?
ния выполнения фоновых программ при прекращении сеанса работы с системой?
5. Как пользователь может повлиять на распределение ресурсов между активными процессами?
6. Как можно прервать выполнение активных процессов? Какая информация для этого необходима и откуда она извлекается?
7. ВВЕДЕНИЕ В SHELLПРОГРАММИРОВАНИЕ.
7.1. ПОНЯТИЕ ПРОЦЕДУР
Язык shell по своим возможностям приближается к высокоуровневым алгоритмическим языкам программирования. Операторы языка shell позволяют создавать собственные программы. В программах могут использоваться любые команды командного языка, в том числе и рассмотренные в данном пособии.
Такие программы, а также командные файлы, содержащие их, называют shell-процедурами или shell-файлами. От обычных программ они отличаются способом их обработки. Процедура не требует компиляции, построения объектного файла и последующей компоновки, так как shell, обрабатывающий их, является транслятором интерпретирующего, а не компилирующего типа. Процедура — аналог командного файла в MS-DOS, но с более широкими возможностями. Здесь же отметим, что рассмотренные ниже операторы могут быть использованы как в теле процедуры, так и выполнены независимо как обычные команды операционной системы в диалоговом режиме.
Текст процедуры набирается как обычный текстовый файл. Для этих целей при создании большой процедуры целесообразно использовать редактор vi. Для создания простейших процедур можно использовать команду cat или один из следующих способов создания пустых файлов с последующим заполнением командами ОС или операторами языка shell.
Проверенный и отлаженный shell-файл может быть вызван на исполнение, например, следующим способом:
$ chmod u=rx shfil $ shfil
Для выполнения процедуры необходимы права r,x; обычно право r задается администратором, так как файлы должны быть читаемы, тогда опция может иметь вид u+x .
Такая форма запуска процедуры предполагает, что файл процедуры новый и его надо сначала сделать выполняемым.
Можно использовать также и следующий способ:
В этих случаях по команде sh вызывается вторичный интерпретатор shell, и в качестве аргумента ему передается командная строка, содержащая имя файла процедуры shfil, находящегося в текущем каталоге. Однако этот способ накладывает ограничения на исполнение некоторых команд ОС управления процессами (например, nice – см. ниже).
Процедуре при ее запуске могут быть переданы аргументы. В общем случае командная строка вызова процедуры имеет следующий вид:
$ имя_процедуры $1 $2 . $9
Каждому из девяти первых аргументов командной строки в тексте процедуры соответствует один из позиционных параметров, имеющий соответствующий номер занимаемой им позиции в коде команды $1, $2, . $9. Параметр $0 соответствует имени самой процедуры , т.е. первому полю командной строки. К каждому из 10 первых аргументов можно обратиться из процедуры, указав номер его позиции.
Некоторые вспомогательные операторы:
$ echo “начало строки > продолжение строки” или
$ echo “строка текста”
(Строка не будет обрабатываться shell.)
$banner 'hello ira' HELLO IRA
Простейший пример. Здесь оператор echo выполняется также в командном режиме. На экран выводится третий параметр, передаваемый процедуре при ее запуске:
$shfil p1 pp2 petr $echo $3
Значения параметрам, передаваемым процедуре, можно присваивать и в процессе работы процедуры с помощью оператора
set — присвоить значения позиционным параметрам.
$set a1 ab2 abc $echo $1 $2 a1 ab2
В этом примере параметры указываются в явном виде. Количество позиционных параметров может быть увеличено до необходимого значения путем “сдвига” их в командной строке влево на одну позицию с помощью команды shift без аргументов:
shift — сдвинутьпозиционные параметры влево на одну позицию.
После выполнения shift прежнее значение параметра $1 теряется, значение $1 приобретает значение $2, значение $2 — значение $3 и т.д.
Продолжение предыдущего примера:
$shift $echo $1 $2 ab2 abc
В UNIX при написании командных строк и в shell-процедурах особое значение имеет правильное использование кавычек (апострофов):
'. ' — для блокирования полного набора специальных символов, которые могут быть интерпретированы как управляющие;
". " — для блокирования некоторых символов, которые могут использоваться в именах переменных или для указания того, что обрабатывается не сам аргумент, а его значение (подстановка значения), в частности не блокируют $ , `…` , \ ;
`. ` — (обратные кавычки или знак ударения) для указания того, что они обрамляют команду, и здесь будет обрабатываться результат работы этой команды (подстановка результатов работы указанной команды).
Apr 3 14:27:07 2007 $ set `date`
Пример 2: $echo `ls` fil.1
Здесь одинарные кавычки блокируют действие обратных кавычек, т.е. они распечатываются как обычные символы.
$ls -al|grep “Mar 30”
Эта же командная строка без кавычек приобретает совершенно другой смысл:
$ls -al|grep Mar 30
Для ввода строки текста со стандартного устройства ввода используется оператор:
read имя1 [имя2 имя3 .] — чтение строки слов со стандартного устройства ввода.
Команда вводит строку, состоящую из нескольких полей (слов), со стандартного ввода, заводит переменную для каждого поля и присваивает первой переменной имя1, второй переменной — имя2, и т.д. Если имен больше, чем полей в строке, то оставшиеся переменные будут инициализированы пустым значением. Если полей больше, чем имен переменных, то последней переменной будет присвоена подстрока введенной строки, содержащая все оставшиеся поля, включая разделители между ними. В частности, если имя указано только одно, то соответствующей ему переменной присваивается значение всей строки целиком. Образованные таким образом переменные далее могут обрабатываться процедурой или отдельными командами ОС.
5. В один подкаталог скопируйте имеющиеся файлы HOMEкаталога с изменением имен, а в другой – переместите. Проанализируйте, как изменилось содержание всех трех каталогов и каковы атрибуты всех полученных файлов.
6. Просмотрите содержимое файлов с частично совпадающими именами с использованием механизма генерации имен файлов.
7. С использованием механизма генерации имен файлов слейте содержимое всех файлов в один и поместите его в HOME-каталог. Проанализируйте содержание файла.
8. Создайте ссылку с другим именем в одном из подкаталогов на один из файлов другого подкаталога. Проанализируйте и сравните все атрибуты связанных файлов. Объясните отличия.
9. Создайте еще одну ссылку с другим именем. Проанализируйте и сравните все атрибуты связанных файлов. Объясните отличия.
10. Создайте ссылки на несколько файлов, принадлежащих одному из каталогов, в другом каталоге одной командной строкой. Проанализируйте и сравните все атрибуты связанных файлов. Объясните отличия.
11. Измените содержимое одного из связанных файлов. Проанализируйте содержимое других связанных с ним файлов (или файла). Объясните результат.
12. Уничтожьте один из связанных файлов. Проанализируйте и сравните все атрибуты связанных с ним файлов. Объясните изменения.
13. Упорядочите по алфавиту строки суммарного файла HOME-каталога.
14. Обновите временные характеристики одного из существующих файлов. Проанализируйте результат.
15. Обновите временные характеристики несуществующего файла. Проанализируйте результат работы команды.
16. Проанализируйте с использованием команды history содержание лабораторной работы, продумайте ответы на нижеприведенные контрольные вопросы.
1. Назовите известные Вам способы создания пустых файлов. Как создать текстовый файл?
2. Какие возможности сокращения записи имен файлов Вы знаете с использованием механизма генерации имен файлов?
3. Какие три команды этой лабораторной работы можно использовать для переименования файлов? Как в этом случае надо использовать команды?
4. Какими способами можно объединить несколько текстовых файлов в один?
5. В чем разница работы команд cp и mv?
6. Сколько ссылок можно создать на единственный файл из разных каталогов?
7. Как создать несколько ссылок с совпадающими именами на несколько файлов в другом каталоге?
8. Какое соответствие атрибутов имеют связанные между собой файлы?
9. На какой атрибут и как влияет удаление одного из связанных файлов?
10. Как отражается на содержимом связанных файлов изменение содержания одного из них и почему?
11. Какими возможностями обладает команда sort?
Работа 4. УПРАВЛЕНИЕ ПРАВАМИ ДОСТУПА К ФАЙЛАМ И КАТАЛОГАМ
Посвящена изучению принципов защиты файлов и каталогов ОС UNIX от несанкционированного доступа. В UNIX эти средства являются встроенными и наиболее развиты по сравнению с другими операционными системами. Изучаются вопросы влияния задаваемых прав доступа к файлу на выполнение различных команд по обработке этих файлов.
Для управления правами доступа к файлам и каталогам используется команда:
chmod — изменить права доступа к указанному файлу.
1. Создайте в Вашем HOME-каталоге один текстовый файл, например с именем f1. Выведите на экран полный листинг каталога.
2. Проанализируйте и умейте объяснить, какие права доступа к f1 имеет владелец файла, его группа и остальные пользователи.
3. Проанализируйте права доступа к Вашему головному каталогу. Есть ли ограничения на работу с файлами в этом каталоге?
4. Выведите на экран содержимое файла f1. Объясните, почему операция выполнилась успешно.
5. Запретите права на чтение f1 владельцу и группе. Попытайтесь вывести на экран текст файла. Объясните, почему операция не выполняется.
6. Удалите права на запись в файл. Попытайтесь добавить к файлу текст и удалить его. Объясните результат.
7. Удалите право на модификацию каталога. Повторите операцию удаления. Объясните результат.
8. Создайте подкаталог. Разместите в нем текстовый файл. Проанализируйте права доступа к подкаталогу и объясните возможности по использованию подкаталога.
9. Удалите право владельца на «выполнение» подкаталога.
10. Попытайтесь сделать подкаталог текущим. Объясните результат.
11. Просмотрите содержимое подкаталога. Объясните результат.
12. Попытайтесь вывести длинный листинг подкаталога только для одного из файлов (поиск файла по подкаталогу). Объясните результат.
13. Попытайтесь вывести на экран содержимое файла. Объясните результат.
14. Верните право для подкаталога на «выполнение», удалите право на «чтение» и сохраните право на «модификацию».
15. Выполните пп. 10, 11, 12, 13. Проанализируйте и объясните результаты.
16. Проанализируйте с использованием команды history содержание лабораторной работы, продумайте ответы на нижеприведенные контрольные вопросы.
1. Как кодируются в атрибутах файла и каталога права доступа?
2. Кто может пользоваться и изменять права доступа к файлам?
3. Какие команды для изменения символьных кодов прав доступа Вы знаете? Перечислите и расскажите о назначении каждой из команд.
4. В чем разница в применении команд chmod и umask?
5. Какие команды обработки файлов разрешают (или запрещают) права на чтение, модификацию и исполнение?
6. Какие команды обработки каталогов разрешают (или запрещают) эти же права?
7. Что означает право на выполнение применительно к каталогу?
8. Какими правами надо обладать, чтобы удалить файл или каталог?
9. Какие команды для защиты файлов Вы знаете?
Работа 5. УПРАВЛЕНИЕ ПРОЦЕССАМИ
Цель работы — закрепить представление о возможностях командного языка UNIX по управлению процессами, которым выделяются все необходимые ресурсы вычислительной системы.
ps — запрос информации о процессах текущего терминала; & — запуск фонового процесса;
fg, bg — переводит процесс в активный или фоновый режим; jobs — запрос листинга списка заданий;
nohup — защита фоновых процессов от прерывания выполнения при выходе из сеанса работы с системой;
nice — понижение приоритета процесса; kill — прекращение выполнения процесса.
2. Разработать и запустить простейшую процедуру в фоновом режиме с бесконечным циклом выполнения, предусматривающую,
3. Выполнить п. 1. Объяснить изменения в листинге харатеристик процессов. Объясните содержание PID и PPID.
4. Понизьте значение приоритета процедуры. На что и как повлияет эта операция при управлением вычислительным процессом системы? Как отразятся её результаты в описателях процессов?
5. Проанализируйте листинг процессов. Какой процесс является родительским для процедуры?
6. Выйдите из системы и войдите заново. Проанализируйте листинг процессов. Объясните изменения в системе.
7. Запустите процедуру в фоновом режиме, но предусмотрите её защиту от прерывания при выходе из системы.
8. Выполните п. 6. Объясните изменения PPID-процедуры.
9. Завершите выполнение процесса процедуры.
10. Запустите процедуру в оперативном режиме с перенаправлением вывода в соответствующий файл.
14. Проанализируйте с использованием команды history содержание лабораторной работы, продумайте ответы на нижеприведенные контрольные вопросы.
1. Объясните понятия процесса и ресурса. Какое их значение в организации вычислительного процесса в ОС UNIX?
2. Какая информация содержится в описателях процессов? Как просмотреть их содержание в процессе работы с системой?
3. Какими способами можно организовать выполнение программ в фоновом режиме?
ния выполнения фоновых программ при прекращении сеанса работы с системой?
5. Как пользователь может повлиять на распределение ресурсов между активными процессами?
6. Как можно прервать выполнение активных процессов? Какая информация для этого необходима и откуда она извлекается?
7. ВВЕДЕНИЕ В SHELLПРОГРАММИРОВАНИЕ.
7.1. ПОНЯТИЕ ПРОЦЕДУР
Язык shell по своим возможностям приближается к высокоуровневым алгоритмическим языкам программирования. Операторы языка shell позволяют создавать собственные программы. В программах могут использоваться любые команды командного языка, в том числе и рассмотренные в данном пособии.
Такие программы, а также командные файлы, содержащие их, называют shell-процедурами или shell-файлами. От обычных программ они отличаются способом их обработки. Процедура не требует компиляции, построения объектного файла и последующей компоновки, так как shell, обрабатывающий их, является транслятором интерпретирующего, а не компилирующего типа. Процедура — аналог командного файла в MS-DOS, но с более широкими возможностями. Здесь же отметим, что рассмотренные ниже операторы могут быть использованы как в теле процедуры, так и выполнены независимо как обычные команды операционной системы в диалоговом режиме.
Текст процедуры набирается как обычный текстовый файл. Для этих целей при создании большой процедуры целесообразно использовать редактор vi. Для создания простейших процедур можно использовать команду cat или один из следующих способов создания пустых файлов с последующим заполнением командами ОС или операторами языка shell.
Проверенный и отлаженный shell-файл может быть вызван на исполнение, например, следующим способом:
$ chmod u=rx shfil $ shfil
Для выполнения процедуры необходимы права r,x; обычно право r задается администратором, так как файлы должны быть читаемы, тогда опция может иметь вид u+x .
Такая форма запуска процедуры предполагает, что файл процедуры новый и его надо сначала сделать выполняемым.
Можно использовать также и следующий способ:
В этих случаях по команде sh вызывается вторичный интерпретатор shell, и в качестве аргумента ему передается командная строка, содержащая имя файла процедуры shfil, находящегося в текущем каталоге. Однако этот способ накладывает ограничения на исполнение некоторых команд ОС управления процессами (например, nice – см. ниже).
Процедуре при ее запуске могут быть переданы аргументы. В общем случае командная строка вызова процедуры имеет следующий вид:
$ имя_процедуры $1 $2 . $9
Каждому из девяти первых аргументов командной строки в тексте процедуры соответствует один из позиционных параметров, имеющий соответствующий номер занимаемой им позиции в коде команды $1, $2, . $9. Параметр $0 соответствует имени самой процедуры , т.е. первому полю командной строки. К каждому из 10 первых аргументов можно обратиться из процедуры, указав номер его позиции.
Некоторые вспомогательные операторы:
$ echo “начало строки > продолжение строки” или
$ echo “строка текста”
(Строка не будет обрабатываться shell.)
$banner 'hello ira' HELLO IRA
Простейший пример. Здесь оператор echo выполняется также в командном режиме. На экран выводится третий параметр, передаваемый процедуре при ее запуске:
$shfil p1 pp2 petr $echo $3
Значения параметрам, передаваемым процедуре, можно присваивать и в процессе работы процедуры с помощью оператора
set — присвоить значения позиционным параметрам.
$set a1 ab2 abc $echo $1 $2 a1 ab2
В этом примере параметры указываются в явном виде. Количество позиционных параметров может быть увеличено до необходимого значения путем “сдвига” их в командной строке влево на одну позицию с помощью команды shift без аргументов:
shift — сдвинутьпозиционные параметры влево на одну позицию.
После выполнения shift прежнее значение параметра $1 теряется, значение $1 приобретает значение $2, значение $2 — значение $3 и т.д.
Продолжение предыдущего примера:
$shift $echo $1 $2 ab2 abc
В UNIX при написании командных строк и в shell-процедурах особое значение имеет правильное использование кавычек (апострофов):
'. ' — для блокирования полного набора специальных символов, которые могут быть интерпретированы как управляющие;
". " — для блокирования некоторых символов, которые могут использоваться в именах переменных или для указания того, что обрабатывается не сам аргумент, а его значение (подстановка значения), в частности не блокируют $ , `…` , \ ;
`. ` — (обратные кавычки или знак ударения) для указания того, что они обрамляют команду, и здесь будет обрабатываться результат работы этой команды (подстановка результатов работы указанной команды).
Apr 3 14:27:07 2007 $ set `date`
Пример 2: $echo `ls` fil.1
Здесь одинарные кавычки блокируют действие обратных кавычек, т.е. они распечатываются как обычные символы.
$ls -al|grep “Mar 30”
Эта же командная строка без кавычек приобретает совершенно другой смысл:
$ls -al|grep Mar 30
Для ввода строки текста со стандартного устройства ввода используется оператор:
read имя1 [имя2 имя3 .] — чтение строки слов со стандартного устройства ввода.
Команда вводит строку, состоящую из нескольких полей (слов), со стандартного ввода, заводит переменную для каждого поля и присваивает первой переменной имя1, второй переменной — имя2, и т.д. Если имен больше, чем полей в строке, то оставшиеся переменные будут инициализированы пустым значением. Если полей больше, чем имен переменных, то последней переменной будет присвоена подстрока введенной строки, содержащая все оставшиеся поля, включая разделители между ними. В частности, если имя указано только одно, то соответствующей ему переменной присваивается значение всей строки целиком. Образованные таким образом переменные далее могут обрабатываться процедурой или отдельными командами ОС.
Здравствуйте, Если кто знает
6 способов создания файла
6 способов создания папки
2 способа создания ярлыка,
напишите, пожалуйста.
Вывести на экран имя и дату создания (или изменения) самого свежего файла в заданной папки
Добрый день, есть небольшая проблема: Нужно вывести на экран имя и дату создания (или изменения).
Вывод файлов папки, измененных после даты создания самой папки
я так понимаю, надо использовать ls, но с какими параметрами. также, я не ориентируюсь в синтаксисе.
Отличие двух способов создания String
Доброго времени суток, объясните пожалуйста: String s1 = new String(); String s2 = ""; //Эти 2-е.
из простых методов:
непосредственно из контекстного меню(создать)
из интерфейса самой программы
сохранить как
копировать
ярлыки кроме контекстного меню(непосредственное) - перетаскиванием мыши, будет предложение создать ярлык.
из сложных методов:
- вручную изменить таблицу размещения файлов при помощи liveCD и Hex-редактора
- намагничивание дорожек жесткого диска под микроскопом
Подсчет количества способов создания команды из 6 человек
Нужен алгоритм создания программы, которая подсчитывает количество способов создания команды из 6.
Изменение времени создания файла на минус Х дней от текущей даты создания
День добрый, ветераны форума. Помогите пожалуйста следующую задачу: Есть папка в ней вложеные.
Копировать файлы в папки при совпадении имен файла и папки
Добрый день. Задача такая, есть папка в которой содержатся файлы, каждый файл с уникальным.
Вывод названия папки и пояснение к ней из файла txt внутри этой папки
Здравствуйте, дорогие друзья. Работаю над созданием одной программы и нужно сделать "движок.
Извлечь имя папки файла начиная с определенной папки
Собстно вопрос. Как извлечь имя папки файла начиная с определенной папки Например полное имя.
Читайте также:
- Планшет samsung a7 или s6
- При включении компьютера пропадает сигнал на телевизоре
- Компьютерная сеть не имеющая специально выделенного сервера называется
- В системе отсутствует java и или не указан путь до исполняемого файла
- Двухцветное черно белое графическое изображение имеет размер 10х10 какой объем памяти оно занимает