Основы linux от основателя gentoo. часть 1 (1/4): bash, основы навигации

Семейства UNIX-систем

Распространённые семейства:

  • Linux
    • Debian (Ubuntu, Mint, elementaryOS…)
    • RedHat (Fedora, CentOS…)
    • SUSE (OpenSUSE…)
    • Android, Embedded Linux
  • BSD (FreeBSD, OpenBSD, NetBSD)
  • Darwin (iOS, OS X)

Дистрибутивы Linux

Ядро Linux разрабатывается одной группой разработчиков, набор пользовательских программ — другими (например, проект GNU). А многочисленные группы собирают это всё в единое целое и выпускают в виде различных дистрибутивов Linux.

Дистрибутив Linux — общее определение операционных систем, использующих ядро Linux, готовых для конечной установки на пользовательское оборудование. Кроме ядра и, собственно, операционной системы, дистрибутивы обычно содержат широкий набор приложений, таких как редакторы документов и таблиц, мультимедиа-проигрыватели, системы для работы с базами данных, и т. д. Поставляемая в рамках дистрибутива операционная система состоит из ядра Linux и, как правило, включает в себя набор библиотек и утилит, выпускаемых в рамках проекта GNU, а также графическую подсистему X Window System. В настоящее время существует более шестисот дистрибутивов Linux; более половины из них поддерживаются в актуальном состоянии, что обеспечивается регулярным выпуском обновлений разработчиками дистрибутива.

Ubuntu

Примером популярного дистрибутива является Ubuntu. Он выпускается компанией Canonical. Версии выходят каждые полгода (в номере указан код и месяц выхода). Релизы, помеченные как LTS (англ. Long Term Support; «поддержка в течение длительного периода») поддерживаются дольше, чем большинство релизов Ubuntu.

Версия Ubuntu Кодовое имя Версия ядра Linux
16.04 LTS Xenial Xerus 4.4
16.10 Yakkety Yak 4.8
17.04 Zesty Zapus 4.10
18.04 LTS Bionic Beaver 4.15
18.10 Cosmic Cuttlefish 4.18

Android

ОС основана на ядре Linux и собственной реализации виртуальной машины Java от Google.

В Android используются ядра Linux из LTS-версий с модификациями от Google.

Версия Кодовое название Версия ядра
6.0 Marshmallow 3.18.10
7.0 Nougat 4.4.1
8.0 Oreo 4.10
9.0 Pie 4.4.107, 4.9.84, 4.14.42

Некоторые наработки были обратно портированы в основное ядро (например wakelocks для управления питанием). Android не использует библиотеку GNU C (вместо неё Bionic), не использует GUI-подсистему X Window System.

FreeBSD

FreeBSD — свободная операционная система семейства UNIX, потомок AT&T Unix по линии BSD.

FreeBSD разрабатывается как целостная операционная система. Исходный код ядра, драйверов устройств и базовых пользовательских программ содержится в одном дереве системы управления версиями. Это отличает FreeBSD от GNU/Linux.

FreeBSD хорошо зарекомендовала себя как система для построения интранет и интернет-сетей и серверов. Она предоставляет надёжные сетевые службы и эффективное управление памятью.

Помимо своей стабильности, FreeBSD популярна и благодаря своей лицензии, которая существенно отличается от широко известной лицензии GNU GPL. Лицензия BSD позволяет использовать код не только в свободном ПО, но и в проприетарном. В отличие от GNU LGPL, которая требует раскрытия исходных кодов, лицензия BSD является более простой и непритязательной, требуя лишь упоминания заимствования, авторства и отказ от навязывания ответственности (нельзя отсылать пользователей своего продукта к авторам заимствованного кода).

macOS

Основа системы — POSIX-совместимая операционная система Darwin, являющаяся свободным программным обеспечением. Её ядром является XNU, в котором используется микроядро Mach и стандартные службы BSD. Все возможности Unix в macOS доступны через консоль.

Поверх этой основы в Apple разработано много проприетарных компонентов, таких как Cocoa и Carbon, Quartz.

Актуальной версией является 10.14.3 (22 января 2019 года).

Движение за свободное ПО

Теперь мы можем обратиться к причине, по которой Linux-системы добились больших успехов, в то время как BSD-системы потерпели в этом неудачу.

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

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

Примечание: IBM официально перешла на GNU/Linux в 2000 году. В 2019 году они купили ведущего коммерческого поставщика GNU/Linux — компанию Red Hat. Даже Oracle, больше известная своими базами данных, нежели операционными системами (несмотря на покупку Sun Microsystems), лицензирует версию GNU/Linux — Oracle Linux.

Академическое и деловое признание свободного программного обеспечения с открытым исходным кодом демонстрирует то, насколько изменилось это движение со времен расцвета BSD. Ричард Столлман объединил движение за свободное программное обеспечение с проектом GNU. Некоторое время спустя сообщество сторонников ПО с открытым исходным кодом набрало силу, о чем свидетельствовало проведение в том же году крупной конференции по свободному программному обеспечению под названием LinuxWorld Conference and Expo (различные специалисты по свободному программному обеспечению также называют 1998 год поворотным моментом для свободного программного обеспечения).

Как и где 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

В январе 1991 года, финский студент Линус Торвальдc, находясь под впечатлением от купленной им книги «Проектирование и реализация операционных систем» автора Эндрю С. Таненбаума, с целью детального изучения концепций и строения ОС Unix, решает купить новый компьютер на базе процессора Intel 80386, на который ставит разработанную Таненбаумом учебную ОС Minix.

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

И тогда в августе 1991 года Торвальдс объявляет в сети Usenet о том, что создает свою собственную (свободную) операционную систему с открытыми исходными кодами — Linux. Стоит отметить, что в тот момент речь еще не шла о полноценной системе, скорее это был её прообраз в виде ядра.

   17 сентября того же 1991 года, без каких-либо особо публичных объявлений, выходит Linux версии 0.01.

   Вскоре после этого, 5 октября, Торвальдс представляет версию 0.02, ставшей первой «официальной» версией своей ОС.

   А уже 16 апреля 1994, когда, по мнению Линуса, система стала полностью работоспособной, вышел первый, после более чем двух лет развития, мажорный релиз системы — Linux 1.0.

Примечание: Изначально ОС называлась Freax, что является гибридом от английских слов «freak» (чудак) и «free» (бесплатный) с окончанием X, как дань операционной системе Unix. Однако имя «Linux» системе дал Ари Леммке (Ari Lemmke), по просьбе Торвальдса разместивший ОС на FTP-сервере университета в директории , а не .

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

Позже, когда Linux немного «окреп и встал на ноги», приложения из проекта GNU заменили соответствующие программы из Minix, так как лицензия (GNU GPL) на исходные коды программ проекта GNU была более удобна для применения в молодой операционной системе.

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

Больше руководств по cli:

  • Оболочка Bash
  • Введение в сценарии оболочки Bash
  • Раковина рыбы
  • Оболочка, наблюдайте за содержимым файла по мере его заполнения
  • Как выйти из Vim
  • Редакторы UNIX
  • Команды файловой системы UNIX
  • Учебник по оболочкам Unix
  • Как установить псевдоним в оболочке macOS или Linux
  • Практическое руководство по домашнему пиву
  • Как исправить ошибку неверного пути к активному разработчику xcrun в macOS
  • Командная строка для начинающих
  • Введение в Linux
  • Как найти процесс, использующий порт
  • Команды Linux: mkdir
  • Команды Linux: cd
  • Команды Linux: pwd
  • Команды Linux: rmdir
  • Команды Linux: ls
  • Команды Linux: mv
  • Команды Linux: cp
  • Команды Linux: меньше
  • Команды Linux: хвост
  • Команды Linux: коснитесь
  • Команды Linux: cat
  • Команды Linux: найти
  • Команды Linux: ln
  • Команды Linux: ps
  • Команды Linux: echo
  • Команды Linux: вверх
  • Команды Linux: kill
  • Команды Linux: killall
  • Команды Linux: псевдоним
  • Команды Linux: вакансии
  • Команды Linux: bg
  • Команды Linux: fg
  • Команды Linux: введите
  • Команды Linux: какие
  • Команды Linux: whoami
  • Команды Linux: кто
  • Команды Linux: очистить
  • Команды Linux: su
  • Команды Linux: sudo
  • Команды Linux: chown
  • Команды Linux: chmod
  • Команды Linux: passwd
  • Команды Linux: открыть
  • Команды Linux: wc
  • Команды Linux: история
  • Команды Linux: du
  • Команды Linux: umask
  • Команды Linux: grep
  • Команды Linux: man
  • Команды Linux: uname
  • Команды Linux: сортировка
  • Команды Linux: uniq
  • Команды Linux: diff
  • Команды Linux: nohup
  • Команды Linux: df
  • Команды Linux: xargs
  • Команды Linux: gzip
  • Команды Linux: gunzip
  • Команды Linux: ping
  • Команды Linux: traceroute
  • Команды Linux: tar
  • Команды Linux: экспорт
  • Команды Linux: crontab
  • Команды Linux: dirname
  • Команды Linux: базовое имя
  • Команды Linux: printenv
  • Команды Linux: env
  • Краткое руководство по редактору ed
  • Краткое руководство по vim
  • Краткое руководство по emacs
  • Краткое руководство по нано
  • Linux, на устройстве не осталось места
  • Как использовать Netcat

Что такое Linux?

Linux — это семейство Unix-подобных операционных систем, использующих ядро Linux, которое разработал финно-американский программист Линус Торвальдс

ОС, использующие ядро Linux, называются дистрибутивами Linux, и они являются такими же операционными системами как Microsoft Windows или Apple macOS, но с одной очень важной особенностью, а именно — их исходные коды являются открытыми, так как они распространяются под лицензией GNU GPL, которая подразумевает создание свободного и открытого программного обеспечения (open source software). Это означает, что у любого пользователя есть право изучать и изменять исходный код

Примечание: Стоит отметить, что есть также и платные дистрибутивы Linux, например, , Astra Linux Special Edition и др.

Официальным талисманом Linux с 1996 года является пингвин Tux (сокр. от «Torvalds UniX«). Идею использовать пингвина в качестве талисмана Linux выдвинул создатель этого ядра Линус Торвальдс.

Пингвин Tux — талисман Linux

Отображение файла с помощью команды cat

Чтобы просмотреть файл, введите:

cat filename
cat pathtofile
cat etcpasswd

cat filename
cat /path/to/file
cat /etc/passwd

Примеры результатов:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
....
...
..hplip:x:109:7:HPLIP system user,,,:/var/run/hplip:/bin/false
vivek:x:1000:1000:Vivek Gite,,,:/home/vivek:/bin/bash
bind:x:110:118::/var/cache/bind:/bin/false
haldaemon:x:111:119:Hardware abstraction layer,,,:/var/run/hald:/bin/false
sshd:x:112:65534::/var/run/sshd:/usr/sbin/nologin
mysql:x:113:121:MySQL Server,,,:/var/lib/mysql:/bin/false

Linux везде

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

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

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

Что нового появилось в UNIX, чего до неё не было

Вот что впервые появилось именно в UNIX — и в виде идей, и в виде готового кода:

Файловая система с любой глубиной вложенности. Мы сейчас привыкли к папкам, в которых можно создавать другие папки, а в них третьи и так почти до бесконечности. Но до UNIX глубина вложенности была ограничена — нельзя было создать, например, папку внутри другой папки.

Модель работы с файлами. Пользователю раньше нужно было самому предусмотреть формат, размер и физическое размещение файлов на диске. В UNIX это всё взяла на себя операционная система.

Работа с программами напрямую. До UNIX настройку работы всех программ можно было сделать только в командной строке: запустил → компьютер что-то посчитал → показал результат. Если нужно изменить параметры, то это надо было делать через командную строку. В новой системе можно было менять настройки программ прямо внутри них — именно так и устроены сейчас все программы.

Вывод всего как текста. Раньше компьютеры работали с битами и выводили битовые последовательности. Их нужно было отдельно разбивать на нужные фрагменты или использовать встроенные программы для перевода битов в байты, а из них — в текст.

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

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

Язык C. Этот язык появился в UNIX как замена языка B. Но B был интерпретируемым языком (как Python), и для запуска программ нужен был его интерпретатор. Язык C — компилируемый, а значит, готовые программы можно запускать на любом совместимом компьютере, даже если на нём нет компилятора C.

Протокол TCP/IP. До UNIX этот протокол не был популярен, и компьютеры связывались друг с другом по более старому протоколу, который не имел столько возможностей. Теперь благодаря этой операционной системе весь мир пользуется интернетом, построенным на протоколе TCP/IP. Справедливости ради, этот протокол появился не в первой поставке UNIX. 

Различия

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

Будучи бесплатными, Linux и остальные типы UNIX-систем являются системами с открытым программным кодом. Любой может изменить исходный код и внести усовершенствования, обновления и модификации. Существует большая группа посвященных энтузиастов, которые используют свое свободное время для работы над подобным программным обеспечением. Windows же является проприетарным программным обеспечением корпорации Microsoft, поэтому пользователи зависимы от получения выпускаемых Microsoft обновлений. Не существует способа изменения программного кода отдельным пользователем.

Главное различие между двумя типами операционных систем заключается в программном обеспечении, которое поддерживает каждая из них. Windows подходит для продуктов Microsoft: например, базы данных MS Access, ASP для предоставления динамического содержимого и VBScrpt для усовершенствования сайта. UNIX не поддерживает эти технологии. И если вам абсолютно необходим ASP или VBScript, то вы должны выбрать хостинг на базе Windows. UNIX предоставляет динамический контент, используя такое программное обеспечение, как PHP, CGI и MySQL — технологии, которые также доступны на Windows-системах.

Windows необходима для хостинга специфичных для этой операционной системы аудио и видеофайлов. Другие типы мультимедиа, например MP3, Flash, Shockwave и Real, могут управляться как UNIX, так и Windows-системами. Сайты, созданные при помощи Microsoft FrontPage (графический пакет HTML-разработки), могут быть также размещены на обеих типах систем, в то время как базы данных MS и динамический контент недоступен для использования на UNIX-хостах.

Какая система лучше?

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

UNIX и Windows могут предоставить динамическое содержимое при помощи PHP, MySQL, так же, как и CGI. Мультимедиа также может быть размещена на обоих типах серверов, хотя Windows media (WMA и WMV) требуют размещения на сервере под управлением Windows.

Если вам совершенно необходимы базы данных Microsoft, ASP и Windows media, то выбирайте Windows. В остальных случаях веб-сайтам, возможно, лучше подойдет система на базе UNIX. Преимущества UNIX перед Windows заключается в большом выборе провайдеров хостинга, несколько более высокой стабильности и (иногда) в более низкой цене.

Можно ли играть в игры на Linux

В целом — да, но с ограничениями. Вот варианты: 

  1. Можно играть в ретроигры с помощью любого из десятков эмуляторов консоли. 
  2. Можно играть в некоторые PC-игры через эмулятор Windows (например, Wine). Игра может подтормаживать в зависимости от того, какое у вас железо и на какое железо была рассчитана игра. 
  3. Можно играть в игры, портированные на SteamOS — это собственная среда Steam на базе Linux. Компания Valve очень старается сделать как можно больше игр для этой платформы, потому что от этого зависит работа их будущей консоли SteamDeck, так что в некоторые топовые игры поиграть всё-таки можно. 
  4. Можно играть в игры, разработанные непосредственно для Linux. 

На Linux можно поиграть в Doom Eternal. А в Doom 3 можно поиграть даже на Линуксе, который работает на одноплатном компьютере Raspberry Pi 4.

Основная проблема с играми на Linux — это передовые игры, которые используют максимум возможностей видеокарты. Не на все карты и не у всех производителей есть драйверы на Linux. Хотя со временем их становится всё больше, а некоторые ребята даже пишут собственные драйверы. 

Основные характеристики

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

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

Open Software Foundation (OSF)

История показывает, что люди часто объединяются перед лицом надвигающейся внешней угрозы. Именно в таком положении оказалась большая часть компьютерной индустрии в 1988 году, когда AT&T (владелец Unix) и Sun Microsystems объявили о несколько туманном партнерстве. Было неясно, насколько AT&T увеличит и без того растущий успех Sun Microsystems, присутствовала угроза для других поставщиков. Sun Microsystems отказалась от использования SunOS — системы, с помощью которой компания коммерциализировала рынок вычислительной техники, и переняла последнюю версию Unix от AT&T — UNIX System V Release 4 (SVR4).

В ответ на перспективу потерять бизнес из-за партнерства AT&T и Sun Microsystems, остальная часть крупных поставщиков создали консорциум под названием Open Software Foundation (OSF). Группа хорошо проявила себя и начала подавать большие надежды, создав инструментарий для X Window System под названием Motif. Большинство разработчиков сочли Motif более привлекательным, чем соответствующий инструментарий, предлагаемый Sun Microsystems, под названием OPEN LOOK. После успешного выпуска этого инструментария OSF взялась за более амбициозные проекты, включая версию Unix под названием OSF/1, серверные части компилятора, называемые ANDF (сокр. от англ. «Architectural Neutral Distribution Format») и DCE (сокр. от англ. «Distributed Computing Environment») и пр.

OSF, как и BSD, не могла координировать независимых, а иногда и конкурирующих участников. Компании-участницы не могли отказаться от своих противоречивых интересов в пользу настоящего сотрудничества. «Разори соседа», казалось, было их конкурентной стратегией.

Для чего используется Linux

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

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

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

Что такое Linux?

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

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

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

Однозадачные компьютеры

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

  1. Компьютер включался.
  2. Находил на носителе информации первую команду программы, которую нужно выполнить.
  3. Выполнял эту команду и переходил к следующей.
  4. Так происходило, пока в программе не заканчивались шаги или она сама не останавливалась. Тогда специальными командами оператор говорил компьютеру, где найти код для другой программы, или запускал первую программу заново.

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

Сначала такой подход всех устраивал, потом стало неудобно.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: