MyTetra Share
Делитесь знаниями!
Лекции основы
Время создания: 25.04.2013 22:47
Раздел: root - Linux
Запись: Yurons/mytetra/master/base/13669192377prluy805i/text.html на raw.github.com

Команда who выводит список пользователей, которые в настоящий момент зарегистрированы в системе (вошли в систему)

рограмма, выдающая информацию о пользователях, работавших в системе в последнее время - last

Выход из системы logout или Ctrl+D

Команды оказали одинаковый эффект, но работают они по-разному: " ^C " посылает программе, которая считывает с клавиатуры сигнал аварийного прекращения работы, а " ^D " сообщает ей, что ввод данных с клавиатуры закончен и можно продолжать работу (поскольку программа cat больше ничего не делает, она завершается самостоятельно, естественным путем). Можно считать, что " ^C " - это сокращение от "Cancel", а " ^D " - от "Done".

Команда cal выводит календарь на текущий месяц

 

В bash тип команды можно определить с помощью команды type. Собственные команды bash называются builtin (встроенная команда) , а для утилит выводится путь, содержащий название каталога, в котором лежит файл с соответствующей программой, и имя этой программы

 

Страница руководства занимает, как правило, больше одной страницы экрана. Для того чтобы читать было удобнее, man запускает программу постраничного просмотра текстов - less. Управлять программой less просто: страницы перелистываются пробелом, а когда читать надоест, надо нажать " q " (Quit). Перелистывать страницы можно и клавишами Page Up/Page Down, для сдвига на одну строку вперед можно применять Enter или стрелку вниз, а на одну строку назад - стрелку вверх. Переход на начало и конец текста выполняется по командам " g " и " G " соответственно (Go). Полный список того, что можно делать с текстом в less, выводится по команде " H " (Help). Еще команды для поиска

/pattern * Search forward for (N-th) matching line.

?pattern * Search backward for (N-th) matching line.

n * Repeat previous search (for N-th occurrence).

N * Repeat previous search in reverse direction.

ESC-n * Repeat previous search, spanning files.

ESC-N * Repeat previous search, reverse dir. & spanning files.

ESC-u Undo (toggle) search highlighting.

&pattern * Display only matching lines

 

Как и команда apropos, whatis ищет подстроку в некоторой базе данных, состоящей из полей NAME всех страниц помощи в системе. Различие между ними в том, что whatis - только среди имен объектов (в левых частях полей NAME ), а apropos - по всей базе.

 

Info. Одна или несколько страниц, которые можно перелистывать клавишей Пробел или Page Up/Page Down - это узел (node). Узел содержит обычный текст и меню (menu) - список ссылок на другие узлы, лежащие в дереве на более низком уровне. Ссылки внутри документа имеют вид "* имя_узла::" и перемещать по ним курсор можно клавишей Tab, а переходить к просмотру выбранного узла - клавишей Enter. Вернуться к предыдущему просмотренному узлу можно клавишей " l " (oт "Last"). И, главное, выйти из программы info можно, нажав " q " ("Quit"). Более подробную справку об управлении программой info можно в любой момент получить у самой info, нажав " ?".

 

сгруппировал ключи, написав " -at " вместо " -a -t ". Многие утилиты позволяют уменьшать длину командной строки подобным образом. Если встречается параметрический ключ, он должен быть последним в группе, а его значение - следовать, как и полагается, после. Группировать можно только однобуквенные ключи

 

В Linux имена файлов и каталогов могут быть длиной не более 256 символов, и могут содержать любые символы, кроме " / ".

 

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

 

Есть несколько символов, допустимых в именах файлов и каталогов, которые нужно использовать с осторожностью. Это так называемые спецсимволы " * ", " \ ", " & ", " < ", " > ", " ; ", " ( ", " ) ", " | ", а также символы пробела и табуляции

 

Краткое описание стандартной иерархии каталогов Linux можно получить, отдав команду man hier. Полный текст и последнюю редакцию стандарта FHS можно прочесть по адресу http://www.pathname.com/fhs/.

 

ls (сокращение от англ. "list" - "список"):

cd (от англ. "change directory" - "сменить каталог ")

 

Узнать номер индексного дескриптора любого файла можно при помощи все той же утилиты ls с ключом -i

 

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

 

Узнать, куда указывает символьная ссылка, можно при помощи утилиты realpath

 

5. Лекция: Доступ процессов к файлам и каталогам

 

идентификатор процесса ( p rocess id entificator, PID ).

 

Для просмотра своих процессов можно воспользоваться утилитой ps (" p rocess s tatus")

 

Здесь Мефодий вызвал ps с ключом " -f " (" f ull"), чтобы добыть побольше информации

 

В поле PPID (" p arent p rocess id entificator") указан идентификатор родительского процесса, т. е. процесса, породившего данный.

 

активный процесс, foreground process - процесс, имеющий возможность вводить данные с терминала..

 

Фоновый процесс, background process - процесс, не имеющий возможности вводить данные с терминала. Пользователь может запустить любое, но не превосходящее заранее заданное в системе, число фоновых процессов.

 

Сигнал - короткое сообщение, посылаемое системой или процессом другому процессу. Обрабатывается асинхронно специальной подпрограммой-обработчиком. Если процесс не обрабатывает сигнал самостоятельно, это делает система.

 

Два сигнала – 9 ( KILL ) и 19 ( STOP ) всегда обрабатывает система. Первый из них нужен для того, чтобы убить процесс наверняка (отсюда и название). Сигнал STOP приостанавливает процесс: в таком состоянии процесс не удаляется из таблицы процессов, но и не выполняется до тех пор, пока не получит сигнал 18 ( CONT ) – после чего продолжит работу. В Linux сигнал STOP можно передать активному процессу с помощью управляющего символа " ^Z ":

 

В ps он использовал новый ключ – " -H " (" H ierarchy", "иерархия"), который добавляет в выдачу ps отступы, показывающие отношения "родитель–потомок" между процессами

 

Когда Мефодий расправился и с ними – с помощью сигнала 1 ( HUP, то есть " H ang UP ", "повесить"1) )

 

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

 

pwd ( p rint w ork d irectory)

chmod – с ключом " -R " (" R " здесь большое, а не маленькое, потому что " -r " уже занято: означает запрет чтения)

 

Утилита id, которой воспользовался Мефодий, выводит входное имя пользователя и соответствующий ему UID, а также группу по умолчанию и полный список групп, членом которых он является.

 

использовал ключ " -d " ( d irectory) для того, чтобы ls выводил информацию не о содержимом каталога tmp, а о самом этом каталоге

 

Наименьшая длина строки передается strings ключом " -n "

 

7. Лекция: Работа с текстовыми данными

 

Каждый процесс Linux получает при старте три "файла", открытых для него системой. Первый из них (дескриптор 0 ) открыт на чтение, это стандартный ввод процесса. Именно со стандартным вводом работают все операции чтения, если в них не указан дескриптор файла. Второй (дескриптор 1 ) - открыт на запись, это стандартный вывод процесса. С ним работают все операции записи, если дескриптор файла не указан в них явно. Наконец, третий поток данных (дескриптор 2 ) предназначается для вывода диагностических сообщений, он называется стандартный вывод ошибок. Поскольку эти три дескриптора уже открыты к моменту запуска процесса, первый файл, открытый самим процессом, будет, скорее всего, иметь дескриптор 3.

 

В этом примере важен порядок перенаправлений: в командной строке Мефодий сначала указал, куда перенаправить стандартный вывод (" > cat.info ") и только потом велел направить туда же стандартный вывод ошибок. Сделай он наоборот (" 2>&1 > cat.info "), результат получился бы неожиданный: в файл попал бы только стандартный вывод, а диагностические сообщения появились бы на терминале. Однако логика здесь железная: на момент выполнения операции " 2>&1 " стандартный вывод был связан с терминалом, значит, после ее выполнения стандартный вывод ошибок тоже будет связан с терминалом. А последующее перенаправление стандартного вывода в файл, конечно, никак не отразится на стандартном выводе ошибок. Номер в конструкции " &номер " - это номер открытого дескриптора. Если бы упомянутая выше утилита, записывающая в четвертый дескриптор, была написана на shell, в ней бы использовались перенаправления вида " >&4 ". Чтобы не набирать громоздкую конструкцию " > файл 2>&1 " в bash используются сокращения: " &> файл " или, что то же самое, " >& файл ".

 

Необходимо помнить, что операция " > " деструктивна: она всегда создает файл нулевой длины. Поэтому для, допустим, сортировки данных в файле надо применять последовательно sort < файл > новый_файл и mv новый_файл файл. Команда вида команда < файл > тот_же_файл просто урежет его до нулевой длины!

 

Иногда заведомо известно, что какие-то данные, выведенные программой, не понадобятся. Например, предупреждения со стандартного вывода ошибок. В этом случае можно перенаправить стандартный вывод ошибок в файл-дырку, специально предназначенный для уничтожения данных - /dev/null. Все, что записывается в этот файл, просто будет выброшено и нигде не сохранится:

 

Канал (pipe) - неделимая пара дескрипторов (входной и выходной), связанных друг с другом таким образом, что данные, записанные во входной дескриптор, будут немедленно доступны на чтение с выходного дескриптора.

 

Для замены одних символов другими предназначена утилита tr (сокращение от англ. "translate" - "преобразовывать, переводить"), работающая как фильтр

 

Помимо простой замены отдельных символов, возможна замена последовательностей (слов). Специально для этого предназначен потоковый редактор sed (сокращение от англ. "stream editor").

 

Полученные в конвейере данные можно превратить в руководство к действию для компьютера. Например, для каждой полученной со стандартного ввода строки можно запустить какую-нибудь команду, передав ей эту строку в качестве параметра. Для этой цели служит утилита xargs:

 

8. Лекция: Возможности командной оболочки

. Одно из таких удобств - возможность редактировать вводимую строку с помощью клавиши Backspace (удаление последнего символа), " ^W " (удаление слова) и " ^U " (удаление всей строки)

 

Попытка "наскоком" узнать все про работу в командной строке принесла некоторую пользу. Во-первых, перемещаться в командной строке можно не только по одному символу вперед и назад, но и по словам: команды escF/escB или Alt+F/Alt+B соответственно (от forward и backward), работают также клавиши home и end, или, что то же самое, " ^A " и " ^E ". А во-вторых, помимо работы с одной командной строкой, существует еще немало других удобств, о которых и пойдет речь в этой лекции.

 

а выполнить поиск с помощью команды " ^R " (reverse search)

 

Шаблон (pattern) - строка специального формата, используемая в процедурах текстового поиска. Говорят, что строка соответствует шаблону, если можно по определенным правилам каждому символу строки поставить в соответствие символ шаблона. В Linux наиболее популярны шаблоны в формате командного интерпретатора и регулярные выражения.

 

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

 

Записать значение в переменную можно с помощью операции присваивания, а прочесть его оттуда - с помощью операции подстановки вида $переменная:

 

Переменных окружения, влияющих на работу разных утилит, довольно много. Например, переменные семейства LC_ (полный их список выдается командой locale )

 

Некоторые переменные окружения предназначены специально для bash: они задают его свойства и особенности поведения. Таковы переменные семейства PS (Prompt String). В этих переменных хранится строка-подсказка, которую командный интерпретатор выводит в разных состояниях. В частности, содержимое PS1 - это подсказка, которую shell показывает, когда вводит командную строку, а PS2 - когда пользователь нажимает Enter, а интерпретатор по какой-то причине считает, что ввод командной строки не завершен (например, не закрыты кавычки). С $PS2 (символом " > ")

 

Список всех функций readline можно узнать у bash по команде bind -l, а список всех привязок этих функций к клавиатурным последовательностям - по команде bind -p.

 

tput, которая обращается к переменной TERM и базе данных по терминалам terminfo и готова выдать верную для любого данного терминала информацию по kpp (key previous page) и knp (key next page)

 

Что касается bash, то структура его стартовых файлов сложнее. Прежде всего, ~/.profile выполняется, только если в домашнем каталоге нет файла .bash_profile или .bash_login, иначе стартовый сценарий берется оттуда. В эти файлы можно помещать команды, несовместимые с другими версиями shell, например, управление сокращениями или привязку функций к клавишам. Кроме того, каждый интерактивный (взаимодействующий с пользователем), но не стартовый bash выполняет системный и персональный конфигурационные сценарии /etc/bashrc и ~/.bashrc. Чтобы стартовый bash также выполнял ~/.bashrc, соответствующую команду необходимо вписать в ~/.bash_profile. Далее, каждый неинтерактивный (запущенный для выполнения сценария ) bash сверяется с переменной окружения BASH_ENV и, если в этой переменной записано имя существующего файла, выполняет команды оттуда. Наконец, при завершении стартового bash выполняются команды из файла ~/.bash_logout.

 

9. Лекция: Текстовые редакторы

Название Vi происходит от visual editor, "визуальный", экранный редактор

 

Наберите :! и затем внешнюю команду, которую следует выполнить

 

 

 

 

 

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования