Командная строка UNIX (Linux). Команды настройки интерфейса и работы с файлами

Автор работы: Пользователь скрыл имя, 09 Июня 2013 в 16:19, лабораторная работа

Краткое описание

Задача Изучить следующие вопросы:
Как войти в систему и выйти из нее. Имя пользователя. Пароль. Команды выхода.
Запуск shell-интерпретатора. Переход в другой терминал. Запуск и удаление процессов.
Информационные команды: man, tty, who, pwd, ls, ps, df, cal, date.

Прикрепленные файлы: 1 файл

Лабораторная работа 03.doc

— 176.50 Кб (Скачать документ)

Федеральное агентство  по образованию Российской Федерации.

Пермский национальный исследовательский политехнический  университет.

Кафедра ИТАС.

 

 

 

 

 

 

 

 

 

 

 

 

 

Лабораторная  работа №3.

Тема.  Командная строка UNIX (Linux). Команды настройки интерфейса и работы с файлами.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Работу выполнил:

студент группы ЭВТдоз-11

Уваров П.А.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пермь, 2013

Задача Изучить следующие вопросы:

  • Как войти в систему и выйти из нее. Имя пользователя. Пароль. Команды выхода.  
    Запуск shell-интерпретатора. Переход в другой терминал. Запуск и удаление процессов.
  • Информационные команды: man, tty, who, pwd, ls, ps, df, cal, date.
  • Команды обработки файлов:  cd, mkdir, rmdir, cp, mv, rm, chmod, cat, ln, more.
  • Использование корпораторов :  <  >  >>  .  ..  ~ *  ?  ^ [ ]  ( )  { }  |  ||  &&  &
  • 5.  Команды управления процессами: at, kill, exit, logout, ^z, fg, bg.
  • "Горячие клавиши":  ^S, ^Q, q, ^D, ^z.

 

Начало и завершение работы в Linux

Повседневная работа в Linux существенно  отличается от работы в Windows, особенно в части использования кнопки Reset и комбинации клавши Ctrl+Alt+Del, которыми регулярно пользуется большинство пользователей Windows. В Linux перезапуск компьютера является действительно чрезвычайной ситуацией, Приводящей к проблемам в работе системы, (поэтому надо сразу научиться правильно входить в систему и, в особенности, правильно завершать работу.

После загрузки операционной системы Linux вам надо обязательно получить разрешение для входа в систему. Поэтому первый диалог, который ведет  с вами Linux, — это запрос вашего имени и пароля:

Login: имя_лользователя 
Password: пароль_пользователя

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

В операционной системе Linux всегда имеется  привилегированны!) пользователь (администратор, суперпользователь) — root, который регистрирует всех остальных пользователей и определяет их права в системе.

По окончании сеанса работы в Linux из операционной системы надо правильно  выйти, чтобы не возникло проблем  при следующем запуске. 
Причем обязательно надо обратить внимание на то, что процедуры выхода из системы простого пользователя и системного администратора существенно различаются (если система запущена в многопользовательском режиме). Можно даже сказать, что это один из ключевых моментов в работе Linux. Ведь если в системе одновременно работают несколько пользователей, то предоставление любому пользователю возможности перезагрузить компьютер вызовет аварийную ситуацию для всех остальных. Поэтому рядовой пользователь может закончить свой сеанс работы только с помощью команды: 
logout.

Системный администратор  как суперпользователь может  в любой момент прекратить работу Linux, вызвав перезагрузку компьютера, с  помощью команды 
reboot.  
Для прекращения работы Linux также используются команды halt, fasthalt fastboot. Все названные команды представляют собой короткий вариант команды shutdown с определенными параметрами:

  • halt — shutdown -h now
  • fasthalt — shutdown -fh now
  • fastboot — shutdown -fr now
  • reboot — shutdown -r now

Параметры команды shutdown означают следующее:

  • -f — создать файл /fastboot и при следующей загрузке компьютера пропустить тестирование файловой системы;
  • -h — остановить систему;
  • -r — перезапустить систему.

Сочетание клавиш Ctrl+Alt+Del в Linux аналогично команде ctrl+alt+del с аргументами: 
ctrl+alt+del {hard&soft}

  • hard — немедленная перезагрузка системы, что приводит к неправильной синхронизации файловой системы;
  • soft — ядро получает сигнал INT и проводит корректную перезагрузку системы.

Интерпретатор shell — это наиболее важная программа для пользователей UNIX. Она исполняет ваши запросы на запуск программ и занимает гораздо больше вашего времени, чем любая другая программа системы.

Командный интерпретатор  в среде UNIX выполняет две основные функции:

  • представляет интерактивный интерфейс с пользователем, т.е. выдает приглашение, и обрабатывает вводимые пользователем команды;
  • обрабатывает и исполняет текстовые файлы, содержащие команды интерпретатора (командные файлы);

В последнем  случае, операционная система позволяет рассматривать командные файлы как разновидность исполняемых файлов. Соответственно различают два режима работы интерпретатора: интерактивный и командный.

В среде UNIX имеются  несколько различных командных  интерпретаторов. Перечислим наиболее популярные:

  • /bin/sh - Bourne shell. Исторически это первая командная оболочка, разработанная для первой версии ОС UNIX. В настоящее время эта оболочка является основной в версиях UNIX System V.
  • /bin/csh - С-shell. Оболочка, синтаксис командного языка которой приближен к языку C. Является основной оболочкой для Берклеевской разновидности ОС UNIX.
  • /bin/ksh - k-shell.
  • /bin/rsh - Restricted shell. Представляет собой sh с ограниченными возможностями (прежде всего для защиты ОС от несанкционированных действий пользователя).

 

 

В операционной системе Linux переключение между терминалами производится с помощью комбинации клавиш Alt-F1, Alt-F2 и т. п. При этом каждый обозначается специальным именем: «tty1», «tty2» и т. д.

Терминал, характеризуется файлом устройства с соответствующим именем (например, /dev/tty1).

 

Запуск и  удаление процессов

UNIX является многозадачной операционной  системой. Это означает, что одновременно  может быть запущена более  чем одна программа. Каждая  программа, работающая в некоторый  момент времени, называется процессом. Каждая команда, которую вы запускаете, порождает хотя бы один процесс. Есть несколько системных процессов, запущенных все время и поддерживающих функциональность системы.

У каждого процесса есть уникальный номер, называемый process ID, или PID, и, как и у файлов, у каждого процесса есть владелец и группа. Информация о владельце и группе процесса используется для определения того, какие файлы и устройства могут быть открыты процессом с учетом прав на файлы, о которых говорилось ранее. Также у большинства процессов есть родительский процесс. Например, при запуске команд из оболочки, оболочка является процессом и любая запущенная команда также является процессом. Для каждого запущенного таким путем процесса оболочка будет являться родительским процессом. Исключением из этого правила является специальный процесс, называемый init. init всегда первый процесс, его PID всегда равен 1. init запускается автоматически ядром во время загрузки.

Для запуска программ в UNIX используются два системных вызова – fork() и exec().

fork() — системный вызов, создающий  новый (дочерний) процесс, идентичный  выполняющему этот вызов. После  вызова fork() алгоритм обычно разветвляется  (родительский процесс получает  от fork() значение PID дочернего процесса, а дочерний получает нуль).

После fork() дочерний процесс чаще всего  выполняет системный вызов exec(), загружающий  в пространство процесса новую программу (именно так, и только так, в UNIX выполняется  запуск программы в отдельном  процессе). Так, первый (нулевой) процесс UNIX (ядро системы) создаёт свою копию, чтобы запустить init (процесс с PID = 1), который в свою очередь создаёт дочерние процессы для запуска инициализации системы и терминалов.

При завершении работы программа (дочерний процесс) выполняет системный вызов exit(), при этом родительский процесс с помощью системного вызова wait() (или waitpid()) должен очистить таблицы планировщика процессов от информации о своем дочернем процессе. Если этого не происходит и родительский процесс завершается, не вызвав wait() для всех своих дочерних процессов, в системе возникают зомби (zombie), представляющие собой записи в таблицах планировщика процессов. Очистить операционную систему от зомби можно только с помощью перезагрузки.

Команда kill завершает  активные процессы в фоновом режиме и команда stop приостанавливает временно процессы. Общий формат этих команд:

kill PID<CR>

или

stop JID<CR>

Обратите внимание, что вы не можете завершать фоновые  задания нажатием клавиш BREAK или DEL. Следующий пример показывает, как  вы можете завершить команду grep, которая выполняется в фоновом режиме.

Пример.

        $ kill 28223<CR>

        28223 Terminated

        $

После того как  система выдаст ответ на запрос, на экране появится подсказка $, означающая, что процесс завершен. Если система не найдет указанный PID, то появится сообщение об ошибке:

kill:28223:No such process

Чтобы приостановить  оперативный процесс (если активна  функция управления заданиями), введите:

ctrl Z

На экране появится следующее сообщение:

<JID> Stopped(user)  <имя задания>

 

Информационные команды: man, tty, who, pwd, ls, ps, df, cal, date.

 

Man

 

Выводит страницу руководства для указанного имени  на стандартный вывод или при  помощи pager’а, установленного для данной сессии для постраничной выдачи информации.

 

Каждая страница руководства имеет стандартную  форму со следующими разделами:

 

NAME — название  и назначение

SYNOPSIS — синтаксис

DESCRIPTIONS — описание

FILE — используемые  файлы

SEE ALSO — смежные  разделы

 

Пример: Получение справки о системной команде man.

$ man man

man(1)                                                                man(1)

 

NAME

    man - format and display the on-line manual pages

 

SYNOPSIS

     man  [-acdfFhkKtwW]  [--path]  [-m  system]  [-p  string] 

[-C  config_file] [-M pathlist] [-P pager] [-B

    browser] [-H htmlpager] [-S section_list] [section] name ...

 

DESCRIPTION

     man formats and displays the on-line manual pages.  If you specify

section, man only looks in  that  section  of the manual.  name is

normally the name of the manual page, which is typically the name of

a command, function, or file.  However, if name contains a slash (/)

then man interprets it as a file specification, so that you can do

man ./foo.5 or even man /cd/foo/bar.1.gz.

 

    See below for a description of where man looks for the manual page files.

 

TTY

Описание:

Получение имени  спец. файла, соответствующего текущему терминалу.

Опции:

-s

Имя терминала  не выводится. Если стандартный ввод происходит с терминала, возвращается 0


Примеры:

$ tty

/dev/ttyp3

 

WHO

Описание:

Вывести список пользователей, работающих в  системе.

Примеры:

$ who

guest    :0           2010-07-01 18:45

guest    pts/1        2010-07-01 18:45 (:0.0)

guest    pts/2        2010-07-01 18:46 (:0.0)

guest    pts/3        2010-07-01 18:47 (:0.0)

guest    pts/4        2010-07-01 19:04 (:0.0)

 

PWD

Выводит имя текущего каталога.

Примеры:

Определяем текущий каталог.

$ pwd

/home/guest

 

 

 

LS

При указании в  аргументах файла выводится информация о нем согласно указанным опциям, в случае каталога — то же для файлов каталога. Если аргументов нет, — выдается листинг текущего каталога.

Опции:

-a

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

-c

Использовать  время последней модификации  і-node, связанного с файлом (создание файла, изменение прав, и т.д.), а  не время модификации

-i

Выдать номер  і-node, связанного с файлом

-l

Выдавать информацию о файлах в длинном формате: тип  файла (обычный файл -, каталог d, сокет s, символьная ссылка l, символьное устройство c, блочное устройство b, FIFO p), права доступа (чтение — r, запись — w, исполнение — x; первые 3 символа относятся к владельцу, следующие 3 — к членам группы, владеющей файлом, и последние 3 — ко всем остальным), владелец, группа, размер в байтах, дата модификации, имя файла

-t

Отсортировать листинг по времени

-u

Использовать  время последнего доступа к файлу, а не время модификации

-F

После каждого  имени выдавать значок, характеризующий тип последнего: каталог (/), исполняемый файл (*), FIFO (|), символьная ссылка (@), сокеты семейства AF_UNIX (=)

-R

Выдавать листинг  рекурсивно по подкаталогам


Примеры:

Получение полного  листинга текущего каталога, включая  скрытые файлы.

$ ls -la

итого 224

drwx------ 16 guest guest 4096 Мар 21 18:16 .

drwxr-xr-x  3 root root 4096 Мар 21 17:53 ..

-rw-------  1 guest guest   21 Мар 21 17:54 .bash_history

-rw-r--r--  1 guest guest   33 Дек 16 22:42 .bash_logout

-rw-r--r--  1 guest guest  176 Дек 16 22:42 .bash_profile

-rw-r--r--  1 guest guest  124 Мар 16 22:42 .bashrc

drwxr-xr-x  2 guest test  4096 Мар 21 17:53 Desktop

 

 

PS

Вывод информации о состоянии процессов.

Опции:

В SYSV системах:

-e

Выдать информацию и о процессах других пользователей

-f

Выдать полную информацию о процессах

-l

Выдать информацию о процессах в расширенном виде


В BSD системах:

a

Выдать информацию и о процессах других пользователей

l

Выдать информацию о процессах в длинном формате

x

Выдать в  том числе и информацию о процессах, не подсоединенных к терминалам

Информация о работе Командная строка UNIX (Linux). Команды настройки интерфейса и работы с файлами