Просто изменил название статьи: «Основы Linux для программистов, работающих с серверной частью» -> «Основы работы с Linux для программистов, работающих с интерфейсом и серверной частью». 😁
Эта статья синхронно обновляется на моем Github:веб ссылки
Систематические знания и вопросы для интервью по изучению Java, которые я обобщил самостоятельно, в настоящее время являются открытым исходным кодом и будут продолжать улучшаться.Предложения и рекомендации приветствуются.Добро пожаловать в Star: GitHub.com/snail Climb/…
Прежде чем изучать Linux, давайте кратко разберемся с операционной системой.
1. Начните со знакомства с операционной системой
1.1 Введение в операционную систему
Какую операционную систему я представляю через следующие четыре пункта:
- Операционная система (ОС) — это программа, которая управляет аппаратными и программными ресурсами компьютера и является ядром и краеугольным камнем компьютерной системы;
- Операционная система — это, по сути, программа, работающая на компьютере;
- Предоставить пользователям рабочий интерфейс для взаимодействия с системой;
- Операционная система делится на ядро и оболочку (мы можем понимать оболочку как прикладную программу, окружающую ядро, а ядро — это программу, которая может управлять оборудованием).
1.2 Простая классификация операционных систем
- Windows:В настоящее время самая популярная персональная операционная система для настольных компьютеров, без представления ее знают все.
- Юникс:Самая ранняя многопользовательская, многозадачная операционная система.Согласно классификации операционных систем, это операционная система с разделением времени. Unix в основном используется на серверах, рабочих станциях, а теперь и на персональных компьютерах. Он играет очень важную роль в создании Интернета, компьютерной сети или модели клиент/сервер.
- Linux:Linux — это набор Unix-подобных операционных систем, которые можно свободно использовать и свободно распространять.Существует множество различных версий Linux, но все они используютядро Linux. Linux можно установить на различные компьютерные устройства, такие как сотовые телефоны, планшеты, маршрутизаторы, игровые приставки, настольные компьютеры, мейнфреймы и суперкомпьютеры. Строго говоря, само слово Linux означает только ядро Linux, но на самом деле люди привыкли использовать Linux для описания всей операционной системы, основанной на ядре Linux и использующей различные инструменты и базы данных проекта GNU.
2. Предварительное изучение Linux
2.1 Введение в Linux
Мы уже представили Linux выше, здесь мы подчеркнем только три момента.
- Unix-подобные системы:Linux — бесплатная Unix-подобная операционная система с открытым исходным кодом.
- Ядро линукса:Строго говоря, само слово Linux означает только ядро Linux.
- Отец Линукса:Легендарная фигура в области программирования. Он является первым автором ядра Linux, а затем инициировал этот проект с открытым исходным кодом, выступая в качестве главного архитектора и координатора проекта ядра Linux, и сегодня является одним из самых известных программистов и хакеров в мире. Он также инициировал Git, проект с открытым исходным кодом, и является основным разработчиком.
2.2 Введение в рождение Linux
- В 1991 году финский компьютерный энтузиаст-любитель Линус Торвальдс написал систему, подобную Minix (подобную Unix операционную систему, основанную на микроядерной архитектуре), которую администратор ftp назвал Linux и которая присоединилась к программе GNU Free Software Foundation;
- Linux отмечен симпатичным пингвином, который символизирует смелую и любящую жизнь.
2.3 Классификация Linux
Linux делится на два типа по степени нативности:
- Версия ядра:Linux — это не операционная система, строго говоря, Linux — это просто ядро операционной системы. Что такое ядро? Ядро устанавливает платформу для связи между компьютерным программным обеспечением и аппаратным обеспечением, а ядро обеспечивает системные службы, такие как управление файлами, виртуальная память и ввод-вывод устройств;
- Версия выпуска:Некоторые организации или компании повторно распространяли версию на основе вторичной разработки версии ядра. Существует множество версий дистрибутива Linux (много используются ubuntu и CentOS, для начинающих рекомендуется выбирать CentOS), как показано на следующем рисунке:
Обзор трех файловых систем Linux
3.1 Введение в файловую систему Linux
В операционной системе Linux все ресурсы, которыми управляет операционная система, такие как сетевые карты, дисковые накопители, принтеры, устройства ввода и вывода, обычные файлы или каталоги, рассматриваются как файл.
Другими словами, в системе LINUX есть важная концепция:все это файл. На самом деле это проявление философии UNIX, а Linux — это переписанная версия UNIX, поэтому эта концепция была передана по наследству. В системе UNIX все ресурсы рассматриваются как файлы, включая аппаратные устройства. Система UNIX рассматривает каждую часть оборудования как файл, обычно называемый файлом устройства, так что пользователи могут получить доступ к оборудованию, читая и записывая файлы.
3.2 Типы файлов и структура каталогов
Linux поддерживает 5 типов файлов:
Структура каталогов 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 Команды работы со справочником (добавить, удалить, изменить, проверить)
-
mkdir 目录名称
:добавить каталог -
ls或者ll
(ll является аббревиатурой команды ls -l, ll для просмотра подробной информации обо всех каталогах и файлах в каталоге): Просмотр информации о каталоге -
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"
- Список всех файлов и папок в текущем каталоге и подкаталогах:
-
mv 目录名称 新目录名称
:Изменить имя каталога (изменить)Примечание. Синтаксис mv позволяет не только переименовывать каталоги, но и переименовывать различные файлы, сжатые пакеты и т. д. Команда mv используется для переименования файла или каталога или для перемещения файла из одного каталога в другой. Другое использование команды mv будет представлено позже.
-
mv 目录名称 目录的新位置
:Переместить расположение каталога --- вырезать (изменить)Примечание. Синтаксис mv может вырезать не только каталоги, но и файлы и сжатые пакеты. Кроме того, результаты mv и cp отличаются, mv вроде бы "переместил" файл, а количество файлов не увеличилось. Пока cp копирует файлы, количество файлов увеличивается.
-
cp -r 目录名称 目录拷贝的目标位置
:Копировать каталог (изменить), -r означает рекурсивное копированиеПримечание. Команда cp может копировать не только каталоги, но и файлы, сжатые пакеты и т. д. Вам не нужно рекурсивно писать -r при копировании файлов и сжатых пакетов.
-
rm [-rf] 目录
:удалить каталог (удалить)Примечание: rm может удалять не только каталоги, но и другие файлы или сжатые пакеты.Чтобы улучшить общую память, независимо от того, удаляете ли вы какой-либо каталог или файл, используйте его напрямую.
rm -rf
каталог/файл/zip
4.3 Команды работы с файлами (добавить, удалить, изменить, проверить)
-
touch 文件名称
:создание файла (добавить) -
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 для мониторинга файл Изменение
-
-
vim 文件
:Изменить содержимое файла (изменить)Редактор vim — это мощный компонент Linux и расширенная версия редактора vi.Для редактора vim существует множество команд и сочетаний клавиш, но они здесь не объясняются, и вам не нужно их тщательно изучать.Используйте vim для редактировать и изменять файлы.Метод в основном сможет его использовать.
В реальной разработке основная функция использования редактора vim заключается в изменении файла конфигурации.Следующие общие шаги:
vim файл------> введите файл-----> командный режим------> нажмите i, чтобы войти в режим редактирования-----> отредактируйте файл -------> нажмите Esc для входа в режим нижней строки -----> введите: wq/q!(ввод wq означает запись содержимого и выход, то есть сохранение; ввод q! означает принудительный выход без сохранения.)
-
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, что мы должны делать каждый раз, когда мы включаем и просим его запускаться автоматически?
- Создайте новый скрипт zookeeper
- Добавьте исполняемое разрешение для вновь созданного скрипта zookeeper, команда:
chmod +x zookeeper
- Добавьте скрипт zookeeper в элементы автозагрузки, команда такая:
chkconfig --add zookeeper
- Если вы хотите увидеть, успешно ли добавлено, команда:
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.)