Оригинал: Идентификатор общедоступной учетной записи WeChat: xjjdog, добро пожаловать, пожалуйста, сохраните источник для перепечатки.
Как джаваер, я уже много писал о Linux. Но после многолетних наблюдений я обнаружил, что большинству людей некоторые вещи вообще не нужны. Чаще всего используется проверка проблемы в Интернете, что очень огорчает людей. Итак, давайте немного сузим круг.
Самая полезная серия:
«В Linux наиболее часто используемый пакет анализа команд (выбор за 10 лет)»
«Наиболее часто используемый набор навыков «vim» в производственной среде Linux.
«Наиболее часто используемый набор навыков «Sed» в производственной среде Linux.
«Наиболее часто используемый набор навыков «AWK» в производственной среде Linux.
«Расширенные возможности «Сед»: мой маленький мозг вот-вот упадет в обморок»
Linux
Команд вроде бы довольно много.Фундаментальная причина в том, что программ много, а так же естьag
Такая команда хотела бы заменитьgrep
, но большинство команд старые и сильные. Это не из-за того, насколько хорошо спроектированы эти программы, а из-за того, что некоторые программы впервые вошли в систему, а спустя долгое время стали условностью, и цена отказа от этой привычки слишком высока, как и замена всех клавиатур.L
иF
Меняй так же.
В этой статье предполагается, что вы уже знаете большинство команд Linux и разбираетесь в основных элементах операционной системы. Если вы сейчас знаете менее 10 команд, вам не нужно читать следующее. Помимо основ, в этой статье перечислены некоторые из наиболее распространенных бонусных баллов за ваши собеседования, а некоторые комбинации могут быть навыками, которых вы раньше не видели. Тем не менее, эта статья дает только общие наброски и впечатления, а также дает последовательность для будущих тематических исследований.
Все команды, описанные в этой статье, следует запомнить и умело использовать.
Несколько типичных систем Linux
Прежде всего, у меня сложилось общее впечатление о текущей версии Linux, которая примерно делится на версию для настольных компьютеров и версию для сервера, которые уже расцветают.
- UbuntuСамый обычный личный дистрибутив линукса, сентиментальный южноафриканский богач, с деньгами можно сделать то же самое
- CentOSНовая версия наиболее часто используемого Linux-сервера, открытая версия RHEL, колесо, рожденное авторским правом.
- ArchНепрерывные обновления, массивные бинарные пакеты, активное сообщество, личные предпочтения
- GentooУстановка программного обеспечения требует компиляции из исходного кода, который является стабильным, но болезненным в использовании.
- LFSСоберите Linux с нуля, сделайте это снова и ясно увидите каждый волосок Linux.
- KaliОн предназначен для проникновения и представляет собой путь развития дистрибутива, то есть домен
Понятия, которые нужно понять в первую очередь
- KISSДержите его простым и глупым, говорят, что это философия
- все это файлТо, что обычно является файлом, называется файлом, и в файлы также абстрагируются процессы, диски и т. д. Более запредельные каналы, устройства, сокеты и т. д. также являются файлами. Это самый важный способ организации Linux.
-
трубопровод
|
Разделение, вывод предыдущей команды используется как ввод следующей команды, которую можно соединить последовательно -
перенаправить
-
<
использовать файл в качестве входных данных для команды -
>
вывести вывод команды в файл -
>>
Добавить вывод команды в файл
-
-
SHELLСначала подтвердите свою оболочку, обычно наиболее часто используемой является bash, и многие используют csh, zsh и т. д.
echo $SHELL
Вы можете увидеть оболочку текущего пользователя, и соответствующий файл конфигурации должен быть изменен соответствующим образом. Например.zshrc
,.bashrc
четыре элемента
Приступая к Linux, мы сначала сосредоточимся на четырех элементах: памяти, процессоре, хранилище и сети. Linux предоставляет достаточно команд, чтобы вы могли заглянуть в каждый уголок. Приведенные ниже команды являются наиболее часто используемыми, вне зависимости от того, владеете вы ими или нет, вы не можете думать о порке.
CPU
- использовать
top
Проверьте загрузку процессора и используйте shift+p для сортировки по процессору. Нужно знать, что означают wa, us и т. д. - использовать
uptime
Проверьте время запуска системы и загрузки, что означает загрузка? Что такое перегрузка системы? Это часто задаваемый вопрос, не обвиняйте меня в том, что я не сказал вам -
ps
В дополнение к проверке номера процесса вам также необходимо знать значение битов состояния R, S, D, T, Z, -
top
иps
Многие функции одинаковы, напримерwatch "ps -mo %cpu,%mem,pid,ppid,command ax"
Список процессов, эквивалентный top;top -n 1 -bc
иps -ef
результаты аналогичны. - Есть жизнь и смерть, это можно использовать
kill
убить процесс. Для java нужно обратить вниманиеkill -9
,kill -15
,kill -3
Это означает, что сигналов об убийстве слишком много, вы можете использоватьkill -l
Послушайте, полезно понимать большинство сигналов. - Если вы не хотите умирать на некоторое время, вы можете пройти
&
Символы выполняются в фоновом режиме, например.tail -f a.log &
.jobs
Команда может просмотреть список текущего фона, если вы хотите восстановить, используйтеfg
Вернемся к занавесу. Это все терминальная работа, когда вы ставитеterm
Когда вы закроете свои фоновые команды, они исчезнут, поэтому, если вы хотите, чтобы ваша программа продолжала выполняться, вам нужноnohup
команду, эту команду нужно иметь в виду - mpstatОтображает различную статистику о процессоре в системе
- Понимание сходства ЦП
ОЗУ
-
free -m
Команда для понимания значения free, used, cached, swap -
cat /proc/meminfo
Просмотр более подробной информации о памяти Внимательные учащиеся могут заметить, что информация о ЦП и памяти, отображаемая разными командами, такими как top, одинакова. -
slabtop
Используется для отображения занятости кеша ядра, например, обход большого количества файлов для создания записей в каталоге кеша. Столкнулись в производственной среде из-за исполненияfind /
причинаdentry_cache
Недостаточно памяти сервера. -
vmstat
Команда — одна из моих любимых и наиболее часто используемых команд, позволяющая быстро узнать о состоянии вашей системы. Необходимо понимать значение каждого параметра. - обмен, обменВключение и выключение пространства подкачки
- ** sar** Другое статистическое колесо, обычно используемое в качестве инструмента выборки.
место хранения
- использовать
df -h
Просмотр обзора использования системного диска - lsblkСписок информации о блочном устройстве
- duПросмотр каталога или размера файла
Интернет
- rsyncМощный инструмент синхронизации, который может быть инкрементным
- netstatПросмотр информации о состоянии сетевой системы в Linux, различных
- ssОн может отображать более подробную информацию о TCP и статусе подключения и работает быстрее и эффективнее, чем netstat.
- завиток, wgetИнструмент запроса моделирования, инструмент загрузки. например, wget -rhttp://siteскачает весь сайт
- abИнструмент тестирования производительности для сервера Apache.
- ifstatСтатистика состояния трафика сетевого интерфейса
- nslookupИнструмент для запроса информации о доменном имени DNS, здорово запрашивать доменное имя по IP-адресу в интрасети.
- ncШвейцарский армейский нож среди сетевых инструментов, жаль, что вы не можете его использовать
- arpМожет отображать и изменять таблицу преобразования IP в MAC
- tracerouteОтображение пути между пакетом данных и хостом, обычно известного как несколько прыжков, чем меньше прыжков, тем быстрее
- tcpdumpНечего сказать, скачайте wireshark
-
wallВывод информации на все открытые в данный момент терминалы. использовать
who
Командование находит богиню на терминале, может ухаживать
Что касается сети, рекомендуется установить и испытать kaliLinux, Вышеупомянутые инструменты сделают вас чрезвычайно высокими.
как стать организованным
Команды Linux очень интересны.Помимо различных статистических данных для мониторинга состояния, существуют также различные трассировки для углубленного отслеживания, различные вершины для подсчета потребителей ресурсов и различные ls для просмотра системного оборудования, такого как lsblk, lsusb и lscpi. В основном руководствуйтесь тем, что вы чувствуете, и найдите правильные инструменты, потому что соглашения — самые мощные руководства в системе.
Linux имеет более альтернативный каталог/proc
, несущий разрушительное действие каждой команды. рисунокsysctl
команда, чтобы изменить/proc/sys
Сопоставление элементов в каталоге. не верьfind /proc/sys -type f | wc -l
иsysctl -a| wc -l
Результаты похожи?
Файловая система /proc — это псевдофайловая система, которая существует только в памяти и не занимает места во внешней памяти. Он просто предоставляет интерфейс для доступа к данным ядра системы в виде файловой системы. Все состояния системы не могут ускользнуть от ее внимания. Например:
-
cat /proc/vmstat
Проверьте это, этоvmstat
Вывод команды аналогичен? -
cat /proc/meminfo
Это самая полная информация о памяти? -
cat /proc/slabinfo
Разве это неslabtop
Информация -
cat /proc/devices
загружается на устройства -
cat /proc/loadavg
load avg лежал здесь -
cat /proc/stat
Вся информация об активности ЦП -
ls /proc/$pid/fd
лежать спокойноlsof
результат
Общие методы устранения неполадок
Общая проблема устранения неполадок также связана с несколькими элементами, такими как процессор памяти и так далее. На следующей картинке показан общий процесс устранения неполадок или проблем с производительностью.Посмотрите на картинку и нечего сказать.
Примеры сценариев применения
Следующие примеры иллюстрируют комбинированное применение различных команд из конкретных сценариев приложений, таких сценариев много и они требуют личного накопления. Но настоятельно рекомендуется практиковаться в sed и awk.
Как просмотреть конкретную информацию о потоке, который занимает самый высокий процессор в процессе Java?
- Получите поток с максимальной загрузкой ЦП в процессе, который считается как n.
- использовать верх
top -H -p pid
, Невооруженное наблюдение - использовать пс
ps -mo spid,lwp,stime,time,%cpu -p pid
- использовать верх
- Преобразовать номер потока в шестнадцатеричный
printf 0x%x n
- Используйте jstack, чтобы найти соответствующий процесс и вывести 100 строк информации после потока.
jstack -l pid| grep spid -A 100
Подсчитайте количество каждого состояния сети
netstat -ant | awk '{print $6}' | sort | uniq -c | sort -n -k 1 -r
Сначала используйте netstat для просмотра списка, используйте awk для перехвата шестого столбца, используйтеuniq
Выполняйте статистику и сортируйте статистические результаты. Конечно, это тоже возможно.netstat -ant | awk '{arr[$6]++}END{for(i in arr){print arr[i]" "i }}' | sort -n -k 1 -r
Это та же проблема, что и «анализ логов апача и предоставление нисходящего списка ip-адресов доступа в день».
Как проверить, какой процесс использует своп
Прежде всего, нам нужно понять, что в /proc/$pid/smaps есть вся необходимая нам информация, а поле Swap — это то, что нам нужно. Просто прокрутите его.
for i in `cd /proc;ls |grep "^[0-9]"|awk ' $0 >100'` ;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps ;done |sort -k2nr
Наконец, прикрепитеwww.brendangregg.com/большая картина
End
В области программного обеспечения есть два типа талантов: инженеры и исследователи. В области Linux, по сравнению с теми, кто занимается исследованиями ядра, те, кто занимается командной строкой, являются инженерами. У инженерного типа тоже есть свои сложности, например, очень больно запоминать команды, вообще говоря, запоминать не рекомендуется. Нотация Ниуби состоит в том, чтобы использовать время, чтобы разбавить дым и облака, увидеть микрознание и испытать радость от него. Любите ее и кладите в постель каждый день, и настоящая любовь придет.
Об авторе: (xjjdog), публичный аккаунт, который не позволяет программистам идти в обход. Сосредоточьтесь на инфраструктуре и Linux. Десять лет архитектуры, десятки миллиардов ежедневного трафика, обсуждение с вами мира высокой параллелизма, дающие вам другой вкус. Мой личный WeChat xjjdog0, добро пожаловать в друзья для дальнейшего общения.