Меню

Запустить программу на исполнение исправить ошибки если необходимо

Ким
Светлана Владиславовна

КГБ
ПОУ «Уссурийский агропромышленный колледж»

Сентябрь,
2016 год

ЛАБОРАТОРНЫЕ
РАБОТЫ ПО ТУРБО ПАСКАЛЮ

_Информационно-технологическая карта
на выполнение практической работы №1

По предмету: Информатика.

Тема: Язык программирования  Тurbo Pascal.

Наименование: Составление линейных программ в Тurbo Pascal.

Цель занятия: Научиться создавать, вводить в компьютер, выполнять и исправлять линейные
программы на языке Т
urbo Pascal, познакомиться с
диагностическими сообщениями компилятора об ошибках при выполнении программ,
реализующих программирование алгоритмов линейной структуры.

Приобретаемые
умения и навыки:
Умение составлять программы в Тurbo
Pascal.

Норма времени: 2 часа.

Оборудование: ПК,
инструкционная карта.

Инструкция
к выполнению:

1.   Загрузить
систему Турбо – Паскаль.

2.           
Набрать строку PROGRAM  P1;

3.           
Начиная
со второй строки, набрать следующий текст программы:

BEGIN

writeln (‘ это моя первая работа в системе’);

END.

4.           
Открыть новое
окно.

5.  Вернуться в первое окно.

6.  Выделить текст:    PROGRAM
P
1
;

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=а222, х2= авс, х3=1-с.
Определить наибольшее из х1, х2 и х3.

10 вариант. Вычислить расстояние
между точками М1(х1,у1), М2(х2,у2), М3(х3,у3). Определить какое из этих
расстояний наибольшее.

11 вариант. Даны три числа
а,в,с. Вычислить х1=а22-с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!
  1. Из домашней директории переходим в каталог test.
  2. В нём лежит исполняемый файл executable, который при запуске выводит сообщение Hello from executable!
  3. Попытка запустить по имени: executable заканчивается ошибкой
  4. Запуск через точку происходит успешно

Изменение переменной PATH

В общем случае не рекомендуется делать это самостоятельно. При правильной установке, большинство программ самостоятельно добавляют свои исполняемые файлы в нужные места. В некоторых случаях они показывают подсказки, как это сделать сразу после установки.

Для ручного изменения переменной PATH нужно поправить один из конфигурационных файлов Bash. Эти файлы лежат в домашней директории пользователя:

  • .bashrc
  • .bash_profile
  • .profile

В зависимости от настроек терминала, Bash прогружает либо одни файлы, либо другие. Если в вашей домашней директории есть файл .bashrc, то пробуйте использовать его, если нет, то остальные файлы в том порядке, в котором они приведены выше. Добавьте в этот файл следующую строку:

export PATH=$PATH:/path/to/directory

Где /path/to/directory путь до директории с исполняемыми файлами.

После этих манипуляций не забудьте перезапустить терминал.


Самостоятельная работа

  • Попробуйте узнать, где в вашей системе лежит установленная на одном из прошлых уроков программа tree.

Дополнительные материалы

  1. Перечень наиболее часто используемых команд
  2. Как использовать коды завершения в Bash-скриптах
  3. Как создать псевдоним (алиас) для команд в Bash

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Запустить исправление всех ошибок на виндовс 10
  • Запуск этого устройства невозможен код 10 ошибка ввода вывода на устройстве ввода вывода