Ким
Светлана Владиславовна
КГБ
ПОУ «Уссурийский агропромышленный колледж»
Сентябрь,
2016 год
ЛАБОРАТОРНЫЕ
РАБОТЫ ПО ТУРБО ПАСКАЛЮ
_Информационно-технологическая карта
на выполнение практической работы №1
По предмету: Информатика.
Тема: Язык программирования Тurbo Pascal.
Наименование: Составление линейных программ в Тurbo Pascal.
Цель занятия: Научиться создавать, вводить в компьютер, выполнять и исправлять линейные
программы на языке Тurbo Pascal, познакомиться с
диагностическими сообщениями компилятора об ошибках при выполнении программ,
реализующих программирование алгоритмов линейной структуры.
Приобретаемые
умения и навыки: Умение составлять программы в Тurbo
Pascal.
Норма времени: 2 часа.
Оборудование: ПК,
инструкционная карта.
Инструкция
к выполнению:
1. Загрузить
систему Турбо – Паскаль.
2.
Набрать строку PROGRAM P1;
3.
Начиная
со второй строки, набрать следующий текст программы:
BEGIN
writeln (‘ это моя первая работа в системе’);
END.
4.
Открыть новое
окно.
5. Вернуться в первое окно.
6. Выделить текст: PROGRAM
P1;
BEGIN
writeln (‘ это моя первая работа в системе’);
7.
Скопировать
выделенный текст в буфер.
8.
Перейти во
второе окно.
9.
Вставить фрагмент из буфера
10. Между строкам PROGRAM P1 и BEGIN вставить пустую строку и в ней набрать строку USES CRT;
11. После скопированного фрагмента
добавить следующие строки:
readln; clrscr;
writeln (‘ Меня зовут …’);
и вместо многоточия вставить свои фамилию и имя.
12. Далее
перейти в первое окно. Выделить слово END и
скопировать его во второе окно в конце текста
13. . Перейти в первое окно и
запустить программу на исполнение.
14. Открыть окно с результатом
15. Закрыть окно с результатом.
Закрыть первое окно.
16. Сохранить программу из
второго окна под именем filel. pas
17. Запустить программу filel на исполнение.
18. Изменить строку PROGRAM P1; на PROGRAM P2;
21.После строки USES CRT; добавить строки:
const n = 255;
VAR a, b: string; T:boolean; х, у, z: real;
22. Перед словом END вставить
строки:
write (‘ Введите год и день
рождения»);
readln (a); readln (b); t:= a<>b;
writeln(‘a<>b:’, t); writeln (‘ Введите два числа’); readln(x); readln(y);
z:= abs (x) + sin (y) * n;
writeln (‘z =’ ,z);
23. Запишите полученную программу
на диск с именем file2.pas.
24. Запустите ее на исполнение,
исправьте ошибки, если они есть.
31.
Откройте
новое окно.
33.Наберите следующий текст программы:
PROGRAM РЗ;
USES CRT;
VAR х, у, z : real; a, b, c, d: integer;
BEGIN
clrscr;
writeln (‘ Введите три целых числа’);
readln (a, b, с);
writeln (‘ Введите 2 действительных
числа’);
readln (x, у);
d := a div b; writeln (‘ Деление нацело:’, d:3); d := d mod 2;
writeln (‘ Остаток
от деления:’ ,d);
z := (abs(x) + exp(y)) / (ln(a) + sqrt (d)) + pi*sin(x);
writeln (‘z=’,z: 10:3); d:= round (z);
writeln (‘Округленное z=’ ,d);
END.
34. 3апустите ее на исполнение,
исправьте ошибки, если это необходимо.
35. Запишите
как выглядит арифметическая формула z на обычном математическом
языке.
36. Запишите программу на диске с именем file3.pas.
Контрольные
вопросы:
1. Как запустить программу на исполнение? Как
открыть окно с результатом?
2. Как сохранить программу на диске? Как считать
ее с диска?
3. Как открыть новое окно? Как перейти из окна в
окно?
4. Что такое константа? Переменная?
5. Что такое логическое выражение?
Арифметическое?
6. Понятие оператора. Виды операторов.
Информационно-технологическая карта
на выполнение практической работы №2
По предмету: Информатика.
Тема: Язык программирования Тurbo Pascal.
Наименование: Составление разветвляющихся программ. Оператор ветвления if.
Цель занятия: Научиться создавать, вводить в компьютер, выполнять и исправлять разветвляющиеся
программы на языке Pascal, используя оператор if.
Приобретаемые
умения и навыки: Умение составлять программы в Тurbo
Pascal, используя оператор if.
Норма времени: 2 часа.
Оборудование: ПК, инструкционная карта.
Инструкция
к выполнению:
Задание 1. Реализовать
алгоритм вашей задачи из варианта на языке Тurbo
Pascal.
Задание 2. Запустить
программу на исполнение, исправить ошибки, если необходимо.
Задание 3. Открыть
окно с результатом и продемонстрировать его преподавателю.
Варианты
1 вариант. Определить, будет ли треугольник со сторонами a,b,c прямоугольным.
2 вариант. Решить квадратное уравнение вида x2+px+q=0
3 вариант. Найти наибольшее из трех заданных чисел a,b,c.
4 вариант. Найти наименьшее из трех заданных чисел a,b,c.
5 вариант. Определить, являются
ли точки М1(х1,у1) и М2(х2,у2) симметричными относительно оси х.
6 вариант. Вычислить расстояние
между точками М1(х1,у1), М2(х2,у2), М3(х3,у3). Определить какое из этих
расстояний наименьшее.
7 вариант. Определить,
находится ли точка М(х,у) на прямой у=к*х+в.
8 вариант. Определить, являются
ли точки М1(х1,у1) и М2(х2,у2) симметричными относительно начала координат.
9 вариант. Даны три числа
а,в,с. Вычислить х1=а2-в2+с2, х2= авс, х3=1-с.
Определить наибольшее из х1, х2 и х3.
10 вариант. Вычислить расстояние
между точками М1(х1,у1), М2(х2,у2), М3(х3,у3). Определить какое из этих
расстояний наибольшее.
11 вариант. Даны три числа
а,в,с. Вычислить х1=а2-в2-с2, х2= авс,
х3=а+в+с. Определить наименьшее из х1, х2 и х3.
12 вариант. Если действительные
числа х и у одного знака, найти их среднее геометрическое, в противном случае
найти их среднее арифметическое.
13 вариант. Определить,
являются ли точки М1(х1,у1) и М2(х2,у2) симметричными относительно оси у.
14 вариант. Определить, принадлежит
ли точка М(х,у) кругу радиуса r с центром в точке С(а,в).
Контрольные
вопросы:
1.
В каких задачах используются разветвляющиеся алгоритмы?
2. Что такое условие разветвления?
3. Как выглядит полный условный оператор на
Тurbo Pascal?
Информационно-технологическая карта
на выполнение практической работы №3
По предмету: Информатика.
Тема:
Язык программирования Тurbo Pascal.
Наименование: Составление разветвляющихся программ. Оператор case.
Цель занятия: Научиться создавать, вводить в компьютер, выполнять и
исправлять разветвляющиеся программы на языке Pascal, используя оператор выбора
case.
Приобретаемые умения и навыки: Умение составлять программы в Тurbo Pascal,
используя оператор выбора case.
Норма времени: 2 часа.
Оборудование: ПК, инструкционная карта.
Инструкция
к выполнению
Задание 1. Используя оператор case
составить программу решения задачи из указанного варианта.
Задание 2. Запустить программу на исполнение,
исправить ошибки, если необходимо.
Задание 3. Открыть
окно с результатом и продемонстрировать преподавателю.
Контрольные вопросы:
1. Если выбор
вариантов осуществляется из конечного числа элементов выбора, то лучше взять
для этого оператор if или case?
2. Какой тип
переменной можно использовать в качестве ключа оператора case?
3. Каков
формат оператора case?
Варианты
1. 

3.


7.
8.

10. 

12.
13.
14.
Информационно-технологическая карта на выполнение практической работы №4
По предмету: Информатика.
Тема: Язык
программирования Тurbo Pascal.
Наименование: Составление
программы с организацией циклов. Оператор While.
Цель занятия:
Научиться составлять программы циклической структуры, используя оператор While.
Приобретаемые умения и навыки: Умение составлять программы алгоритма циклической структуры,
используя оператор While.
Норма времени: 2 часа.
Оборудование: ПК, инструкционная карта.
Инструкция
к выполнению:
Задание
1. Реализовать алгоритм вашей задачи из варианта
на языке Тurbo Pascal используя цикл
While.
Задание 2. Запустить
программу на исполнение, исправить ошибки, если необходимо.
Задание 3. Открыть
окно с результатом и продемонстрировать его преподавателю.
Варианты
1
вариант. Дано
натуральное число n. Вычислить значение суммы
![]()
2 вариант. Дано натуральное число n и действительное число х. Вычислить значение
суммы s= sinx+ 2sinx+…+ nsinx.
3
вариант.
Вычислить сумму тех членов прогрессии 1, -2, 4, -8, 16, -32,… , которые меньше
заданного числа а по абсолютной величине.
4
вариант. Дано
натуральное число n. Вычислить n!
5
вариант.
Дано натуральное число n. Вычислить значение
произведение
![]()
6 вариант.
Вычислить
сумму тех членов прогрессии 1, 4, 7, 10, 13,… , которые меньше заданного числа
а.
7
вариант.
Вычислить сумму тех членов прогрессии 1, 1+1/2, 1+1/3, 1+1/4,… , которые меньше
заданного числа в, где 1<в<2.
8
вариант. Дано
пять чисел х1, х2, х3, х4, х5. Найти их среднее арифметическое.
9
вариант.
Дано натуральное число n и действительное число
х. Вычислить значение суммы s= sin(x+1)+ sin(x+2)…+ sin(x+n).
10
вариант.
Дано натуральное число n. Вычислить значение
произведение
![]()
11
вариант. Дано
натуральное число n. Вычислить
12
вариант. Вычислить сумму тех членов
прогрессии 1, -4, 7, -10, 13, -16, 19… , которые лежат в промежутке между
числами -50 и 50.
13
вариант. Дано натуральное число n. Вычислить значение суммы
![]()
14
вариант. Дано
пять чисел х1, х2, х3, х4, х5. Найти их среднее геометрическое.
Контрольные вопросы:
1. Что такое
цикл?
2. Что такое
условие? Тело цикла?
3. Как
выглядит формат оператора цикла While?
Информационно-технологическая карта на выполнение практической работы №5
По предмету: Информатика.
Тема: Язык
программирования Тurbo Pascal.
Наименование: Составление
программы с организацией циклов. Оператор Repeat.
Цель занятия:
Научиться составлять программы циклической структуры, используя оператор Repeat.
Приобретаемые умения и навыки: Умение составлять программы алгоритма циклической структуры,
используя оператор Repeat.
Норма времени: 2 часа.
Оборудование: ПК, инструкционная карта.
Инструкция
к выполнению:
Задание
1. Реализовать алгоритм вашей задачи из
работы №4 на языке Тurbo Pascal используя цикл
Repeat.
Задание 2. Запустить
программу на исполнение, исправить ошибки, если необходимо.
Задание 3. Открыть
окно с результатом и продемонстрировать его преподавателю.
Контрольные вопросы:
1. Что такое
цикл?
2. Что такое
условие? Тело цикла?
3. Как
выглядит формат оператора цикла Repeat?
Информационно-технологическая карта на выполнение практической работы №6
По предмету: Информатика.
Тема: Язык
программирования Тurbo Pascal.
Наименование: Составление
программы с организацией циклов. Оператор For.
Цель занятия:
Научиться составлять программы циклической структуры, используя оператор For.
Приобретаемые умения и навыки: Умение составлять программы алгоритма циклической структуры,
используя оператор For..
Оборудование: ПК, инструкционная карта.
Инструкция
к выполнению:
Задание 1. Используя оператор For
составить программу решения задачи из указанного варианта.
Задание 2. Запустить программу на исполнение,
исправить ошибки, если необходимо.
Задание 3. Открыть
окно с результатом и продемонстрировать преподавателю.
Контрольные вопросы:
1 Что называется циклом, телом цикла?
2 Формат и принцип действия оператора
for…to…do. Особенности применения
Варианты
1. ![]()
2. ![]()
3. ![]()
4. ![]()
5. ![]()
6. ![]()
7. ![]()
8. ![]()
9. ![]()
10.
![]()
11.
![]()
12. ![]()
13.
![]()
14.

10
3.2. Выполнение программы
Информация
После того, как в тексте программы устранены все ошибки, можно запустить программу на выполнение. Для этого необходимо подать команду Run/Run (CTRL+F9). При выполнении программы интерфейс ИСП заменяется экраном пользователя (User screen), предназначенным для организации диалога пользователя и программы. На экране пользователя отображаются данные, вводимые пользователем с клавиатуры, и результаты работы программы, выводимые с помощью процедур write и writeln.
Задание 27
Запустите программу на выполнение. В ответ на приглашение «Ввод х= » введите значение 1 и нажмите клавишу Enter.
Информация
После окончания работы программы экран пользователя автоматически заменяется интерфейсом ИСП. Для просмотра экрана пользователя необходимо подать команду
Debug/User screen (Alt+F5).
Задание 28
Просмотреть результат выполнения программы, открыв экран пользователя. Содержимое экрана пользователя должно иметь следующий вид:
Ввод х= 1 Значение z= 3.00
Информация
Для возвращения к интерфейсу ИСП достаточно нажать любую клавишу.
Задание 29
Вернитесь к интерфейсу ИСП.
Информация
В некоторых случаях удобно иметь отображение диалога с программой, не выходя из интерфейса ИСП. Для этого по команде Debug/Output можно открыть окно вывода
(Output).
Задание 30
Просмотреть результаты выполнения программы с помощью окна вывода. Для этого следует:
1)открыть окно вывода;
2)запустить программу на выполнение;
3)ввести значение 2 в ответ на приглашение «Ввод х= «;
4)просмотреть результат выполнения программы в окне Output;
5)закрыть окно вывода.
4. Отладка программы
Информация
Отсутствие в тексте программы ошибок, которые выявляются на этапе трансляции, не означает, что программа работает правильно, т.е. в итоге работы программы получается ожидаемый результат. Неправильная работа программы обусловлена логическими ошибками, которые допускаются программистом, как на этапе постановки задачи, так и на этапах разработки алгоритма и кодирования. Основными средствами устранения логических ошибок являются тестирование и трассировка программы.
Тестом называется известный ожидаемый результат работы программы для заданных значений исходных данных. Если при выполнении программы получается результат, совпадающий с ожидаемым, то считается, что тест выполнен. В противном случае следует искать ошибку, послужившую причиной неправильной работы программы.
11
Основным методом поиска ошибок, обнаруживаемых при выполнении тестов, является трассировка программы. Трассировкой называется просмотр текущих значений переменных в процессе выполнения программы. Для выполнения действий по трассировке программы в состав ИСП включен отладчик, позволяющий отслеживать процесс выполнения программы по её тексту и просматривать текущее значение переменных.
Рассмотрим основные возможности отладчика на примере программы, которая должна выполнить обмен значений двух переменных.
Задание 31
Набрать приведенный ниже текст программы, выполнить трансляцию и устранить ошибки, если они возникли при наборе текста.
{Автор: Фамилия И.О. } {Группа: } {Тема: Третья программа} program ThirdProg;
var x,y:integer;
begin
write(‘Ввод х и y ‘); readln(x,y);
writeln(‘До обмена х= ‘,x,’ y=’,y); x:=y;
y:=x;
writeln(‘После обмена х= ‘,x,’ y=’,y) end.
Информация
Для поиска и устранения возможных логических ошибок используем следующий
тест:
При вводе начальных значений переменных x и y, соответственно, 1 и 2 в результате работы программы ожидается выдача сообщений:
До обмена х= 1 y=2; После обмена х= 2 y=1.
Задание 32
Выполнить программу. Убедиться, что в результате работы программы выдаются сообщения:
До обмена х= 1 y=2; После обмена х= 2 y=2.
Таким образом, тест дает неверный результат и, следовательно, программа содержит логические ошибки. Для поиска ошибок выполним трассировку программы.
Информация
Для просмотра значений переменных в процессе выполнения программы используется окно просмотра (Watch), которое открывается по команде Debug/Watch. Идентификаторы переменных, значения которых требуется просмотреть, заносятся в окно просмотра по команде Debug/Add watch (Ctrl+F7).
Задание 33
Откройте окно просмотра, выполнив команду Debug/Watch. Занесите в окно просмотра переменные X и Y, для этого:
1)выполните команду Debug/Add watch;
2)в строке ввода диалогового окна введите идентификатор X и нажмите Enter;
3)сделайте активным окно с текстом программы, если оно не активно;
12
4)установите курсор на идентификатор Y в любом месте программы, где он встречается, например, в строке x:=y;
5)нажмите комбинацию клавиш Ctrl+F7;
6)убедитесь, что в строке ввода находится идентификатор “y”, и нажмите Enter;
7)расположите окна каскадом, выполнив команду Window/Cascade.
Информация
Значения переменных, которые демонстрируются в окне просмотра, являются корректными только в процессе выполнения программы. Для просмотра значений переменных выполнение программы приостанавливается с помощью точек прерывания (Breakpoints), указываемых в тексте. Установка точки прерывания в заданной строке выполняется нажатием комбинации клавиш Ctrl+F8. Повторное нажатие этой комбинации клавиш, при положении курсора в строке, содержащей точку прерывания, приводит к снятию точки прерывания.
Задание 34
Установите точку прерывания в строке программы x:=y, для этого следует:
1)поместить текстовый курсор в любое место указанной строки;
2)нажать комбинацию клавиш Ctrl+F8.
Если точка прерывания установлена, то строка выделяется цветом (обычно красным).
Информация
Трассировка программы обычно выполняется в пошаговом режиме (режим, при котором выполняются операторы, находящиеся в одной строке программы). Выполнение одного шага вызывается командой Run/Step over (F8) или для трассировки подпрограмм Run/Trace into (F7). Строка, которая будет выполнена следующей, выделяется цветом.
Задание 35
Выполните трассировку программы. Для этого следует:
1)запустить программу на выполнение;
2)в ответ на запрос » Ввод х и y» набрать значения 1 и 2 и нажать Enter;
3)убедиться, что значения переменных X и Y, показанные в окне просмотра, равны 1 и 2 соответственно;
4)выполнить строку x:=y, нажав F8;
5)убедиться, что значение переменной X изменилось и стало равным 2, а значение 1 потеряно;
6)выполнить строку y:=x, нажав F8;
7)убедиться, что значения переменных X и Y, показанные в окне просмотра, равны 2 и 2 соответственно.
Информация
Для завершения сеанса отладки следует нажать комбинацию клавиш Ctrl+F2. При этом выделение строки, которая будет выполняться следующей, снимается.
Задание 36
Завершить текущий сеанс отладки. Снять точку прерывания, установив курсор в соответствующую строку и нажав комбинацию клавиш Ctrl+F8.
Информация
Анализ результатов трассировки показывает, что обмена значениями переменных X и Y не происходит, потому что при выполнении оператора x:=y стирается введенное значение переменной X, и значения обеих переменных становятся одинаковыми. Для исправления ошибки следует использовать вспомогательную переменную, предназначенную для сохранения старого значения переменной X перед присваиванием ей значения переменной Y.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Как запустить программу на выполнение
В абсолютном большинстве случаев программы, установленные в ОС Windows, запускаются с использованием мыши — двойным щелчком по соответствующему ярлыку на рабочем столе или выбором ссылки на нужное приложение в главном меню на кнопке «Пуск». Но в операционной системе есть и другие способы запустить программу на выполнение.
Инструкция
Воспользуйтесь стандартным диалогом запуска программ. Вызывается он выбором пункта «Выполнить» в главном меню ОС или одновременным нажатием клавиш win и r. В единственном поле ввода диалога укажите полный адрес программы, которую требуется выполнить. Сделать это можно как ручным набором с клавиатуры, так и с помощью открываемого щелчком по кнопке «Обзор» диалога поиска нужного файла в компьютере. Если программа относится к системным или путь к каталогу, в котором она хранится, прописан в переменную окружения Windows с названием Path, то полный адрес указывать не требуется. В этом случае не нужно даже полного названия исполняемого файла — расширение exe можно опустить. Нажмите кнопку OK для начала выполнения программы.
Задействуйте Проводник Windows в качестве альтернативного способа запуска нужной программы. Он открывается не менее чем пятью способами, наиболее простые из которых — двойной клик по иконке «Мой компьютер» или одновременное нажатие клавиш win + e. Если вам известен полный адрес исполняемого файла, то можно не разыскивать его в компьютере — наберите или вставьте скопированный адрес в адресную строку Проводника и нажмите клавишу enter. Это приведет к выполнению программы без промежуточных операций. Если этот вариант не подходит, то перейдите в папку, где хранится исполняемый файл программы, и дважды щелкните его левой кнопкой мыши.
Откройте окно интерфейса командной строки, если нужно запустить программу на выполнение с помощью эмулятора DOS. Сделать это можно с помощью диалога запуска программ — нажмите сочетание клавиш win + r, наберите cmd и кликните по кнопке OK. В командной строке введите полный адрес исполняемого файла программы. Для упрощения этой операции можно скопировать путь к файлу, например, в адресной строке Проводника и вставить в командную строку. Стандартные горячие клавиши в терминале не действуют, поэтому для вставки используйте соответствующую команду в контекстном меню. Для запуска на выполнение программы, путь к которой вы ввели, нажмите клавишу enter.
Видео по теме
Обратите внимание
С помощью команды «Выполнить» можно быстро запускать программы, открывать файлы и папки, а также переходить на веб-сайты, если компьютер подключен к Интернету.
Полезный совет
*** Запустить диалоговое окно Выполнить можно разными способами, например: • нажмите кнопку Пуск –> в текстовое поле Найти программы и файлы введите выполнить –> нажмите ссылку Выполнить; – в текстовое поле Открыть диалогового окна Выполнить введите требуемую команду (или с помощью кнопки Обзор выберите требуемую программу) –> нажмите OK
Войти на сайт
или
Забыли пароль?
Еще не зарегистрированы?
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Помогите!!! Практическое задание №7
Тема: Знакомство с языком Паскаль.
1. а) Набрать в редакторе системы Турбо-Паскаль следующую программу:
Program my;
Var a,b,c,s:integer;
Begin
ReadLn(a);
ReadLn(b);
ReadLn(c);
S:=a*b*c;
WriteLn(S)
End.
б) Откомпилировать набранную программу и исправить ошибки.
в) Запустить данную программу на выполнение и проверить правильность её работы для чисел 2, 4 и 6.
г) Запустить данную программу на выполнение и проверить правильность её работы для чисел 1, 0 и -1.
д) Запустить данную программу на выполнение и проверить правильность её работы для чисел -2, 3 и 10.
2. Написать программу, которая присваивает целой переменной A значение 10 и выводит это значение на экран.
3. Написать программу, которая запрашивает ввод целого числа в переменную B и выводит это число на экран. Проверить правильность работы программы на числах 1, -5, 256, 10455.
4. Написать программу, которая запрашивает ввод вещественного числа в перемен-ную C, умножает это число на 2 и выводит результат на экран. Проверить правильность работы программы на числах 2.5, -7.33, 0, 782.234.
5. Написать программу для ввода значения величины X целого типа, присваивания величине Y действительного типа значения 5.5, вычисления значения величины Z = X — Y и вывода значения величины Z. Протестировать программу для X=5.5, X=0, X=-10.2
Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером
Выполнение программ
—
Основы командной строки
Запуск программ в командной строке активирует целый механизм по поиску и выполнению этой программы. Очень важно понимать, как он работает, так как проблемы с запуском вновь установленных программ возникают регулярно у всех разработчиков.
Программа, независимо от того, что она делает, всего лишь файл или набор файлов на диске. Один из этих файлов обязательно должен быть исполняемым. Помните тот самый x из урока про права доступа? Так вот, выполнить программу можно только если она исполняемая, иначе попытка запустить её приведёт к ошибке.
Весь механизм по запуску программ в *nix-системах основан на соглашениях. Когда в командной строке вводится некоторая команда, например, ls, то шелл начинает поиск исполняемого файла с именем ls в списке директорий, указанном в переменной окружения PATH.
echo $PATH
/home/hex/.local/bin:/home/hex/bin/:/home/hex/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Директории друг от друга отделяются двоеточием. В этом списке присутствуют как общесистемные пути, так и пути, специфичные для конкретного пользователя. В вашем случае PATH будет другой. Процесс поиска программы выглядит следующим образом. Шелл перебирает директории слева направо и ищет ту, в которой есть файл ls, доступный для исполнения. Если такого файла не оказалось, то выводится ошибка:
wrongname
bash: wrongname: command not found
Подчеркну, что важен порядок. Если файл с одним и тем же именем находится одновременно в нескольких директориях, то будет найден тот, который находится в директории, расположенной левее.
Если вам интересно узнать, а где лежит исполняемый файл конкретной программы, то можно воспользоваться командой type (а еще which и whereis):
type cp
cp is /bin/cp
whereis cp
cp: /bin/cp
which cp
/bin/cp
ls -al /bin | grep cp
-rwxr-xr-x 1 root root 141528 Jan 18 2018 cp
По выводу выше видно, что cp принадлежит суперпользователю, но исполнять его могут все.
Обратите внимание на то, что почти все директории, в которых хранятся исполняемые файлы программ, оканчиваются на bin. Это общее соглашение, говорят «бинарники» (формально там не всегда бинарники, но это не принципиально). Пакетные менеджеры знают про эти директории и во время установки программ переносят их бинарники в одну из директорий, входящих в PATH. Для вновь устанавливаемых программ обычно это /usr/local/bin. Иногда возникает необходимость расширить PATH, особенно в случае установки через пакетные менеджеры языков программирования, но делать это надо осторожно, убедившись в том, что по-другому нельзя.
В некоторых ситуациях программа, которую вы хотите запустить, не лежит по путям поиска (прописанным в PATH) и не должна там оказаться. Если её исполняемый файл находится прямо в текущей директории, то логично предположить, что если набрать имя файла и запустить его, то программа выполнится. На самом деле этого не произойдёт.
Такое поведение сделано в целях безопасности. Ведь возможно вы хотели запустить какую-то стандартную программу, а злоумышленник положил в текущую директорию программу с таким же именем, но делающую что-то плохое. По этой причине, прямой запуск программ всегда должен быть путём до файла, например, path/to/executable/file. А если файл лежит в текущей директории? Вот тут-то нам и поможет обращение через точку ./:
pwd
/home/hex
cd test/
ls -al
total 16
drwxr-xr-x 2 hex hex 4096 Sep 10 15:24 .
drwxr-xr-x 1 hex hex 4096 Sep 10 15:24 ..
-rwxr-xr-x 1 hex hex 60 Sep 10 15:24 executable
executable
bash: executable: command not found
./executable
Hello from executable!
- Из домашней директории переходим в каталог
test. - В нём лежит исполняемый файл
executable, который при запуске выводит сообщениеHello from executable! - Попытка запустить по имени:
executableзаканчивается ошибкой - Запуск через точку происходит успешно
Изменение переменной PATH
В общем случае не рекомендуется делать это самостоятельно. При правильной установке, большинство программ самостоятельно добавляют свои исполняемые файлы в нужные места. В некоторых случаях они показывают подсказки, как это сделать сразу после установки.
Для ручного изменения переменной PATH нужно поправить один из конфигурационных файлов Bash. Эти файлы лежат в домашней директории пользователя:
- .bashrc
- .bash_profile
- .profile
В зависимости от настроек терминала, Bash прогружает либо одни файлы, либо другие. Если в вашей домашней директории есть файл .bashrc, то пробуйте использовать его, если нет, то остальные файлы в том порядке, в котором они приведены выше. Добавьте в этот файл следующую строку:
export PATH=$PATH:/path/to/directory
Где /path/to/directory путь до директории с исполняемыми файлами.
После этих манипуляций не забудьте перезапустить терминал.
Самостоятельная работа
- Попробуйте узнать, где в вашей системе лежит установленная на одном из прошлых уроков программа
tree.
Дополнительные материалы
- Перечень наиболее часто используемых команд
- Как использовать коды завершения в Bash-скриптах
- Как создать псевдоним (алиас) для команд в Bash
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты.