Общие сведения о работе в терминале.
Выключение и перезагрузка.
Управление задачами (процессами).


Общие сведения о работе в терминале.


    Когда вы регистрируетесь в системе Linux, выполняется проверка имени пользователя и пароля, определяется набор переменных окружения и запускается интерпретатор команд, который чаще называют оболочкой. В большинстве дистрибутивов Linux по умолчанию применяются оболочки sh или bash. Существуют и другие оболочки, однако они менее распространены, но при необходимости можно легко сменить оболочку по умолчанию, или запускать ее из командной строки по мере надобности.
    Команда Linux - это строка символов из имени команды и аргументов, разделенных пробелами. Аргументы предоставляют команде дополнительные параметры, определяющие ее поведение. Например, команда
echo 12345
выведет на экран строку символов 12345, введенных в качестве аргумента команды.
Команды, являющиеся частью оболочки называются встроенными. Естественно, они могут отличаться для различных оболочек. Но есть и команды, не зависящие от используемой оболочки, и представляющие собой отдельные программные модули, стандартные для выбранного вами дистрибутива Linux. В качестве аргументов командам передаются ключи или опции, состоящие из тире и одного или нескольких символов. Пример такой команды:
ls -l
При использовании нескольких ключей, их можно объединить. Ниже приведенные варианты команд идентичны :
ls -l -d
ls -ld


    При работе в командной строке Linux необходимо придерживаться некоторых правил.
    Во-первых, не забывайте, что строчные и заглавные буквы для Linux - это разные символы. В Windows каталог TEMP и каталог Temp - это один и тот же каталог, в Linux - это два разных. Это же касается команд, их ключей, имен пользователей ,паролей и т.п. Консольные команды
ps -a
и
ps -A
выдадут вам разные результаты.

    Во-вторых, практически по всем командам можно получить справку, задав в командной строке ключ --help.
ps --help       выдаст вам справку по команде ps ( работа со списком процессов).

  По многим командам можно получить дополнительную справку при использовании man - встроенной справочной системы.
man ps     - выдаст подробную информацию по команде ps

    В-третьих, результат некоторых команд зависит от ваших прав в системе. Для получения прав root используйте команду su. Эта команда позволяет сменить текущего пользователя. Если пользователь не задан, то подразумевается root.
  Для начинающего линуксоида (и не только начинающего) большим подспорьем может стать и файловый менеджер mc , очень похожий на FAR или Norton Commander. Сейчас он включается практически во все дистрибутивы Linux, хотя по умолчанию не всегда устанавливается. Очень рекомендую установить.


Как управлять выводом на экран.


  Для просмотра текста, ушедшего за пределы видимости экрана используются комбинации клавиш SHIFT и PAGE UP или PAGE DOWN (в зависимости от направления просмотра).
Для приостановки вывода на экран - CTRL-S, отмена приостановки - CTRL-Q

 Для вывода большого объема текста на экран в постраничном режиме используется команда less, в цепочке с основной командой. Объясню на примере. Пусть у нас есть текстовый файл mytxt размером на 10 экранов. Для вывода текста на экран (стандартный вывод) можно воспользоваться командой cat < имя файла >
cat mytxt

После выполнения этой команды вы увидите быстро промелькнувший текст и последний (десятый) экран вывода. Можно, конечно, воспользоваться комбинациями клавиш SHIFT-PAGEDOUN или SHIFT-PAGEUP для просмотра текста, но можно воспользоваться и less.
cat mytxt | less
Символ | означает объединение в цепочку выполнения команды выдачи текста cat и команды управления постраничным выводом less. В результате, после отображения на экране первой страницы текста , вывод будет приостановлен до нажатия
PAGE DOWN
или ENTER (построчное перемещение). Для завершения постраничного вывода нажмите клавишу Q.
  В цепочки можно объединять несколько команд. Например,  вам понадобилось вывести на экран в постраничном режиме все строки, содержащие слово mail. Для поиска можно воспользоваться командой
grep < строка поиска >
Итоговая цепочка из трех команд:
cat mytxt | grep mail | less

  Для большинства дистрибутивов Linux вместо less можно использовать more.

Иногда удобно использовать одновременно несколько терминалов, переключаясь между ними (например смотрите логи в одном окне и правите конфигурационный файл в другом).
Для переключения используется комбинация клавиш CTRL - ALT - F1...F6 (от первого терминала до 6-го). Для переключения в графическую оболочку используется CTRL-ALT-F7.

Чтобы запустить еще один графический сервер на этом же компьютере, используйте команду startx 1 -- :1. Чтобы перейти во второй графический терминал, нажмите Alt+F8., а чтобы вернуться в первый - Alt+F7. Таким образом можно открывать до 64 графических терминалов. (startx 2 -- :2 и т.д).
Для завершения сеанса работы с терминалом используется команда exit.

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

script < имя файла журнала >

Чтобы прекратить запись в журнал введите exit.






Как перезагрузить или выключить компьютер.


  Одно и то же действие в Linux часто можно выполнить несколькими способами. Стандартно для перезагрузки или выключения компьютера используется shutdown. Команда имеет много опций, позволяющих выполнить перезагрузку в определенное время, быструю перезагрузку без проверки файловой системы, имитировать и отменять уже запущенный (ждущий своего времени) процесс перезагрузки.
Полный список опций можно получить по shutdown --help

Для немедленной перезагрузки (restart) команда будет выглядеть так:
shutdown -r now
  Для выключения питания (halt):
shutdown -h now

В большинстве дистрибутивов можно использовать короткие команды:
reboot - перезагрузка
halt - выключение

Можно также воспользоваться изменением уровня запуска системы командой init , позволяющей управлять запуском и завершением процессов в системе с использованием скриптов, хранящихся в /etc/inittab. Уровень 0 - выключение, уровень 6 - перезагрузка. Соответственно
для выключения:
init 0

для перезагрузки:
init 6

Команду init можно использовать для изменения уровней запуска системы.
Уровни:
1 - Однопользовательский режим. Доступ разрешен пользователю root.
2 - Многопользовательский режим без поддержки сетевых функций.
3 - С поддержкой сети.
4 - Зарезервировано.
5 - С использованием графической оболочки.

    Если вам нужно завершить графическую оболочку (например, инсталляция некоторых приложений требует ее закрытия) введите:

init 3

    Графическая оболочка закроется и система перейдет на уровень запуска 3. Для возврата на уровень 5 введите:

init 5

    Уровень запуска системы по умолчанию определяется значением initdefault из /etc/inittab. Для запуска системы с поддержкой графической оболочки она выглядит так:
id:5:initdefault:
Если 5 заменить на 3, то графическая оболочка при старте системы запускаться не будет. И для любителей опасных экспериментов - не стоит устанавливать уровень запуска 0 и 6 в качестве уровня по умолчанию. Думаю, понятно почему.


Управление задачами (процессами).


    Посмотреть список задач в Linux можно с помощью команды ps. Если ее запустить без всяких параметров, то она выдает список процессов, запущенных в текущем сеансе пользователя. Полный список опций можно получить стандартно - выполнив ps --help
. Примеры использования:
  • Список всех процессов, запущенных в системе:
    ps -A - выдаст список процессов с идентификаторами ( PID ) и их именами
    или:
    ps -ax - выдаст тот же список процессов, но с полной строкой запуска
  • список задач, порожденных пользователем user:
    ps -U user
  • список задач, связанных с текущим терминалом:
    ps T
  • список задач, связанных с терминалом N:
    ps t ttyN
  • Если список задач большой, а нас интересует состояние одной или нескольких задач, можно воспользоваться grep:
    ps -U root | grep ppp - выдать список задач, содержащих "ppp" в имени

        Для получения сведений об использовании ресурсов компьютера можно воспользоваться командой top

    Выполнение команды top

    В верхней части окна выводятся суммарные данные о состоянии системы - текущее время, время с момента загрузки системы, число пользователей в системе, число процессов в разных состояниях, данные об использовании процессора и памяти.
    Ниже выводится таблица, характеризующая отдельные процессы. Число строк, отображаемых в этой таблице, определяется размером окна. Содержимое окна обновляется каждые 3 секунды. Нажатие клавиши h выводит справку по командам, которые позволяют изменить формат отображаемых данных и управлять некоторыми параметрами процессов в системе:
  • s или d - изменить интервал обновления окна.
  • z - цветное/черно-белое отображение
  • n или # - количество отображаемых процессов
  • Можно отсортировать список процессов по использованию процессора (P), памяти (M), времени выполнения (T) и т.п.

        Однако, есть и более полезные команды, которые позволяют управлять процессами в интерактивном режиме:
  • k - снять ( kill ) задачу. По этой команде будет запрошен идентификатор процесса ( PID ), после ввода которого, процесс будет завершен.
  • r - изменить текущий приоритет задачи (renice). Как и при выполнении предыдущей команды, будет запрошен PID, и затем, новое значение приоритета (отображается в колонке NI). Диапазон значений приоритетов - от минус 20 (наивысший) до плюс 19. Отрицательные значения и 0 может устанавливать только пользователь root.
        Для выхода из top нажмите q


    Команда kill


        Эти же действия (принудительное завершение процесса и изменение его приоритета) можно выполнить и без команды top.
        Процессы в Linux имеют возможность обмениваться так называемыми "сигналами" с ядром и другими процессами. При получении сигнала процессом, управление передается подпрограмме его обработки, или ядру, если такой подпрограммы нет. В Linux имеется команда kill, которая позволяет послать заданному процессу любой сигнал. Список сигналов можно получить по команде:
    kill -l
    В результате выполнения этой команды вы увидите список номеров и названий сигналов. Для того, чтобы послать определенный сигнал выбранному процессу, нужно ввести:
    kill < -номерсигнала > номер PID выбранного процесса
    Например, нам нужно завершить работу приложения Midnight Commander (mc).
  • Определим идентификатор процесса mc:
    ps -A | grep mc
    Пусть PID= 11597.
  • Посылаем сигнал SIGQUIT (номер 3):
    kill -3 11597
    После чего процесс mc обработает сигнал GIGQUIT и нормально завершится. Однако, если mc "завис", то, естественно, завершиться он не сможет, поскольку подпрограмма обработки сигнала SIGQUIT не получит управления. В таких случаях используется сигнал под номером 9 (SIGKILL), обрабатываемый ядром операционной системы, и принудительно завершающий указанный процесс:
    kill -9 11597
    Если в команде kill номер сигнала не задан, то используется SIGKILL, т.е предыдущую команду можно было ввести как kill PID:
    kill 11597
        При завершении процесса завершаются и порожденные им процессы.

        Для завершения процесса по имени используется команда killall:
    killall mc - завершить процесс, в имени которого есть "mc"
    killall -u user - завершить процессы, порожденные пользователем user


    Команды nice и renice


        Для изменения приоритета процессов используются команды nice и renice. При запуске процесса, его приоритет задается значением родительского процесса, например, терминала xterm или командной оболочки shell. Команда nice позволяет запустить процесс с приоритетом, равным сумме родительского (например 8) и числа, задаваемого в качестве опции команды nice:
    nice -< число > команда
    nice -4 mc - запустит mc с приоритетом = 8+4=12

    Команда renice используется для изменения приоритета уже запущенного процесса:
    renice < число > -p PID
    renice 4 -p 11597 - установить значение приоритета для процесса mc (PID=11597) равным 4.
    После выполнения, renice выдаст строку результата:
    11597: old priority 12, new priority 4 - старый приоритет 12, новый приоритет 4
    Задание нулевого и отрицательного числа приоритета возможно только с правами root.

    В дополнение:

    Общие сведения о командных оболочках Linux

    Новый вариант раздела "Linux"









    В начало страницы | На главную страницу сайта.


  • Hosted by uCoz