Практическое задание №1
Работа с командной строкой Linux
Цель работы: знакомство с командной строкой Linux, изучение основных команд (программ) Linux.
Порядок выполнения работы
Запустить Terminal. Эта программа предназначена для выполнения функций командной строки ОС Linux. Здесь в интерактивном режиме вы можете выполнять любые команды и программы, зарегистрированные в системе. Кратко перечислим основные команды (программы) ОС Linux.
Вывод справки по команде (man)
man <имя изучаемой команды>
man (от англ. manual — руководство) — команда Unix, предназначенная для форматирования и вывода справочных страниц.
Список работающих процессов (top)
top
консольная команда UNIX-совместимых операционных систем, список работающих в данный момент процессов и информацию о них. Команда top показывает список работающих в данный момент процессов и информацию о них, включая использование ими памяти и процессора. Список интерактивно формируется в реальном времени.
Чтобы выйти из программы top, нажмите клавишу [q].
Количество памяти (free)
free [-b | -k | -m] [-o] [-s delay ] [-t] [-V]
Показывает общее количество свободной и используемой физической памяти и памяти отведенной для свопирования в системе, так же и совместно используемую память и буфера используемые ядром.
Опции:
-b показывает количество памяти в байтах; опция -k (по умолчанию) поазывает количество пвмяти в килобайтах; Опция -m показывает количество памяти в мегабайтах.
-t показывает строки содержащие полное количество памяти. -o запрещает показывать строки относящиеся к "массиву буфера". Если не определено
отнять/добавить память буферов из/в используемую/свободнуб память (соответственно!). -s разрешает безостановочно выводить информацию с промежутком в delay секунд. -V показывает информацию о версии программы.
Отчет о работающих процессах (ps)
ps [опции]
Команда ps выводит в стандартный вывод информацию о текущем состоянии процессов. Опции
-a все терминальные процессы -e все процессы. -g список выбирать процессы по списку лидеров групп. -p список выбирать процессы по списку идентификаторов процессов.
. -t список выбирать процессы по списку терминалов.
. -u список выбирать процессы по списку идентификаторов пользователей.
f генерировать полный листинг. -l генерировать листинг в длинном формате.
5. Выдача информации о файлах или каталогах (ls)
Синтаксис команды:
ls [флаги] [имя...]
Команда ls для каждого имени каталога распечатывает список входящих в этот каталог файлов; для файлов - повторяется имя файла и выводится дополнительная информация в соответствии с указанными флагами. По умолчанию имена файлов выводятся в алфавитном порядке. Если имена не заданы, выдается содержимое текущего каталога. Если заданы несколько аргументов, то они сортируются по алфавиту, однако сначала всегда идут файлы, а потом каталоги с их содержимым.
Выдача имени текущего каталога (pwd)
Синтаксис команды:
pwd
Бывает, что при ее изучении, вы попадаете в какой-то каталог, про который уже не помните, как он называется и как вы в него попали. Узнать его полное имя позволяет команда pwd.
Смена текущего каталога (cd)
Синтаксис команды:
cd [каталог]
Команда cd применяется для того, чтобы сделать заданный каталог текущим. Если каталог не указан, используется значение переменной окружения $HOME (обычно это каталог, в который Вы попадаете сразу после входа в систему). Если каталог задан полным маршрутным именем, он становится текущим. По отношению к новому каталогу нужно иметь право на выполнение, которое в данном случае трактуется как разрешение на поиск.
8. Изменение режима доступа к файлам (chmod)
Синтаксис команды:
chmod режим файл
Права доступа к указанным файлам (среди которых могут быть каталоги) изменяются в соответствии с указанным режимом. Режим может быть задан в абсолютном или символьном виде.
Использование символьного вида основано на однобуквенных обозначениях, которые
определяют класс доступа и права доступа для членов данного класса. Права доступа к файлу зависят от идентификатора пользователя и идентификатора группы, в которую он входит. Режим в целом описывается в терминах трех последовательностей, по три буквы в каждой:
Владелец Группа Прочие (u) (g) (o) rwx rwx rwx
Здесь владелец, члены группы и все прочие пользователи обладают правами чтения файла, записи в него и его выполнения. В примере показаны обозначения как для класса доступа, так и для прав доступа внутри класса.
Для задания режима доступа в символьном виде используется следующий синтаксис:
[кому] операция права
Часть [кому] есть комбинация букв u, g и o (владелец, члены группы и прочие пользователи соответственно). Если часть кому опущена или указано a, то это эквивалентно ugo.
Операция может быть: + (добавить право), - (лишить права), = (в пределах данного класса присвоить права абсолютно, то есть добавить указанные права и отнять неуказанные).
Права - любая осмысленная комбинация следующих букв: r Право на чтение.
. w Право на запись.
. x Право на выполнение (поиск в каталоге).
s При выполнении переустанавливать действующий идентификатор пользователя или группы.
t После выполнения программы сохранять сегмент команд (бит навязчивости). l Учет блокировки доступа. Опустить часть права можно только если операция есть = (для лишения всех прав).
Если надо сделать более одного указания об изменении прав, то при использовании символьного вида в правах не должно быть пробелов, а указания должны разделяться запятыми. Например, команда chmod u+w,go+x f1 добавит для владельца право писать в файл f1, а для членов группы и прочих пользователей - право выполнять файл. Права устанавливаются в указанном порядке. Право s можно добавлять только для пользователя и группы, право t - только для пользователя.
Чтобы установить права, позволяющие владельцу читать и писать в файл, а членам группы и прочим пользователям только читать, надо использовать следующую запись:
chmod u=rw,go=r f1
Позволить всем выполнять файл f2
chmod +x f2
9. Копирование файлов (cp)
cp файл1 [файл2...] целевой_файл
Команда cp копирует файл1 в целевой_файл. Файл1 не должен совпадать с целевым_файлом (будьте внимательны при использовании метасимволов shell'а). Если
целевой_файл является каталогом, то файл1, файл2,..., копируются в него под своими именами. Только в этом случае можно указывать несколько исходных файлов.
Если целевой_файл существует и не является каталогом, его старое содержимое теряется. Режим, владелец и группа целевого_файла при этом не меняются.
Если целевой_файл не существует или является каталогом, новые файлы создаются с теми же режимами, что и исходные (кроме бита навязчивости, если Вы не суперпользователь). Время последней модификации целевого_файла (и последнего доступа, если он не существовал), а также время последнего доступа к исходным файлам устанавливается равным времени, когда выполняется копирование. Если целевой_файл был ссылкой на другой файл, все ссылки сохраняются, а содержимое файла изменяется.
10. Перемещение (переименование) файлов (mv)
Синтаксис команды:
mv [-f] файл1 [файл2...] целевой_файл
Команда mv перемещает (переименовывает) файл1 в целевой_файл. Файл1 не должен совпадать с целевым_файлом (будьте внимательны при использовании метасимволов shell'а). Если целевой_файл является каталогом, то файл1, файл2,..., перемещаются в него под своими именами. Только в этом случае можно указывать несколько исходных файлов.
Если целевой_файл существует и не является каталогом, его старое содержимое теряется. Если при этом обнаруживается, что в целевой_файл не разрешена запись, то выводится режим этого файла [см. chmod] и запрашивается строка со стандартного ввода. Если эта строка начинается с символа y, то требуемые действия все же выполняются, при условии, что у пользователя достаточно прав для удаления целевого_файла. Если была указана опция -f или стандартный ввод назначен не на терминал, то требуемые действия выполняются без всяких запросов. Вместе с содержимым целевой_файл наследует режим файла1.
Если файл1 является каталогом, то он переименовывается в целевой_файл, только если у этих двух каталогов общий надкаталог; при этом все файлы, находившиеся в файле1, перемещаются под своими именами в целевой_файл. Если файл1 является файлом, а целевой_файл - ссылкой, причем не единственной, на другой файл, то все остальные ссылки сохраняются, а целевой_файл становится новым независимым файлом.
11. Удаление файлов (rm)
Синтаксис команды:
rm [-f] [-i] файл...
rm -r [-f] [-i] каталог... [файл...]
Команда rm служит для удаления указанных имен файлов из каталога. Если заданное имя было последней ссылкой на файл, то файл уничтожается. Для удаления пользователь должен обладать правом записи в каталог; иметь право на чтение или запись файла не обязательно. Следует заметить, что при удалении файла в Linux, он удаляется навсегда. Здесь нет возможностей вроде "мусорной корзины" в windows 95/98/NT или команды undelete в DOS. Так что, если файл удален, то он удален!
Если нет права на запись в файл и стандартный ввод назначен на терминал, то выдается (в восьмеричном виде) режим доступа к файлу и запрашивается подтверждение; если оно начинается с буквы y, то файл удаляется, иначе - нет. Если стандартный ввод назначен не на терминал, команда rm ведет себя так же, как при наличии опции -f.
Допускаются следующие три опции:
-f Команда не выдает сообщений, когда удаляемый файл не существует, не запрашивает подтверждения при удалении файлов, на запись в которые нет прав. Если нет права и на запись в каталог, файлы не удаляются. Сообщение об ошибке выдается лишь при попытке удалить каталог, на запись в который нет прав (см. опцию -r).
-r Происходит рекурсивное удаление всех каталогов и подкаталогов, перечисленных в списке аргументов. Сначала каталоги опустошаются, затем удаляются. Подтверждение при удалении файлов, на запись в которые нет прав, не запрашивается, если задана опция -f или стандартный ввод не назначен на терминал и не задана опция -i. При удалении непустых каталогов команда rm -r предпочтительнее команды rmdir, так как последняя способна удалить только пустой каталог. Но команда rm -r может доставить немало острых впечатлений при ошибочном указании каталога!
-i Перед удалением каждого файла запрашивается подтверждение. Опция -i устраняет действие опции -f; она действует даже тогда, когда стандартный ввод не назначен на терминал.
ПРИМЕРЫОпция -i часто используется совместно с -r. По команде:
rm -ir dirname
запрашивается подтверждение:
directory dirname:?
При положительном ответе запрашиваются подтверждения на удаление всех содержащихся в каталоге файлов (для подкаталогов выполняются те же действия), а затем подтверждение на удаление самого каталога.