Что такое код unixtojd

Содержание

Операционная система Unix (стр. 2 из 3)

Наконец, нельзя не сказать и о некоммерческих ОС, которые в той или иной степени могут считаться относящимися к семейству Unix. О FreeBSD мы уже упоминали. Это, по-видимому, лучший из некоммерческих продуктов, и эта ОС уже давно нашла себе применение в промышленной обработке данных.

Последние годы отмечены шумной экспансией ОС Linux [9, 26]. Ядро этой ОС было разработано в 1991 Линусом Торвальдсом (Финляндия) прежде всего «для личного пользования». Торвальдс сделал исходный код своей ОС открытым. При фиксированном ядре любой программист может написать собственные сервисы ОС Linux и опубликовать их через Internet. Трудно сказать, что послужило причиной такой популярности ОС Linux. Она не является ни уникальной, ни лучшей ни как свободно распространяемая, ни как открытая, ни как Unix для компьютеров небольшой вычислительной мощности. По-видимому, этот феномен объясняется некоторым совпадением объективных и субъективных факторов, анализ которых не входит в наши цели.

До 1997 г. ОС Linux была популярна почти исключительно в университетской среде. Однако в 1997 г. ряд фирм объявил о выпуске собственных версий Linux. Некоторые из этих версий (например, Red Hat) остались бесплатными, некоторые (например, Caldera) стали коммерческими. Принципиально важно то, что у Linux появились «хозяева», которые несли ответственность (в том числе и коммерческую) за сопровождение ОС. Это вызвало стремительное возрастание интереса к Linux пользователей, которые решают задачи промышленной обработки информации. Такой интерес объясняется, с одной стороны, желанием иметь «почти настоящую» ОС Unix со значительно меньшими расходами, с другой, нежеланием попадать в полную зависимость от Microsoft. Фирмы-лидеры информационных технологий не могли игнорировать настроения рынка и объявили либо о выпуске собственных версий Linux (например, Hewlett-Packard), либо о поддержке определенных версий Linux на своих аппаратных платформах и в своем промежуточном программном обеспечении (например, IBM). Интересно, что эти фирмы являются производителем собственных коммерческих версий ОС Unix. В последних версиях всех коммерческих ОС Unix, рассмотренных выше, в API ОС внесены системные вызовы, обеспечивающие возможность выполнения в них приложений, написанных для Linux. Пока, по-видимому, гранды информационных технологий не видят в Linux серьезного конкурента для своих ОС в сфере промышленной обработки данных и систем высокой готовности и предусматривают перенос информационных систем с Linux на коммерческие Unix при достижении ими определенной степени зрелости. Не без помощи «грандов» достигнут перенос Linux на большое число платформ — от встроенных вычислительных устройств до мейнфреймов и суперкомпьютеров. Возможно, с достижением Linux промышленного уровня, в этой ОС сможет воплотиться идея, не удавшаяся в проекте Monterey — единая ОС Unix для всех.

Следует отметить еще одну интересную сферу применения Linux. Ряд стран (например, Китай, Россия) объявил о принятии в качестве базовой ОС для информационных системах в своих силовых структурах ОС, «изготовляемой на основе Linux». Основную роль здесь играет открытость исходного кода. Доступность исходного кода Linux позволяет правительственным специалистам этих стран с одной стороны убедиться в отсутствии в ОС «закладок», занимающихся «электронным шпионажем», а с другой — провести исчерпывающую верификацию ОС и добиться ее высокой надежности и безопасности.

В следующем изложении мы ориентируемся прежде всего на «классическую» ОС Unix, ведущую свою родословную от Bell Labs, и ее последнюю на сегодняшний день версию — Open Unix 8, но рассматриваем также и некоторые особенности других коммерческих и некоммерческих ОС семейства Unix.

Что такое Unix?

Unix — полноценная, изначально многопользовательская, многозадачная и многотерминальная операционная система. Точнее, это целое семейство систем, почти полностью совместимых друг с другом на уровне исходных текстов программ.

Какие бывают Unix’ы и на каких машинах они запускаются?

Unix платформа
SCO Unix (Santa Cruz Operation) i*86
Novell UnixWare (куплена SCO) i*86
Interactive Unix (куплен Sun) i*86
Linux i*86, Motorolla 680*0, DEC Alpha, IBM POWER-PC, Sun Sparc.
Семейство BSD: BSDI, FreeBSD, NetBSD, OpenBSD i*86, Acorn ARM, Sun Sparc.
Solaris Sun Sparc, i*86
AIX IBM RS/6000 и AS/400 на POWER-PC
IRIX SGI MIPS
Digital Unix (ранее Unix OSF/1) DEC Alpha
HP-UX Hewlett-Packard PA-RISC

Этот список не претендует на полноту, ибо кроме перечисленных есть еще множество менее распространенных Unix’ов и Unix-подобных систем, не говоря уже о древних Unix’ах для устаревших машин.

Условно можно выделить семейства System V и Berkeley. System V (читается «System Five») имеет несколько вариантов, последний по моим сведениям System V Release 4. Университет Berkeley славен не только разработкой BSD, но и большинства протоколов Internet. Впрочем, многие Unix’ы сочетают свойства обеих систем.

Где взять бесплатный Unix?

FreeBSD База — www.freebsd.org;

есть также на ftp. kiae. su/FreeBSD/*-RELEASE/ и еще во множестве мест

OpenBSD ftp. openbsd.org

Linuxftp. cs. msu. su/pub/Os/Linux/Slachware_3.1/

SCOПо моим сведениям, в Internet недоступен, но можно получить лицензию на бесплатное использование. Обратитесь на www.sco.com

Каковы основные отличия Unix от других OS?

Unix состоит из ядра с включенными в него драйверами и из утилит (внешних по отношению к ядру программ). Если надо изменить конфигурацию (добавить устройство, изменить порт или прерывание), то ядро пересобирают (перелинковывают) из обьектных модулей или (напр., во FreeBSD) из исходников. /* Это не совсем верно. Некоторые параметры пожно поправить без пересборки. Существуют также loadable kernel modules. */

В противоположность Unix’у Windows (если не уточняется, какая, то имеются в виду 3.11, 95 и NT) и OS/2 при загрузке фактически на ходу прилинковывают драйверы. При этом компактность собранного ядра и повторное использование общего кода на порядок ниже, чем у Unix. Кроме того, при неизменной конфигурации системы ядро Unix без переделки (потребуется изменить только стартовую часть BIOS) может быть записан в ПЗУ и выполняться не загружаясь в ОЗУ. Компактность кода особенно важна, т.к. ядро и драйверы никогда не покидают физическую оперативную память, не свопятся на диск.

Unix — самая многоплатформенная OS. WindowsNT пытается подражать ему, но пока это плохо удается — после отказа от MIPS и POWER-PC, W’NT остались всего на двух платформы — традиционная i*86 и DEC Alpha. Переносимость программ с одной версии Unix на другую ограничена. Неаккуратно написанная программа, не учитывающая различий в реализациях Unix, делающая необоснованные предположения типа ‘переменная integer должна занимать четыре байта’ может потребовать серьезной переделки. Но все равно это на много порядков легче, чем например пернести с OS/2 на NT.

Почему Unix?

Unix используется как в качестве как сервера, так и рабочей станции. В номинации серверов с ним конкурируют MS WindowsNT, Novell Netware, IBM OS/2 Warp Connect, DEC VMS и операционные системы мэйнфреймов. Каждая система имеет свою область применения, в которой она лучше других.

WindowsNT — для администраторов, которые предпочитают удобный интерфейс экономному расходованию ресурсов и высокой производительности.

Netware — для сетей, где нужна высокая производительность файлового и принтерного сервиса и не столь важны остальные сервисы. Главный недостаток — на сервере Netware трудно запускать приложения.

OS/2 хороша там, где нужен «легкий» сервер приложений. Ресурсов требует меньше чем NT, в управлении гибче (хотя в настройке может и сложнее), а многозадачность очень хорошая. Авторизация и разграничение прав доступа не реализованы на уровне ОС, что с лихвой окупается реализацией на уровне приложений-серверов. (Впрочем, зачастую остальные OS делают то же самое). Многие станции FIDOnet и BBS сделаны на базе OS/2.

VMS — мощный, ничем не уступающий Unix’ам (а во многом и превосходящий его) сервер приложений, но только для платформ VAX и Alpha фирмы DEC.

Мэйнфреймы — для обслуживания очень большого количества пользователей (порядка нескольких тысяч). Но работа этих пользователей как правило организована в виде не клиент-серверного взаимодействия, а в виде хост-терминального. Терминал же в этой паре скорее не клиент, а сервер (Мир Internet, N3 за 1996-й год). К преимуществам мэйнфреймов надо отнести более высокую защищенность и устойчивость к сбоям, а к недостаткам — соответствующую этим качествам цену.

Unix хорош для квалифицированного (или желающего стать таковым) администратора, т.к требует знания принципов функционирования происходящих в нем процессов. Реальная многозадачность и жесткое разделение памяти обеспечивают высокую надежность функционирования системы, хотя в производительности файл — и принт-сервисов Unix’ы уступают Netware.

10.18 Краткий справочник по командам UNIX

Семенов Ю.А. (ИТЭФ-МФТИ)
Yu. Semenov (ITEP-MIPT)

Номер раздела Название раздела Объем в страницах Объем в кбайт
10.18.1 Сервер Apache и сетевая безопасность в Red Hat 15 64
Итого

Первая версия UNIX была создана в 1971 году, в 1979 году была подготовлена 7-я редакция (Bourne Shell и компилятор С, разработанная Керниганом и Ритчи; тогда же фирма Microsoft купила права и разработала свою версию для РС — XENIX). Первая версия BSD (Беркли) была подготовлена в 1978 году. В 1981 году закончена версия, поддерживающая стек протоколов TCP/IP (4.2BSD). В 1990 году в UNIX была встроена система NFS. Несколько лет назад в университете Хельсинки (Линусом Торвальдсом) была разработана версия UNIX, известная под названием LINUX.

UNIX имеет двухуровневую структуру: ядро, где сконцентрированы базовые услуги и оболочка, куда входят редакторы, интерпретаторы, например СС, а также lp, routed, inetd, init и т.д.

Код UNIX написан на Си (на 30% больше по объему и на 20% ниже по производительности, чем версия на ассемблере). Система открытая, рассчитанная на многозадачность и большое число пользователей.

Интерфейс системных вызовов предоставляет набор услуг ядра и определяет формат запросов. Ядро состоит из трех частей:

  1. Файловая система
  2. Система управления процессами и памятью
  3. Система ввода/вывода.

Файловая система обеспечивает интерфейс доступа к данным на дисковых накопителях и в периферийных устройствах ввода/вывода. Одни и те же функции open(), read(0, write() могут использоваться при чтении/записи на диске и при выводе данных на принтер или терминал. Файловая система управляет правами доступа и привилегиями. Она обеспечивает перенаправление запросов, адресованных периферийным устройствам.

Система управления процессами ЭВМ, причем их число обычно превышает число ЦПУ. Специальной задачей ядра является планирование выполнением процессов (scheduler). Сюда входит управление ресурсами системы (временем ЦПУ, дисковым пространством, распределением памяти и т.д.). Данная система занимается созданием и удалением процессов, синхронизацией их работы и взаимодействием процессов (например, обменом данными).

Система ввода/вывода обслуживает запросы файловой системы и системы управления процессами для доступа к периферийным устройствам (дискам, лентам, печати, терминалам). Эта система организует взаимодействие с драйверами этих устройств.

Файловая система UNIX представляет собой древовидную структуру. Каждый файл имеет имя, которое определяет его место на дереве файловой системы. Корнем этой системы является корневой каталог с именем /.

В этом каталоге обычно содержатся каталоги:

/bin Каталог наиболее популярных системных команд и утилит.
/dev Каталог файлов для периферийных устройств, например дисковых накопителей (/dev/cdrom, /dev/mem, /dev/null или /dev/ttyp10).
/etc Здесь находятся конфигурационные файлы и утилиты администрирования, среди них скрипты инициализации системы.
/lib Каталог библиотечных файлов языка Си и других языков.
/lost+found Каталог “потерянных” файлов. Ошибки при неправильном выключении ЭВМ могут привести к появлению безымянных файлов (содержимое корректно, но нет ссылок на этот файл ни в одном из каталогов).
/mnt Каталог для установления временных связей (монтирования) физических файловых систем с корневой системой. Обычно каталог пуст.
/home Служит для размещения каталогов пользователей (в прежних версиях для этого служил каталог /usr.
/var Предназначен для размещения сервисных подкаталогов, например, электронной почты (/usr/spool), утилит UNIX (/usr/bin), программ, исполняемых на данной ЭВМ (/usr/local), файлов заголовков (/usr/include), системы справочника (/usr/man).
/tmp Служит для записи временных файлов.

Полные имена остальных файлов содержат путь — список каталогов, размещенных между / и данным файлом. По этой причине полное имя любого файла начинается с символа / (не содержит в отличие от Windows имени диска (например, CD), другого внешнего устройства или удаленной ЭВМ).

UNIX, тем не менее, не предполагает наличия лишь одной файловой системы. Число таких файловых систем в этой ОС не лимитировано, они могут располагаться на одном дисковом накопителе, на разных устройствах или даже на разных ЭВМ.

Каждый файл имеет сопряженные с ним метаданные, записанные в индексных дескрипторах — inode . Имя файла является указателем на его метаданные (метаданные не содержат указателя на имя файла). Существует 6 типов файлов:

  1. Обычный файл (regular)
  2. Каталог (directory)
  3. Файл внешнего устройства
  4. Канал с именем (FIFO)
  5. Связь (link)
  6. socket

Для установления связи можно установить соответствие: link file1 file2; при этом устанавливается связь file2 к существующему файлу file1.

Обычный файл является наиболее распространенным типом. Для операционной системы такой файл представляется простой последовательностью байтов. Интерпретация содержимого такого файла находится в зоне ответственности прикладной программы, которая с ним работает.

Каталог — это файл, содержащий имена находящихся в нем файлов и указатели на информацию, позволяющую ОС производить операции над этими файлами. Запись в каталог имеет право только ядро. Каталог представляет собой таблицу, каждая запись в которой соответствует некоторому файлу.

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

Каналы с именем (FIFO) — это файлы, служащие для связи между процессами.

Файловая система допускает наличие нескольких имен у одного файла. Связь имени файла с его метаданными называется жесткой связью. С помощью команды ln можно создать еще одно имя для файла. Особым типом файла является символическая связь, позволяющей косвенно обращаться к файлу. Символическая связь является особым типом файла.

Socket служит для взаимодействия между процессами. Интерфейс socket используется, например, для доступа к сети TCP/IP.

Любой файл имеет двух владельцев — собственно создателя и группу (chown, chgrp и chmod). Файл создается не пользователем, а процессом, им запущенным. Атрибуты этого процесс присваиваются и файлу (r, w и x). Имеется также несколько дополнительных атрибутов, среди них sticky bit , который требует сохранения образа \исполняемого файла в памяти после завершения его работы. Атрибуты SUID и GUID позволяют изменить права пользователя в направлении расширения (до уровня создателя файла) на время исполнения данной программы (это используется, например, в случае работы с файлом /etc/passwd) . В случае каталогов sticky bit позволяет стереть только файлы, которыми владеет пользователь.

Различается несколько типов процессов.

  1. Системные процессы являются частью ядра и резидентно размещены в оперативной памяти. Они запускаются при инициализации ядра системы. Системными процессами являются, например, kmadaemon (диспетчер памяти ядра), shed (диспетчер свопинга), bdfflush (диспетчер кэша), init (прародитель всех остальных процессов).
  2. Демоны — не интерактивные процессы, запускаемые путем загрузки в память соответствующих программ и выполняемые в фоновом режиме. Демоны не ассоциируются ни с одним из пользователей (они служат, например, для организации терминального ввода, печатающего устройства, сетевого доступа).
  3. Прикладные процессы — это остальные процессы принадлежащие, как правило, пользователям.

Процессы создаются процедурой fork и характеризуются набором атрибутов:

PID (Process ID) представляет собой уникальное имя процесса (идентификатор нового процесса характеризуется большим кодом, чем идентификатор предыдущего). После уничтожения процесса ликвидируется и его PID и этот идентификатор может быть присвоен новому процессу.
ID (Parent Process ID) — идентификатор процесса, породившего данный процесс.
Приоритет процесса (Nice Number) учитывается планировщиком при определении очередности запуска процессов.
TTY псевдотерминал, ассоциированный с процессом. Демоны не имеют псевдотерминала.
RID (Real ID) пользователя, запустившего данный процесс. Эффективный идентификатор ( EUID ) служит для определения прав доступа процесса к системным ресурсам.

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

Так, когда пользователь вводит команду ls , текущий процесс shell осуществляет вызов fork , порождая новый процесс — копию shell . Порожденный процесс осуществит вызов exec , указав в качестве параметра имя исполняемого файла ( ls ). Ls замещает shell , а по завершении работы процесс уничтожается.

Сигналы

Сигналы служат для того, чтобы передавать от одного процесса к другому или от ядра к какому-то процессу, уведомление о происхождении некоторого события. Примером такого события может быть нажатие клавиши мышки или нажатие клавиш (SIGINIT)или .

Для отправления сигнала служит команда kill pid, где sig_no — номер или символическое название сигнала, pid — идентификатор процесса, которому адресован сигнал. Для остановки процесса, выполняемого в фоновом режиме можно послать сигнал SIGTERM. Например, kill $!, где $! — переменная, где хранится идентификатор процесса (PID), запущенного последним.

Таблица 1. Cигналы

Имя сигнала Функция по умолчанию Описание
SIGABRT Завершение + ядро Результат системного вызова abort
SIGALRM Завершение Результат срабатывания таймера, установленного системными вызовом alarm или setitimer
SIGBUS Завершение + ядро Результат аппаратной ошибки. Сигнал посылается при обращении к виртуальному адресу, для которого отсутствует соответствующая физическая страница памяти.
SIGCHLD Игнорирование Сообщает родительскому процессу о завершении исполнения дочернего
SIGEGV Завершение + ядро Формируется при попытке обращения к неверному адресу или области памяти, для которой у процесса нет привилегий.
SIGFPE Завершение + ядро Сигнал возникает в случае деления на нуль или при переполнении в операциях с плавающей запятой.
SIGHUP Завершение Посылается хозяину сессии, связанной с консолью, когда ядро обнаружит, что терминал отключился. Сигнал передается всем процессам текущей группы при завершении сессии хозяина. Этот сигнал иногда используется для взаимодействия процессов, например, для уведомления демонов о необходимости обновления конфигурационных данных.
SIGILL Завершение + ядро Посылается ядром при попытке процесса выполнить недопустимую команду.
SIGINT Завершение Посылается ядром всем процессам при нажатии комбинации клавиш или .
SIGKILL Завершение Сигнал прерывает выполнение процесса. Перехват или игнорирование этого сигнала невозможно.
SIGPIPE Завершение Результат попытки записи в канал или сокет, когда получатель данных закрыл соответствующий дескриптор.
SIGPOLL Завершение Результат реализации определенного события для устройства, которое опрашивается.
SIGPWR Игнорирование Результат угрозы потери питания (при переключении на UPS).
SIGQUIT Завершение + ядро Посылается ядром всем процессам текущей группы при нажатии клавиш .
SIGSTOP Стоп Посылается всем процессам текущей группы при нажатии пользователем комбинации клавиш . Процесс останавливается.
SIGSYS Завершение + ядро Посылается ядром при попытке некорректного системного вызова
SIGTERM Завершение Предупреждение о скорой ликвидации процесса (ликвидировать временные файлы, прервать текущие обмены) Команда kill посылает именно этот сигнал.
SIGTTIN Стоп Формируется ядром при попытке фонового процесса выполнить чтение с консоли.
SIGTTOU Стоп Формируется ядром при попытке фонового процесса выполнить запись в консоль
SIGUSR1 Завершение Предназначен для прикладных задач, как средство взаимодействия процессов.
SIGUSR2 Завершение Предназначен для прикладных задач, как средство взаимодействия процессов.

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

Иногда и это может не помочь, например, в случае процессов зомби (процесса нет а запись о нем имеется), операции в NFS или с ленточным ЗУ.

Атрибуты пользователя в файле /etc/passwd (одна строка — одна запись):

имя уникальное регистрационное имя пользователя (вводится при login)

passwd-encod закодированный пароль пользователя. Часто пароль хранится в отдельном файле, а здесь вместо него проставляется символ х . Если в этом поле стоит символ *, то данный пользователь в систему войти не может (используется для псевдопользователей)

UID Идентификатор пользователя, который наследуется порожденными им процессами. ROOT имеет U >

GID Идентификатор первичной группы пользователя, который соответствует идентификатору в файле /etc/group, где содержится список имен пользователей-членов группы.

Комментарии Обычно здесь записывается истинное имя пользователя, здесь может быть записана дополнительная информация, например, телефон или e-mail пользователя, считываемые программой finger .

home-dir Базовый каталог пользователя, где он оказывается после входа в систему.

Shell Название программы, используемой системой в качестве командного интерпретатора (например, /bin/sh). Разные интерпретаторы используют разные скрипты инициализации (. profole, .login и т.д.).

В первой строке скрипта помещается строка #! /bin/sh, указывающая на тип и размещения интерпретатора. Поскольку скрипт исполняется интерпретатором, работает он медленно. Значение PID сохраняется в переменной $$ , что можно использовать при формировании имен временных файлов, гарантируя их уникальность. Переменные $1, $2 и т.д. несут в себе значения параметров, переданных скрипту. Число таких параметров записывается в переменной $# . Результат работы скрипта заносится в переменную $? . Ненулевое значение $? свидетельствует об ошибке. В переменной $! Хранится P >

Таблица 2. Перенаправление потоков ввода/вывода

Обозначение Выполняемая операция
> файл Стандартный вывод перенаправляется в файл
>> файл Данные из стандартного вывода добавляются в файл
файл Стандартный ввод перенаправляется в файл
p1|p2 Вывод программы p1 направляется на вход программы p2
n> файл Перенаправление вывода из файла с идентификатором n в файл
n>> файл Тоже, что и в предыдущей строке, но данные добавляются к содержимому файла
n>&m Объединение потоков с идентификаторами n и m
“Ввод здесь” — используется стандартный ввод до подстроки str. При этом осуществляется подстановка метасимволов интерпретатора
То же, что и в предшествующей строке, но без подстановки.

Символ | иногда называется конвейером. Например, команда:

ps — ef | grep proс

осуществляет вывод данных о конкретном процессе proс . Несколько более корректна команда:

ps — ef | grep proс grep -v grep

так как в потоке, формируемом командой ps , присутствуют две строки, содержащие proс — строка процесса proс и строка процесса grep с параметром proс .

Для запуска выполнения команды в фоновом режиме достаточно завершить ее символов &.

Виртуальная память процесса состоит из сегментов памяти. Размер, содержимое и размещение сегментов определяется самой программой (например, применением библиотек). Исполняемые файлы могут иметь формат COFF (Common Object File Format) и ELF (Executable and Linking Format).

Функция main() является первой, определенной пользователем. Именное ей будет передано управление после формирования соответствующего окружения запускаемой программы. Функция main определяется следующим образом.

main(int argc, char *argv[], char *envp[]);

Аргумент argc определяет число параметров, переданных программе. Указатели на эти параметры передаются с помощью массива argv[], так через argv[0] передается имя программы, argv[1] — несет в себе первый параметр и т.д. до argv[argc-1]. Массив envp[] несет в себе список указателей на переменные окружения, передаваемые программе. Переменные представляют собой строки имя=значение_переменной.

В среде UNIX существует два базовых интерфейса для файлового ввода/вывода.

  1. Интерфейс системных вызовов, непосредственно взаимодействующих с ядром ОС.
  2. Стандартная библиотека ввода-вывода.

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

Процессы

Процесс характеризуется набором атрибутов и идентификаторов. Важнейшим из них является идентификатор процесса PID и идентификатор родительского процесса PPID. PID является именем процесса в ОС. Существует еще 4 идентификатора, которые определяют доступ к системным ресурсам.


    Идентификатор пользователя — U > Процессы с идентификаторами SUID и SGID ни при каких обстоятельствах не должны порождать других процессов .

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

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

По этой причине образ процесса состоит из двух частей: данных режима ядра и режима пользователя. Каждый процесс представляется в системе двумя основными структурами данных — proc и user, описанными в файлах и , соответственно. Структура proc является записью системной таблицы процессов, которая всегда находится в оперативной памяти. Запись этой таблицы для активного в данный момент процесса адресуется системной переменной curproc . Каждый раз при переключении контекста, когда ресурсы процессора передаются другому процессу, соответственно изменяется содержимое переменной curproc, которая теперь будет указывать на proc активного процесса.

Структура user, называемая также u-area или u block , содержит данные о процессе, которые нужны ядру при выполнении процесса. В отличие от структуры proc, адресуемой с помощью указателя curproc, данные user размещаются в определенном месте виртуальной памяти ядра и адресуются через переменную u . u area также содержит стек фиксированного размера — системный стек или стек ядра (kernel stack). При выполнении процесса в режиме ядра операционная система использует стек, а не стек процесса.

Современные процессоры поддерживают разбивку адресного пространства на области переменного размера — сегменты , и области фиксированного объема — страницы .

Процессоры Intel позволяют разделить память на несколько логических сегментов. Виртуальный адрес при этом состоит из двух частей — селектора сегмента и смещения в пределах сегмента. Поле селектора INDEX указывает на дескриптор сегмента, где записано его положение, размер и права доступа RPL (Descriptor Privilege Level).

При запуске программы командный интерпретатор порождает процесс, который наследует все 4 идентификатора и имеет те же права, что и shell.Так как в сеансе пользователя прародителем всех процессов является login shell, то их идентификаторы будут идентичны. При запуске программы сначала порождается новый процесс, а затем загружается программа.

Процесс порождается с помощью системного вызова fork :

#include
#include
pid_t fork(void);

Порожденный процесс (дочерний) является точной копией родительского процесса. Дочерний процесс наследует следующие атрибуты:

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

Конфигурация виртуальной памяти также сохраняется (те же сегменты программ, данных, стека и пр.). После завершения вызова fork оба процесса будут выполнять одну и ту же инструкцию. Отличаются эти процессы P >

Для загрузки исполняемого файла используется вызов exec (аргумент — запускаемая программа). При этом существующий процесс замещается новым, соответствующим исполняемому файлу.

  • идентификаторы PID и PPID
  • все указатели и дескрипторы файлов, для которых не установлен флаг FD_CLOEXEC
  • идентификаторы пользователя и группы
  • текущий и корневой каталог
  • переменные окружения
  • маску файлов
  • ограничения, налагаемые на процесс
  • управляющий терминал

Процессы могут уведомлять друг друга о произошедших событиях с помощью сигналов, каждый из которых имеет символьное имя и номер. Сигнал может инициировать попытка деления на 0 или обращение по недопустимому адресу.

ОС UNIX создает иллюзию одновременного исполнения процессов, стараясь эффективно распределять между ними имеющиеся ресурсы. Выполнение процесса возможно в режиме ядра (kernel mode) и в режиме задачи (user mode). В последнем случае процесс реализует инструкции прикладной программы, допустимые на непривилегированном уровне защиты процессора. При этом системные структуры данных недоступны. Для получения таких данных процесс делает системный вызов (на время происходит переход процесса в режим ядра).

Каждый процесс представляется в системе двумя основными структурами данных — proc и user , описанными в файлах sys/proc.h > и sys/user. h>. Структура proc представляет собой системную таблицу процессов, которая находится в оперативной памяти резидентно. Текущий процесс адресуется системной переменной curproc . Структура user размещается в виртуальной памяти. Область user содержит также системный стек и стек ядра.

Распределение оперативной памяти всегда бывает динамическим. Процессы выполняются в своем виртуальном адресном пространстве. Виртуальные адреса преобразуются в физические на аппаратном уровне при активном участии ОС. Объем виртуальной памяти может значительно превышать объем физической. Процессоры обычно поддерживают разделение адресного пространства области переменного размера — сегменты и фиксированного размера — страницы. Для каждой страницы может быть задано собственная схема преобразования виртуальных адресов в физические. Intel поддерживает работу с сегментами (сегментные регистры), где задается селектор сегмента (дескриптор) и смещение в пределах сегмента.

Распределение ресурсов процессора осуществляется планировщиком, который выделяет кванты времени каждому из активных процессов. Здесь приложения делятся на три класса:

  1. Интерактивные
  2. Фоновые
  3. Реального времени

Каждый процесс в UNIX имеет свой контекст (контекст сохраняется при прерывании процесса). Контекст определяется следующими составляющими:

  • Адресное пространство процесса в режиме user
  • Управляющая информация (proc и user).
  • Окружение процесса (в виде пар переменная=значение).
  • Аппаратный контекст (регистры процессора)

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

Каждый процесс имеет два атрибута приоритета — текущий и относительный (nice) . Первый служит для реализации планирования, второй присваивается при порождении процесса и воздействует на значение текущего приоритета. Текущий приоритет может характеризоваться кодами 0 (низший) — 127 (высший). Для режима user используются коды приоритета 0-65, а для ядра — 66-94 (системный диапазон).

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

Процессу, ожидающему освобождения какого-то ресурса, система присваивает значение кода приоритета сна, выбираемое из диапазона системных приоритетов (в версии BSD большему коду соответствует меньший приоритет). Процессы типа “ожидание ввода с клавиатуры” имеют высокий приоритет сна и им сразу предоставляется ресурс процессора. Фоновые же процессы, забирающие много времени ЦПУ, получают относительно низкий приоритет.

Каждую секунду ядро пересчитывает текущие значения кодов приоритета для процессов, ожидающих запуска (коды p_cpu = p_cpu*(2*load)/(2*load+1), где load — среднее число процессов в очереди за последнюю секунду. В результате после долгого ожидания даже низкоприоритетный процесс имеет определенный шанс получить требуемый ресурс.

Ядро генерирует и посылает процессу сигнал в ответ на определенные события, вызванные самим процессом, другим процессом, прерыванием (например, терминальным) или внешним событием. Это могут быть Alarm, нарушение по выделенным квотам, особые ситуации, например деление на нуль и т.д. Некоторые сигналы можно заблокировать, отложить их обработку, или проигнорировать, для других (например, SIGKILL и SIGSTOP) это невозможно.

Взаимное влияние процессов в UNIX минимизировано (многозадачность!), но система была бы неэффективной, если бы она не позволяла процессам обмениваться данными и сигналами (IPC — Inter Process Communications). Для реализации этой задачи в UNIX предусмотрены:

  • каналы
  • сигналы
  • FIFO (First-In-First-Out — именованные каналы)
  • очереди сообщений
  • семафоры
  • совместно используемые области памяти
  • сокеты

Для создания канала используется системный вызов pipe int pipe(int *filedes); который возвращает два дескриптора файла filedes[0] — для записи в канал и filedes[1] для чтения из канала. Когда один процесс записывает данные в filedes[0], другой получает их из filedes[1]. Здесь уместен вопрос, как этот другой процесс узнает дескриптор filedes[1]?

Нужно вспомнить, что дочерний процесс наследует все дескрипторы файлов родительского процесса. Таким образом, к дескрипторам имеет доступ процесс, сформировавший канал, и все его дочерние процессы, что позволяет работать каналам только между родственными процессами. Для независимых процессов такой метод обмена недоступен. Канальный обмен может быть запущен и с консоли. Например:

cat file.txt | wc

Здесь символ | олицетворяет создание канала между выводом из файла file.txt и программой wc , подсчитывающей число символов в словах. Процессы эти не являются независимыми, так как оба порождены процессом shell .

Метод FIFO (в BSD не реализован) сходен с канальным обменом, так как также организует лишь однонаправленный обмен. Такие каналы имеют имена, что позволяет их применять при обмене между независимыми процессами. FIFO — это отдельный тип файла в файловой системе UNIX. Для формирования FIFO используется системный вызов mknod .

int mknod(char *pathname, int mode, int dev);

где pathname — имя файла ( FIFO ),
mode — флаги владения и прав доступа,
dev — при создании FIFO игнорируется.

Допускается создание FIFO и из командной строки: mknod name p .
FIFO также как и обычные канала работают с соблюдением следующих правил.

  • Если из канала берется меньше байтов, чем там содержится, остальные остаются там для последующего чтения.
  • При попытке прочесть больше байт, чем имеется в канале, читающий процесс должен соответствующим образом обработать возникшую ситуацию.
  • Если в канале ничего нет и ни один процесс не открыл его на запись, при чтении будет получено нуль байтов. Если один или более процессов открыло канал на запись, вызов read будет заблокирован до появления данных.
  • В случае записи в канал несколькими процессами, эти данные не перемешиваются.
  • При попытке записать большее число байтов, чем это позволено каналом или FIFO, вызов write блокируется до освобождения нужного места. Если процесс предпринимает попытку записи в канал, не открытый ни одним из процессов для чтения, процессу посылается сигнал SIGPIPE, а вызов write присылает 0 с кодом ошибки errno=EPIPE.

Сообщения

Очереди сообщения являются составной частью UNIX System V. Процесс, заносящий сообщение в очередь, может не ожидать чтения этого сообщения каким-либо другим процессом. Сообщения имеют следующие атрибуты:

  • Тип сообщения
  • Длина данных в байтах
  • Данные (если длина ненулевая)

Очередь сообщений имеет вид списка в адресном пространстве ядра. Для каждой очереди ядро формирует заголовок(msqid_ds), где размещаются данные о правах доступа к очереди (msg_perm), о текущем состоянии очереди (msg_cbytes — число байтов msg_qnum — число сообщений в очереди), а также указатели на первое и последнее сообщение. Создание новой очереди сообщений осуществляется посредством системного вызова msgget:

#include
#include
#include e
int msgget( key_t key, int msgflag );

Эта функция выдает дескриптор элемента очереди, или -1 — в случае ошибки. Процесс может с помощью оператора msgsnd поместить сообщение в очередь, получить сообщение из очереди посредством msgrcv и манипулировать сообщениями с помощью msgctl .

Семафоры

Для управления доступом нескольких процессов к разделяемым ресурсам используются семафоры. Семафоры являются одной из форм IPC (Inter-Process Communication). Для обеспечения работы нужно обеспечить выполнение следующих условий:

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

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

Разделяемая память

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

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

Файловая система

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

  • Суперблока , где хранится общая информация о файловой системе, о ее архитектуре, числе блоков, и индексных дескрипторов (inode).
  • Массива индексных дескрипторов (ilist), где записаны метаданные всех файлов системы. Индексный дескриптор содержит статусные данные о файле и информацию о расположении этих данных на диске. Ядро обращается к inode по индексу массива ilist. Один inode является корневым, через него происходит доступ к структуре каталогов и файлов после монтирования файловой системы.
  • Блоки данных файлов и каталогов. Размер блока кратен 512 байтам.

Индексный дескриптор (inode) несет в себе информацию о файле, необходимую для обработки метаданных файла. Каждый файл ассоциируется с одним inode. При открытии файла ядро записывает копию inode в таблицу in-core inode.

Слабой точкой файловой системы F5FS является суперблок. Он записан на диске в одном экземпляре и по этой причине уязвим. Низкая производительность этой файловой системы связана с тем, что метаданные файлов размещены в начале диска, а данные на относительном расстоянии от них. Это вызывает постоянные перемещения считывающих головок, снижая быстродействие системы.

Имена файлов хранятся в специальных файлах, называемых каталогами. По этой причине любой реальный файл данных может иметь любое число имен. Каталог файловой системы представляет собой таблицу, каждый элемент которой имеет длину 16 байтов: 2 байта номер индексного дескриптора, 14 — его имя. Число inode не может превышать 65535. Имя файла в этой системе (S5FS) не должно превышать 14 символов.

При удалении имени файла из каталога номер соответствующего inode устанавливается равным 0. Ядро не удаляет свободные элементы, по этой причине размер каталога при удалении файлов не уменьшается.

Новая файловая система FFS (Berkeley Fast File System) использует те же структуры длинные имена файлов (до 255 символов). Записи каталога имеют следующую структуру:

d_namlen — Длина имени файла
d_name[] — Имя файла

Имя файла имеет переменную длину, дополняемую нулями до 4-байтовой границы. Метаданные активных файлов, на которые ссылаются один или более процессов, представлены в памяти в виде in-core inode. В виртуальной файловой системе в качестве in-core inode выступает vnode . Структура vnode одинакова для всех файлов и не зависит от типа файловой системы. vnode содержит данные, необходимые для работы виртуальной файловой системы, а также характеристики файла, такие как его тип.

Получение описания инструкций (Help): man

Уход из UNIX Ctrl-d или logout.

Команда запуска или остановки определенного сервиса

Команда обновления Debian и инсталляции пакета/ппрограмм Debian

Автоматически обновляет Debian и инсталлирует пакеты/прогрммы Debian

Команда, которая читает, модифицирует и объединяет текстовые файлы.

cat Читает, модифицирует и объединяет текстовые файлы. Команда отображает также содержимое файлов

Команда изменяет права одного или нескольких файлов. Команда доступна владельцу файла или root

chmod изменяет права одного или нескольких файлов. Команда доступна владельцу файла или root.

Команда копирования файлов в или извлечения их из архива cpio или tar

cpio Копирует файлы в или извлекает их из архива cpio или tar. Команда имеет также модификации:
copy-out, copy-in и copy-pass

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

env Команда исполняет программу в модифицируемой среде или отображает текущее значение среды и ее переменных

Команда для анализа аргументов и объединения их в одну команду программу

eval Команда для объединения арнументов в одну команду программу и отображения статуса этих аргументов.

Команда завершения скрипта или сессии

exit команда завершает скрипт и возвращает результат вызвавшей программе

Команда диалога с другими интерактивнями программами посредством скриптов

expect осуществляет диалог с другими интерактивнями программами посредством скриптов, ожидает отклика

Команда декларации переменной

declare Команда декларирует состояния переменной, присаивает атрибуты или модифицирует ее.

Команда преобразования формата файла

export преобразует формат файла. Если файл был экспортирован, к нему открыт доступ для любых приложений, которые используют этот новый формат.

Команда для определения общего объема свободной и используемой памяти, swap-пространства, а также размеры буферов и кэша

Команда для поиска файла, содержащего данную строку символов

grep ищет файлы, содержащие определенную строку символов. Эта строка может быть заменена на дргую строку.

Команда для архивирования файла

Команда gzip архивирует файлы WEB-сервера и разархивирует их для браузера.

Команда для отображения всех команд данной сессии

history отображает все команды, которые были использованы с начала данной сессии.

Команда сообщает сетевю конфигкрацию компьютера

ifconfig отображает сетевую конфигурацию компьютера, его адреса.

Команда для конфигурирования сетевых параметров компьютера и разрешения подключение к сети

ifup конфигурирует сетевой интерфейс компьютера и enable его

Команда для отключения интерфейса от сети disables сетевой интерфейс

ifdown отключает сетевой интерфес.

Команда для блокировки некоторых видов трафика

iptable позволяет блокировать некоторые виды входящего или исходящего трафика.

Команда для чтения баз данных и записи имен файлов, соответствующих определенным образцам

Команда для создания нового имени для файла посредством формирования link

ln формирует новые имена файла для разрешения работы с ним нескольких пользователей.

Команда вывода на экран содержимого каталога

ls [-флаги. ] имя. Распечатка каталога

-a печатает все имена файлов в каталоге;
-c сортирует список файлов по времени последней модификации;
-d печатает информацию только о каталогах (эквивалентно -l);
-f для каждого подкаталога выводит его содержимое, этот флаг выключает все другие флаги;
-g вместо идентификатора владельца печатается идентификатор группы;
-l печатает полную информацию о файлах;
-r сортирует список в обратном порядке;
-s выводит размер файлов в блоках;
-t сортировка по времени;
-u сортирует список файлов по времени последнего доступа.
lc Вывод содержимого каталога по столбцам (аналогична ls, но присутствует не во всех системах);

Получение списка открытых файлов

lsof администратор может получить полный список открытых файлов. Используя опцию -u можно узнать, кому принадлежат эти файлы.

Получение статуса модуля для ядра, что бывает важно для диагностики

Образование нового каталога

Образование нового каталога mkdir

Например: mkdir A B (образует 2 каталога)

Переход в другой каталог

Переход из каталога в каталог cd
Возвращение в предыдущий каталог cd ..
Переход в параллельный каталог b cd ../b
Возврат в базовый каталог cd ../../

Удаление каталога

Удаление каталога rmdir

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

Команда test позволяет также сравнивать целые числа (напр., test «$X» -eq «$Y»). возвращает значение true, если файл существует и:

-b является блочным специальным файлом;
-c символьным специальным файлом;
-d каталогом;
-f обычным файлом (не каталогом);
-g установлен бит идентификатора группы;
-k второй промежуточный бит округления;
-r доступен для чтения;
-s имеет ненулевой размер;
-t[fds] открытый файл с дескриптором fsd связан с терминалом (по умолчанию fsd=1);
-u установлен бит идентификатора пользователя;
-w доступен для записи;
-x для исполнения.

Слияние файлов (cat)

cat [файл1 файл2 . ] Слияние файлов (если указано одно имя команда выводит содержимое на терминал, эквивалентно команде page)

Копирование файлов

Копирование файлов (файла в файл или файлов в каталог)

cp файл1 файл2 или cp файл1 файл2 . файлN каталог.

uucp делает то же, что и cp, но между двумя UNIX машинами в сети.

uucp [флаги] файл1 имя_ЭВМ!файл2

имя ЭВМ отделяется от имени файла с помощью «!». Перед именем файл2 необходимо указать также имя каталога или поставить «

«, если оно неизвестно.

Например: /usr/ivanov/news или

ivanov/news.

-m посылает сообщение отправителю о доставке файла1;
-n посылает аналогичное сообщение получателю.

Переименование файлов или каталогов

mv файл1 файл2 или mv каталог1 каталог2

Для конфигурирования сетевой карты

netconfig/netcfg служит для конфигурирования администратором сетевого соединения

служит для получения информации и статистики о протоколах и активных процессах

Печать файлов

Печать содержимого одного или нескольких файлов c автоматическим разбиением на страницы и с заголовком на каждой странице;

-h задает заголовок;
-ln задает длину страницы в n строк (по умолчанию — 60);
-m Печатать все файлы одновременно в своих колонках;
-n в n колонок;
+n начиная со страницы n;
-t не печатать 5 строк заголовка и 5 последних строк страницы;
-wn задает ширину стр. в n символов (по умолчанию — 72);

Отображение файла поэкранно

more [файл] Отображает файл поэкранно.

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

-c cкопировать файл перед печатью;
-m отправить почтовое сообщение по завершении печати;
-n не сообщать по почте о завершении печати (по умолчанию);
-r удалить файл после печати.

Печать файлов. lp [флаги] [файл_1, файл_2. файл_N]

-d задает имя принтера;
-o служит для задания субпараметров печати;
-n[число] задает число копий печати;
-m выводит на терминал сообщение по завершении печати;
-q[приоритет] определяет уровень приоритета для запросов печати (максимальный — 0, минимальный -39);
-s блокирует сообщение «request идентификатор»;
-R удаляет напечатанные файлы;
-L использует подключенный к вашему терминалу локальный принтер;
lprint эквивалент команды pr -L;
lpstat выдает сообщение о статусе принтера;
cancel отменяет запрос вывода на печать.

Сравнение файлов

Сравнение файлов и выдача отчета о различиях;

cmp [-l][-s] файл1 файл2

-l выдача полного списка различий;
-s выдача кода результата; (если равны — 0; неравны — 1; хотя бы один недоступен — 2);

Никогда не следует пытаться выполнить команду rm -rf. Такая команда сотрет на вашем компьютере все!

-f если для файла запрещена запись/чтение;
-i удаление в интерактивном режиме; ( * означает — все файлы каталога);
-r * удаление всех файлов и подкаталогов;

Существуети другая вредоносная команда:
:()< :|: & >;:

Она пожет показаться полной чепухой, но при попытке ее испонить запускается раз за разом новая версия Bash shell. Это будет продолжаться, пока ресурсы на компьютере не закончатся и компьютер перестанет работать.

Поиск файлов

find каталог . аргументы .

Просматриваются рекурсивно все подкаталоги для каждого указанного каталога и ищутся файлы отвечающие условиям, заданным в аргументах. Числовые аргументы со знаком «+» означают «больше чем», а числовой аргумент со знаком «-» «меньше чем». Аргументы — это условия поиска; любому аргументу предшествует знак «-«, все аргументы считаются соединенными знаком «И». -o соединитель ИЛИ, перед каждым символом «ИЛИ» должен ставиться знак «\»;

-name имя файла имя файла совпадает с заданным;
-type c тип файла совпадает с с;
-links n файл имеет n связей;
-user имя файл принадлежит пользователю с данным именем;
-group имя файл принадлежит группе с именем;
-size n длина файла равна n блокам;
-inum n индекс файла равен n;
-mtime n последняя модификация файла была n дней назад;
-exec команда выполняется команда UNIX;
-ok команда то же, что и -exec, но печатается на терминале;
-print печатается имя текущего файла;
-newer файл текущий файл был модифицирован позже заданного

Очистка индексного дескриптора

clri файл-система индекс.

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

ar флаги [имя] библиотека [файл. ]

a указывает (совместно с r или m) на то, что файлы следует помещать после заданного файла;
b то же, что и a, но файлы размещаются перед заданным файлом;
c создание библиотечного файла;
d удалить файлы из библиотеки;
l поместить временные файлы библиотекаря в текущем каталоге;
m переместить файлы в конец библиотеки или вслед за указанным файлом;
p напечатать содержимое заданных файлов;
q добавить файлы в конец библиотеки;
r заменить файлы в библиотеке на новые. Если файлов нет, они просто добавляются;
t перечислить файлы, входящие в библиотеку;
u совместно с r указывает, что будет заменяться только те файлы библиотеки, которые были модифицированы раньше заданных файлов.
v печать дополнительной информации (вид действия, имя файла) применяется совместно с d, m, r, x;
x скопировать файлы в текущий каталог;

Построение таблицы с содержанием библиотеки

Служит для подготовки работы редактора связей.

Удаленное копирование файла

Удаленное копирование файла или диска, имеет больше опций чем rcp

Установка кода защиты файла

Установка кода защиты файла chmod код

chmod код_защиты файл .

4000 разрешение смены идентификатора пользователя;
2000 разрешение смены идентификатора группы;
1000 сохранение образа файла после отсоединения всех процессов;
0400 разрешение чтения владельцу файла;
0200 разрешение записи владельцу файла;
0100 разрешение записи, чтения и выполнения владельцу;
0070 разрешение записи, чтения и выполнения группе;
0007 разрешение чтения, записи, исполнения всем.

Символьная форма позволяет установить биты кода защиты индивидуально и имеет вид:

u владелец,
g группа,
o прочие,
a все категории пользователей (по умолчанию),
+ разрешить доступ,
запретить доступ,
r чтение,
w запись,
x исполнение,
s смена идентификатора пользователя или группы,
t сохранение образа файла в области выгрузки,
ugo оставить текущее значение бита доступа.

Проверка корректности каталогов

dcheck [индексы][файловая система]

Сравнивает счетчик числа связей в индексном дескрипторе с числом записей в каталогах, ссылающихся на данный дескриптор. Индексы генерируются командой icheck. Проверка распределения памяти в файловой системе

icheck [-s][-b блок. ][файловая система]

Исследуется файловая система, проверяется правильность списков свободных и используемых блоков, выводит общее число файлов, каталогов, число используемых блоков, число свободных блоков и т.д.

-b выдача диагностических сообщений для заданных блоков.

-s создание списка свободных блоков;

Генерация имен файлов по заданным индексам

nchek [-i индексы] [-a][-s][файловая система]

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

-a печатает тот же список, что и для флага -i и дополнительно все файлы, имена которых начинаются с «.» и «..».
-i печатает полный список файлов для индексов, перечисленных после данного флага.
-s печатаются только специальные файлы и файлы с установленным режимом смены идентификатора пользователя.

Создание файловой системы

/etc/mkfs [файловая система][размер]

Создает новую файловую систему на диске или части диска согласно числу блоков, заданному аргументом размер. Такая система может быть присоединена к основной файловой системе с помощью команды mount.

Создание специальных файлов

/etc/mknod имя [c][b] тип устройство

Создание специальных файлов, располагающихся в каталоге /dev, где описываются характеристики драйверов устройств и файловых систем. Аргументы тип и устройство относятся к драйверу и к специальному входу в драйвер.

Монтирование файловой системы

/etc/mount файловая-система [-r] имя файла

Терминальный мультиплексор

screen позволяет пользователю использовать одно терминальное окно для нескольких приложений

Демонтирование файловой системы

Временная смена идентификатора пользователя

Изменяет идентификатор пользователя, и выполняет операции, которые возможно было бы нельзя выполнить с другим идентификатором из-за отсутствия права доступа. Для возврата к исходной среде следует нажать ctrl-d.

Модификация суперблока — sync

Освобождаются буферы и модифицируется файловая система на диске. Sync автоматически выполняется через заданный промежуток времени, задаваемый администратором.

Библиотекарь магнитной ленты (или дискеты)

Сохраняет и восстанавливает файлы и каталоги с использованием магнитной ленты (или дискет).

c создает новую ленту для записи на нее файлов;
r заданные файлы записываются в конец ленты;
t печатает список файлов и каталогов, имеющихся на ленте, из числа заданных в команде;
x чтение с ленты заданных файлов или каталогов, если имеется несколько версий, читается последняя;
u заданные файлы добавляются на ленту, если их там нет или если это новые версии. Следующие флаги используются для модификации вышеприведенных функций.
b коэффициент блокирования при чтении и записи, по умолчанию = 1, максимальное значение = 20;
f следующий за f аргумент рассматривается как имя устройства вместо принятого по умолчанию /dev/mt?.
l обеспечивает выдачу сообщения, если при записи не удается получить доступ ко всем файлам;
m сообщает программе tar, что не следует изменять время модификации при записи файлов на ленту;
v печать имен всех файлов и каталогов, при выполнении данной операции;
w печатает наименование заданного действия и имя файла, после чего ожидается ответ пользователя. При «y» действие выполняется.
0. 7 определяет номер устройства, на котором установлена лента, по умолчанию 1.

Смена владельца файла chown

Смена группы chgrp

chgrp группа файл

Изменение направления ввода/вывода

задает направление ввода/вывода;
> задает направление, но добавляет к уже имеющемуся;
| служит для передачи данных от одной команды к другой.

Считывает данные из стандартного ввода. Символы, не совпадающие с символом в аргументе «строка_1», передается на стандартный вывод без изменения. Символы же, совпадающие с символом в аргументе «строка_1», заменяются на соответствующие символы из аргумента «строка_2».

Асинхронное выполнение команд

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

wait вводится, когда нужно подождать завершения какого-то процесса.

Появление приглашения после ввода команды wait указывает на завершение всех запущенных ранее процессов.

Команда планирования выполнения заданий.

at время [дата_и_время][приращение] список_команд

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

at -r идентификатор_задания

batch планирует задания на то время, когда это будет позволять система.

mail имя файла или mail [-r] [-q] [-p] [-f файл]

Обращение к почтовому серверу.

-f файл используется в качестве почтового ящика;
-p печать почты;
-q QUIT (прерывание процедуры);
-r упорядочение — раньше посланное сообщение читается раньше; без флага — обратный порядок.

При чтении почты можно пользоваться командами:

d удаление данного почтового сообщения;
m [имя] переслать сообщение указанному пользователю;
p напечатать сообщение еще раз и вернуться к предшествующему сообщению;
_ вернуться к предыдущему сообщению;
s [файл] записать сообщение в файл;
ctrl/d вернуть сообщение в почтовый ящик и завершить выполнение команды mail (= q).
x выход без изменения почтового ящика;
! временный выход в SHELL;
? напечатать список команд mail.

Сообщение всем работающим пользователям

wall администратор что-то сообщает всем.

Конец сообщения по ctrl/d.

Посылка сообщения другому пользователю

write имя [терминал]

Разрешение или отмена сообщений

mesg [y] [n] (флаги — «y» и «n») присылаемых другими пользователями.

Команды обработки файлов

comm [-[123]] файл1 файл2 поиск одинаковых и разных строк в файлах, флаги «123» обозначают номера колонок. Результат печатается в трех колонках:

1 — строки встречаются только в файле1;
2 — строки встречаются только в файле2;
3 — строки встречаются в обоих файлах.

dd [аргументы] позволяет задавать входной и выходной файлы, указывать виды преобразований. Обычно используется для магнитных лент.

if=имя имя входного файла;
of=имя имя выходного файла;
ibs=n размер входного блока в байтах (512 по умолчанию);
obs=n размер выходного блока (512 по умолчанию);
bs=n размер входного и выходного блоков;
cbs=n размер буфера преобразования в байтах;
skip=n перед копированием пропустить n входных записей;
files=n скопировать n файлов с входной ленты;
seek=n установить выходной файл на запись с номером n перед началом копирования;
count=n скопировать n входных записей.

Поиск строк с заданным шаблоном

grep [флаг] . выражение [файл]

Служит для поиска соответствующих выражений (строк) в одном или нескольких файлах.

-b перед каждой обнаруженной строкой печатается номер блока, где она содержится;
-c печатается только число строк, содержащих шаблон;
-e используется перед шаблоном, который начинается с символа «-«;
-h не печатаются имена файлов перед строками;
-l печатаются имена файлов, содержащие искомые строки;
-n перед каждой обнаруженной строкой печатается ее порядковый номер в файле;
-s вырабатывается только статус результата выполнения команды;
-v печатаются все строки, не содержащие шаблона;
-y строчные буквы в шаблоне считаются совпадающими как со строчными, так и прописными в файле.
egrep модифицированная версия grep.
fgrep упрощенная версия команды grep. Ищет только фиксированные строки, но работает быстрее чем grep.

Восьмеричный дамп файла

od[-флаги] файл[[+] смещение [.][b]].

-b каждый байт файла интерпретируется как восьмеричное число;
-c байты интерпретируются как символы ASCII, неграфические символы выдаются в виде:
нулевой байт \0
возврат на шаг \b
перевод формата \f
перевод строки \n
возврат каретки \r
горизонтальный TAB \t
остальные ddd
-d каждое слово интерпретируется как десятичное число;
-o слова интерпретируются как восьмеричные числа;
-x слова интерпретируются как шестнадцатеричные числа.

Сохранение (зашита) файловой системы

dump [флаги[аргумент. ] файловая система]

Используется администратором для обеспечения сохранности всех данных в файловой системе.

d задание плотности записи на ленту.
f задает устройство для защиты;
s задание размера ленты;
u запись времени защиты;
0-9 уровень защиты;

Восстановление файловой системы

restore флаги [аргументы]

Проверка наличия свободного места на диске (df,du)

Для проверки имеющихся ресурсов на диске можно использовать команды df (размер файловой системы) или du (то же для текущего каталога и его субкаталогов в блоках по 1К).

Проверка наличия свободного места на диске. df [файловая система]

выводит количество блоков, доступных в заданной файловой системе.
Определение типа файла
file имя.
Определяется тип файла: .OBJ, .C, ASCII и т.д.

Чтение магнитных лент, записанных командой dump.

Разбиение файла на части

разбивает файл на части по n строк (по умолчанию n=1000).

Если задано имя выходного файла, то генерируется последовательность файлов с данным именем и буквами aa, ab, ac. в конце. Если имя выходного файла не задано, используется имя «x».

Подсчет числа слов

Определяет число строк, слов и символов в одном или более файлов. Строки в файле разделяются символом «\n», слова — пробелами, горизонтальной табуляцией или переводом строки.

l подсчет числа строк в файле;
w подсчет числа слов в файле;
c подсчет числа символов в файле;

Вызов Secure Socket Shell для безопасного удаленного доступа к компьютеру

Вывод одинаковых строк файла

Находит одинаковые соседние строки файла. По умолчанию все одинаковые строки кроме одной удаляются.

c одинаковые строки удаляются, но в начале строки ставится их исходное число;
d выводятся только одинаковые строки;
-n первые n полей при сравнении пропускаются;
+n перед сравнением пропускаются первые n символов;
u выводятся только разные строки.

Обнаружение различий в файлах

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

Позволяет экономить место при хранении ряда версий файла.

-b игнорируются все пробелы и символы табуляции в конце строки, любые комбинации таких символов считаются эквивалентными;
-e выдает последовательность команд редактора ed, с помощью которых первый файл может быть сделан эквивалентным второму.
-f вырабатывает список изменений;
-h быстро обнаруживает различия, но не всегда корректно.

Сортировка и слияние файлов

sort[-флаги. ][+поз1[-поз2]]. [-o имя][-T каталог][имя].

соединяет и сортирует файлы, помещает результат в заданный файл. Если ключ сортировки не задан, при сравнении используется вся строка.

b при сравнении полей игнорируются пробелы и табуляции в начале строки;
c проверяется, отсортирован ли входной файл в соответствии с заданными правилами;
d «словарная сортировка»: в сравнении участвуют только буквы, цифры и пробелы;
f прописные буквы воспринимаются как строчные;
i при нечисловых сравнениях игнорируются символы, не входящие в диапазон ASCII 040-0176;
m слияние файлов, которые предполагаются отсортированными;
n сортировка по арифметическому значению;
o имя, идущее после воспринимается как имя выходного файла;
r задается обратный порядок сортировки;
tx буква t указывает на то, что вместо принятого по умолчанию пробела в качестве разделителя используется горизонтальная табуляция;
T задает имя каталога, где размещаются временные файлы;
u если одному ключу соответствует несколько строк, выводится только одна из них.

Управление выполнением программы

Выводит в стандартный файл заданные ей аргументы, разделяя их пробелами и завершая вывод переводом строки. Служит для сообщения о выполнении последовательности команд. Флаг -n предоставляет возможность отменить перевод строки после вывода аргументов.

kill [-флаг] процесс.

единственный флаг, допустимый в команде kill, — номер сигнала, например флаг -9 безусловно ликвидирует процесс.

Задержка выполнения команды

Задерживает выполнение команды на время, заданное в секундах.

Понижение приоритета команды

Позволяет выполнить другую команду, с более низким приоритетом. Аргумент-число определяет степень понижения приоритета. Чем больше число, тем меньше приоритет.

Дублирование стандартного вывода

команда читает информацию из стандартного ввода и выводит ее одновременно на терминал и в заданные файлы.

-i игнорировать прерывания;
-a вывод будет добавлен к файлу, вместо принятого по умолчанию создания нового файла.

Отображение последних строчек файла

Печать и установка времени

гг год
мм месяц
дд день
чч час
мм минуты
сс секунды

Кто работает в системе?

выдает список всех пользователей, работающих в данный момент, и имена их терминалов. [файл] — имя файла, где хранится информация о текущих пользователях. По умолчанию /etc/utmp. [am I] — дает возможность сообщить под каким именем вы вошли в систему.

Получение имени терминала

tty печатает имя терминала, за которым вы работаете.

Состояние процессов

предоставляет информацию об активных процессах в системе.

a выдается информация обо всех процессах, управляемых терминалами.
x выдается информация обо всех процессах, не управляемых терминалами (системных).
l выдается полная информация с указанием состояния каждого процесса.
PID идентификатор процесса;
TTY номер терминала;
CMD команда, выполняемая процессом.
UID идентификатор пользователя;
PPID идентификатор процесса, породившего данный процесс;
CPU системная составляющая приоритета процесса;
PRI приоритет процесса, чем больше, тем ниже;
NICE пользовательская составляющая приоритета процесса;
ADDR для резидентного процесса адрес в памяти, в противном случае на диске;
SZ размер образа процесса в блоках;
WCHAN событие, которого ожидает процесс с состоянием S или W; пустое поле означает, что процесс работает.
pstat сообщает о статусе системы.
-s выводит только общее количество блоков для всех файлов.
-a печатает информацию для каждого файла.

Печать календаря

Установка функций терминала

позволяет узнать состояние любого терминала и настроить его на требуемый режим работы.

even включить контроль по четности;
-even выключить контроль по четности;
odd включить контроль на нечетность;
raw включить прозрачный режим ввода;
nl концом строки считать символ «перевода строки»;
-nl концом строки считать символ «возврат каретки»;
echo отображать на экране каждый вводимый символ;
-echo не отображать вводимые символы;
lcase преобразовывать прописные символы в строчные;
tabs заменить символы табуляции на пробелы при выводе;
erase установит следующий за erase символ в качестве символа стирания;
kill установит следующий за kill символ в качестве символа отмены;

Устанавливает параметры табуляции для любого терминала.

-n используется, когда левое поле текста не выравнивается;
терминал описывает тип рабочего терминала.
uncompress разархивирует файлы, имеющие расширение .Z;
uncompress имя_файла работает для файлов без расширения .Z.
uuencode файл указатель используется для передачи двоичных (иногда и русских) файлов по электронной почте. Преобразует двоичный файл в ASCII-формат. Параметр указатель используется при декодировании и служит для указания маршрута и имени файла для команды uudecode. Результат кодировки можно положить в другой файл или непосредственно переслать по электронной почте.
uudecode файл используется для передачи двоичных (иногда и русских) файлов по электронной почте. Преобразует двоичный файл в ASCII-формат. Параметр указатель используется при декодировании и служит для указания маршрута и имени файла для команды uudecode. Результат кодировки можно положить в другой файл или непосредственно переслать по электронной почте.
nslookup выводит IP-информацию о домене;
crypt кодирует файл по заданному пользователем ключу
uuname выводит список узлов, известных данному узлу;
uux выполняет команды на удаленной машине UNIX.

С помощью команды dmesg выводятся все сообщения, которые имели место при последней загрузке системы.

С помощью команды xargs администратор читает, формирует и исполняет аргументы из стандартного ввода, аргументы разделяются пробелами.

Unix против Linux: различия между ними и почему это важно

В наши дни Linux повсюду. Для окончательного доказательства, не стоит смотреть дальше Windows. С выпуском WSL 2, подсистемы Windows для Linux, Microsoft поставляет ядро Linux со своей операционной системой. Хотя, не так давно, это было бы похоже на первоапрельскую шутку.

В то время как Linux может обеспечить основу для большей части интернета, он не был создан из ничего. До Linux существовал Unix, и новая операционная система во многом обязана своей популярностью идеям 1970-х и даже 1960-х годов.

Что такое Unix?

Хотя сам Unix стремится к простоте, точно описать, что это такое, непросто. Первоначально, Unix была операционной системой от AT&T, но в настоящее время торговая марка UNIX принадлежит Open Group. Unix также используется в качестве категории для описания целого семейства операционных систем.

Философия Unix служит общим ориентиром для программ, которого следует придерживаться. Суть в том, что каждая программа должна делать что-то хорошо. Вместо того, чтобы стремиться объединить все мыслимые возможности, инструмент Unix должен просто выполнять свою работу, в идеале, создавая выходные данные, которые могут напрямую использоваться в качестве входных данных другой программы.

В настоящее время доступно множество вариантов Unix, как в бесплатных, так и в коммерческих версиях.

Что такое Linux?

Linux — это еще один термин, который сложнее описать, чем вы можете себе представить. Технически, полный дистрибутив Linux представляет собой «Unix-подобную» операционную систему, но это только начало.

Многие люди используют Linux как сокращенное обозначение того, что было бы более точно описано как GNU/Linux. Сам Linux — это просто ядро, часть операционной системы, которая выполняет основные вычисления и взаимодействует с оборудованием. Утилиты которые работают поверх этого ядра, так же важны.

GNU — это рекурсивная аббревиатура, обозначающая «GNU — это не Unix». Проект GNU не содержит никакого исходного кода Unix, но предоставляет все утилиты, которые вы ожидаете найти в операционной системе Unix. В этом ключевое отличие Unix от Linux.

Unix vs Linux: краткая история

Даже создатели Unix не создали его целиком. Вместо этого Кен Томпсон и Деннис Ричи черпали вдохновение в более ранней операционной системе Multics. В Bell Labs эти двое взяли концепции из этой операционной системы и переписали их на свой мотив используя C.

Unix не был программным обеспечением с открытым исходным кодом. Вместо этого AT&T продала коммерческие лицензии, но это была не единственная компания, работающая над Unix. Академики в Беркли изначально разработали дополнение под названием «Berkeley Software Distribution» или BSD. В конце концов, BSD стал его собственным полным Unix.

В 1980-х и в 1990-х различные компании начали продавать свои собственные предложения Unix. К ним относятся IBM AIX, Sun Solaris и Xenix, которые впоследствии стали SCO UNIX.

Linux захватывает мир штормом

В дополнение к различным предложениям Unix, было также доступно несколько Unix-подобных вариантов. Одним из них был MINIX, который был предназначен для академического использования. Разработчик программного обеспечения из Хельсинки по имени Линус Торвальдс был разочарован ограничениями MINIX и стремился создать подобное ядро, которое могло бы использовать преимущества нового компьютера, который он купил.

В то же время Ричард Столлман искал ядро для своего проекта GNU. Он начал проект GNU в 1983 году, создавая бесплатные замены для различных утилит Unix. В то время у него не было бесплатного ядра с открытым исходным кодом. Торвальдс уже использовал утилиты GNU со своим ядром и в конце концов так же поступили и другие.

Linux начал стремительно развиваться и к середине 1990-х проект приобрел популярность благодаря свободному дизайну как ядра, так и набора инструментов GNU. Несмотря на то, что стали доступны различные другие бесплатные операционные системы Unix, коммерческий характер первых 20 лет работы Unix нависал над ними. Это все еще влияет на битву Unix против Linux и по сей день.

Как и где Unix используется сегодня?

Прямо сейчас популярность может быть основным различием между Linux и Unix. Тем не менее, есть свободно доступные дистрибутивы Unix, которые работают под управлением того же программного обеспечения, что и Linux. Двумя наиболее популярными являются FreeBSD и OpenBSD, оба варианта BSD, как следует из названий.

Любое устройство Apple, которое вы покупаете в эти дни, будь то MacBook, iPhone или даже Apple Watch, работает под управлением Unix-подобной операционной системы. На iPhone или Apple Watch вы никогда не узнаете об этом, используя их. Однако это не так на компьютере Mac.

Просто запустите приложение Mac Terminal, и вы получите доступ к стандартным утилитам Unix, таким как ls, pwd и даже редакторам, таким как vim.

Linux везде

Linux может быть везде, но скорее всего, вы этого не видите и не знаете. Android, самая популярная мобильная операционная система в мире, является форком Linux. Вы не узнаете об этом из его запуска и интерфейса, но за кулисами стоит версия ядра Linux, модифицированная для использования на мобильных устройствах.

Большая часть интернета работает на Linux. В то время как варианты Windows и Unix питают некоторые серверы, подавляющее большинство серверов используют дистрибутивы Linux. Во многом это связано со свободным характером операционной системы, а также с тем, насколько она надежна, что означает меньшее время простоя. Unix не менее надежен во всех отношениях, но популярность Linux означает, что большинство людей выберут именно его.

Одним из самых громких появлений Linux за последние несколько лет является подсистема WLS. Это позволяет запускать утилиты Linux в Windows, что является большим преимуществом для веб-разработчиков и инженеров-программистов. У нас есть руководство о том, как начать работу с подсистемой Windows для Linux.

Вы новичок в Unix или Linux?

Запуск компьютера с Unix или Linux проще, чем когда-либо прежде. Windows не запускает Linux по своей сути, но все же возможно запустить Linux поверх Windows. Любое устройство Apple, которое вы покупаете, также имеет в своей основе вариант Unix.

FAQ по Юниксу: основные команды

FAQ по Юниксу:
консоль

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

1. Система UNIX различает БОЛЬШИЕ и
малые буквы, и к этому нужно привыкнуть.

2. Юникс — это тебе на МастДай и не
МАК — если уничтожить какой-нибудь файл, то
никаких проблем с его восстановлением не
будет. Потому как восстановить
уничтоженный файл в системе Unix НЕВОЗМОЖНО.
В Unix отсутствует команда unerase, и к этому тоже
нужно привыкнуть. Успокаивает только то,
что вирусы и анитивирусы в Unix тоже
отсутствуют:)(OUPS!Я сказал «совсем», я хотел сказать «почти»:)).

3. В имени файла директории
отделяются от последующей части символом
«/» Если имя начинается со слэша —
значит, это полное маршрутное имя. Простое имя файла может состоять из ЛЮБЫХ символов.
Длина простого имени не более 256 символов.
Длина полного маршрутного имени файла не
более 1024 символов. Для задания шаблона
имен используются символы * (произвольная
последовательность символов) и ? (один
произвольный символ). Два имени являются
выделенными. Имя из одной точки «.»
обозначает текущую директорию, имя из двух
точек «..» — вышележащую.

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

команда -ключи -ключи . прочие
разные аргументы .

Пример: /bin/lynx #запустится текстовый
браузер.

5 Пользователи системы UNIX
объединяются в группы, и каждая из групп
может обладать определенным набором
привилегий.

6 Выдачу одной команды можно
перенаправлять на вход другой команды. Для
этого используется «|» — конвейер.

Пример: посчитать суммарный размер
и число строк всех файлов в каталоге /home,
имена которых начинаются с символов «zlob»
.

cat /home/zlob* | wc -c

# Команда cat сливает вместе все
файлы вида /home/zlob*,
# wc -c -l считает количество символов и число
строк во входном
# потоке.

Или просмотреть с листанием
длинную выдачу команды:

Того же результата можно достичь и
без конвейера таким образом:

ps -ef > temp-file
more temp-file
rm temp-file

Некоторые наиболее юзаемые
команды

pwd — Получить имя
текущей директории.

cd — Изменить текущую
директорию(аналог команды ДОС-а).

Пример: cd /usr/spool/lp/adm
Пример: cd..
id

Если директория не указана, ты
попадаешь в свой «домашний» каталог $HOME

ls — Распечатать
информацию о файлах или директориях.

Формат команды : ls [ключи] [имена]

Имена — имена файлов или директорий;
для директорий распечатывается список
входящих в нее файлов, для файлов — повторяется имя файла и дополнительная
информация в соответствии с ключами.
Имена файлов выводятся в алфавитном
порядке. Если имена не заданы, выдается
содержимое текущей директории. Ключи: по умолчанию выдаются только
имена файлов, в одну колонку и в
алфавитном порядке.

cat — Слить или
вывести файлы-аргументы на стандартный
вывод.

Пример: cat /etc/passwd

cp — Копировать
файлы.

mv — Переместить (переименовать)
файлы.

Пример: mv zlob zlobland #Поместить файл
«zlob» в каталог «zlobland».

ln — Создать
ссылку на файл.

rm — Удалить
файлы.

Формат команды : rm [-fri] файл .
-i —
просить подтверждения на каждое удаление
-r —
рекурсивно удалить вместе с подкаталогами
-f —
не просить подтверждения, а сразу удалять

rmdir — Удалить директорию.

Пример: rmdir zlobland

mkdir — Создать директорию.
Формат команды : mkdir имя_директории

Пример: mkdir zlobland

echo — Вывести аргументы
командной строки на стандартный вывод.

ps — Узнать
номера выполняемых процессов.

Сообщает номера процессов,
которые выполняются в системе.
ps —
запущенные только с этого терминала
ps -e — все
ps -f — в «полном»
формате

passwd — Изменить пароль
регистрации.

who — Узнать, кто
работает в системе.
who — этими командами можно узнать,
кто вы такой, и кто еще работает в системе
who am i
finger
last | more
id
man -k who — сообщит все возможные команды,
которыми можно узнать, кто и что делает в
системе.

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

Пример: more file_name .
Просмотром можно управлять с помощью
клавиш:
q — завершить просмотр
ПРОБЕЛ — показать следующую страницу
ENTER — сдвинуться на одну строку
b — показать предыдущую
страницу
/ — поиск
h — Help — посмотреть список
всех возможных команд

man — Выдать
справку об использовании и ключах команды.
Как правило, при запуске команды без
аргументов она выдает формат своего вызова.
Но для большинства команд достаточно полную информацию вы можете получить так: man

chmod — Изменение прав
доступа к файлам. Команда chmod меняет
атрибуты (права доступа) файла. Проставить
файлам право на выполнение:
chmod u+x file1
Разрешить остальным пользователям
исправлять файл:
chmod a+w file1

kill — Прервать процесс.
Команда kill посылает указанному
процессу сигнал немедленной остановки.

Прервать процесс номер 31337 (номер
можно узнать командой ps -e)
kill -9 31337

Прервать программу на вашем
терминале, запущенную НЕ в фоновом режиме,
можно нажатием клавиш CTRL-C, или клавиш CTRL-\.

Как создать файл?

Для создания файла можно
воспользоваться следующими способами:
touch zlobprimer — создает файл zlobprimer;
cat > zlobprimer — создает файл
primer и пишет в него из стандартного ввода.
Запись в файл закончится после нажатия CTRL+D.

Команды для хацкера

su — включить pежим supervisor aka
root. Заходим под своим пасом, выполняем
команду ‘su’ и получаем рута:), если повезет
конечно:))).

newgrp — сменить гpyппy, к котоpой
ты пpинадлежишь в данный момент. Чтобы su запyстить
все-таки можно было :).

at -предназначена для
исполнения чего-то в нужный момент, с твоими
привилегиями. Подменить отложенную процедуру
и воспользоваться чужими привилегиями —
очень интересный, но трудоемкий процесс.

prwarn — пpосит пользователя
вpемя от вpемени сменить паpоль.

sadc — System Activity Data Collector pаботает
от имени root и собиpает данные о pесypсах
системы. Записывает данные в файл.

pt_chmod — daemon, отвечающий за pежим
достyпа по виpтyальным соединениям, чеpез
котоpые теpминальные эмyлятоpы полyчают достyп
к машине.

Bash получить код завершения команды в Linux / Unix

Я новый пользователь системы Linux. Как мне получить код завершения команды?

Как получить код вывода или статус команды оболочки Linux или Unix и сохранить его в переменной оболочки?

Введение. Каждая команда оболочки Linux или Unix возвращает состояние, когда она завершается нормально или ненормально.

Например, если скрипт backup.sh не выполнен, и он возвращает код, который сообщает скрипту оболочки отправить электронное письмо админу.

Что такое код вывода в оболочке bash?

Каждая команда Linux или Unix, выполняемая скриптом оболочки или пользователем, имеет статус вывода.

Статус вывода — это целое число.

0 состояние выхода означает, что команда была успешной без каких-либо ошибок.

Ненулевое (1-255 значений) состояние выхода означает, что команда была неудачной.

Как узнать код вывода команды

Вам нужно использовать определенную переменную оболочки с именем $? чтобы получить статус вывода из ранее выполненной команды.

Выведем $? переменной используя команду echo или команду printf:

Из приведенных выше выводов ясно, что код вывода 0 означает, что команда date была успешной.

Кроме того, код вывода — 127 (не ноль), так как команда nonexistant не была успешной.

Bash как получить код завершения команды — Как использовать коды вывода в скриптах оболочки

Итак, как вы сохранить статус вывода команды в переменной оболочки?

Просто назначьте $? в переменную оболочки. Синтаксис:

Как мне установить код вывода для моих собственных скриптов оболочки?

Команда exit вызывает обычное завершение скриптов оболочки.

Вывод из оболочки со статусом N. Синтаксис:

Пример скрипта оболочки для получения кода завершения команды

Заключение

На этой странице показано, как использовать коды вывода в системах на основе Linux или Unix и как получить статус вывода / код команды.

GNU и Unix 2020

Большинство из нас привыкли к операционным системам Windows, и это хорошо, что мы, по крайней мере, знаем о других, таких как Unix, Linux и т. Д. Это не означает, что единственная ОС, которая используется во всем мире, — это Windows но другие также используют большую долю в использовании. Независимо от того, какую ОС мы могли бы использовать, конечная функциональность такая же, то есть с использованием компьютеров, чтобы облегчить наши задачи. Прежде чем перейти к различиям между GNU и Unix, давайте также изучим основные понятия, связанные с любой операционной системой, в условиях непрофессионала.

Что такое GNU?

Термин GNU означает «GNU, а не Unix». Большинство людей думают, что GNU Linux такой же, как у Unix, но это не так. GNU Linux — это проект с открытым исходным кодом, и он был получен с помощью Unix-подобной архитектуры. Хотя это происходило из Unix, он никоим образом не адаптирует исходный код предшественника. Кроме того, GNU Linux является открытым исходным кодом, и вы можете использовать исходный код бесплатно. Я должен также упомянуть о лицензировании этого GNU и проекта GNU, лицензированного по лицензии GPL — General Public License. Вы можете задаться вопросом, почему GNU не используется как таковой и поставляется с комбинацией Linux всегда? Чтобы ответить на вопрос, я должен сказать, что GNU — это только исходный код или программное обеспечение, разработанное под GPL. Таким образом, это код с открытым исходным кодом, и любой может использовать его в соответствии с их потребностями. Но он не может использоваться так, как он требует, чтобы ОС интерпретировалась на компьютере. С этой целью он сочетается с Unix-подобным ядром с открытым исходным кодом, Linux. Эти две комбинации широко называются GNU / Linux или просто Linux или реже GNU.

Архитектура GNU Linux:

Давайте теперь рассмотрим различные компоненты архитектуры GNU Linux.

Аппаратный уровень является самым внутренним, и он включает периферийные устройства, такие как процессор, оперативная память, жесткий диск и т. Д. Следующим компонентом, взаимодействующим непосредственно с аппаратным обеспечением, является ядро. Он формирует основной компонент любой операционной системы и отвечает за доставку услуг на верхние слои из нижних слоев. Следующий — это Shell и отвечает за интерпретацию команд пользователя с точки зрения функций ядра. С Shell на месте мы не путаемся о сложности, связанной с ядром. Представьте себе ситуацию, когда вам нужно давать команды в двоичных цифрах, поскольку компьютер это понимает! Это беспокойно, правда? Именно здесь Shell позволяет нам давать команды на нашем родном языке, а не в понятной для машины форме. Самый внешний слой — это набор служебных программ, и мы называем его также Приложениями. Эти программы предназначены для выполнения определенных задач, таких как печать, компиляция и т. Д. Мы также можем сказать, что эти утилиты являются непосредственными компонентами, через которые мы взаимодействуем с компьютером, и, в свою очередь, взаимодействие идет дальше по другим уровням.

Логотип GNU:

Логотип проекта GNU был первоначально разработан Этьеном Сувасой и позже был изменен Аурелио Хекерт. Здесь вы можете увидеть последний логотип GNU, который был выпущен Free Software Foundation в 2013 году.

Обычно используемый логотип Linux приведен ниже. Он называется Tux.

Что такое Unix?

Это многозадачная и многопользовательская операционная система и была первоначально разработана в Bell Labs Кен Томпсоном и Деннисом Ритчи. С момента своего создания, Unix OS становится все лучше и лучше. Он гордится тем, что является моделью для ОС Linux, и имеет три основных компонента — ядро, оболочку и программы. Теперь вы можете связать Unix с архитектурой Linux, которые мы видели выше, и обе они имеют общую архитектуру.

Как мы уже говорили ранее, The Kernel является самым внутренним компонентом, который взаимодействует с оборудованием и выполняет такие функции, как хранение файлов, выделение пространства памяти, времени и т. Д. Shell — это интерпретатор командной строки (CLI), который интерпретирует наши команды в машиносчитываемых форма. Мы можем изменить интерфейс Shell по нашему усмотрению. Программы хранятся в виде файлов и обозначаются идентификатором процесса (PID), чтобы отличать его от файлов данных. Ниже приведен логотип Unix, и это всего лишь письменный текст того же самого.

Различия между GNU и Unix:

  • Происхождение:

GNU — это программное обеспечение, разработанное Ричардом Столлманом, и он был хакером из MIT AI Lab. Он был разочарован закрытыми исходными программами, которые всегда защищены авторским правом и недоступны для дальнейших исследований или использования. Unix и другие операционные системы Closed Code становятся доступными в коммерческих целях, не выпуская исходный код. Это было большим разочарованием для Mr.Richard Stallman, и результатом такого разочарования является GNU — программное обеспечение с открытым исходным кодом для доступа к ядру. UNIX был первоначально разработан Ken Thompson и Dennis Ritchie для лабораторий Bell, и он был назван AT & T UNIX.

Функционирование самостоятельно (с / без ядра):

Несмотря на то, что GNU был готов к реализации, программное обеспечение нуждается в ядре для взаимодействия с оборудованием. Приходит использование Unix, а проект с открытым исходным кодом использует Unix-подобную архитектуру ядра для поддержки GNU. Таким образом, мы могли бы сказать, что GNU сам по себе не может функционировать, и ему нужно Ядро. Поэтому ядро ​​Unix было подражато, и было разработано новое Ядро.Unix-подобное ядро ​​вместе с GNU часто называют GNU / Linux или просто Linux. Программное обеспечение GNU само по себе не могло работать, поскольку ядро ​​отсутствует. Но UNIX сделан из Shell, а также ядра, и поэтому он может функционировать сам по себе.

Из наших предыдущих обсуждений ясно, что исходный код GNU свободно доступен для общественности, и его называют кодом с открытым исходным кодом. Но исходный код операционной системы Unix нельзя рассматривать как закрытый код.

Мы встретили свои логотипы в наших предыдущих дискуссиях и дадим нам понять, что мы видели ранее.

GNU использует либо символ пингвина, либо гну, который является темной антилопой. UNIX просто использует простой текст своего имени в качестве логотипа.

GNU поддерживается Фондом свободного программного обеспечения и лицензируется в соответствии с Общей публичной лицензией (GPL). Он свободно доступен для общественности, и исходный код может быть изменен в соответствии с нашими требованиями. Но лицензия UNIX обычно упоминается как товарный знак Bell Labs, товарный знак AT & T Bell Labs или товарный знак X / Open.

  • Их оболочка и ядро:

Ядра GNU / Linux и UNIX более похожи и имеют отличия только от Shell. Оба ядра похожи, но у них есть собственный исходный код, который использует GNU / Linux с открытым исходным кодом, тогда как UNIX использует закрытый код. Мы могли бы даже сказать, что GNU / Linux и UNIX отличаются только своей оболочкой, поскольку они разделяют общее ядро, которое первоначально было разработано как AT & T UNIX.

Все это касается их различий и давайте посмотрим в табличной форме.

S.No Различия в GNU / Linux UNIX
1. происхождения Он был разработан Ричардом Столлманом, и он был хакером из MIT AI Lab. Он был разработан Кен Томпсоном и Деннисом Ричи для лабораторий Bell.
2. Первоначально названный GNU, и это было имя, данное для разработанного Программного обеспечения. Назван как AT & T UNIX, так как он был разработан в Bell Labs.
3. Функционирование самостоятельно Программное обеспечение (Shell) само по себе не может функционировать, поскольку для взаимодействия с оборудованием требуется ядро. UNIX состоит из Shell и ядра и может функционировать самостоятельно.
4. Опирается? GNU, являющийся только программным обеспечением Shell, полагается на любое Ядро и правильно, было развернуто Ядро UNIX. Он не полагается на какую-либо другую ОС, у нее есть свои собственные компоненты.
5. Исходный код Исходный код GNU свободно доступен для общественности. Мы можем изменить код в соответствии с нашими требованиями. Исходный код UNIX недоступен для общественности.
6. логотип GNU использует либо символ пингвина, либо гну, который является темной антилопой. Он использует простой текст своего имени в качестве логотипа.
7. лицензирование Он лицензируется по лицензии общего пользования (GPL). Лицензия UNIX обычно упоминается как товарный знак Bell Labs, товарный знак AT & T Bell Labs или товарный знак X / Open.
8. Оболочка и ядро У него есть собственный Shell, GNU, но он использует UNIX-подобное ядро. Он имеет свой компонент Shell и Kernel.

Надеюсь, статья вам помогла! Если вы все еще чувствуете, что чего-то не хватает, сообщите нам об этом.

Unixtime конвертер и справочник

Что такое Unix время или Unix эпоха (Unix epoch или Unix time или POSIX time или Unix timestamp)?

UNIX-время или POSIX-время (англ. Unix time) — способ кодирования времени, принятый в UNIX и других POSIX-совместимых операционных системах.
Моментом начала отсчёта считается полночь (по UTC) с 31 декабря 1969 года на 1 января 1970, время с этого момента называют «эрой UNIX» (англ. Unix Epoch).
Время UNIX согласуется с UTC, в частности, при объявлении високосных секунд UTC соответствующие номера секунд повторяются.
Способ хранения времени в виде количества секунд очень удобно использовать при сравнении дат (с точностью до секунды), а также для хранения дат: при необходимости их можно преобразовать в любой удобочитаемый формат. Дата и время в этом формате также занимают очень мало места (4 или 8 байтов, в зависимости от размера машинного слова), поэтому его разумно использовать для хранения больших объёмов дат. Недостатки в производительности могут проявиться при очень частом обращении к элементам даты, вроде номера месяца и т. п. Но в большинстве случаев эффективнее хранить время в виде одной величины, а не набора полей.

Чем отличается Unix от Linux

Если вы недавно начали изучать Linux и осваиваться в этой огромной вселенной, то наверное, часто встречали термин Unix. Звучит очень похоже на Linux, но что же оно значит? Наверное, вам интересно чем отличается unix от linux. Ответ на этот вопрос зависит от того что вы понимаете под этими словами. Ведь каждое из них может интерпретироваться по-разному. В этой статье мы рассмотрим упрощенную историю Linux и Unix чтобы помочь вам понять что это и как они между собой связаны. Как всегда вы можете задавать вопросы или добавить дополнительную информацию в комментариях.

Краткая история Unix и Linux

Свою историю Unix начал в конце 1960-х и в начале 1970-х в научно-исследовательских вычислительных лабораториях AT&T Bell Labs в Соединенных штатах. Вместе с MIT и General Electric исследовательская лаборатория Bell Labs начала разработку новой операционной системы. Некоторые исследователи были недовольны ходом разработки этой операционной системы. Они отошли от работы над основным проектом и начали разрабатывать собственную ОС. В 1970 году эта система получила название Unix, а два года спустя она была полностью переписана на языке программирования Си.

Это позволило распространять и портировать Unix на различные устройства и вычислительные платформы.

Так как Unix продолжал развиваться, AT&T начал продавать лицензии на использование ее в университетах, а также в коммерческих целях. Это означало что не все могли, как сейчас, свободно изменять и распространять код операционной системы Unix. Вскоре начало появляться много редакций и вариантов операционной системы Unix, предназначенной для решения различных задач. Самой известной из них была BSD.

Linux похож на Unix по функциональности и возможностям, но не кодовой базой. Эта операционная система была собрана из двух проектов. Первый — проект GNU, разработанный Ричардом Столлманом в 1983, второй — ядро Linux, написанное Линусом Торвальдсом в 1991.

Целью проекта GNU было создать систему похожую на Unix, но не зависящую от него. Иными словами, операционную систему, не содержащую код Unix, которая могла бы свободно распространяться и модифицироваться без ограничений, как свободное программное обеспечение. Так как свободное ядро Linux не могло работать само по себе, проект GNU объединился с ядром Linux, и так родилась операционная система Linux.

Конструировался Linux под влиянием системы Minix, потомка Unix, но весь код был написан с нуля. В отличие от Unix, который использовался на серверах и больших мэйнфреймах различных предприятий, Linux был рассчитан для использования на домашнем компьютере с более простым аппаратным обеспечением.

На сегодняшний день Linux работает на огромном количестве платформ, большем чем любая другая ОС, это сервера, встраиваемые системы, микрокомпьютеры, модемы и даже мобильные телефоны. Теперь будет более подробно рассмотрена разница linux и unix.

Что такое Unix

Термин Unix может относиться к таким понятиям:

  • Оригинальная операционная система, разработанная в AT&T Bell Labs, на основе которой развиваются другие ОС.
  • Товарный знак, написано заглавными буквами. UNIX принадлежит The Open Group, которая разработала набор стандартов для операционных систем — Single UNIX Specification. Только те системы, которые соответствуют стандартам могут законно называться UNIX. Сертификация не бесплатная и требует от разработчиков платить за использование этого товарного знака.
  • Все операционные системы зарегистрированы с именем Unix. Потому что они соответствуют вышеупомянутым стандартам. Это AIX, A/UX, HP-UX, Inspur K-UX, Reliant UNIX, Solaris, IRIX, Tru64, UnixWare, z/OS и OS X — да, даже те что работают на компьютерах Apple.

Что такое Linux

Термин Linux относится только к ядру. Операционная система не будет полной без настольной среды и приложений. Поскольку большинство приложений были разработаны и сейчас разрабатываются в рамках проекта GNU, полное название операционной системы — GNU / Linux.

Сейчас множество людей используют термин Linux для обозначения всех, основанных на ядре Linux, дистрибутивов. На данный момент самая новая версия ядра Linux — 4.4, версия 4.5 находится на стадии разработки. Смена нумерации релизов ядра с 3.х на 4.х состоялась не так уж давно.

Linux — это Unix подобная операционная система, которая ведет себя как Unix, но не содержит его код. Unix подобные ОС часто называют Un*x, *NIX и *N?X, или даже Юниксоидами. У Linux нет сертификации Unix, а GNU расшифровывается как GNU not Unix, так что в этом отношении Mac OS X больше Unix чем Linux. Но тем не менее ядро Linux и ОС GNU Linux очень похожи на Unix по функциональности, реализуют большинство принципов философии Unix. Это удобочитаемый код, хранение конфигурации системы в отдельных текстовых файлах, а также использование небольших инструментов командной строки, графическая оболочка и менеджер сеансов.

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

Надеюсь, теперь стало более понятно, чем отличается unix от linux. Но пойдем еще дальше и подведем итоги.

Основные отличия

  • Linux — свободная операционная система с открытым исходным кодом, а оригинальная Unix — нет, кроме некоторых ее производных.
  • Linux — это клон оригинального Unix, но он не содержит его код.
  • Главное отличие unix от linux, в том что Linux — это только ядро, в то время как Unix была и есть полноценной операционной системой.
  • Linux был разработан для персональных компьютеров. А Unix ориентирован в первую очередь на крупные рабочие станции и сервера.
  • Сегодня Linux поддерживает больше платформ чем Unix.
  • Linux поддерживает больше типов файловых систем чем Unix.

Как видите, путаница обычно возникает из-за того, что linux vs unix могут означать совершенно разные вещи. Какое бы значение ни имелось в виду, факт остается фактом — Unix был первым, а Linux появился позже. Linux родился из стремления к свободе программного обеспечения и мобильности, вдохновленный подходом Unix. Можно смело сказать что мы все в долгу перед движением свободного программного обеспечения, потому что мир был бы намного хуже без него.

Что такое UNIX: разработка, особенности и применение операционной системы

Официальное определение того, что такое Unix, лежит в плоскости зарегистрированного товарного знака The Open Group, семейства компьютерных ОС и инструментов. Чтобы применять товарную марку Unix, поставщик операционной системы должен оплатить лицензионный сбор и ежегодные роялти. Официально лицензированные ОС Unix включают Apple, Oracle, AIX, IRIX (SGI) и Hewlett-Packard.

История UNIX

Для того чтобы объяснить, что такое Unix, нужно начать с истории разработки. В шестидесятых годах General Electric и Bell Labs Массачусетского технологического института попытались разработать интерактивную систему Multics, которая позволила бы нескольким пользователям одновременно получать доступ к мэйнфрейму. Разочарованная результатом, Bell Labs ушла из проекта, но компьютерные специалисты Кен Томпсон и Деннис Ритчи решили продолжить работу, которая завершилась разработкой Unix.

Томпсон и Ритчи руководили командой исследователей по разработке иерархической файловой системы, интерпретатора командной строки, некоторых небольших служебных программ и концепций процессов и файлов устройств.

Месяц спустя Томпсон развернул самодостаточную ОС с ассемблером, редактором и оболочкой с названием YEW-nihks, основанную на более ранней версии Multics. «Юникс» был намного меньше и представлял собой однозадачную систему.

До 1973 года он был написан на ассемблере, но четвертое издание Unix было переписано на C. Тогда это было революционным, потому что ОС считались слишком сложными для написания на языке высокого уровня. Это увеличило переносимость Unix-системы на иные вычислительные платформы. В начале 80-х годов «Юникс» получил популярность в научных кругах, после чего коммерческие стартапы, такие как Solaris Technologies и Sequent, стали применять ее в более широком масштабе.

В конце 1990-х сеть программистов совместно разработала дистрибутивы Linux и Berkeley Software Distribution (BSD), приведших к росту популярности Unix-подобных систем. Сегодня большинство современных компьютерных и мобильных устройств используют ОС «Юникс».

Современные «Юникс» и интерфейс Single UNIX Specification являются собственностью The Open Group. Последняя версия стандарта сертификации UNIX V7 стала четвертой модификацией, изданной в 2013 году.

Особенности концепций ОС

Чтобы понять, что такое Unix , нужно рассмотреть его уникальность в наборе концепций операционных систем. Главное в нем то, что он использует простой текст при хранении данных, иерархические файловые системы и определенные виды взаимодействия между процессорами (IPC).

Пользователи Unix могут связывать программные инструменты и небольшие программы вместе через интерпретатор командной строки. Это программа уровня пользователя. Разработчики могут писать свою собственную оболочку и добавлять новые команды без изменения самой оболочки, поскольку она использует тот же язык для интерактивных команд, что и для сценариев.

Концепции Unix являются влиятельными по ряду причин. Система Unix стала движущей силой развития Интернета и превращения компьютеров в сетевой инструмент. Она рассматривает все типы файлов как простые байтовые массивы, которые представляют упрощенную файловую модель по сравнению с другими операционными системами.

Unix популяризировал иерархическую файловую систему с произвольно вложенными подкаталогами. Ранее операционные системы могли делить запоминающее устройство на разделы только с фиксированным количеством уровней.

Разработчики этой системы заслуживают признания за привнесение модульности и возможности многократного использования в практику разработки программного обеспечения и стимулирование движения программных инструментов. Они также создали набор культурных правил для разработки программного обеспечения и разработали философию Unix, которая оказала влияние на ИТ-сообщество.

Архитектура операционной системы UNIX

Архитектура Unix представляет собой компьютерную операционную систему, которая воплощает в себе философию Unix. Она придерживается таких стандартов, как Single UNIX Specification (SUS) или аналогичного стандарта POSIX IEEE.

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

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

Unix-системы имеют преимущественную многозадачность — несколько процессов могут выполняться одновременно или в течение небольших временных интервалов и почти одновременно, а любой процесс может быть прерван ядром и выведен из его выполнения. Файлы хранятся на диске в иерархической файловой системе, с одним верхним местоположением по всей системе (root, или «/»), с файлами, каталогами и подкаталогами. За некоторыми исключениями, устройства и некоторые типы связи между процессами управляются и отображаются как файлы или псевдофайлы в иерархии файловой системы.

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

  1. Многозадачность и многопользовательский интерфейс.
  2. Интерфейс программирования.
  3. Использование файлов в качестве абстракций устройств и других объектов.
  4. Встроенная сеть (стандарт TCP/IP).
  5. Постоянные системные сервисные процессы, называемые «демонами» и управляемые init или inet.

Файлы и процессы

Все в UNIX — это либо файл, либо процесс. Процесс — это исполняемая программа, идентифицируемая уникальным идентификатором процесса PID. Unix-файл представляет собой набор данных. Они создаются пользователями с использованием текстовых редакторов и работающих компиляторов.

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

Все файлы Unix сгруппированы в структуре каталогов. Файловая система организована в иерархическую структуру, похожую на перевернутое дерево. Вершина иерархии традиционно называется root, записывается как косая черта («/»).

Текстовые файлы могут отображаться на экране и редактироваться. Для UNIX доступно несколько программ для редактирования текста, наиболее заметными среди них являются vi и Emacs. Многие пользователи используют pico, простой текстовый редактор, который поставляется с почтовой программой «Pine». Например, для того чтобы просто отобразить содержимое файла, вводят «$pico», а затем имя файла, который нужно создать.

Функции редактирования в pico вызываются одновременным нажатием клавиш, например Ctrl и R.

Функция вырезания и вставки pico:

  1. Переходят к нужной строке текста и нажимают «^K». Вся строка должна исчезнуть.
  2. Переходят к концу текста и нажимают «^U». Это вставит строку текста в новое место.
  3. Написание слов в тексте выполняют с помощью «^W».
  4. Для сохранения работы без выхода вводят «^O».
  5. Для выхода вводят «^X». Если есть какие-либо неизмененные данные, пользователю будет предложено сделать это перед выходом.

У pico нет многих расширенных функций, которые есть у других редакторов, таких как vi и Emacs, но он прост в использовании и, безусловно, подходит для редактирования небольших файлов.

Unix-подобные системы

К ним относятся операционные системы, ведущие себя как системы Unix и предоставляющие аналогичные утилиты, но не лицензированные The Open Group. Обычно они называются Unix-подобными. Это различные дистрибутивы Linux. Например, Red Hat Enterprise Linux, Ubuntu и CentOS и несколько потомков операционной системы семейства Unix — Berkeley Software Distribution.

Нет четкого определения «Юникс»-подобного ПО, но термин относится к ОС, которая ведет себя как Unix. Это может относиться к его свободному и открытому исходному коду. Некоторые разработчики ПО утверждают, что существует три типа. Генетически подобные системы связаны с оригинальной базой Bell Labs, позднее AT&T, например, с BSD, над которыми работали исследователи из Калифорнийского университета в конце 70-х и начале 80-х годов.

Товарные бренды и фирменные подобные системы соответствуют Единой спецификации «Юникс». Функциональные системы, например, Unix, Linux и Minix, ведут себя примерно так, как указано в спецификации. Например, у них должна быть программа, управляющая сеансами входа в систему и командной строки.

Запатентованные операционные системы «Юникс» и подобные варианты работают на широком спектре цифровых архитектур и обычно используются на веб-серверах, мэйнфреймах и суперкомпьютерах. В последние годы смартфоны, планшеты и персональные компьютеры под управлением версий или вариантов Unix становятся все более популярными.

Ключевые компоненты

Собственные системы Unix и их варианты характеризуются несколькими основными компонентами:

  1. Ядро — является главной программой управления операционной системой, которая управляет памятью, системными вызовами и другими низкоуровневыми функциями, общими для большинства программ, и предоставляет драйверы для управления оборудованием.
  2. Shell-оболочка — это интерактивная программа, которая обеспечивает интерфейс между пользователем и ядром. Оболочка интерпретирует команды, введенные пользователем или предоставленные сценарием оболочки, и передает их ядру для выполнения. Оболочки, доступные для использования в Unix и подобных операционных системах, включают sh (оболочку Bourne), bash (оболочку Bourne-again), csh (оболочку C), tcsh (оболочку TENEX C), ksh (оболочку Korn) и zsh (оболочку Z).
  3. Файловая система использует иерархическую структуру каталогов с корневым каталогом («/») вверху. Файловая система монтируется из корневого каталога каждой системы в/N, где домашний каталог каждого пользователя находится в /N/u/, а файлы, связанные с программным обеспечением, — в/N/soft. Чтобы определить, какие файловые системы смонтированы в Unix или Unix-подобной системе, используют mount-команду. Большинство включают в себя инструменты и библиотеки для написания, компиляции и отладки программ на C, C ++ и Fortran.
  4. Команды Unix и Unix-подобных систем включают в себя большое ядро стандартных утилит для редактирования текста, написания, компиляции и управления программами, обработки, манипулирования пользовательской средой и получения информации о системе и ее пользователях. Команды позволяют аргументам, известным как опции, изменять свое поведение по умолчанию. Пользователи вписывают данные в командную строку, а затем оболочка выполняет интерпретацию и передачу их ядру для выполнения.

В Unix у пользователя есть возможность использовать либо командную строку (больше контроля и гибкости), либо графический интерфейс (проще).

Назначение аргументов оболочки

Пользователь взаимодействует с UNIX через особую программу, называемую оболочкой, запрашивающую команды и передающую их ОС для выполнения после ввода. Они состоят из двух частей: имени команды и аргументов. Определенные аргументы, называемые опциями, обычно вводятся символом «-», изменяют поведение команды определенным образом, в то время как другие аргументы указывают объекты, например, имена файлов, компьютеров, пользователей.

В следующем примере: $ ls -l myfile«ls» — это имя команды, а «-l» и «myfile» — аргументы. «-l» — это опция, которая изменяет поведение команды «ls». Не все команды требуют параметров или аргументов. У многих есть интеллектуальные значения по умолчанию, когда ничего не указано.

Оболочка Unix-system поставляется в двух основных вариантах: оболочка Bourne, sh и оболочка C, csh. Другие популярные оболочки получены из них, например, ksh, bash, tcsh. Каждая оболочка использует определенный символ или строку символов, чтобы запросить у пользователя команды, что называется приглашением оболочки по умолчанию для bash, символ $. Если не указано иное, они будут одинаково хорошо работать с большинством других оболочек.

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

Основные команды UNIX

Оболочка tcsh имеет определенные функции, помогающие пользователю вводить команды. Для завершения имени файла вводят часть имени команды, файла или каталога. После нажатия клавиши [ Tab ] оболочка tcsh автоматически завершит оставшуюся часть имени. Если она обнаружит более одного имени, начинающегося с введенных пользователем букв, она издаст звуковой сигнал, предложив ввести еще несколько букв, прежде чем снова нажимать клавишу табуляции. Оболочка хранит список команд, которые ввели. Если нужно повторить команду, используют клавиши курсора для прокрутки вверх и вниз по списку или вводят историю для списка предыдущих команд.

Примеры основных команд UNIX включают следующее:

  1. ls:список файлов.
  2. ls –l: выводит список файлов в длинном формате.
  3. cd . переход в каталог выше текущего.
  4. cp filename1 filename2: копирует файл, имя файла.
  5. chmod: изменение прав на чтение, запись и выполнение для файлов;
  6. mkdir: создает каталог.

Приложение Terminal

Это приложение работает, когда пользователь отправляет команды непосредственно на компьютер, который возвращает результат непосредственно пользователю. Для этого существует промежуточная программа, известная как терминал или командная строка. То, что пишет пользователь, передается в терминал, который вычисляет, какие команды нужно выполнить, и дает команду к выполнению. На английском языке терминал называется оболочкой, поскольку он охватывает операционную систему, чтобы скрыть некоторые ее сложности и упростить взаимодействие с ним.

Терминал — это программа с возможностью запускать другие программы вместо выполнения самих вычислений. Самый популярный терминал Unix называется Bash — от Bourne Again Shell, потому что он происходит от предыдущей версии, написанной Стивеном Борном. Bash является терминалом по умолчанию в большинстве современных реализаций Unix и в большинстве пакетов, которые предоставляют инструменты, аналогичные Unix для Windows. Использование bash или любого другого терминала иногда удобнее программировать.

Команды короткие, часто длиною всего в несколько символов, их имена часто загадочны, а их вывод — текстовые строки, а не что-то визуальное, например, графика. С другой стороны, с помощью нескольких клавиш терминал позволяет объединять существующие инструменты в мощные конвейеры и обрабатывать большие объемы данных автоматически.

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

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

Создание новых каталогов

Теперь, когда у пользователя есть общее представление о файловой системе и о том, как с ней обращаться, можно приступить к созданию своих собственных файлов и каталога и управлению ими. Каталоги создаются с помощью mkdir, а удаляются с помощью rmdir.

Например, чтобы создать два новых каталога, прописывают: $ mkdir test test2.Теперь, чтобы удалить второй каталог, который только что создан: $ rmdir test2. При этом rmdir удалит только пустые каталоги. Если каталог содержит файлы, пользователь должен сначала удалить их перед использованием rmdir. Кроме того, он может рекурсивно удалить каталог и его содержимое, используя соответствующую опцию с командой rm.

Если нужно скопировать некоторые существующие файлы из другой части файловой системы в тестовый каталог, то используют команду cp.

Прежде чем идти дальше, переходят в новый «тестовый» каталог, который только что создан. Пользователь будет использовать эту область для экспериментов, таким образом сводя к минимуму любой потенциальный ущерб другим файлам в домашнем каталоге:

Теперь можно скопировать некоторые файлы в тестовую директорию с помощью cp:

Три приведенные выше команды cp копируют существующие файлы из каталога «/etc» в текущий каталог (сопровождается символом «.»). Теперь удаляют файл с помощью команды rm:

Далее перемещают один из файлов, используя mv:

Поскольку cp, mv и rm могут уничтожать данные, они предлагают интерактивную опцию, которая запрашивает пользователя перед продолжением. Это вызывается с опцией -i. Обычно системный администратор настраивает учетную запись для использования этой опции по умолчанию.

Для cp и mv требуются два аргумента: существующее местоположение и место назначения файла, который нужно скопировать или переместить. Пункт назначения может быть другим файлом или каталогом.

Преимущества лидера ОС в Интернете

Ни один тип операционной системы не может предложить универсальные ответы на все пользовательские требования. Речь идет о выборе и принятии обоснованных решений. Тем не менее Unix имеет столько преимуществ, что по праву стал самой востребованной операционной системой.

Общие преимущества ОС Unix:

  1. Более гибок и может быть установлен на многих типах компьютеров, включая мэйнфреймы, суперкомпьютеры и микрокомпьютеры.
  2. Стабилен и не выходит из строя так часто, как Win, поэтому требует меньшего администрирования и обслуживания.
  3. Имеет больше встроенных функций безопасности и разрешений, чем Win.
  4. Обладает гораздо большей вычислительной мощностью, чем Win.
  5. Является лидером в обслуживании Интернета. Около 90% интернет-пользователей используют Unix-операционные системы, работающие на Apache — наиболее широко используемом в мире веб-сервере, который является бесплатным.
  6. Обновления программного обеспечения от Microsoft часто требуют, чтобы пользователь приобрел новое аппаратное обеспечение или необходимое программное обеспечение. Это не так с Unix.
  7. В основном бесплатные или недорогие операционные системы семейства Unix с открытым исходным кодом, такие как Linux и BSD, с их гибкостью и управлением, оказываются очень привлекательными для начинающих мастеров компьютеров.
  8. Многие из самых умных программистов разрабатывают современное программное обеспечение бесплатно для быстро растущего «движения с открытым исходным кодом».
  9. Unix также вдохновляет новые подходы к разработке программного обеспечения, такие как решение проблем путем объединения более простых инструментов вместо создания больших монолитных прикладных программ.

В последнее время у Unix наблюдается снижение использования, главным образом из-за перехода с платформ RISC на альтернативы с базой x86, которые могут выполнять множество рабочих нагрузок Unix с более высокой производительностью при меньших затратах. Эксперты прогнозируют, что многие организации будут продолжать использовать Unix для критически важных сред, но уменьшат свою зависимость от системы из-за стратегий модернизации и консолидации ИТ.

Тем не менее Unix по-прежнему является предпочтительной системой для многих случаев использования, таких как программное обеспечение приложений для вертикального масштабирования и функции безопасности, о чем свидетельствуют многочисленные отзывы о Unix. Ожидается, что в будущем продажи серверов упадут, но приложения в финансовой, правительственной и телекоммуникационной сферах будут продолжать стимулировать использование Unix.

хЮЕВОЙЛ РП Unix ДМС ОБЮЙОБАЭЙИ

юФПВЩ РПМШЪПЧБФШУС ХУМХЗБНЙ Internet, ПРЕТБГЙПООХА УЙУФЕНХ UNIX ЪОБФШ ОЕ ПВСЪБФЕМШОП. пДОБЛП ЬФП НПЦЕФ РТЙЗПДЙФШУС РТЙ ПВТБЭЕОЙЙ Л Internet РПУТЕДУФЧПН ЛБЛПК-ОЙВХДШ ПВЭЕДПУФХРОПК UNIX-УЙУФЕНЩ. чБН ДПУФБФПЮОП РПЪОБЛПНЙФШУС МЙЫШ У ДЕУСФЛПН-ДТХЗЙН РТПУФЩИ ЛПНБОД. оЙЦЕ Л чБЫЙН ХУМХЗБН ХЮЕВОЙЛ-«РСФЙНЙОХФЛБ» РП пу UNIX.

чИПД Ч УЙУФЕНХ

пРЕТБГЙПООБС УЙУФЕНБ UNIX — ЬФП НОПЗПРПМШЪПЧБФЕМШУЛБС УЙУФЕНБ У ТБЪДЕМЕОЙЕН ЧТЕНЕОЙ. оБЮЙОБФШ УЕБОУ ТБВПФЩ У ОЕК ОХЦОП У УППВЭЕОЙС П ФПН, ЛФП чЩ. ьФП ОЕ ЪБЧЙУЙФ ПФ ФПЗП, ТБВПФБЕФЕ чЩ ЪБ ФЕТНЙОБМПН Ч УЧПЕН ЛБВЙОЕФЕ ЙМЙ РП ЛПННХФЙТХЕНПК МЙОЙЙ УЧСЪЩЧБЕФЕУШ У ВПМШЫЙН ХЪМПН ПВЭЕЗП РПМШЪПЧБОЙС. ч ЬФПН ЪБЛМАЮБЕФУС ПДОП ЙЪ ПФМЙЮЙК UNIX ПФ DOS, Windows Й Macintosh — ПРЕТБГЙПООЩИ УЙУФЕН, Ч ЛПФПТЩИ РПОСФЙЕ «НОПЗПРПМШЪПЧБФЕМШУЛЙК» ПФУХФУФЧХЕФ. UNIX ДПМЦОБ ЪОБФШ, ЛФП чЩ, ЮФПВЩ ЧЩДЕМСФШ чБУ Й чБЫЕ ИПЪСКУФЧП УТЕДЙ ДЕУСФЛПЧ, УПФЕО Й ДБЦЕ ФЩУСЮ ДТХЗЙИ РПМШЪПЧБФЕМЕК.

дЙБМПЗ РТЙ ЧИПДЕ Ч UNIX РТЙНЕТОП ФБЛПК:

оБ ЧПРТПУ login ЧЧПДЙФЕ УЧПЕ РПМШЪПЧБФЕМШУЛПЕ ЙНС, ДБМЕЕ ЧЧПДЙФЕ, РБТПМШ, ДБООЩК ЧБН БДНЙОЙУФТБФПТПН УЙУФЕНЩ. рПУМЕ РПСЧМЕОЙС % НПЦОП ТБВПФБФШ.

рПМШЪПЧБФЕМШУЛПЕ ЙНС — ЬФП ЙНС, У ЛПФПТЩН УЧСЪБО чБЫ ЧИПД Ч УЙУФЕНХ; БДНЙОЙУФТБФПТ УЙУФЕНЩ РТЙУЧБЙЧБЕФ ЕЗП, ТЕЗЙУФТЙТХС ДБООПЗП РПМШЪПЧБФЕМС. рБТПМШ РПЪЧПМСЕФ РПДФЧЕТДЙФШ, ЮФП чЩ ДЕКУФЧЙФЕМШОП ФПФ, ЪБ ЛПЗП УЕВС ЧЩДБЕФЕ, Й ФБЛЙН ПВТБЪПН РТЕДПФЧТБФЙФШ ОЕЪБЛПООЩК ЧИПД Ч УЙУФЕНХ. чЧПДЙНЩК РБТПМШ ОЕ ПФПВТБЦБЕФУС ОБ ЬЛТБОЕ, ЮФПВЩ ОЙЛФП ЕЗП ОЕ ХЧЙДЕМ. бДНЙОЙУФТБФПТ УЙУФЕНЩ, ЧЕТПСФОП, ОБЪОБЮЙФ чБН ЛБЛПК-ОЙВХДШ ОБЮБМШОЩК РБТПМШ, Б ЪБФЕН ТБУУЛБЦЕФ, ЛБЛ ЧЩВТБФШ Й РПНЕОСФШ ЕЗП.

ъОБЛ % — ЬФП РТЙЗМБЫЕОЙЕ, УЧЙДЕФЕМШУФЧХАЭЕЕ П ФПН, ЮФП UNIX ЗПФПЧБ Л РТЙЕНХ ЛПНБОД. ч чБЫЕК УЙУФЕНЕ РТЙЗМБЫЕОЙЕ НПЦЕФ ВЩФШ ЙОЩН, ПЮЕОШ ЮБУФП РТЙЗМБЫЕОЙЕ UNIX ЧЛМАЮБЕФ ЙНС ЛПНРШАФЕТБ.

ч ОЕЛПФПТЩИ УЙУФЕНБИ НПЦЕФ РПОБДПВЙФШУС «ФЕМЕЖПООЩК РБТПМШ» РТЙ ТЕЗЙУФТБГЙЙ РП ФЕМЕЖПООПК МЙОЙЙ. еУМЙ ФБЛПК РБТПМШ чБН ОХЦЕО, ЕЗП НПЦОП РПМХЮЙФШ Х БДНЙОЙУФТБФПТБ УЙУФЕНЩ.

лТПНЕ ФПЗП, НПЦЕФ ВЩФШ ЪБДБО ЧПРТПУ П ФЙРЕ ЙУРПМШЪХЕНПЗП ФЕТНЙОБМБ. чЙД. УППВЭЕОЙС UNIX П ФЙРЕ ФЕТНЙОБМБ ЪБЧЙУЙФ ПФ ЛПОЛТЕФОПК УЙФХБГЙЙ, ОП ПВЩЮОП ЬФП ЧЩЗМСДЙФ РТЙНЕТОП ФБЛ:

уФТПЛБ (vt100)? ПЪОБЮБЕФ: «дХНБА, — чЩ ЙУРПМШЪХЕФЕ ФЕТНЙОБМ VT100. еУМЙ ДБ, ОБЦНЙФЕ [Enter] Й РТПДПМЦБКФЕ ТБВПФХ. ч РТПФЙЧОПН УМХЮБЕ УППВЭЙФЕ НОЕ П ФЙРЕ ФЕТНЙОБМБ». VT100 — ХДБЮОПЕ РТЕДРПМПЦЕОЙЕ, РПУЛПМШЛХ ВПМШЫЙОУФЧП ОБЙВПМЕЕ ТБУРТПУФТБОЕООЩИ ЛПННХОЙЛБГЙПООЩИ РТПЗТБННОЩИ РБЛЕФПЧ — РПДДЕТЦЙЧБАФ ЬНХМСГЙА VT100, Ф.Е. ЪБУФБЧСФ чБЫ ЛПНРШАФЕТ ТБВПФБФШ ЛБЛ VT100. уЕТЧЕТ TTC РПДДЕТЦЙЧБЕФ ФБЛЦЕ ФЕТНЙОБМ VT100WIN ДМС РПМШЪПЧБФЕМЕК ТБВПФБАЭЙИ ЮЕТЕЪ РТПЗТБННХ telnet ЙЪ Windows. ьФПФ ФЙР ФЕТНЙОБМБ РПЪЧПМЙФ ЧБН ПФПВТБЦБФШ ТХУУЛЙК ФЕЛУФ ОБ ЬЛТБОЕ. рПЬФПНХ РТЙ ЧИПДЕ Ч УЙУФЕНХ ЧЩ НПЦЕФЕ ПФЧЕФЙФ [vt100win]. еУМЙ РПУМЕ ЬФПФ ЧЩ РП-РТЕЦОЕНХ ОЕ НПЦЕФЕ ТБВПФБФШ У ТХУУЛЙН ФЕЛУФПН, ПВТБФЙФЕУШ Л БДНЙОЙУФТБФПТХ УЙУФЕНЩ.

еУМЙ UNIX РПМХЮЙФ ОЕЧЕТОХА ЙОЖПТНБГЙА П ФЙРЕ ФЕТНЙОБМБ, НПЦЕФ ЧПЪОЙЛОХФШ РХФБОЙГБ: ОБРТЙНЕТ, УЙУФЕНБ ВХДЕФ ОЕРТБЧЙМШОП ТЕБЗЙТПЧБФШ ОБ ОБЦБФЙЕ ЛМБЧЙЫЙ [Enter], УЙНЧПМЩ ВХДХФ ПФПВТБЦБФШУС ЙОЧЕТУОП Й Ф.Д. ч УМХЮБЕ ЧПЪОЙЛОПЧЕОЙС РПДПВОЩИ РТПВМЕН ПВТБФЙФЕУШ Л БДНЙОЙУФТБФПТХ УЙУФЕНЩ.

дМС ЪБЧЕТЫЕОЙС УЕБОУБ ТБВПФЩ Ч UNIX ДБКФЕ ЛПНБОДХ logout ЙМЙ exit.

лПНБОДЩ

уОБЮБМБ НЩ РПЛБЦЕН, ЛБЛ ТБВПФБАФ ЛПНБОДЩ ПРЕТБГЙПООПК УЙУФЕНЩ UNIX, Б ЪБФЕН РТЙЧЕДЕН РЕТЕЮЕОШ ОБЙВПМЕЕ ЧБЦОЩИ ЛПНБОД.

жПТНБФ ЛПНБОДЩ

вПМШЫЙОУФЧП ЛПНБОД UNIX ЙНЕАФ УМЕДХАЭЙК ЖПТНБФ:

% ЛПНБОДБ ЛМАЮЙ РБТБНЕФТЩ

уОБЮБМБ ЙДЕФ ЙНС ЛПНБОДЩ, ЪБФЕН — ЛМАЮЙ Й РБТБНЕФТЩ. рБТБНЕФТБНЙ, ЛБЛ РТБЧЙМП, СЧМСАФУС ЙНЕОБ ЖБКМПЧ. чУЕ ЛМАЮЙ ОБЮЙОБАФУС У ДЕЖЙУБ. оБРТЙНЕТ, РТЙЧЕДЕООБС ОЙЦЕ ЛПНБОДБ ПЪОБЮБЕФ: «чЩРПМОЙФШ ЛПНБОДХ Is У ЛМАЮПН -l ДМС ЖБКМБ Б.out«:

ьФП 90 РТПГЕОФПЧ ФПЗП, ЮФП чБН ОХЦОП ЪОБФШ. йНЕОБ ЛПНБОД РПЮФЙ ЧУЕЗДБ РТЙЧПДСФУС УФТПЮОЩНЙ ВХЛЧБНЙ; ЛМАЮЙ ПВЩЮОП УПУФПСФ ЙЪ ПДОПК ВХЛЧЩ (УФТПЮОПК ЙМЙ РТПРЙУОПК). ч ПФМЙЮЙЕ ПФ НОПЗЙИ ДТХЗЙИ ПРЕТБГЙПООЩИ УЙУФЕН, UNIX ХЮЙФЩЧБЕФ ТБЪОЙГХ НЕЦДХ РТПРЙУОЩНЙ Й УФТПЮОЩНЙ ВХЛЧБНЙ.

еУМЙ чЩ ЙУРПМШЪХЕФЕ ДЧБ Й ВПМЕЕ ПДОПВХЛЧЕООЩИ ЛМАЮБ, ВПМШЫЙОУФЧП ЛПНБОД РПЪЧПМСАФ ПВЯЕДЙОСФШ ЙИ. оБРТЙНЕТ, ДЧЕ РТЙЧЕДЕООЩЕ ОЙЦЕ ЛПНБОДЩ ЙДЕОФЙЮОЩ:

оЕЛПФПТЩЕ ЛМАЮЙ ФТЕВХАФ ОБМЙЮЙС РБТБНЕФТБ. ч ЬФПН УМХЮБЕ РБТБНЕФТ ДБЕФУС РПУМЕ ЛМАЮБ, Ч ЬФПН УМХЮБЕ РПУМЕДОЙК ОЕМШЪС ПВЯЕДЙОСФШ У ДТХЗЙН ЛМАЮПН. фБЛЙЕ ЛПНБОДЩ Ч ОБЫЕН ХЮЕВОЙЛЕ ОЕ ПРЙУЩЧБАФУС.

еУФШ ОЕУЛПМШЛП ЛПНБОД, ЛПФПТЩЕ ОЕ УППФЧЕФУФЧХАФ ЬФЙН РТБЧЙМБН, Й ПДОБ ЙЪ ОЙИ ПЮЕОШ ЧБЦОБС: ЬФП ЛПНБОДБ tar. (дТХЗЙЕ чБН ОЙЛПЗДБ ОЕ РПОБДПВСФУС.) ч РЕТЕЮОЕ ЛПНБОД С ДБА ФТЙ «ТЕГЕРФБ» ЙУРПМШЪПЧБОЙС tar. уМЕДХКФЕ ХЛБЪБОЙСН, Й ЧУЕ ВХДЕФ Ч РПТСДЛЕ.

пУОПЧОЩЕ ЛПНБОДЩ

оЙЦЕ РТЙЧЕДЕО ПВЕЭБООЩК РЕТЕЮЕОШ ПУОПЧОЩИ ЛПНБОД ПРЕТБГЙПООПК УЙУФЕНЩ UNIX. рТПРЙУОЩНЙ ВХЛЧБНЙ ДБОЩ DOS-ЬЛЧЙЧБМЕОФЩ. оЕЛПФПТЩЕ ЛПНБОДЩ ВПМЕЕ РПДТПВОП ВХДХФ ПРЙУБОЩ ОЙЦЕ.

logout ъБЧЕТЫЙФШ УЕБОУ ТБВПФЩ У UNIX. ls дБФШ РЕТЕЮЕОШ ЖБКМПЧ, ОБИПДСЭЙИУС Ч ФЕЛХЭЕН ЛБФБМПЗЕ. ьЛЧЙЧБМЕОФ ЛПНБОДЩ DIR, ЙНЕАЭЕКУС ЧП НОПЗЙИ ПРЕТБГЙПООЩИ УЙУФЕНБИ. лПНБОДБ ls -l ДБЕФ ВПМЕЕ РПДТПВОХА ЙОЖПТНБГЙА, ЧЛМАЮБС ТБЪНЕТ ЖБКМПЧ, ЙИ РТЙОБДМЕЦОПУФШ Й ДБФХ УПЪДБОЙС. х 1s ЕУФШ ПЮЕОШ НОПЗП ЛМАЮЕК, ОП -l — ЕДЙОУФЧЕООЩК, ЛПФПТЩК чЩ ВХДЕФЕ ЙУРПМШЪПЧБФШ ДПЧПМШОП ЮБУФП. rm ЖБКМЩ DELETE. уФЕТЕФШ (ХДБМЙФШ) ПДЙО ЙМЙ ОЕУЛПМШЛП ЖБКМПЧ. оБРТЙНЕТ, ЛПНБОДБ rm file1 file2 file3 ХДБМСЕФ ФТЙ ЖБКМБ: filel, file2, file3. лПНБОДБ rm -i РЕТЕД ХДБМЕОЙЕН ЛБЦДПЗП ЖБКМБ РТПУЙФ чБУ РПДФЧЕТДЙФШ УЧПЕ ОБНЕТЕОЙЕ. mv cФapoe-ЙНС ОПЧПЕ-ЙНС RENAME. рЕТЕЙНЕОПЧБФШ (РЕТЕНЕУФЙФШ) ЖБКМ ЙЪ cФapoe-ЙНС Ч ОПЧПЕ-ЙНС. нОПЗЙЕ ЦБМХАФУС, ЮФП ЬФХ ЛПНБОДХ ФТХДОП ЪБРПНОЙФШ ЙЪ-ЪБ ОЕУППФЧЕФУФЧЙС УПЛТБЭЕООПЗП ЙНЕОЙ УНЩУМХ (mv — rename). рТБЧЙМШОПЕ ЪБНЕЮБОЙЕ. рПМШЪПЧБФЕМЙ UNIX, ПДОБЛП, РТЕДРПЮЙФБАФ УЮЙФБФШ, ЮФП ЖБКМЩ «РЕТЕНЕЭБАФУС» (move), Б ОЕ РЕТЕЙНЕОПЧЩЧБАФУС (rename). еУМЙ ТБУУНБФТЙЧБФШ ЬФХ ПРЕТБГЙА ЛБЛ РЕТЕНЕЭЕОЙЕ, ФП ТБВПФБ Ч UNIX ВХДЕФ ВПМЕЕ ПУНЩУМЕООПК. cp ЖБКМ1 ЖБКМ2 уптх. лПРЙТПЧБФШ ЖБКМ1 Ч ОПЧЩК ЖБКМ У ЙНЕОЕН ЖБКМ2. more ЖБКМ чЩЧЕУФЙ ФЕЛУФПЧЩК ЖБКМ ОБ ЬЛТБО Ч РПУФТБОЙЮОПН ТЕЦЙНЕ. дМС ЧЩЧПДБ УМЕДХАЭЕК УФТБОЙГЩ ОХЦОП ОБЦБФШ ЛМБЧЙЫХ РТПВЕМ. нОПЗЙЕ ЙУРПМШЪХАФ ДМС ЬФПЗП ЛПНБОДХ cat Й ЦБМХАФУС, ЮФП ЕЕ ЙНС ЧЧПДЙФ Ч ЪБВМХЦДЕОЙЕ. ьФП, ПДОБЛП, ЙИ ЧЙОБ. лПНБОДБ cat ОЕ РТЕДОБЪОБЮБМБУШ ДМС ЧЩЧПДБ ЖБКМПЧ ОБ ЬЛТБО; ПОБ УТБВБФЩЧБЕФ ЮЙУФП УМХЮБКОП (Й ФП ОЕ ПЮЕОШ ИПТПЫП). лПНБОДБ more — ЗПТБЪДП МХЮЫЕЕ УТЕДУФЧП; ОЕ ХФТХЦДБКФЕ УЕВС ЧПЪОЕК У cat. лТПНЕ ФПЗП, more ОЕ УПЧУЕН «ЙОФХЙФЙЧОБ»; РПМЕЪОП ЪБРПНОЙФШ ЖТБЪХ «show me more of this file» («РПЛБЦЙ НОЕ ЬФПФ ЖБКМ ДБМШЫЕ»). grep ПВТБЪЕГ ЖБКМ рПЛБЪБФШ ЧУЕ УФТПЛЙ Ч ЖБКМЕ, ПФЧЕЮБАЭЙЕ, ПВТБЪГХ. рПЙУЛ ПУХЭЕУФЧМСЕФУС У ХЮЕФПН ТЕЗЙУФТБ. лПНБОДБ grep ЙУРПМШЪХЕФУС ДМС РПЙУЛБ ЛПОЛТЕФОЩИ ФЕЛУФПЧЩИ УФТПЛ Ч ЖБКМБИ. оБРТЙНЕТ, ЕУМЙ phones — РЕТЕЮЕОШ ОПНЕТПЧ ФЕМЕЖПОПЧ Й ЙНЕО, ФП ЛПНБОДБ
% grep «John Johnson» phones
ОБИПДЙФ Ч ЬФПН УРЙУЛЕ ОПНЕТ ФЕМЕЖПОБ дЦПОБ дЦПОУПОБ. пВТБФЙФЕ ЧОЙНБОЙЕ: НЩ ЧЪСМЙ ПВТБЪЕГ РПЙУЛБ Ч ЛБЧЩЮЛЙ. лБЧЩЮЛЙ ОЙЛПЗДБ ОЕ РПЧТЕДСФ, ОП ЛПЗДБ чЩ ЙЭЕФЕ УФТПЛХ У РТПВЕМПН ЙМЙ ЪЧЕЪДПЮЛПК, ЛБЧЩЮЛЙ ОЕПВИПДЙНЩ. grep -i ПВТБЪЕГ ЖБКМ бОБМПЗЙЮОБ РТЕДЩДХЭЕК ЛПНБОДЕ, ОП ТЕЗЙУФТ ОЕ ХЮЙФЩЧБЕФУС: РТПРЙУОЩЕ Й УФТПЮОЩЕ ВХЛЧЩ ЧПУРТЙОЙНБАФУС ПДЙОБЛПЧП. pwd рПЛБЪБФШ ФЕЛХЭЙК ЛБФБМПЗ. cd ЛБФБМПЗ йЪНЕОЙФШ ФЕЛХЭЙК ЛБФБМПЗ. mkdir ЛБФБМПЗ уПЪДБФШ ОПЧЩК ЛБФБМПЗ ВЕЪ ЖБКМПЧ У ЙНЕОЕН ЛБФБМПЗ. rmdir ЛБФБМПЗ уФЕТЕФШ (ХДБМЙФШ) ЛБФБМПЗ У ЙНЕОЕН ЛБФБМПЗ. ьФПФ ЛБФБМПЗ ДПМЦЕО ВЩФШ РХУФ, Ф.Е. Ч ОЕН ОЕ ДПМЦОП ВЩФШ ЖБКМПЧ. man ЛПНБОДБ чЩЧЕУФЙ ОБ ЬЛТБО УРТБЧЛХ пу UNIX РП ЛПНБОДЕ ЛПНБОДБ. uuencode ПЛПОЮБФЕМШОПЕ-ЙНС ЧЩИПДОПК-ЖБКМ уПЪДБФШ ФЕЛУФПЧХА ЧЕТУЙА ДЧПЙЮОПЗП ЖБКМБ, ЗПДОХА ДМС РЕТЕУЩМЛЙ ЬМЕЛФТПООПК РПЮФПК. пЛПОЮБФЕМШОПЕ-ЙНС — ЬФП ЙНС, ЛПФПТПЕ ЖБКМ РПМХЮБЕФ РПУМЕ ТБУРБЛПЧЛЙ; ЖБКМ — ЙНС ЛПДЙТХЕНПЗП ЖБКМБ; ЧЩИПДОПК-ЖБКМ — ЪБЛПДЙТПЧБООЩК ЖБКМ, ЛПФПТЩК РПДМЕЦЙФ ПФРТБЧЛЕ РП ЬМЕЛФТПООПК РПЮФЕ. уЙНЧПМЩ > Й uudecode ЪБЛПДЙТПЧБООЩК-ЖБКМ лПНБОДБ, ПВТБФОБС ЛПНБОДЕ uuencode. compress ЖБКМ уЦБФШ ЖБКМ ФБЛ, ЮФПВЩ ПО ЪБОЙНБМ НЕОШЫЕ НЕУФБ Ч РБНСФЙ. ч ТЕЪХМШФБФЕ РПМХЮБЕФУС ДЧПЙЮОЩК ЖБКМ У ФЕН ЦЕ ЙНЕОЕН, ЮФП Й ЙУИПДОЩК, Й УХЖЖЙЛУПН .Z. йУИПДОЩК ЖБКМ ХДБМСЕФУС. уЦБФЩК ЖБКМ ОЕМШЪС РЕТЕУЩМБФШ РП ЬМЕЛФТПООПК РПЮФЕ, Ф.Л. ПО ДЧПЙЮОЩК, ОП ЕЗП НПЦОП РТЕПВТБЪПЧБФШ Ч ФЕЛУФПЧЩК ЛПНБОДПК uuencode. рПДПВОХА ПРЕТБГЙА Ч UNIX ЧЩРПМОСЕФ gzip. uncompress ЖБКМ рПМХЮЙФШ ЙУИПДОЩК ЖБКМ ЙЪ УЦБФПЗП ЖБКМБ. рПДПВОХА ПРЕТБГЙА Ч UNIX ЧЩРПМОСЕФ gunzip. tar ьФБ ЛПНБОДБ РТЕДОБЪОБЮБМБУШ ДМС УПЪДБОЙС БТИЙЧПЧ НБЗОЙФОЩИ МЕОФ (tape archive), ОП ЙУРПМШЪХЕФУС Й ДМС УПЪДБОЙС БТИЙЧПЧ ЖБКМПЧ (ПВЯЕДЙОЕОЙК, ЧЛМАЮБАЭЙИ ОЕУЛПМШЛП ЖБКМПЧ). рПДПВОЩЕ БТИЙЧЩ ЧУФТЕЮБАФУС Ч Internet. уФТХЛФХТБ ЬФПК ЛПНБОДЩ ДПЧПМШОП ОЕПВЩЮОБ. рПЬФПНХ ЧНЕУФП ЕЕ ПРЙУБОЙС ОЙЦЕ РТЙЧЕДЕОЩ ФТЙ РТЙНЕТБ ЛПНБОДЩ tar, ЛПФПТЩИ чБН ВХДЕФ ДПУФБФПЮОП ДМС ТБВПФЩ. ч ЬФЙИ РТЙНЕТБИ ЖБКМ.tar — БТИЙЧ, УПЪДБООЩК ЛПНБОДПК tar. ч РЕТЧЩИ ДЧХИ ЛПНБОДБИ НЩ ВХДЕН ТБВПФБФШ У БТИЙЧПН, РПМХЮЕООЩН ЙЪЧОЕ. ч РПУМЕДОЕН УМХЮБЕ НЩ УБНЙ УПЪДБДЙН БТИЙЧ.
% tar Уf file.tar list
% tar tf file.tar
% tar xf file.tar

уФБОДБТФОЩК ЧЧПД Й ЧЩЧПД

пДОПК ЙЪ УЙМШОЩИ УФПТПО ПРЕТБГЙПООПК УЙУФЕНЩ UNIX СЧМСЕФУС ЗЙВЛПУФШ ЕЕ УЙУФЕНЩ ЧЧПДБ-ЧЩЧПДБ. нОПЗЙЕ ЛПНБОДЩ РПУЩМБАФ УЧПА ЧЩИПДОХА ЙОЖПТНБГЙА ОБ ФЕТНЙОБМ. чНЕУФП ЬФПЗП чЩ НПЦЕФЕ РХФЕН РЕТЕОБЪОБЮЕОЙС ЪБРЙУБФШ ЧЩИПДОХА ЙОЖПТНБГЙА МАВПК ЛПНБОДЩ Ч ЖБКМ. бОБМПЗЙЮОЩН ПВТБЪПН, НОПЗЙЕ ЛПНБОДЩ РТЙОЙНБАФ ЧИПДОХА ЙОЖПТНБГЙА У ЛМБЧЙБФХТЩ, ОП чЩ НПЦЕФЕ ЧЩРПМОЙФШ РЕТЕОБЪОБЮЕОЙЕ ФБЛ, ЮФПВЩ ЧЧПД РТПЙЪЧПДЙМУС ЙЪ ЖБКМБ. (уЕЛТЕФ УПУФПЙФ Ч ФПН, ЮФП пу UNIX ТБУУНБФТЙЧБЕФ ЧУЕ ПРЕТБГЙЙ ЧЧПДБ-ЧЩЧПДБ ПДЙОБЛПЧП — ЧУЕ «ЧЩЗМСДЙФ» ЛБЛ ЖБКМ. дМС ТБВПФЩ У UNIX РПОЙНБФШ, ЮФП ЬФП ЪОБЮЙФ, ОЕ ПВСЪБФЕМШОП.)

> ЖБКМ уФБОДБТФОЩК ЧЩЧПД. рПНЕУФЙФШ ЧЩИПДОХА ЙОЖПТНБГЙА Ч ЖБКМ, Б ОЕ РПУЩМБФШ ЕЕ ОБ ЬЛТБО. фП, ЮФП ОБИПДЙМПУШ Ч ЖБКМЕ ТБОШЫЕ, ВХДЕФ ХОЙЮФПЦЕОП. оБРТЙНЕТ, ЕУМЙ чЩ ИПФЙФЕ, ЮФПВЩ УРЙУПЛ ЖБКМПЧ чБЫЕЗП ЛБФБМПЗБ ОЕ ЧЩЧПДЙМУС ОБ ЬЛТБО, Б ВЩМ ЪБРЙУБО Ч ЖБКМ, ОЕПВИПДЙНП ДБФШ УМЕДХАЭХА ЛПНБОДХ: >> ЖБКМ уФБОДБТФОЩК ЧЩЧПД У ДПВБЧМЕОЙЕН. дПРЙУБФШ ЧЩИПДОХА ЙОЖПТНБГЙА Ч ЖБКМ УМЕДПН ЪБ ЕЗП УПДЕТЦЙНЩН. уФБОДБТФОЩК ЧЧПД. чЪСФШ ЧЩИПДОХА ЙОЖПТНБГЙА ЙЪ ЖБКМБ, Б ОЕ У ЛМБЧЙБФХТЩ. уФБОДБТФОЩК ЧЧПД Й ЧЩЧПД ЙУРПМШЪХАФУС ХРПНСОХФПК ЧЩЫЕ ЛПНБОДПК uuencode. | ДТХЗБС-ЛПНБОДБ лПОЧЕКЕТ. чЪСФШ УФБОДБТФОЩК ЧЩЧПД ПДОПК РТПЗТБННЩ Й ЙУРПМШЪПЧБФШ ЛБЛ УФБОДБТФОЩК ЧЧПД ДТХЗПК. ьФП ПДОБ ЙЪ УБНЩИ ВПЗБФЩИ ЧПЪНПЦОПУФЕК пу UNIX; ЕЕ НПЦОП ЙУРПМШЪПЧБФШ ДМС УПЪДБОЙС УПВУФЧЕООЩИ ЛПНБОД. рТЕДРПМПЦЙН, чБН ОХЦЕО УРЙУПЛ ЧУЕИ ЖБКМПЧ, РТЙОБДМЕЦБЭЙИ edk. ьФХ ПРЕТБГЙА ОЕМШЪС ЧЩРПМОЙФШ У РПНПЭША ЛМАЮЕК ЛПНБОДЩ ls, ОП, ЙУРПМШЪХС ЛПОЧЕКЕТ, НПЦОП ПВЯЕДЙОЙФШ ЛПНБОДЩ ls -l Й grep:
лПНБОДБ ls -l ЧЩДБЕФ УРЙУПЛ ЧУЕИ ЖБКМПЧ, ЧЛМАЮБС ЙОЖПТНБГЙА П ЧМБДЕМШГБИ, Б grep ЙЪЧМЕЛБЕФ ЧУЕ РХОЛФЩ, УПДЕТЦБЭЙЕ УФТПЛХ edk. еУМЙ чЩ ТБВПФБЕФЕ У UNIX ТЕДЛП, ФП УНПЦЕФЕ ПВПКФЙУШ Й ВЕЪ ЛПОЧЕКЕТПЧ. оП ЕУМЙ чЩ ОБЮОЕФЕ ЧЩРПМОСФШ ОЕЮФП УХЭЕУФЧЕООПЕ У РПНПЭША ЛПОЧЕКЕТПЧ, ФП ВЩУФТП РПКНЕФЕ, ОБУЛПМШЛП ПОЙ РПМЕЪОЩ.

рЕТЕОБЪОБЮЕОЙС УФБОДБТФОПЗП ЧЧПДБ-ЧЩЧПДБ ПВЩЮОП ДБАФУС Ч ЛПОГЕ ЛПНБОДЩ, РПУМЕ ЧУЕИ ЛМАЮЕК Й РБТБНЕФТПЧ.

уФТХЛФХТБ ЛБФБМПЗПЧ

лБЛ Й Ч MS-DOS Й Macintosh, Ч ПРЕТБГЙПООПК УЙУФЕНЕ UNIX ЙЕТБТИЙЮЕУЛБС (ЙМЙ «ДТЕЧПЧЙДОБС») ЖБКМПЧБС УЙУФЕНБ. ьФП ПЪОБЮБЕФ, ЮФП ЛБЦДЩК ЖБКМ ОБИПДЙФУС Ч ЛБФБМПЗЕ, Б ЛБФБМПЗЙ НПЗХФ ЧЛМАЮБФШ ДТХЗЙЕ ЛБФБМПЗЙ. ч УЙУФЕНЕ Macintosh ЛБФБМПЗЙ ОБЪЩЧБАФУС «РБРЛБНЙ». ч УЙУФЕНБИ DOS Й Windows ЙУРПМШЪХЕФУС ФПФ ЦЕ ЖБКМПЧП-ЛБФБМПЗПЧЩК СЪЩЛ, ЮФП Й Ч UNIX.

дМС ТБЪДЕМЕОЙС ЙНЕО ЛБФБМПЗПЧ Ч UNIX ЙУРПМШЪХЕФУС РТСНБС ЛПУБС ЮЕТФБ (/). оБРТЙНЕТ, /home/john/letters/mom.brt ПЪОБЮБЕФ: «ЖБКМ mom.txl Ч ЛБФБМПЗЕ letters Ч ЛБФБМПЗЕ john Ч ЛБФБМПЗЕ home«. нПЦОП ФБЛЦЕ УЛБЪБФШ, ЮФП john — ЬФП РПДЛБФБМПЗ ЛБФБМПЗБ home Й Ф.Д.

ч ЬФПН РТЙНЕТЕ УМЕДХЕФ ПФНЕФЙФШ ЕЭЕ ОЕУЛПМШЛП НПНЕОФПЧ:

  • рЕТЕД ЙНЕОЕН УФПЙФ ЛПУБС ЮЕТФБ (/). лПУБС ЮЕТФБ Ч ОБЮБМЕ ЙНЕОЙ ПВПЪОБЮБЕФ «ЛПТОЕЧПК ЛБФБМПЗ», ЛПФПТЩК СЧМСЕФУС, РП УХФЙ, ФПЮЛПК, Ч ЛПФПТПК «УЛМЕЕОЩ» НЕЦДХ УПВПК ЧУЕ ДЙУЛЙ УЙУФЕНЩ. ч пу UNIX ОЙЛПЗДБ ОЕ ПВТБЭБАФУС Л УБНПНХ ДЙУЛХ, Б ЧУЕЗДБ — Л РПДЛБФБМПЗБН ЛПТОЕЧПЗП ЛБФБМПЗБ.
  • UNIX-УЙУФЕНЩ СЧМСАФУС НОПЗПРПМШЪПЧБФЕМШУЛЙНЙ. лБЦДПНХ РПМШЪПЧБФЕМА ОБЪОБЮБЕФУС «ДПНБЫОЙК ЛБФБМПЗ», Ч ЛПФПТПН ПО ДПМЦЕО ИТБОЙФШ УЧПЙ ЖБКМЩ, ДБЦЕ ЕУМЙ ПО — СЧМСЕФУС ЕДЙОУФЧЕООЩН РПМШЪПЧБФЕМЕН УЙУФЕНЩ. /home/john — ЬФП, ЧЕТПСФОП, ДПНБЫОЙК ЛБФБМПЗ РПМШЪПЧБФЕМС john.
  • рПМШЪПЧБФЕМЙ НПЗХФ УПЪДБЧБФШ УПВУФЧЕООЩЕ ЛБФБМПЗЙ ФБЛ, ЛБЛ дЦПО УПЪДБМ ЛБФБМПЗ letters.

чЪСФПЕ ОБНЙ Ч ЛБЮЕУФЧЕ РТЙНЕТБ ЙНС ЖБКМБ (/home/john/letters/mom.txt) ОБЪЩЧБЕФУС РПМОЩН ЙНЕОЕН, РПФПНХ ЮФП ПОП РПЛБЪЩЧБЕФ ЧЕУШ «РХФШ» Л ЖБКМХ, ОБЮЙОБСУ ЛПТОЕЧПЗП ЛБФБМПЗБ. фБЛЙЕ ЙНЕОБ ОЕ ПВСЪБФЕМШОП ЙУРПМШЪПЧБФШ РПУФПСООП. рТЙНЕОСЕФУС ГЕМЩК ТСД УПЛТБЭЕОЙК:

  • тБВПЮЙК ЛБФБМПЗ ЧУЕЗДБ Ч чБЫЕН ТБУРПТСЦЕОЙЙ. нПЦОП ХЛБЪЩЧБФШ РХФЙ ПФОПУЙФЕМШОП ФЕЛХЭЕЗП ЛБФБМПЗБ, Б ОЕ ЛПТОЕЧПЗП. оБРТЙНЕТ, ЕУМЙ ФЕЛХЭЙН СЧМСЕФУС ЛБФБМПЗ /home/john/letters, НПЦОП ХЛБЪБФШ ФПМШЛП ЙНС ЖБКМБ — mom.txt. (йНЕООП ЬФП чЩ Й ДЕМБЕФЕ Ч ВПМШЫЙОУФЧЕ УМХЮБЕЧ: ХЛБЪЩЧБЕФЕ ЖБКМ Ч ФЕЛХЭЕН ЛБФБМПЗЕ.) лПНБОДБ pwd ЧЩДБЕФ ЙНС ФЕЛХЭЕЗП ЛБФБМПЗБ; ЛПНБОДБ cdЛБФБМПЗ ДЕМБЕФ ФЕЛХЭЙН ДТХЗПК ЛБФБМПЗ. фБЛ, ЕУМЙ ФЕЛХЭЙН СЧМСЕФУС ЛБФБМПЗ /home/john, ФП ЛПНБОДБ cd letters РЕТЕОЕУЕФ чБУ Ч ЛБФБМПЗ letters лПНБОДБ mkdir ЛБФБМПЗ УПЪДБЕФ ОПЧЩК ЛБФБМПЗ, Б ЛПНБОДБ rmdir ЛБФБМПЗ ХДБМСЕФ ЛБФБМПЗ РТЙ ХУМПЧЙЙ, ЮФП ПО ОЕ УПДЕТЦЙФ ЖБКМПЧ.
  • чЩ НПЦЕФЕ ПВПЪОБЮБФШ ДПНБЫОЙК ЛБФБМПЗ ЪОБЛПН

ЙНС — «ОБЮБМШОЩК ЛБФБМПЗ РПМШЪПЧБФЕМС ЙНС«. оБРТЙНЕТ,

john/letters/mom.txt — ЕЭЕ ПДЙО УРПУПВ ХЛБЪБФШ ЖБКМ дЦПОБ. лПНБОДБ cd ВЕЪ РБТБНЕФТПЧ РТЕДОБЪОБЮЕОБ ДМС ЧПЪЧТБФБ Ч ОБЮБМШОЩК ЛБФБМПЗ, РТЙ ЬФПН ОЕ ХЮЙФЩЧБЕФУС, ПФЛХДБ чЩ ОБЮБМЙ ТБВПФХ.
уЙНЧПМЩ .. ПВПЪОБЮБАФ «ТПДЙФЕМШУЛЙК ЛБФБМПЗ». юБЭЕ ЧУЕЗП ПОЙ ЙУРПМШЪХАФУС У ЛПНБОДБНЙ cd. оБРТЙНЕТ, ЕУМЙ ФЕЛХЭЙН СЧМСЕФУС ЛБФБМПЗ

john/letters, ФП ЛПНБОДБ cd .. РЕТЕОЕУЕФ чБУ Ч ЛБФБМПЗ

чБН УМЕДХЕФ ЪОБФШ, ЛБЛ UNIX ПТЗБОЙЪХЕФ ЖБКМЩ. ч ПФМЙЮЙЕ ПФ РЕТУПОБМШОЩИ ЛПНРШАФЕТПЧ, ЗДЕ ЙУРПМШЪХАФУС ПФОПУЙФЕМШОП ОЕВПМШЫЙЕ ДЙУЛЙ, UNIX-УЙУФЕНЩ ПВЩЮОП ТБВПФБАФ У ВПМШЫЙНЙ ДЙУЛБНЙ, РТЙЮЕН Ч ЪОБЮЙФЕМШОЩИ ЛПМЙЮЕУФЧБИ. зЙЗБВБКФОЩЕ ДЙУЛЙ ЪДЕУШ ОЕ ТЕДЛПУФШ, Б НОПЗЙЕ УЙУФЕНЩ ЙУРПМШЪХАФ ОЕУЛПМШЛП ДЙУЛПЧПДПЧ. ч ВПМШЫПК УЙУФЕНЕ ЙИ НПЦЕФ ВЩФШ ДЕУСФПЛ Й ВПМЕЕ. юЕН ВПМШЫЕ ПВЯЕН ДЙУЛПЧПК РБНСФЙ, ФЕН ВПМШЫЕЕ ЪОБЮЕОЙЕ РТЙПВТЕФБАФ ЛБФБМПЗЙ, У РПНПЭША ЛПФПТЩИ НПЦОП РТБЧЙМШОП ЕЕ ПТЗБОЙЪПЧБФШ.

дПРХУФЙНЩЕ ЙНЕОБ ЖБКМПЧ

ч ПРЕТБГЙПООПК УЙУФЕНЕ UNIX РТБЧЙМ ЙУРПМШЪПЧБОЙС ЙНЕО ЖБКМПЧ ОЕ ФБЛ ХЦ НОПЗП. ч ОПЧЕКЫЙИ UNIX-УЙУФЕНБИ ЙНЕОБ ЖБКМПЧ НПЗХФ ЙНЕФШ МАВХА ДМЙОХ Й ЧЛМАЮБФШ РПЮФЙ ЧУЕ УЙНЧПМЩ, ЛТПНЕ ЛПУПК ЮЕТФЩ, ЛПФПТБС ЙУРПМШЪХЕФУС ДМС ТБЪДЕМЕОЙС ЛБФБМПЗПЧ. мХЮЫЕ, ПДОБЛП, ПЗТБОЙЮЙФШУС УФТПКОЩНЙ Й РТПРЙУОЩНЙ ВХЛЧБНЙ, ГЙЖТБНЙ, ФПЮЛБНЙ Й ЪБРСФЩНЙ. рТПВЕМЩ Й ДТХЗЙЕ УРЕГЙБМШОЩЕ УЙНЧПМЩ ФТЕВХАФ УРЕГЙБМШОПК ПВТБВПФЛЙ. чНЕУФП ФПЗП, ЮФПВЩ ПВЯСУОСФШ, ЛБЛ ЬФП УДЕМБФШ, С УПЧЕФХА чБН ПФЛБЪБФШУС ПФ ЙИ ЙУРПМШЪПЧБОЙС.

оЕ УФБЧШФЕ Ч ОБЮБМЕ ЙНЕОЙ ЖБКМБ ФПЮЛХ; ЛПНБОДБ ls ОЕ ОБКДЕФ ФБЛПК ЖБКМ Ч УРЙУЛЕ, ЕУМЙ чЩ ОЕ ХЛБЦЕФЕ ЕЕ У ЛМАЮПН . йУРПМШЪПЧБОЙЕ ФПЮЛЙ Ч ЛБЮЕУФЧЕ РЕТЧПЗП УЙНЧПМБ ЙНЕОЙ ЖБКМБ РПЪЧПМСЕФ «РТСФБФШ» ПРТЕДЕМЕООЩЕ ЖБКМЩ, ЮФПВЩ ПОЙ ОЕ «ЪБЗТСЪОСМЙ» УРЙУЛЙ ЛБФБМПЗПЧ. пДОБЛП ЕУМЙ чЩ ОПЧЙЮПЛ Ч UNIX, ФП ЬФБ ПУПВЕООПУФШ НПЦЕФ ЧЧЕУФЙ чБУ Ч ЪБВМХЦДЕОЙЕ.

уЙНЧПМЩ РПДУФБОПЧЛЙ (ЫБВМПОЩ) Ч ЙНЕОБИ ЖБКМПЧ

ч ПРЕТБГЙПООПК УЙУФЕНЕ UNIX Ч ЛБЮЕУФЧЕ УФБОДБТФОЩИ УЙНЧПМПЧ РПДУФБОПЧЛЙ (ЫБВМПОПЧ) ДМС ЙНЕО ЖБКМПЧ РТЙОСФЩ *, ? Й []. ч ОБУФПСЭЕЕ ЧТЕНС ЮБЭЕ ЧУЕЗП ЙУРПМШЪХЕФУС ЪЧЕЪДПЮЛБ. ьФЙ ХОЙЧЕТУБМШОЩЕ УЙНЧПМЩ ЙНЕАФ УМЕДХАЭЕЕ ЪОБЮЕОЙЕ:

  • * ЙУРПМШЪХЕФУС ДМС ПВПЪОБЮЕОЙС МАВПЗП ПВЯЕЛФБ. оБРТЙНЕТ, РТПУФП * ПВПЪОБЮБЕФ МАВПК ЖБКМ ЛБФБМПЗБ; *.txt — ЧУЕ ЙНЕОБ ЖБКМПЧ У ТБУЫЙТЕОЙЕН txt; gorilla.* — ЧУЕ ЙНЕОБ ЖБКМПЧ, ОБЮЙОБАЭЙЕУС УП УМПЧБ gorilla.
  • ? ПВПЪОБЮБЕФ МАВПК (ОП ФПМШЛП ПДЙО) УЙНЧПМ. оБРТЙНЕТ, source.? ПВПЪОБЮБЕФ source.h, source.c, source.y Й Ф.Д.
  • [. ] ПВПЪОБЮБЕФ МАВПК УЙНЧПМ ЙЪ ХЛБЪБООЩИ Ч УЛПВЛБИ. чЩ НПЦЕФЕ ХЛБЪЩЧБФШ ПДЙОПЮОЩЕ УЙНЧПМЩ (ОБРТЙНЕТ, [chyg] ПВПЪОБЮБЕФ У, ш, Х ЙМЙ f); ДЙБРБЪПО ([Б-z] ПВПЪОБЮБЕФ МАВХА УФТПЮОХА ВХЛЧХ, Б [a-z0-9A-Z] — МАВХА ВХЛЧХ ЙМЙ ГЙЖТХ). пФНЕФЙН, ЮФП Ч ПДОПН ДЙБРБЪПОЕ ОЕМШЪС УПЮЕФБФШ УФТПЮОЩЕ Й РТПРЙУОЩЕ ВХЛЧЩ ЙМЙ ВХЛЧЩ Й ГЙЖТЩ. [Б-z] ЙМЙ [б-9] РТЙЧЕДХФ Л ХДЙЧЙФЕМШОЩН ТЕЪХМШФБФБН — ЧПЪНПЦОП, чЩ ДПУФЙЗОЕФЕ ГЕМЙ, ОП МЙЫШ ЕУМЙ чБН ПЮЕОШ РПЧЕЪЕФ.

чЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ ЧУЕ УЙНЧПМЩ РПДУФБОПЧЛЙ ОЕЪБЧЙУЙНП ПФ ФПЗП, У ЛБЛПК ЧЕТУЙЕК UNIX ТБВПФБЕФЕ.

л УПЦБМЕОЙА, УЙНЧПМЩ РПДУФБОПЧЛЙ ОЕМШЪС РТЙНЕОСФШ Ч ЮБУФЙ «ПВТБЪЕГ» ЛПНБОДЩ grep. чНЕУФП ЬФПЗП ЛПНБОДБ grep ЙУРПМШЪХЕФ ВПМЕЕ УМПЦОПЕ УТЕДУФЧП — «ТЕЗХМСТОЩЕ ЧЩТБЦЕОЙС», ЛПФПТЩЕ Ч ЬФПК ЛОЙЗЕ ТБУУНБФТЙЧБФШУС ОЕ ВХДХФ. лПОЕЮОП, Ч ЬМЕНЕОФЕ ЖБКМ ЛПНБОДЩ grep УЙНЧПМЩ РПДУФБОПЧЛЙ ЙУРПМШЪПЧБФШ НПЦОП. оБРТЙНЕТ, ЛПНБОДБ

ПУХЭЕУФЧМСЕФ РПЙУЛ ЙНЕОЙ дЦПОБ ЧП ЧУЕИ ЖБКМБИ ФЕЛХЭЕЗП ЛБФБМПЗБ.

мЙФЕТБФХТБ

уХЭЕУФЧХЕФ НОПЗП ЛОЙЗ РП пу UNIX. чПФ ОЕЛПФПТЩЕ ЙЪ ОЙИ, ЛПФПТЩЕ НПЗХФ чБН РТЙЗПДЙФШУС:

Learning the UNIX Operating System, БЧФПТЩ Grace Todino, John Strang, Jerry Peek (O’Reilly & Associates). OПТПЫЙК ЧЧПДОЩК ЛХТУ. лТБФЛП Й РП ФЕНЕ, РПОСФОП ОПЧЙЮЛБН.

Life with UNIX БЧФПТ Don Libes (Prentice-Hall, 1989). еЭЕ ПДЙО ЧЧПДОЩК ЛХТУ, ЛПФПТЩК РПНПЗ НОПЗЙН.

UNIX in Б Nutshell (O’Reilly & Associates). EТБФЛЙК РЕТЕЮЕОШ ЛПНБОД пу UNIX. еУФШ ТБЪОЩЕ ЧБТЙБОФЩ ЬФПК ЛОЙЗЙ ДМС ТБЪМЙЮОЩИ ЧЕТУЙК UNIX.

Learning the Vi Editor, БЧФПТ Linda Lamb (O’Reilly & Associates); Learning Emacs, БЧФПТЩ Deb Cameron Й Bill Rosenblatt (O’Reilly & Associates). AБЫБ ТБВПФБ У ПРЕТБГЙПООПК УЙУФЕНПК ОЕ ВХДЕФ РТПДХЛФЙЧОПК, ЕУМЙ чЩ ОЕ УНПЦЕФЕ ТЕДБЛФЙТПЧБФШ ЖБКМЩ. ч ПРЕТБГЙПООПК УЙУФЕНЕ UNIX ЮБЭЕ ЧУЕЗП ЙУРПМШЪХАФУС ТЕДБЛФПТЩ vi Й emacs. пОЙ УМЙЫЛПН УМПЦОЩ, ЮФПВЩ ПРЙУЩЧБФШ ЙИ Ч ЬФПК ЛОЙЗЕ, Б ХЛБЪБООЩЕ ЙЪДБОЙС — ЬФП ПФМЙЮОЩЕ ПВТБЪГЩ РПРХМСТОПК МЙФЕТБФХТЩ.

Илон Маск рекомендует:  Asp файл content schedule
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL