Команды Unix: перечень, особенности использования, частота применения

Операционные системы UNIX широко используются на современных серверах различных процессорных архитектур, рабочих станциях, сетевых и мобильных устройствах. Термин "команда UNIX" относится к семейству многопользовательских ОС. Графические интерфейсы ОС разнообразны. Но для пользователей Mac или Linux, которые хотят получить максимальную отдачу от своей операционной системы, обязательно нужно познакомиться с командной строкой Unix.

История UNIX

История UNIX

Первая версия UNIX была разработана в 1969 году Кеном Томпсономом в Bell Laboratories с использованием простоя PDP-7, вскоре к нему присоединился Деннис Ричи.

Первоначально UNIX предназначался для использования внутри Bell System для программистов. Томпсон и Ричи много лет работали над разработкой различных версий UNIX. Ritchie разработал язык C для поддержки UNIX. Третья версия была связана с переписыванием ОС на C. По мере продвижения UNIX он стал широко использоваться в AT&T, и поскольку исходный код был доступен, он постепенно принимался другими организациями в области компьютерных наук. Одним из самых важных достижений, предпринятых в UNIX программистами в Беркли, было обеспечение поддержки сетевых протоколов Интернета (TCP/IP).

В 1988 году BSD, AT&T UNIX и другие ОС были объединены в UNIX System V.4. Это новое поколение ОС объединило лучшие функции своих предшественников, чтобы стать стандартом и основой для AT&T UNIX, SUNOS Sun Microsystems, IBM AIX и HP-UX HP.

Преимущества ОС:

  1. UNIX обеспечивает многопользовательскую, многозадачную, защищенную оперативную память, используя минимальный объем памяти.
  2. Обеспечивает надежную защиту пользователя посредством проверки и аутентификации учетной записи.
  3. Упрощает операции ввода-вывода.
  4. Очень портативен, что означает, что он может работать на нескольких различных аппаратных платформах, что упрощает пользователям установку на любом оборудовании, которое они предпочитают использовать.

Основные компоненты операционной системы

Основные компоненты операционной системы

Основные компоненты ОС UNIX просты и не многочисленны, взаимодействие этих компонентов друг с другом уникальны. Три основных компонента системы UNX:

  • Ядро (KERNEL).
  • Оболочка (SHELL).
  • Файловая система.

Ядро UNIX управляет физическим RESO urces аппаратного компьютера, устройств, памяти, обрабатывает d (daemons). Управляет функциями между системными программами и оборудованием и выполняет все основные команды UNIX.

Ядро управляет следующими элементами:

  1. Файловая система и структуры.
  2. Управление устройствами, например, хранение данных на диске.
  3. Управление процессами, например, daemons.
  4. Управление памятью, например, пространством подкачки.

Оболочка - это интерфейс между пользователем и ядром. Она действует как командный интерпретатор. Она принимает основные команды UNIX, выданные пользователем, интерпретирует их, а затем отправляет исполняемый файл в ядро. Три наиболее распространенные оболочки: Bourne, C и Korn. Существуют также популярные open source оболочки, такие как Z и bash, оба являются расширениями Bourne.

Чтобы идентифицировать ту, которую используют в UNIX, выполняют, например, для zsh, echo-команду UNIX:

  • echo $SHELL;
  • /bin/zsh.

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

Среда разработки

Среда разработки

Интерфейс программиста в UNIX определяется вызовами. Большинство системных программ в UNIX написаны на C, а все вызовы - это C-функции. Поскольку детали вызовов известны только компилятору, это делает переносимость главной функцией UNIX-программ. Системные вызовы для манипулирования файлами - это, например: creat, open, read, write, close, link, unlink и trunc.

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

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

Недостатки командной строки:

  1. Некоторые задачи трудно или невозможно сделать в командной строке.
  2. Задачи, которые требуют большого набора текста, например, длинные имена файлов, могут раздражать и утомлять из-за отсутствия минимальной поддержки вырезания.
  3. Для большинства людей обучение и запоминание типизированных команд является сложным, если они не используют команды все время.

Преимущества функции:

  1. Почти во всех случаях она намного быстрее и проще в использовании для экспертов, а не для новичков.
  2. Она может использоваться удаленно с большей легкостью, чем GUI.
  3. Удаленный GUI - это SLUGGISH.
  4. Когда необходима абсолютная точность, мышь/GUI слишком неточны.
  5. Для сложных задач командная строка может быть написана сценарием для автоматизации процессов.

Пользовательский интерфейс

Пользовательский интерфейс

Разработчики и пользователи UNIX могут использовать программы, которые уже скомпилированы и доступны для выполнения. Эти программы можно разделить на функции, например, на каталог и файловую обработку: mkdir, ls, touch, file, rm, link, unlink, команду cat UNIX, программу для сортировки файлов sort, для сравнения файлов diff, для поиска шаблонов grep и awk. Кроме того, доступны текстовые редакторы, такие как vi, vim, sed и другие. Эти команды выполняются пользовательским интерпретатором или оболочкой.

Стандартный ввод-вывод относится к трем типам файлов, которые процесс может открыть. Они известны как стандартный ввод (дескриптор файла 0), стандартный вывод (1) и стандартная ошибка (2). Программа может считывать со стандартного ввода и отправлять вывод на экран пользователя или в файл со стандартным выходом.

Пользователь может направить стандартный вывод в файл с именем test1 или отправить файлы test1 в качестве ввода в программу:

  • [mbeuses@myserver linuxacademy]$ ls > test1;
  • [mbeuses@myserver linuxacademy]$ lpr < test1.

В UNIX есть три основные категории ввода-вывода:

  • блокирующие устройства;
  • символьные устройства;
  • сокеты для сетевой связи.

Блочные устройства, в эту категорию входят диски и лента. Блочное устройство имеет большое значение для изоляции деталей диска от остальной части ядра. Блочные устройства доступны через системный файл. Пример: /dev/sda the first scsi drive on the first scsi bus, первый диск scsi на первой scsi-шине.

Символьные устройства, эта категория включает в себя принтеры, терминалы. Пример команды идентификации терминала UNIX: /dev/null a bit bucket or bottomless sink for data.

Чтобы отобразить блок и символьные устройства в системе, выполняют следующую команду в оболочке. Усеченный вывод показывает некоторые /dev устройства на сервере UNIX.

Устройство на сервере UNIX

Традиционные команды ОС

Традиционные команды ОС

Независимо от того, какую оболочку использует юзер, всегда, когда будет вводиться команда, он будет запускать программу UNIX. Простой пример для подсчета количества файлов в каталоге /etc: IDG.

Эта последовательность команд иллюстрирует два важных понятия:

  • команда ls UNIX эквивалентная dir в Windows, отображает содержимое каталога;
  • количество слов wc.

В UNIX параметры традиционно имеют префикс с одним тире «-». Эти параметры командной строки меняют поведение программы. Часто они переопределяют значения по умолчанию, заданные в среде. Если нужно изменить способ ведения команды на постоянной основе, автоматически устанавливают переменную окружения при входе в систему. Многие команды позволяют комбинировать параметры в одной строке, например, ls–la, но другие нет. Можно узнать обо всех вариантах команды, проверив ее руководство или справочные страницы.

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

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

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

Другая команда, которая понадобится сразу, - cd, ее используют для изменения каталогов. Она похожа на аналогичную в Windows, но с существенной разницей. В UNIX все диски отображаются как один диск. Если в Windows можно иметь свои снимки на внешнем жестком диске, который отображается как E:, в Unix, этот диск может быть /home/user/pictures.

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

Дисковое пространство

Дисковое пространство

Загрузка дискового пространства - это постепенный процесс, который может занять годы. Есть две команды, которые нужно использовать, чтобы проверить свободное пространство и определить, какие файлы забивают диск: du с использованием диска и df без диска. Они оба выбирают h вариант. Чтобы понять, насколько полон диск, используют df-команду фильтра UNIX.

df команда фильтра UNIX

Для того чтобы узнать, как используется пространство, набирают du и ограничивают вывод результата на первые 10 строк. В противном случае он будет отображаться в каждом каталоге на машине, что может быть слишком сложным для понимания. Из этого списка можно увидеть, сколько места потребляется каждым каталогом. Объединив несколько команд вместе, собирают сценарий, который будет перечислять 10 лучших каталогов по использованию пространства. Команда, необходимая для сортировки вывода - sort.

Поскольку версия MacOS не может обрабатывать данные du для чтения человеком, используют m-опцию для du-отображения использования диска в мегабайтах, параметр g или k отображает данные в гигабайтах или килобайтах соответственно. Параметры n и r применяются для sort (сортировки вывода) в прямом и в обратном порядке, поэтому наибольшие каталоги появятся в верхней части списка.

Суперпользователи su и sudo

Суперпользователи su и sudo

Ряд команд относится к системному администрированию. Главная команда для системного администрирования - su. Это означает суперпользователь и относится к учетной записи администратора или пользователя root. Все файлы, принадлежащие системе, принадлежат этому пользователю.

Связанная с ней sudo позволяет стать суперпользователем для одной команды. Зачем использовать sudo вместо su? Практика показывает, что это необходимо для того чтобы пользователь не применял часто root, из-за возможности нанести непоправимый вред системе. Лучше делать все возможное (в статусе обычного пользователя) и становится суперпользователем только тогда, когда это крайне необходимо. Получение привилегии суперпользователя, будет зависеть от дистрибутива UNIX.

Иногда текущий пользователь не имеет разрешения su. В некоторых wheel-системах - это означает, что пользователь должен находиться в группе, а в других ОС, включая MacOS, пользователь должен находиться в sudoers-файле.

Естественно, для добавления пользователя в sudoers файл требует привилегий root. Для этого нужно выйти из учетной записи и войти в учетную запись администратора. Затем запустить sudo nano/etc/sudoers в командной строке, Nano откроет sudoer-файл в окне терминала, готовый к редактированию.

Перемещаются по файлу в Nano при помощи клавиш со стрелками. Чтобы сделать nunez, нужно прокрутить вниз до раздела «Спецификацию привилегий пользователя» и ввести строку: nunez ALL=(ALL) ALL, для пользователей root и min пользователей.

При вводе Ctrl+x вводят «Да», чтобы сохранить изменения и выйти из Nano.

Расширенные системные операторы

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

Операции с файлами:

  • chmod;
  • chown;
  • basename;
  • ln – создавать ссылки и символические ссылки на файлы и каталоги;
  • find – поиск файлов и каталогов;

Команды состояния системы:

  • last;
  • w;
  • who –r;
  • uname;
  • lsb_release – найти информацию о базовой базе Linux (LSB).

Привилегированный доступ:

  • su;
  • sudo - запускать команды с повышенными корневыми привилегиями;
  • visudo - безопасно редактировать файл /etc/sudoers.

Расширенное управление процессами:

  • ps –aef;
  • ptree;
  • kill;
  • nice;
  • renice;
  • pmap;
  • pfiles.

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

  • Awk;
  • Egrep;
  • Sed;
  • Tr.

Команды файловых систем:

  • Fstyp;
  • Df;
  • du.

Управление файловой системой:

  • Mount;
  • Umount;
  • Fsck;
  • Growfs;
  • tune2fs – настройка параметров настраиваемой файловой системы (для ext2/ext3);
  • mkfs;
  • Networking;
  • iptables – управлять правилами брандмауэра на сервере Linux;
  • netstat;
  • traceroute.

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

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

Команда Linux cat используется для отображения содержимого текстовых файлов и объединения нескольких файлов в один файл, в отличие от команды ls UNIX, в которой перечислено содержимое каталогов файлов и каталогов. Нужно учитывать, что cat не принимает каталоги.

Параметры cat представлены в таблице.

Вариант

Описание

cat -b

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

cat -n

добавлять номера строк во все строки

cat -s

сжимать пустые строки на одну строку

cat -E

показать $ в конце строки

cat -T

show ^ I вместо вкладок

Примеры команд cat UNIX.

Просмотр данных текстового файла:

  • $ cat list1.txt;
  • milk;
  • bread;
  • apples;
  • $ cat list2.txt;
  • house;
  • car;
  • $.

Объединить 2 текстовых файла:

  • $ cat list1.txt list2.txt;
  • milk;
  • bread;
  • apples;
  • house;
  • car;
  • $.

Объединить 2 текстовых файла в другой файл:

  • $ cat list1.txt list2.txt > todo.txt;
  • $.

Основные примеры поиска

Основные примеры поиска

В первом find-примере Linux выполняется поиск через корневую файловую систему (/) для файла с именем Chapter1. Если он находит файл, он печатает местоположение на экране: find/-name Chapter1-type f -print.

В системах Linux и UNIX больше не нужен print-параметр в конце find-команды, поэтому можно его получить следующим образом:

  • find/-name Chapter1-type f;
  • -type f.

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

Следующая find выполняет поиск только с каталогами /usr и /home для любого файла с именем Chapter1.txt: find/usr/home -name Chapter1.txt -type f.

Чтобы выполнить поиск в текущем каталоге и во всех подкаталогах, просто используют символ для ссылки на текущий каталог в find команде UNIX, например: name Chapter1 -type f.

В следующем примере выполняется поиск в каталоге /usr для всех файлов, начинающихся с буквы Chapter. Имя файла может заканчиваться любой другой комбинацией символов. Он будет соответствовать именам файлов, таким как Chapter, Chapter1, Chapter1.bad, Chapter in the life: find /usr -name "Chapter *" -type f.

Следующая команда выполняет поиск в каталоге /usr/local для файлов, заканчивающихся расширением .html. Эти расположения файлов выводятся на экран: find/usr/local -name "* .html" -type f.

WC для подсчета количества строк, слов, символов

WC-команда UNIX и Linux используется , чтобы узнать количество подсчета новой строки, количество слов, байты и символы подсчета в файлах, указанных аргументами файлов. Синтаксис команды wc:

# wc [опции] имена файлов

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

  • wc -l: печатает количество строк в файле.
  • wc -w: печатает количество слов в файле.
  • wc -c: отображает количество байтов в файле.
  • wc -m: печатает количество символов из файла.
  • wc -L: печатает только длину самой длинной строки в файле.

Основной пример wc:

Команда wc без передачи какого-либо параметра отображает основной результат файла tecmint.txt. Три приведенных ниже числа: 12 (количество строк), 16 (количество слов) и 112 (количество байтов) файла.

[root @ tecmint ~] # wc tecmint.txt 12 16 112 tecmint.txt.

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

[root @ tecmint ~] # wc -l tecmint.txt 12 tecmint.txt.

Для подсчета слов в файле вводят следующую команду:

[root @ tecmint ~] # wc -w tecmint.txt 16 tecmint.txt.

При использовании опций c и m с командой wc будет напечатано общее количество байтов и символов в файле:

[root @ tecmint ~] # wc -c tecmint.txt 112 tecmint.txt.

[root @ tecmint ~] # wc -m tecmint.txt 112 tecmint.txt.

Команда wc UNIX позволяет использовать аргумент L, его можно использовать для печати длины количества символов в файле. Самая длинная символьная строка Scientific Linux в файле.

[root @ tecmint ~] # wc -L tecmint.txt 16 tecmint.txt.

Отображение строки текста echo

Echo - фундаментальная команды системы UNIX, используемая также в большинстве других ОС, которые предлагают строку. Она часто используется в скриптах, файлах и в составе отдельных команд, когда может понадобиться вставить текст. Многие оболочки, такие как bash, ksh и csh реализуют эхо в качестве встроенной команды.

Тег

Описание

-n

Не выводить конечную новую строку

-e

Включить интерпретацию escape-последовательностей обратной косой черты (см. Ниже список)

-E

Отключить интерпретацию escape-последовательностей обратной косой черты (это значение по умолчанию)

--help

Отобразить справочное сообщение и выйдите

--version

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

\\

Литеральный символ обратной косой черты (\)

\a

Предупреждение (символ BELL)

\b

Возврат на одну позицию.

\c

После этого не создавайте никаких дополнительных результатов.

Чтобы напечатать строку «Привет, мир!», прописывают команду консоли UNIX:

  • $ echo «Привет, мир!».
  • output: Привет, мир!.

Выполнение команд оболочки из vi

Выполнение команд оболочки из vi

Можно запускать команды UNIX и просматривать их вывод, не выходя из vi, и также можно вставить вывод ее в файл, который редактируют.

Запускают и используют оболочку ее так же, как и обычную среду UNIX, а затем выходят из оболочки и возвращаются к vi.

Тип запускаемой оболочки определяется переменной $ SHELL команды UNIX. Для запуска другой необходимо установить опцию vi shell. Возвращаются к использованию vi, введя exit или Ctrl-D. Чтобы вставить вывод из в файл, сразу после курсора:

r!command

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

UNIX делает отличную платформу для таких служебных серверов, как Domain Name System или DNS, Dynamic Host Configuration Protocol или DHCP и Web-серверов. Его архитектура сохраняет ресурсы для реальных приложений, которые нужно использовать не только для загрузки самой операционной системы. UNIX также обеспечивает стабильную и безопасную платформу для приложений, которые не требуют прямого взаимодействия с операционной системой.

Статья закончилась. Вопросы остались?
Комментарии 0
Подписаться
Я хочу получать
Правила публикации
Редактирование комментария возможно в течении пяти минут после его создания, либо до момента появления ответа на данный комментарий.