Основы Linux для front-end и back-end программистов

задняя часть внешний интерфейс программист Операционная система Linux

Просто изменил название статьи: «Основы Linux для программистов, работающих с серверной частью» -> «Основы работы с Linux для программистов, работающих с интерфейсом и серверной частью». 😁

Эта статья синхронно обновляется на моем Github:веб ссылки

Систематические знания и вопросы для интервью по изучению Java, которые я обобщил самостоятельно, в настоящее время являются открытым исходным кодом и будут продолжать улучшаться.Предложения и рекомендации приветствуются.Добро пожаловать в Star: GitHub.com/snail Climb/…

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

1. Начните со знакомства с операционной системой

1.1 Введение в операционную систему

Какую операционную систему я представляю через следующие четыре пункта:

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

操作系统分内核与外壳

1.2 Простая классификация операционных систем

  1. Windows:В настоящее время самая популярная персональная операционная система для настольных компьютеров, без представления ее знают все.
  2. Юникс:Самая ранняя многопользовательская, многозадачная операционная система.Согласно классификации операционных систем, это операционная система с разделением времени. Unix в основном используется на серверах, рабочих станциях, а теперь и на персональных компьютерах. Он играет очень важную роль в создании Интернета, компьютерной сети или модели клиент/сервер.
    Unix
  3. Linux:Linux — это набор Unix-подобных операционных систем, которые можно свободно использовать и свободно распространять.Существует множество различных версий Linux, но все они используютядро Linux. Linux можно установить на различные компьютерные устройства, такие как сотовые телефоны, планшеты, маршрутизаторы, игровые приставки, настольные компьютеры, мейнфреймы и суперкомпьютеры. Строго говоря, само слово Linux означает только ядро ​​Linux, но на самом деле люди привыкли использовать Linux для описания всей операционной системы, основанной на ядре Linux и использующей различные инструменты и базы данных проекта GNU.

Linux

2. Предварительное изучение Linux

2.1 Введение в Linux

Мы уже представили Linux выше, здесь мы подчеркнем только три момента.

  • Unix-подобные системы:Linux — бесплатная Unix-подобная операционная система с открытым исходным кодом.
  • Ядро линукса:Строго говоря, само слово Linux означает только ядро ​​Linux.
  • Отец Линукса:Легендарная фигура в области программирования. Он является первым автором ядра Linux, а затем инициировал этот проект с открытым исходным кодом, выступая в качестве главного архитектора и координатора проекта ядра Linux, и сегодня является одним из самых известных программистов и хакеров в мире. Он также инициировал Git, проект с открытым исходным кодом, и является основным разработчиком.

Linux

2.2 Введение в рождение Linux

  • В 1991 году финский компьютерный энтузиаст-любитель Линус Торвальдс написал систему, подобную Minix (подобную Unix операционную систему, основанную на микроядерной архитектуре), которую администратор ftp назвал Linux и которая присоединилась к программе GNU Free Software Foundation;
  • Linux отмечен симпатичным пингвином, который символизирует смелую и любящую жизнь.

2.3 Классификация Linux

Linux делится на два типа по степени нативности:

  1. Версия ядра:Linux — это не операционная система, строго говоря, Linux — это просто ядро ​​операционной системы. Что такое ядро? Ядро устанавливает платформу для связи между компьютерным программным обеспечением и аппаратным обеспечением, а ядро ​​​​обеспечивает системные службы, такие как управление файлами, виртуальная память и ввод-вывод устройств;
  2. Версия выпуска:Некоторые организации или компании повторно распространяли версию на основе вторичной разработки версии ядра. Существует множество версий дистрибутива Linux (много используются ubuntu и CentOS, для начинающих рекомендуется выбирать CentOS), как показано на следующем рисунке:
    Linux发行版本

Обзор трех файловых систем Linux

3.1 Введение в файловую систему Linux

В операционной системе Linux все ресурсы, которыми управляет операционная система, такие как сетевые карты, дисковые накопители, принтеры, устройства ввода и вывода, обычные файлы или каталоги, рассматриваются как файл.

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

3.2 Типы файлов и структура каталогов

Linux поддерживает 5 типов файлов:

文件类型

Структура каталогов Linux выглядит следующим образом:

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

Linux的目录结构

Общие описания каталогов:

  • /бин:Хранить бинарные исполняемые файлы (ls, cat, mkdir и т. д.), часто используемые команды обычно здесь;
  • /и т.д:Хранить файлы управления системой и конфигурации;
  • /домой:Корневой каталог, в котором хранятся все пользовательские файлы, является базовой точкой домашнего каталога пользователя.Например, домашний каталог пользователя /home/user, который может быть представлен ~user;
  • /USR:Используется для хранения системных приложений;
  • /опция:Там, где размещаются дополнительно установленные дополнительные пакеты приложений. При нормальных обстоятельствах мы можем установить tomcat и т. д. здесь;
  • /процесс:Каталог виртуальной файловой системы — это отображение системной памяти. Вы можете получить прямой доступ к этому каталогу для получения системной информации;
  • /корень:Домашний каталог суперпользователя (системного администратора) (привилегированный класс ^o^);
  • /sbin:Хранит двоичные исполняемые файлы, доступ к которым может получить только root. Здесь хранятся команды управления системного уровня и программы, используемые системными администраторами. Например, ifconfig и т. д.;
  • /dev:Используется для хранения файлов оборудования;
  • / млн:Системный администратор устанавливает точку установки временной файловой системы.Система предоставляет этот каталог, чтобы пользователи могли временно монтировать другие файловые системы;
  • /ботинок:Хранить различные файлы, используемые при загрузке системы;
  • /библиотека:Хранит библиотечные файлы, связанные с работой системы;
  • /tmp:Он используется для хранения различных временных файлов и является общедоступной точкой хранения временных файлов;
  • /вар:Он используется для хранения файлов, в которых необходимо изменить данные во время выполнения, а также является областью переполнения для некоторых больших файлов, таких как файлы журналов различных служб (журналы запуска системы и т. д.) и т. д.;
  • /потеряно+найдено:Этот каталог обычно пуст, а «бездомный» файл (то, что в Windows называется .chk) остается здесь, когда система аварийно завершает работу.

Четыре основные команды Linux

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

Полный список команд Linux:man.linuxde.net/

4.1 Команда переключения каталогов

  • cd usr:Перейдите в каталог usr в этом каталоге
  • cd ..(或cd../):переключиться на предыдущий каталог
  • cd /:Перейдите в корневой каталог системы
  • cd ~:Перейти в домашний каталог пользователя
  • cd -:переключиться на предыдущий каталог

4.2 Команды работы со справочником (добавить, удалить, изменить, проверить)

  1. mkdir 目录名称:добавить каталог

  2. ls或者ll(ll является аббревиатурой команды ls -l, ll для просмотра подробной информации обо всех каталогах и файлах в каталоге): Просмотр информации о каталоге

  3. find 目录 参数:найти каталог (проверить)

    Пример:

    • Список всех файлов и папок в текущем каталоге и подкаталогах:find .
    • существует/homeНайдите имя файла, заканчивающееся на .txt, в каталоге:find /home -name "*.txt"
    • То же, что и выше, без учета регистра:find /home -iname "*.txt"
    • Найдите все файлы, заканчивающиеся на .txt и .pdf в текущем каталоге и подкаталогах:find . \( -name "*.txt" -o -name "*.pdf" \)илиfind . -name "*.txt" -o -name "*.pdf"
  4. mv 目录名称 新目录名称:Изменить имя каталога (изменить)

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

  5. mv 目录名称 目录的新位置:Переместить расположение каталога --- вырезать (изменить)

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

  6. cp -r 目录名称 目录拷贝的目标位置:Копировать каталог (изменить), -r означает рекурсивное копирование

    Примечание. Команда cp может копировать не только каталоги, но и файлы, сжатые пакеты и т. д. Вам не нужно рекурсивно писать -r при копировании файлов и сжатых пакетов.

  7. rm [-rf] 目录:удалить каталог (удалить)

    Примечание: rm может удалять не только каталоги, но и другие файлы или сжатые пакеты.Чтобы улучшить общую память, независимо от того, удаляете ли вы какой-либо каталог или файл, используйте его напрямую.rm -rfкаталог/файл/zip

4.3 Команды работы с файлами (добавить, удалить, изменить, проверить)

  1. touch 文件名称:создание файла (добавить)

  2. cat/more/less/tail 文件名称Просмотр файлов (проверка)

    • cat:Отображается только последний экран
    • more:Может отображаться процент, возврат каретки может идти на одну строку вниз, пробел может переходить на следующую страницу, q может выйти из режима просмотра
    • less:Вы можете использовать PgUp и PgDn на клавиатуре для перехода вверх и вниз по странице, q для завершения просмотра
    • tail-10:Просмотр последних 10 строк файла, Ctrl+C заканчивается

    Примечание. Команда tail -f file может динамически отслеживать файл, например файл журнала tomcat, журнал будет меняться при запуске программы, вы можете использовать tail -f catalina-2016-11-11.log для мониторинга файл Изменение

  3. vim 文件:Изменить содержимое файла (изменить)

    Редактор vim — это мощный компонент Linux и расширенная версия редактора vi.Для редактора vim существует множество команд и сочетаний клавиш, но они здесь не объясняются, и вам не нужно их тщательно изучать.Используйте vim для редактировать и изменять файлы.Метод в основном сможет его использовать.

    В реальной разработке основная функция использования редактора vim заключается в изменении файла конфигурации.Следующие общие шаги:

    vim файл------> введите файл-----> командный режим------> нажмите i, чтобы войти в режим редактирования-----> отредактируйте файл -------> нажмите Esc для входа в режим нижней строки -----> введите: wq/q!(ввод wq означает запись содержимого и выход, то есть сохранение; ввод q! означает принудительный выход без сохранения.)

  4. rm -rf 文件:удалить файл (удалить)

    Удалить тот же каталог: запомнитьrm -rfфайл

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

1) Запакуйте и заархивируйте файл:

Файлы пакетов в Linux обычно заканчиваются на .tar, а сжатые команды обычно заканчиваются на .gz.

Как правило, упаковка и сжатие выполняются вместе, и суффикс имени упакованного и сжатого файла обычно .tar.gz. Заказ:tar -zcvf 打包压缩后的文件名 要打包压缩的文件в:

z: вызовите команду сжатия gzip для сжатия

c: пакетный файл

v: показать запущенный процесс

f: укажите имя файла

Например, в тестовом каталоге есть три файла: aaa.txt bbb.txt ccc.txt Если мы хотим упаковать тестовый каталог и указать имя сжатого пакета как test.tar.gz, мы можем использовать команду:tar -zcvf test.tar.gz aaa.txt bbb.txt ccc.txtили:tar -zcvf test.tar.gz /test/

2) Разархивируйте сжатый пакет:

Команда: tar [-xvf] сжать файл

Среди них: x: представляет декомпрессию

Пример:

1 Разархивируйте test.tar.gz из /test в текущий каталог и используйте команду:tar -xvf test.tar.gz

2 Разархивируйте файл test.tar.gz из каталога /test в корневой каталог /usr:tar -xvf xxx.tar.gz -C /usr(-C представляет указанное место для распаковки)

4.5 Команды разрешений в Linux

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

Пример: в случайном каталогеls -l

Информация о содержимом первого столбца поясняется следующим образом:

Далее подробно объясняются типы файлов, разрешения в Linux, а также владелец, группа и другие группы файла.

Тип файла:

  • d: представляет каталог
  • -: обозначает файл
  • l: Представляет ссылку (может рассматриваться как ярлык в окне)

Разрешения в Linux делятся на следующие категории:

  • r: указывает, что разрешение доступно для чтения, и r также может быть представлен числом 4
  • w: указывает, что разрешение доступно для записи, и w также может быть представлен числом 2
  • x: представляет разрешение исполняемым, x также может быть представлен числом 1

Разница между правами доступа к файлам и каталогам:

Для файлов и каталогов чтение и запись означают разные вещи.

Для файлов:

имя разрешения Действия могут быть выполнены
r Вы можете использовать cat для просмотра содержимого файла
w Может изменять содержимое файла
x Может быть запущен как бинарный

Для каталогов:

имя разрешения Действия могут быть выполнены
r Вы можете просмотреть список в каталоге
w Может создавать и удалять файлы в каталогах
x Вы можете использовать cd для входа в каталог

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

  • владелец

    Как правило, это создатель файла. Тот, кто создает файл, естественным образом становится владельцем файла. Используйте команду ls-ahl, чтобы увидеть владельца файла. Вы также можете использовать имя пользователя chown, чтобы изменить имя владельца. файла.

  • группа файлов

    Когда пользователь создает файл, группа файла является группой пользователя.Используйте команду ls-ahl, чтобы увидеть все группы файла.Вы также можете использовать chgrp имя группы имя файла, чтобы изменить группу, в которой находится файл расположена.

  • другие группы

    Кроме владельца файла и пользователя в группе, другими пользователями системы являются другие группы файла

Давайте посмотрим, как изменить права доступа к файлам/каталогам.

Команды для изменения прав доступа к файлам/каталогам:chmod

Пример: измените разрешения файла aaa.txt в /test, чтобы владелец имел все разрешения, а группа, к которой принадлежит владелец, имела разрешения на чтение и запись. Другие пользователи имеют право только на чтение

chmod u=rwx,g=rw,o=r aaa.txt

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

chmod 764 aaa.txt

Добавьте более часто используемую вещь:

Если мы установим zookeeper, что мы должны делать каждый раз, когда мы включаем и просим его запускаться автоматически?

  1. Создайте новый скрипт zookeeper
  2. Добавьте исполняемое разрешение для вновь созданного скрипта zookeeper, команда:chmod +x zookeeper
  3. Добавьте скрипт zookeeper в элементы автозагрузки, команда такая:chkconfig --add zookeeper
  4. Если вы хотите увидеть, успешно ли добавлено, команда:chkconfig --list

4.6 Управление пользователями Linux

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

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

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

  • useradd 选项 用户名:Добавить учетную запись пользователя
  • userdel 选项 用户名: удалить учетную запись пользователя
  • usermod 选项 用户名: изменить учетную запись
  • passwd 用户名: изменить или создать пароль пользователя
  • passwd -S 用户名: Отображение информации о пароле учетной записи пользователя.
  • passwd -d 用户名: очистить пароль пользователя

Команда useradd используется для создания новых системных пользователей в Linux. useradd можно использовать для создания учетных записей пользователей. После создания учетной записи используйте passwd для установки пароля учетной записи. И используйте userdel для удаления учетной записи. Учетные записи, созданные с помощью команды useradd, фактически хранятся в текстовом файле /etc/passwd.

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

4.7 Управление группами пользователей системы Linux

У каждого пользователя есть группа пользователей, и система может централизованно управлять всеми пользователями в группе пользователей. Различные системы Linux имеют разные правила для групп пользователей.Например, пользователь в Linux принадлежит к группе пользователей с тем же именем, что и он.Эта группа пользователей создается одновременно с созданием пользователя.

Управление группами пользователей включает в себя добавление, удаление и изменение групп пользователей. Добавление, удаление и изменение групп на самом деле является обновлением файла /etc/group.

Команды, связанные с управлением группой пользователей системы Linux:

  • groupadd 选项 用户组: добавить новую группу пользователей
  • groupdel 用户组: Чтобы удалить существующую группу пользователей
  • groupmod 选项 用户组: изменить атрибуты группы пользователей.

4.8 Другие распространенные команды

  • pwd:Показать текущее местоположение

  • grep 要搜索的字符串 要搜索的文件 --color:Команда поиска, --color означает выделение

  • ps -ef/ps aux:Эти две команды предназначены для просмотра запущенного процесса текущей системы.Разница между ними заключается в том, что формат отображения различен. Если вы хотите просмотреть определенный процесс, вы можете использовать этот формат:ps aux|grep redis(см. процесс, включая строку Redis)

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

  • kill -9 进程的pid:Завершите процесс (-9 означает принудительное уничтожение).

    Сначала используйте ps, чтобы найти процесс, затем уничтожьте его командой kill.

  • Сетевые команды связи:

    • Просмотр информации о сетевой карте текущей системы: ifconfig
    • Проверить подключение к машине: ping
    • Просмотр использования порта текущей системой: netstat -an
  • shutdown: shutdown -h now: указывает на немедленное завершение работы;shutdown +5 "System will shutdown after 5 minutes": указывает на отключение через 5 минут и одновременную отправку предупреждающего сообщения вошедшему в систему пользователю.

  • reboot: reboot:перезагружать.reboot -w:Сделайте симуляцию перезагрузки (только запись на самом деле не перезагружается).

Если вы считаете, что моя статья вам полезна, обратите внимание на мой паблик в WeChat: "Руководство по прохождению собеседования на Java"(Теплый официальный аккаунт WeChat, никакой рекламы, чистый обмен технологиями, с нетерпением жду прогресса вместе с вами~~~ настаивайте на оригинальности, делитесь красивыми текстами и делитесь различными учебными ресурсами Java.)