BASH Programming - Введение

       

Запуск программ: Многозадачность и сеансы работы


Для запуска программы просто наберите ее имя, так как вы делали это в DOS. Если каталог (Раздел ), где находится программа, находится в переменной среды PATH (Раздел ), то программа будут запущена. Исключение: в отличии от DOS, в Linux программа, расположенная в текущем каталоге, не будет запускаться до тех пор, пока вы не включите этот каталог в PATH. Предупреждение: если prog это ваша программа, то наберите ./prog для ее запуска из текущего каталога.

Типичная командная строка выглядит примерно так:

$ command [-s1 [-s2] ... [-sn]] [par1 [par2] ... [parn]] [< input] [> output]

где -s1, ..., -sn являются ключами программы, а par1, ..., parn являются параметрами программы. Вы можете запустить несколько команд из одной командной строки:

$ command1 ; command2 ; ... ; commandn

Это все о запуске программ, но теперь легко сделать следующий шаг. Одна из основных причин использования Linux---это то, что она является многозадачной операционной системой---она может выполнять разные программы (с этого места мы будем называть их процессами) одновременно. Вы можете запускать процессы в фоновом режиме и продолжать работать. Более того, Linux позволяет вам иметь несколько сеансов работы: Это подобно наличию множества компьютеров на одном!

  • Для того,чтобы переключится в сеанс 1..6 на виртуальных консолях, нажмите <ALT-F1> ... <ALT-F6>
  • Для запуска нового сеанса в той же самой виртуальной консоли без выхода из нее, наберите su - <loginname>. Пример: su - root. Это полезно, например, когда вам надо выполнить задачу, которую может выполнить только root.
  • Для окончания сеанса работы наберите exit. Если у вас есть приостановленные задания (смотрите дальше), то вас предупредят.
  • Для запуска процесса в фоновом режиме, добавьте знак амперсанда '&' в конец командной строки:

    $ progname [-switches] [parameters] [< input] [> output] & [1] 123

    Командный процессор идентифицирует процессы по номеру задания (например [1]; смотрите ниже), и по PID (Идентификационный номер процесса; 123 в нашем примере).


  • Для того, чтобы увидеть, сколько процессов запущено, наберите ps ax. Эта команда выдаст список запущенных в настоящее время процессов.


  • Для того чтобы убить, (завершить) процесс, наберите команду kill <PID>. Вам может понадобиться убить процесс в том случае, если вы не знаете, как его правильно завершить... До тех пор, пока вы не станете root, вы не сможете завершать процессы других людей. Иногда процесс может быть завершен только используя команду kill -SIGKILL <PID>.

    В дополнение командный процессор позволяет вам остановить или временно приостановить процесс, перевести процесс в фоновый режим, и перевести процесс из фонового режима в интерактивный режим. В этом контексте процессы называются ``заданиями''.


  • Для того чтобы узнать, сколько заданий существует наберите jobs. Здесь задания идентифицируются по номеру задания, а не по их PID.


  • Для того, чтобы остановить процесс, запущенный в интерактивном режиме, нажмите <CTRL-C> (это не всегда работает).


  • Для того, чтобы приостановить процесс, запущенный в интерактивном режиме , нажмите <CTRL-Z> (то же самое).


  • Для перевода приостановленного процесса в фоновый режим, наберите bg <%job> (он станет заданием).


  • Для перевода задания в интерактивный режим наберите fg <%job>. Для перевода в интерактивный режим последнего задания, запущенного в фоновом режиме, просто наберите fg.


  • Для завершения задания наберите kill <%job>, где <job> может быть 1, 2, 3,...


  • Используя эти команды вы можете форматировать диск, сжимать кучу файлов, компилировать программу и разжимать архив в одно и тоже время и все равно иметь командную строку для своих нужд. Попробуйте сделать это в Windows, просто чтобы посмотреть разницу в производительности (конечно, если он не рухнет).


    Содержание раздела