Галерея диаграмм связей Эксплуатация и обслуживание Linux
Это интеллектуальная карта, посвященная изучению работы и обслуживания Linux от старого мальчика, включая введение в командную строку Linux, команды работы с файлами и каталогами, команды фильтрации файлов, редактирования и обработки контента и т. д.
Отредактировано в 2024-01-16 11:24:10Изучите работу и обслуживание Linux у старика
Глава 1. Введение в командную строку Linux.
Обзор командной строки Linux
Введение в командную строку Linux
Знак # — это приглашение в конце командной строки после входа в систему как суперпользователь root, а знак $ — это приглашение в конце командной строки после входа в систему как обычный пользователь.
Суперпользователи имеют все разрешения для управления системой. Обычные пользователи имеют относительно ограниченные права и могут выполнять только такие операции, как просмотр базовой информации о системе, и не могут изменять конфигурации системы и службы управления.
Символы перед приглашением командной строки @ обозначают текущего вошедшего в систему пользователя (может быть запрошен whoami), символы после @ — это имя хоста (можно запросить по имени хоста), а расположение ~ — это путь к текущий пользователь в окне.
Командная строка Linux управляется переменной среды PS1. set | grep PS1 PS1='[\u@\h\W]\$'
Команды выключения, перезагрузки и выхода из системы Linux
Команда перезапуска или выключения: выключение
выключение [ОПЦИЯ]... ВРЕМЯ [СООБЩЕНИЕ]
Обратите внимание, что между командой выключения и следующими параметрами должен быть хотя бы один пробел.
Обычно мы выполняем команду завершения работы: «shutdown-h now» или «shutdown-r now».
Команды выключения и перезапуска: остановка/выключение/перезагрузка.
перезагрузить [ОПЦИЯ]... остановить [ОПЦИЯ]... выключить питание [ОПЦИЯ]...
Глава 2. Команды работы с файлами и каталогами
pwd: отображает текущее местоположение
PWD [варианты]
компакт-диск: изменить каталог
cd [опции] [каталог]
При использовании команды cd, если вы используете функцию автозаполнения клавиши «Tab» на клавиатуре, вы можете улучшить скорость и точность ввода. Функция автозаполнения клавиши «Tab» применима и к другим командам.
Например, чтобы понять концепцию пути, относительный путь — это путь, который начинается не с «/» (косая черта), а с текущего каталога или указанного каталога, например: data/, mnt/oldboy; Абсолютный путь — это путь, который начинается с пути «/» «(косая черта), начиная с корня, например: /data/, /mnt/oldboy.
Если вам нужно переключиться в каталог, в котором последний раз находился текущий пользователь, используйте «cd-» (обратите внимание на пробел); если вам нужно переключиться на домашний каталог текущего пользователя, используйте «cd~» (обратите внимание на пробел); ); когда вам нужно переключиться на При указании пути к каталогу верхнего уровня текущего каталога используйте «cd..» (обратите внимание на пробел).
дерево: отображение содержимого каталога в виде древовидной структуры.
дерево [опции] [каталог]
mkdir: создать каталог
mkdir [опции] [каталог]
Команда mkdir может одновременно создавать несколько каталогов в формате mkdir dir1 dir2…
Рекурсивно создавать каталоги с параметром -p (mkdir -p oldboy/test).
Добавьте параметр -v, чтобы отобразить процесс создания каталога. (mkdir -pv oldboy2/test)
Вы можете использовать параметр -m при создании каталога, чтобы установить для него разрешения по умолчанию. (mkdir -m 333 каталог2)
Одновременно создайте несколько каталогов и многоуровневых подкаталогов. (mkdir -pv oldboy/{dir1_1,dir1_2}/{dir2_1,dir2_2} )
касание: создать пустой файл или изменить атрибут временной метки файла.
Команда touch имеет две функции: одна — создать новый пустой файл, другая — изменить атрибут метки времени существующего файла;
коснитесь [опции] [файл]
Создать файл (нажмите a.txt b.txt)
Изменить атрибут временной метки файла
touch -a oldboy.txt #<==-параметр меняет время последнего доступа.
touch -m oldboy.txt Параметр #<==-m изменяет время последнего изменения.
Укажите атрибуты времени для создания/изменения файлов
touch -d 20201001 oldboy.txt #<==Указать модификацию файла после его создания
touch -r a.txt oldboy.txt #<==Используйте параметр -r, чтобы привести атрибут времени в файле oldboy.txt в соответствие с атрибутом a.txt.
touch -t 201512312234.50 oldboy.txt #<==Используйте опцию -t, чтобы установить для файла формат времени 201512312234.50
ls: отображать содержимое и соответствующую информацию об атрибутах каталога.
ls [опции] [<файл или каталог>]
Используйте параметр -a для отображения всех файлов, особенно скрытых файлов.
ls -a#<== Описание: добавление параметра -a будет отображать содержимое, начинающееся с "." (точка). Первая отображаемая здесь точка представляет текущий каталог, который сам является тестовым каталогом, а две точки представляют вышестоящий каталог текущего каталога, который здесь представляет корневой каталог. Знания об одной и двух точках будут подробно объяснены позже в команде ln.
ls -A #<==Показать все файлы, включая скрытые файлы, за исключением каталогов «.» и «..».
Используйте параметр -l для отображения подробной информации.
ls -l #<==В столбце атрибута времени по умолчанию отображается время последнего изменения файла. #<==Пояснение: Этот параметр -l является наиболее часто используемым параметром, который означает перечисление типа файла, разрешений, количества подключений, владельца (группы), а также информацию о времени создания и изменения в каталоге в длинном формате. Здесь необходимо усвоить значение атрибута каждого столбца, и эта атрибутивная информация будет подробно обсуждаться позже.
Параметр --time-style=long-iso, отображающий полный атрибут времени.
ls -l --time-style=long-iso #<==Отображение времени в режиме long-iso. Результат этой команды отличный.
Необязательные значения параметров --time-style следующие: Full-iso, long-iso, iso и locale. Значение по умолчанию — локаль.
В производственных сценариях мы часто сталкиваемся с проблемой несогласованного отображения времени файлов и каталогов в одном и том же каталоге, поэтому нам нужно использовать ls-l--time-style=long-iso для настройки, если вы чувствуете, что их слишком много. параметры и их трудно запомнить, то можно настроить управление псевдонимами.
Стоит отметить, что при выполнении таких команд, как ls-l, по умолчанию отображается время последней модификации файла (если это новый файл, то это время создания).
ls--full-time используется для отображения полного времени, что эквивалентно ls-l--time-style=full-iso.
Выполните команду ls с параметрами, которые отображают атрибут времени доступа к содержимому.
ls -l --time-style=long-iso --time=atime #<==Добавьте параметр --time= atime для отображения времени доступа.
Связанные команды включают ls-l--time-style=long-iso--time=ctime, которая используется для отображения времени изменения файлов.
Знания о столбце времени файла и mtime, atime и ctime были объяснены ранее при знакомстве с командой touch.
Выполните команду ls с параметром -F (это очень похоже на -F команды дерева).
ls -F#<==Объяснение: После добавления -F мы ясно видим, что в конце всех каталогов добавляется косая черта /. Какая польза от такой функции в работе? Конечно, это полезно. Например: если мы хотим отфильтровать все каталоги, то нам нужно отфильтровать только те, которые имеют косую черту.
Используйте параметр -d, чтобы отображать только информацию о самом каталоге.
ls -ld dir1 #<==Добавьте параметр -d, чтобы получить то, что вы хотите.
Используйте параметр -R для рекурсивного просмотра каталогов.
ls -R dir1 #<== Аналогично дереву, но не так просто в использовании.
Знание псевдонимов команд ls и установки псевдонимов ls.
alias lst='ls -l --time-style=long-iso' #<==Настроить псевдоним команды.
Найдите недавно обновленные файлы.
ls -lrt /etc/ #<==-t сортируется по времени, -r — обратному порядку, то есть сортируется по времени в обратном порядке.
Создайте резервную копию базы данных производственного сценария и получите список имен баз данных.
ls -F /usr/local/mysql/data|egrep "/"|awk -F "/" '{print $1}' >/root/dbfilename.list#<== Совет: в этом сценарии резервного копирования таблицы базы данных используется комбинированная команда ls -F плюс egrep для фильтрации имени каталога базы данных.
Удалите мусор, занимающий узлы inode в рабочих сценариях.
ls|xargs rm -f #<==Если файлов слишком много, их нельзя удалить напрямую с помощью rm -fr *.
Расширенные знания команды ls-F
Добавьте «*» для обозначения обычного исполняемого файла.
Добавьте «/», чтобы указать каталог.
Добавьте "=" для обозначения сокетов.
Добавьте «|» для обозначения FIFO.
Добавьте «@», чтобы указать символическую ссылку.
Интерпретация атрибутов содержимого вывода команды ls
ls -lhi #<== Параметр -l подробно объяснялся ранее. Функция параметра -h заключается в отображении размера файла в удобном для чтения виде. Размер файла можно легко узнать, например. «4.0K» ниже. Размер, параметр -i используется для отображения значения индексного дескриптора файла.
cp: скопировать файлы или каталоги
cp [опции] [исходный файл] [файл назначения]
cp -a file1.txt file5.txt #<==Используйте параметр -a, чтобы скопировать файл file1.txt в файл file5.txt. Свойства, скопированные с использованием параметра -a, не изменяются.
При использовании параметра -a для копирования атрибут времени файла не изменяется. Функция параметра -a включает функцию параметра -p для сохранения атрибутов файла.
cp -i file1.txt file5.txt #<== Используйте параметр -i для копирования файла. Вам будет предложено перезаписать файл.
Система CentOS по умолчанию устанавливает псевдоним для команды cp, то есть добавляется параметр -i. Однако при выполнении cp в сценарии оболочки, если параметр -i отсутствует, он не будет спрашивать, следует ли перезаписывать. Это связано с тем, что переменные среды при выполнении сценариев командной строки и оболочки различаются.
cp -r dir1 dir2/ #<== Если вы используете параметр -r, скопируйте каталог рекурсивно и скопируйте все подкаталоги и папки в нем.
cp /etc/ssh/sshd_config{,.ori}#<==Принцип этого метода заключается в операции расширения фигурных скобок в bash. /etc/ssh/sshd_config{,.ori} расширяется в /etc/ssh/sshd_config /etc. /ssh/sshd_config.ori, а затем передайте его команде cp.
mv: переместить или переименовать файлы
mv [опции] [исходный файл] [файл назначения]
mv file6.txt file7.txt #<== Если file7.txt не существует, переименуйте file6.txt в file7.txt.
mv file5.txt file7.txt #<== Если файл file7.txt существует, перезаписать файл file5.txt файлом file7.txt.
\mv file4.txt file7.txt #<==Используйте \, чтобы защитить системный псевдоним, и вас не спросят, перезаписывать ли его.
mv file7.txt dir1/ #<==dir1 является каталогом и существует, затем переместите файл file7.txt в каталог1. Если каталог1 не существует, переименуйте его в обычный файл в каталоге1.
mv -t dir1/ file1.txt file2.txt file3.txt file7.txt #<== Используйте параметр -t, чтобы поменять местами источник и цель, -t, за которым следует каталог и, наконец, файл, который нужно переместить.
rm: удалить файл или каталог
rm [опции] [<файл или каталог>]
rm -f file3.txt Параметр #<==-f принудительно удаляет файл без запроса.
rm -r dir1 #<==Используйте -r для рекурсивного удаления, но будет запрос на подтверждение. Вы можете использовать -f для принудительного удаления.
Практический опыт по удалению
Используйте mv вместо rm. Не удаляйте его в спешке, а сначала переместите в корзину/tmp.
Обязательно создайте резервную копию перед удалением, желательно резервную копию между компьютерами. Вы можете восстановить ее в любое время, если возникнет проблема.
Если вам необходимо удалить его, используйте find вместо rm, включая очистку файлов с помощью системных запланированных задач.
Если вам необходимо удалить его с помощью команды rm, сначала измените каталог, а затем удалите его. Если вы можете обойтись без подстановочных знаков, не используйте подстановочные знаки. Запрещено использовать «имя файла rm-rf» для удаления файлов, поскольку не будет подсказки, когда «rm-rf» случайно удалит каталог, что очень опасно. Максимум используйте «rm-f filename», рекомендуется «rm filename».
rmdir: удалить пустые каталоги
rmdir [опции] [каталог]
Команда rmdir используется для удаления пустых каталогов. Если каталог не пуст, команда не работает.
rmdir -p -v dir1/a/b/ #<== Рекурсивное удаление по-прежнему требует вывода списка всех структур каталогов.
ln: жесткая ссылка и мягкая ссылка
ln [опции] [исходный файл или каталог] [конечный файл или каталог]
жесткая ссылка
В файловой системе Linux допускается, чтобы несколько имен файлов указывали на один и тот же узел индекса (inode). Файл в этом случае называется жесткой ссылкой.
Несколько файлов с одинаковым номером индексного узла являются файлами жесткой связи друг с другом.
Удалите либо файл жесткой ссылки, либо исходный файл, но объект файла не будет удален.
Объект файла будет удален только в том случае, если будут удалены исходный файл и все соответствующие файлы жестких ссылок исходного файла.
Когда все файлы жестких ссылок и исходные файлы будут удалены, пространство этого файла будет занято при сохранении новых данных, или удаленные данные также будут переработаны системой при проверке fsck диска.
Файл с жесткой ссылкой — это еще один вход в файл (эквивалент входной и задней двери супермаркета).
Вы можете предотвратить случайное удаление важных файлов, установив жесткие ссылки на файлы.
Выполните команду «ln исходный файл файла жесткой ссылки», чтобы завершить создание жесткой ссылки.
Файлы жестких ссылок можно удалить с помощью команды rm.
Для статических файлов (файлов, которые не вызываются процессом), когда количество соответствующих жестких ссылок равно 0 (i_link), файл будет удален. Метод просмотра i_link — ls-lih, а третий столбец результата просмотра — количество жестких ссылок.
Каталог, жесткие ссылки не могут быть созданы
Под каждым каталогом имеется жесткая ссылка «.», а также жесткая ссылка «..», соответствующая каталогу верхнего уровня.
Создайте подкаталог в родительском каталоге и увеличьте количество ссылок в родительском каталоге на 1 (подкаталоги имеют «..», указывающий на родительский каталог). Но когда файл создается в родительском каталоге, количество ссылок в родительском каталоге не увеличивается.
мягкая ссылка
Мягкие ссылки аналогичны ярлыкам Windows (их направления можно просмотреть с помощью последующей команды readlink).
Мягкая ссылка аналогична текстовому файлу, в котором хранится путь к исходному файлу и указывает на объект исходного файла.
Даже если исходный файл удален, файл программной ссылки все еще существует, но содержимое указанного пути к исходному файлу недоступно.
В случае сбоя он обычно мигает белыми буквами и красным фоном.
Выполните команду «ln-s source file soft link file», чтобы завершить создание программной ссылки (имя файла мягкой ссылки не может существовать заранее).
Мягкие ссылки и исходные файлы представляют собой файлы разных типов, разные файлы и имеют разные номера индексных дескрипторов.
Чтобы удалить файлы мягких ссылок, используйте команду rm.
readlink: просмотр содержимого файла символической ссылки.
readlink [опции] [файл]
readlink /usr/bin/awk #<==Вы можете просмотреть фактическое содержимое этого файла мягкой ссылки.
readlink -f /usr/bin/awk #<==При использовании параметра -f будет отображен последний файл несимволической ссылки.
find: найти файлы в каталоге.
найти [опции] [путь] [оператор операции]
find . -atime -2 #<== "." представляет текущий каталог. Используйте параметр atime для поиска файлов, доступ к которым осуществляется в течение двух дней.
найти описание времени поиска
-4 указывает, что файл был изменен в течение 4 дней.
4 означает, что файл был изменен 4 дня назад.
4 означает, что через 4 дня.
find /var/log/ -mtime 5 -name '*.log' #<==Найти файлы, оканчивающиеся на ".log" 5 дней назад, в каталоге /var/log/.
find ! -type d #<== "!" означает отрицание, ищите файлы, не являющиеся каталогами, обратите внимание на положение восклицательного знака.
find /data/ -perm 755 #<==Найти файлы в соответствии с правами доступа к файлам, 755 — это разрешения
find .-size 1000c #<==Найти файлы размером более 1000 байт в текущем каталоге.
find /data -path "/data/dir3" -prune -o -print #<==Параметр -path определяет стиль пути, а параметр -prune используется для исключения указанного каталога.
find /data \( -path /data/dir2 -o -path /data/dir3 \) -prune -o -print Используйте круглые скобки для объединения нескольких выражений, но круглые скобки имеют особое значение в командной строке, поэтому "\" здесь используется для escape, что указывает bash не анализировать следующий символ "()", а оставить его для обработки команде find. Более того, между левой скобкой и путем в «\(-path» есть пробел, а между dir3 и правой скобкой в «dir3\)». Это грамматическое требование.
find . -user none #<==Найти файлы, пользователем которых является никто.
find . -nouser#<==Найти файлы, которые не соответствуют ни одному пользователю.
find .group none #<==Эта функция аналогична предыдущему примеру, здесь она относится к поиску файлов с группой пользователей none.
find .nogroup#<==Найти файлы, которые не соответствуют ни одной группе пользователей.
find . -newer file1.txt ! -newer file2.txt#<== Найти файлы, время изменения которых новее, чем file1.txt, но старше, чем file2.txt.
find -maxглубина 1 -type d #<==-maxглубина 1 находит каталог первого уровня, аналогично дереву -L 1.
find . -maxглубина 1 -type d ! -name "." Используйте восклицательный знак (!), чтобы отрицать и не выводить строки, имена которых состоят из точек.
find . -maxглубина 1 -type d ! -name "." -o -name "oldboy"#<==-o означает или отображать все каталоги или файлы с именем oldboy, кроме "."
find . -maxглубина 1 -type d ! -name "." -a -name "ext"#<==-a означает и, он ищет каталоги, которые не являются точками и имя которых - ext. Каталог с именем ext.
find . -type f -exec ls -l {} \;#<==Команда find находит все обычные файлы в текущем каталоге и использует команду ls -l в опции -exec для их просмотра.
find . -type f -mtime 14 -exec rm {} \; Команда #<==find находит файлы в каталоге, которые были изменены более 14 дней назад, и использует команду rm в опции -exec для их удаления.
find /var/log/ -name "*.log" -mtime 5 -ok rm {} \;#<==Команда find находит все имена файлов, заканчивающиеся на ".log" и время изменения в файле /var/log / файлы старше 5 дней и удалите их. До сих пор функция -ok аналогична -exec, но -ok также имеет функцию выдачи подсказки перед удалением. Нажмите клавишу y, чтобы удалить файл, и нажмите клавишу n, чтобы не удалять файл, что будет безопаснее.
find . -type f|xargs ls -l #<== Передайте обычные файлы, найденные командой find, команде ls через символ канала и команду xargs для выполнения. Обратите внимание на формат команды: здесь используется символ вертикальной черты «|». xargs — это команда и фильтр для передачи параметров другим командам. Прежде чем читать эту часть, вы можете прочитать главу о команде xargs.
find .-name "*.txt"|xargs -i mv {} dir2/ #<== Используйте параметр -i xargs, чтобы {} представлял файлы, найденные с помощью команды find. Поместите эти файлы в качестве параметров после команды mv как Исходный файл, который нужно переместить, перемещается в каталог dir2. Дополнительные методы см. в разделе 2.13.3 «Расширенные знания: несколько методов перемещения найденных файлов в указанные места».
find dir2 -name "file*"|xargs -p rm -f#<== Примечание. При использовании параметра -p команды xargs вам будет предложено подтвердить, следует ли выполнять следующие команды.
xargs: преобразовать стандартный ввод в аргументы командной строки.
xargs [опции] Команда xargs — это фильтр, который передает параметры командной строки другим командам. Он может преобразовывать данные, передаваемые по каналу или стандартному вводу, в параметры командной строки команды, следующей за командой xargs.
xargs < test.txt#<== преобразует все числа в одну строку. Обратите внимание, что xargs не может напрямую подключаться к файлам и его необходимо комбинировать с символом перенаправления ввода «<».
xargs -n 3 < test.txt#<== Вывод до 3 в строке.
echo SplitXsplitXsplitXsplitX|xargs -d X -n 2 #<==Использовать X в качестве разделителя и выводить до 2 символов в строке.
find .-name "*.log"|xargs -i mv {} dir1/ #<==Использование опции -i команды xargs позволяет {} заменить файл или каталог, найденный предыдущей командой поиска.
find . -name "file*"|xargs -I [] cp [] dir2 Параметр -I может указывать другие символы вместо {}, например [].
find .-type f -name "*.txt" -print0|xargs -0 rm -f #<==xargs ошибочно считает, что их разделителем является пробел. Решение состоит в том, чтобы разделить выходные данные нулевым символом и использовать -. 0 вариант.
переименовать: переименовать файл
переименовать из в файл
rename "_finished" "" * #<==Заменить _finished всех файлов на пустой.
rename .jpg .oldboy *.jpg #<==Заменить .jpg во всех файлах на .oldboy.
базовое имя: отображает имя файла или имя каталога.
базовое имя [<файл или каталог>] [суффикс]
basename /data/dir1/file1.txt #<==Удалите часть пути, то есть отображается только имя файла.
имя_каталога: отображает путь к файлу или каталогу.
имя_каталога [<файл или каталог>
имя_каталога /data/dir1/file1.txt #<==Отображает только путь, по которому находится файл. /данные/каталог1
chattr: изменить расширенные атрибуты файла
chattr [опции] [режим] [<файл или каталог>]
чаттр тест #<== aДобавьте дополнительные атрибуты.
chattr i file1.txt #<==Используйте параметр i, чтобы заблокировать файл.
lsattr: просмотр атрибутов расширения файла.
lsattr [опции] [<файл или каталог>]
lsattr file1.txt #<==Просмотр расширенных атрибутов файла по умолчанию.
lsattr -d dir2 #<==Используйте опцию -d для просмотра расширенных атрибутов каталога.
файл: отображает тип файла
файл [опции] [<файл или каталог>]
файл oldboy oldboy: каталог #<==oldboy — это каталог.
md5sum: вычислить и проверить значение MD5 файла.
md5sum [опции] [файл]
md5sum oldboy.txt #<==команда md5sum может напрямую подключить файл, чтобы получить значение MD5 файла.
chown: изменить пользователя и группу пользователей файла или каталога
chown [опции] [пользователь:группа] [<файл или каталог>]
Знак ":" можно заменить на ".".
Имена пользователей и групп, подлежащие авторизации, должны действительно существовать в системе Linux.
chown oldboy file1.txt #<==Авторизуйте пользователя oldboy, пользователь oldboy должен быть создан заранее.
chown .oldboy file1.txt #<==Авторизуйте группу пользователей oldboy. Будьте внимательны и не пропустите точку. Точку здесь также можно заменить двоеточием.
chown root:root file1.txt #<==Вы можете использовать ":" или ".".
chown -R oldboy.oldboy dir2/ #<==Используйте параметр -R для рекурсивной авторизации.
chmod: изменить права доступа к файлу или каталогу
Команда chmod — это команда, используемая для изменения прав доступа к файлу или каталогу, но выполнить эту команду могут только владелец файла и суперпользователь root.
chmod [опции] [режим] [<файл или каталог>]
chmod a= file1.txt #<==Установить все разрешения (a) пустыми (без символов после знака равенства).
chmod u x file1.txt #<==Установите разрешение владельца на выполнение пользовательского файла.
chmod g w file1.txt #<==Установите права записи для группы пользователей группового файла.
chmod или r file1.txt #<==Установите другие разрешения на чтение для других пользователей.
chmod ug r,o-r file1.txt #<==Можно использовать несколько операций разрешения, разделенных запятыми. ug r — это сокращение от u r и g r.
chmod u=rwx,g=rx,o=x file1.txt #<== "=" отозвать все исходные разрешения, а затем предоставить данные разрешения.
chmod 000 file1.txt #<==Это имеет тот же эффект, что и предыдущий пример chmod a= file1.txt.
chmod 753 file1.txt #<==Каждый должен уметь преобразовывать числовые и буквенные разрешения.
chmod -R 777 dir2/ #<== Рекурсивно предоставить права доступа к каталогу файлов 777.
chgrp: изменить группу пользователей файла
chgrp [опции] [группа пользователей] [<файл или каталог>]
chgrp oldboy install.log #<==Группа пользователей, изменяющая файл install.log, — oldboy.
chgrp -R корневой каталог1/ #<==Параметр -R рекурсивная авторизация.
umask: Отобразить или установить маску разрешений.
umask [опции] [режим]
Глава 3. Команды обработки фильтрации файлов и редактирования содержимого
cat: объединить файлы или просмотреть содержимое файла
кот [опции] [файл]
cat >test.txt<<EOF EOF #<== Для завершения необходимо нажать Enter. Кроме того, EOF должен появляться парами, но его также можно заменить другими парными тегами. Например: тег символа oldboy, по умолчанию конечный EOF должен быть написан в верхнем регистре.
cat -n test.txt#<==Примечание. Как видно из приведенного выше примера, опция -n предназначена для нумерации содержимого файла в соответствии со строкой и печати вывода, включая пустые строки.
cat -b test.txt#<==Примечание. Как видно из приведенного выше примера, параметр -b аналогичен параметру -n, но параметр -b не нумерует пустые строки.
cat -E test.txt#<== Примечание. Как видно из приведенного выше примера, опция -E отображает скрытый символ конца идентификатора $ в конце файла. Даже если это пустая строка, в конце есть идентификатор конца, поэтому всем следует обратить на это внимание.
cat -s test.txt#<==Изначально здесь было три пустые строки. Теперь, благодаря опции -s, она становится одной пустой строкой.
кот >test3.txt
Перенаправления Cat и «>» направляют стандартный вывод в файл, что является особым способом редактирования файлов.
Чтобы завершить редактирование, вы можете использовать сочетание клавиш Ctrl d или Ctrl c для выхода, но сначала вы должны нажать Enter и поместить курсор на новую невведенную строку.
При наборе таким способом вы обнаружите, что если вы допустите ошибку и просто нажмете клавишу Backspace, то удалить его не получится. Чтобы удалить его, нужно зажать клавишу «Ctrl Backspace».
Эта операция представляет собой специальный метод редактирования, упоминаемый как расширенный элемент знаний и редко используемый в реальных производственных средах.
cat web01_access_20130522.log web02_access_20130522.log > web_access_20130522.log Используйте cat для подключения нескольких файлов для объединения журналов веб-кластера.
tac: Отобразить содержимое файла в обратном порядке
tac [опции] [файл]
подробнее: Отображение содержимого файла на страницах
еще [опции] [файл]
подробнее /etc/services #<==Не принимает никаких параметров и отображает содержимое файла на весь экран.
more -5 /etc/services #<==В это время содержимое файла не отображается на весь экран, отображаются только 5 строк содержимого.
подробнее 888 /etc/services #<==В это время содержимое файла отображается непосредственно из строки 888.
ls /etc/|more -10 #<==Все должны знать, что в /etc много каталогов с файлами. Представление Direct ls будет отображать слишком много содержимого, поэтому вы можете использовать команду more для отображения его на страницах.
less: отображать содержимое файла на страницах.
меньше [опции] [файл]
less /etc/services #<==Не принимает никаких параметров и отображает содержимое файла на весь экран.
less -N /etc/services #<==Перед каждой строкой указан номер строки.
ls /etc/|less #<==Просмотр содержимого файлов каталога etc на страницах.
head: отображение заголовка содержимого файла.
заголовок [опции] [файл]
head /etc/passwd #<==Если команда head не получает никаких параметров, по умолчанию будут отображаться первые 10 строк файла.
head -n 5 /etc/passwd #<==Первый формат определяет первые 5 строк, которые будут отображаться.
head -5 /etc/passwd #<==Второй формат также определяет первые 5 строк, которые будут отображаться, но этот способ записи более упрощен.
head -c 10 /etc/passwd #<== Прочитать первые 10 байт файла. Предыдущий метод записи используется в строковых единицах, а -c — в байтах. Эта функция обычно не используется.
head -n -21 /etc/passwd #<==Здесь число имеет отрицательное значение, и этот метод записи обычно не используется.
Tail: Отображение хвоста содержимого файла.
хвост [опции] [файл]
Tail /etc/passwd #<==Команда Tail не принимает параметры и по умолчанию отображает последние 10 строк.
Tail -n 5 /etc/passwd #<==Показать последние 5 строк текста
Tail -5 /etc/passwd #<==Отображается второй способ написания последних 5 строк текста. Этот способ записи проще.
Tail -n 15 /etc/passwd #<==Отобразить файл, начиная со строки 15. Расширенное использование, но не часто используется.
Tail -f /application/nginx/logs/access.log #<==tail -f отслеживает изменения файлов в режиме реального времени. Распространенным сценарием в производственной среде является мониторинг файлов журналов.
Tail -f oldboy #<==Используйте параметр -f Если файл не существует, будет сообщено об ошибке и команда завершится.
Tail -F oldboy #<==Используйте параметр -F Если файл не существует, будет возвращена ошибка, но он все равно будет ждать создания файла и не выйдет из команды.
Tailf: трассировка файлов журнала
Tailf [опции] [файл]
Команда Tailf почти эквивалентна Tail-f. Отличие от Tail-f заключается в том, что если файл не увеличивается, он не будет обращаться к файлу на диске и не будет изменять время доступа к файлу.
Tailf /application/nginx/logs/access.log #<== позволяет легко проверить изменяющийся файл журнала.
вырезать: извлечь фрагмент текста из текста и вывести его
вырезать [опция] [файл]
Cut -b 3 oldboy.txt #<==Выводить только третий байт.
Cut -b 3-5,10 oldboy.txt #<==-b поддерживает запись в формате 3-5, причем несколько позиций разделяются запятыми.
Cut -b -3 oldboy.txt #<==-3 означает от первого байта к третьему байту.
Cut -b 3- oldboy.txt #<==3- означает от третьего байта до конца строки.
Cut -b -3,3- oldboy.txt #<==При таком способе записи будет выводиться вся строка, и не будет двух последовательных перекрывающихся букв a.
Cut -b 2-10 oldboy.txt#<==Примечание. При использовании опции -c в качестве единицы измерения будут использоваться символы, и вывод будет обычным. Опция -b будет вычислять только в байтах (8 двоичных битов), и выходные данные будут искажены. При обнаружении многобайтовых символов вы можете использовать опцию -n, чтобы указать программе Cut не разбивать многобайтовые символы.
Cut -d : -f 1 /etc/passwd #<== Параметр -d указывает ":" в качестве разделителя, а параметр -f указывает первую отображаемую область.
разделить: разделить файл
разделить [опции] [входной файл] [префикс имени выходного файла]
Split -l 10 inittab new_#<== разбивается каждые 10 строк, а имя файла разделения начинается с new_.
Split -l 10 -a 3 inittab new2_#<==Параметр -a определяет длину суффикса.
Split -l 10 -d inittab num_#<== Параметр -d использует числовой суффикс.
Split -b 500K -d lvm lvm_#<==Разделить файл каждые 500 КБ.
вставить: объединить файлы
вставить [опции] [файл]
вставить test1 test2 #<==2 файлы объединяются построчно.
вставить -d: test1 test2 #<==Используйте ":" в качестве разделителя.
вставить -s test1 #<==Используйте опцию -s, чтобы преобразовать содержимое 1 столбца в 1 строку.
вставить -s test1 test2 #<==Каждый файл занимает одну строку.
сортировка: сортировка текста
сортировать [опции] [файл]
sort oldboy.txt #<== не получает никаких параметров, преобразует содержимое файла в код ASCII, а затем сравнивает. Поскольку в коде ASCII порядок чисел такой же, как мы воспринимаем, результат следующий.
sort -n oldboy.txt #<==Используйте опцию -n для прямой сортировки чисел от меньшего к большему.
sort -nr oldboy.txt #<== Подобно этой функции, мы уже изучили ее в команде ls. Опция -r означает обратную. Команда сортировки по умолчанию сортирует в порядке возрастания (от меньшего к большему). Если вы используете опцию -r, она меняется на нисходящий порядок (от большего к меньшему).
sort -u oldboy.txt #<==Используйте опцию -u для удаления повторяющихся строк из файла. Позже вы изучите команду uniq, которая также может удалять повторяющиеся строки.
sort -t " " -k2 oldboy1.txt #<== Параметр -t указывает пробел в качестве разделителя, а параметр -k, за которым следует 2, означает сортировку по второму столбцу.
присоединиться: объединить два файла по одним и тем же полям
присоединиться к [опции] [файл1] [файл2]
join a.txt b.txt#<==Примечание. Требование использования объединения для объединения файлов заключается в том, что два файла должны быть отсортированы по сортировке.
uniq: удалить повторяющиеся строки
uniq [опции] [файл или стандартный ввод]
uniq oldboy.txt #<==Удалить повторяющиеся строки без каких-либо параметров.
uniq -c oldboy.txt #<==Параметр -c отображает количество вхождений соответствующей строки.
sort -n oldboy.txt|uniq -c#<==uniq может выполнять дедупликацию только соседних повторяющихся строк, поэтому вам следует сначала использовать sort для обработки файла, а затем дедупликации.
wc: подсчитывает количество строк, слов или байтов файла.
туалет [опции] [файл]
туалет /etc/inittab 26 149 884 /etc/inittab #<== Если вы не принимаете никакие параметры, что означает отображаемое число?
wc -l /etc/inittab #<==Количество строк.
wc -m /etc/inittab #<==Количество символов.
wc -w /etc/inittab #<==Количество слов.
wc -L /etc/inittab #<==Длина самой длинной строки.
iconv: формат кодировки преобразованного файла.
iconv [опции] [исходная кодировка] [новая кодировка] [входной файл]
iconv -f gb2312 -t utf-8 GB2312.txt #<== Используйте параметр -f, чтобы указать исходную кодировку файла как gb2312, и используйте параметр -t, чтобы указать кодировку, которая будет преобразована в utf-8.
dos2unix: конвертировать файлы формата DOS в формат UNIX.
dos2unix [файл]
diff: сравнить различия между двумя файлами
diff [опции] [файл1] [файл2]
разница тест1 тест2 1,3d0 #<==Удалить строку 1–3 файла 1, удалить строку 0 файла 2, то есть не удалять.
6a4,5 #<==Добавьте следующие 2 строки текста в строку 6 файла 1, а именно строки 4 и 5 текста 2.
Формат отображения diff по умолчанию имеет следующие три подсказки. ·добавить ·c-изменение ·d-удалить
diff -y test1 test2 #<==Используйте параметр -y для параллельного вывода.
diff -y -W 30 test1 test2 #<== Если вы считаете, что приведенное выше значение слишком широкое, вы можете использовать параметр -W, чтобы указать ширину.
diff /etc/rc3.d/ /etc/rc6.d/ #<==diff может не только сравнивать различия в содержимом файла, но и сравнивать различия в файлах в каталоге.
vimdiff: инструмент визуального сравнения
vimdiff [опции] [файл1] [файл2]
Vimdiff вызывает vim для открытия файлов. Он может открывать 2, 3 или 4 файла одновременно, до 4 файлов, и будет использовать разные цвета, чтобы различать различия между файлами.
vimdiff тест1 тест2 #<==Чтобы выйти из интерфейса vimdiff, вам необходимо выполнить операцию выхода из vim дважды подряд (:q). Команда vim будет подробно объяснена позже. Поскольку команда vimdiff вызывает функцию vim, операция выхода такая же, как и из vim.
rev: Обратное содержимое выходного файла.
версия [файл]
echo {1..10}|rev #<==Приведенные выше символы записываются задом наперед.
rev oldboy.txt #<==Вы можете сравнить ее с командой tac, которую вы изучили ранее.
tr: заменить или удалить символы
tr [опции] [символ1] [символ2]
Команда tr заменяет, уменьшает или удаляет символы из стандартного ввода и записывает результаты в стандартный вывод.
tr 'abc' 'xyz' < oldboy.txt #<==Команда tr для соединения файлов является специальной и требует символа перенаправления "<".
tr '[a-z]' '[A-Z]' <oldboy.txt #<==Преобразовать нижний регистр в верхний.
tr '[0-9]' '[a-j]' < oldboy.txt #<==Замените число 0 на a, замените 1 на b...соответствие один к одному.
tr -d 'oldboy'<oldboy.txt #<==Используйте параметр -d для удаления символов.
tr -d ' \t' < oldboy.txt #<== Используйте параметр -d для удаления всех символов новой строки и символов табуляции. Все строки становятся одной строкой, и буквы соединяются вместе.
echo 'oooolllddbbboyyyyy' |tr -s oldboy #<==Используйте параметр -s для сжатия последовательных символов в один.
tr '0-9' '*' < oldboy.txt #<== Замените все цифры на *.
tr -c '0-9' '*' < oldboy.txt #<==Используйте параметр -c, за исключением цифр, остальные символы, включая символы новой строки, будут заменены на *.
od: Отображение файлов в разных базах
od [опции] [файл]
тройник: множественный таргетинг
тройник [опции] [файл]
ls|tee ls.txt #<==Команда ls берет на себя команды канала и tee, выводит результаты ls на экран и записывает результаты в ls.txt.
ls|tee -a ls.txt #<==Используйте параметр -a, чтобы добавить содержимое в файл без очистки существующего содержимого в файле.
vi/vim: текстовый редактор
vim [опции] [файл]
Три режима vim
Нормальный режим
режим редактирования
Операции редактирования ввода не могут быть выполнены в обычном режиме. Вы можете войти в режим редактирования, только нажав такие буквы, как «i, I, o, O, a, A, r, R, s, S» (из которых «I» — это буква «I»). наиболее часто используемые). Выполнение операций редактирования, таких как ввод текста. Важная особенность проверки того, находится ли файл в режиме редактирования, заключается в том, что в левом нижнем углу окна должен быть знак вставки «--INSERT--» или «--INSERT--».
командный режим
В обычном режиме, когда вы вводите «:», «/» или «?», курсор автоматически находит эту строку. В этом режиме вы можете выполнять сохранение, выход, поиск, замену, отображение номеров строк и другие соответствующие операции.
Краткое описание того, как открывать файлы в vim
vim-файл: откройте/создайте новый файл, поместите курсор в начало строки 1, а file — любое имя файла.
vim file n: откройте файл, поместите курсор в начало n-й строки, n — натуральное число.
vim-файл: откройте файл и поместите курсор в начало последней строки.
vim file/pattern: поместите курсор на первую строку, соответствующую шаблону, шаблон — это любая строка.
Глава 12. Часто используемые встроенные команды в системах Linux
Примеры часто используемых встроенных команд Linux
helpView — справка по встроенной команде
help [опции] [встроенная команда]
help #<==Используйте команду help для просмотра всех встроенных команд Linux.
help help #<== Формат «встроенная команда help» позволяет просматривать справку по встроенным командам, а сама помощь также является встроенной командой.
help cd #<==Просмотр справочной документации по команде cd.
help -d cd #<==Вывести краткое описание встроенной команды.
help -m cd #<==Отображение в формате справки man.
help -s cd #<==Выводить только синтаксис команды.
Заполнитель":"
if [ $i -eq 1 ] #<==Условное выражение. затем : #<== Если в сценарии Shell используется оператор определения if, то определенные операции обычно выполняются после успешного решения, но иногда неизвестно, какие операции выполнять, или определенные операции выполнять не нужно. Однако из-за фиксированного синтаксического формата оператора if мне приходится писать команду, чтобы занять пространство, потому что, если в этой строке нет содержимого, будет сообщено о синтаксической ошибке. В этот момент будет указан заполнитель «:». используется, но не волнуйтесь, эта команда не окажет никакого влияния на ваш сценарий оболочки, она немного похожа на поле pass в других языках программирования. еще эхо "Привет, мир" фи
"." и источник
«.» и source часто используются для загрузки или выполнения сценариев Shell, но они отличаются от обычного метода выполнения сценариев Shell. Давайте посмотрим на сравнение ниже.
·Первый метод, имя_скрипта bash или имя_скрипта sh, часто используется, когда сам файл сценария не имеет разрешений на выполнение (то есть бит x атрибута разрешения файла равен -). интерпретатор не указан в начале файла сценария. Он также необходим при необходимости.
·Второй метод — имя исходного сценария или .script-имя. Этот метод обычно использует источник или «.» (точку) для чтения или загрузки указанного файла сценария оболочки (например, san.sh), а затем последовательно «Выполнить». все операторы в указанном файле сценария оболочки san.sh. Эти инструкции будут выполняться в текущем родительском процессе сценария Shell Father.sh (некоторые другие режимы запускают новый процесс для выполнения дочернего сценария). Таким образом, использование source или "." может передать значение переменной или возвращаемое значение функции в самом сценарии san.sh в текущий родительский сценарий Shell Father.sh для использования.
Условный тест "[" и тест
· Синтаксический формат условного теста: test<тестовое выражение>. · Синтаксический формат условного теста []: [<тестовое выражение>]
На обоих концах скобок должны быть пробелы. [] эквивалентно тесту, то есть все варианты оценки теста можно использовать непосредственно в [], но рекомендуется использовать [].
test -f file && echo true || echo false #<== Это значение true, если файл file существует и является обычным файлом. Поскольку файл file не существует, выводится значение false.
[ -f /tmp/oldboy.txt ] && echo 1 || echo 0 #<== True, если файл /tmp/oldboy.txt существует и является обычным файлом, поскольку файл не существует, выводится 0.
Псевдонимы команд, псевдонимы и unalias
alias [псевдоним команды]=[оператор команды] unalias [псевдоним команды]
alias #<==Без каких-либо параметров отображаются все псевдонимы команд.
alias rm='echo "Не использовать rm."' #<==Определите псевдоним rm для команды echo "Не используйте rm."; команда в одинарных кавычках должна быть исполняемой.
alias rm #<==Запросить оператор команды, на который указывает rm.
alias eth0='cat /etc/sysconfig/network-scripts/ifcfg-eth0' #<==Определите псевдоним eth0.
·Добавьте некоторые параметры защиты в опасные команды, чтобы предотвратить человеческие ошибки, например псевдоним rm. · Преобразуйте множество сложных строк или команд в простую строку или команду, например псевдоним eth0.
unalias eth0 #<==Удалить псевдоним с помощью unalias
Команды, связанные с фоновыми задачами bg/fg/jobs
Команда bg используется для перевода задач выполнения на передний план или запуска приостановленных задач в фоновом режиме; команда fg является противоположностью команды bg, она переводит фоновые задачи на передний план для выполнения, можно использовать команду jobs; для просмотра списка фоновых задач.
bg [порядковый номер задачи] fg [номер последовательности задачи] рабочие места
вырваться из цикла
#!/бин/баш for((i=0; i<=5; i)) делать если [$i -eq 3] ;то Break #<==Выйти из всего цикла и продолжить выполнение программы вне цикла. фи эхо $i сделанный эхо "ок"
продолжить в следующий цикл
#!/бин/баш for((i=0; i<=5; i)) делать если [$i -eq 3] ;то continue #<==Завершить этот цикл и продолжить следующий цикл. фи эхо $i сделанный эхо "ок"
eval выполняет параметры как команды
echo `hostname -I` #<==Если вы хотите выполнять команды в кавычках, вам нужно использовать обратные кавычки, также называемые обратными кавычками.
echo '`hostname -I`' #<==Обратные кавычки заключаются в одинарные кавычки: вы получаете то, что видите, поэтому результатом будет `hostname -I`. `имя хоста -I`
eval echo '`hostname -I`' #<==Добавьте команду eval в начале команды, одинарные кавычки недопустимы! Потому что команда eval может сначала анализировать или выполнять переменные или команды, заключенные в одинарные кавычки.
выход завершает командную строку Shell
выход #<==Чтобы выйти из командной строки Shell, вы можете использовать команду выхода, сочетание клавиш Ctrl D или команду выхода из системы.
#!/бин/баш for((i=0; i<=5; i)) делать если [$i -eq 3] ;то exit #<==После выполнения команды выхода весь скрипт завершится, а оставшееся содержимое скрипта больше не будет выполняться. фи эхо $i сделанный эхо "ок"
экспорт Просмотр или установка глобальных переменных
экспортировать [опции]
экспорт -p #<==Используйте опцию p для печати всех переменных среды.
экспорт MYENV=7 #<==Только переменные, заданные с помощью команды экспорта, являются глобальными переменными.
история Просмотр истории команд
история [варианты]
история #<== Отображает все записи истории команды.
History 10 #<== Команда истории, за которой следует число n, указывает, что будут отображены последние n записей команд.
история -d 991 #<== «история -d порядковый номер команды истории» может очистить команду истории с указанным порядковым номером.
история -c #<==Используйте опцию -c, чтобы очистить историю всех команд.
прочитать переменную интерактивного присваивания
Команда чтения считывает строку из стандартного ввода и присваивает значение каждого поля входной строки переменной оболочки.
прочитать [опция] [имя переменной]
read #<==Выполните команду read, и командная строка ожидает ввода. oldboy #<==Введите строку oldboy.
echo $REPLY #<==readПолученные входные данные по умолчанию сохраняются в переменной REPLY.
read one #<==read, за которым следует имя переменной, и этой переменной будут присвоены входные данные.
read one two #<==read может сопровождаться несколькими именами переменных. n1 n2 #<== По умолчанию в качестве разделителей используются пробелы. Первый абзац n1 присваивается первой переменной one, а второй абзац n2 присваивается второй переменной two.
прочитать один два m1 m2 m3 #<== Если входные данные превышают количество переменных, то все конечные значения будут присвоены последней переменной, m1 будет присвоено первой переменной, а «m2 m3» будет присвоены переменной два вместе.
read -p "Пожалуйста, введите свой возраст:" age #<==Перед переменной age должен быть хотя бы один пробел! Используйте параметр -p для определения операторов подсказки, отображаемых в командной строке, что более удобно для пользователя.
read -t 3 -p "Пожалуйста, введите ваш возраст:" age #<== Используйте параметр -t, чтобы указать количество секунд ожидания. По истечении этого времени команда автоматически завершится.
Опция -s предотвращает отображение на экране данных, введенных в команду чтения, например паролей.
read -n 3 -p "Вы можете ввести только 3 символа. Если не верите, попробуйте:" num
type определяет тип команды
введите [опция] [команда]
введите ls #<== без каких-либо параметров, отображает основную информацию ls.
type -a ls #<==Отобразить всю необходимую информацию.
ulimit изменяет лимиты использования системных ресурсов
Команда ulimit используется для проверки использования системных ресурсов. Она также может изменять квоту, выделяемую системным ресурсам процессами или пользователями.
ulimit [опции]
ulimit -a отображает все текущие ограничения использования системных ресурсов.
ulimit -n 1024 #<==Максимальное количество открытых файлов (также называемых файловыми дескрипторами) по умолчанию в новой системе равно 1024. Это значение слишком мало для сервера в производственной среде, поэтому это значение обычно корректируется во время оптимизации сервера. . большой.
ulimit -n 65535 #<==Количество корректировки равно 65535, но корректировка с помощью команды вступает в силу только для текущего окна, поэтому файл конфигурации необходимо изменить.
echo '* - nofile 65535' >> /etc/security/limits.conf #<== Измените файл конфигурации и вступит в силу навсегда.
unset очищает переменные
unset OLDBOY oldgirl #<==команда unset может очистить значение переменной.
Глава 11. Команды управления системой Linux
lsof: просмотр файлов, открытых процессом
lsof [опции]
lsof /var/log/messages показывает процессы, использующие этот файл.
lsof -c rsyslog #<==Используйте опцию -c для отображения файлов, открытых указанным процессом.
lsof -p 1277 #<==Используйте опцию -p для отображения файлов, открытых указанным номером процесса.
lsof -i #<==Просмотреть все процессы.
lsof -i tcp #<== Отображает информацию о процессах всех сетевых соединений TCP.
lsof -i :22 #<==Отобразить процесс с портом 22. Эта команда используется очень часто.
lsof -i tcp:22 #<==Показать процессы, соответствующие TCP и порту 22.
lsof -u oldboy #<==Используйте опцию -u для отображения файлов, используемых пользователем oldboy.
lsof -U #<==Используйте опцию -U для отображения всех файлов сокетов.
uptime: отображает время работы и загрузку системы
время безотказной работы
бесплатно: просмотр информации о системной памяти.
бесплатно [опция]
free #<==Без параметров по умолчанию отображается количество байтов, которое трудно понять.
free -m #<==Используйте опцию -m для отображения использования памяти в МБ.
free -h #<==Используйте опцию -h для автоматического преобразования в единицы КБ, МБ и ГБ на основе фактического размера для отображения использования памяти.
free -h -s 10 #<==Используйте опцию -s для регулярного обновления использования памяти в секундах.
iftop: динамически отображать информацию о трафике сетевого интерфейса
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo ням -y установить iftop
ифтоп [опции]
ифтоп интерфейс: eth0 #<==По умолчанию используется первая сетевая карта системы мониторинга. Вы можете использовать опцию -i, чтобы указать сетевую карту мониторинга.
iftop -nNBP ·-n: не выполнять разрешение DNS и отображать числовой IP-адрес. ·-N: Отобразить номер порта в числовой форме. ·-P: Отобразить номер порта. ·-B: по умолчанию трафик отображается в битовых единицах, которые необходимо рассчитать в соответствии с нашим пониманием, но использование опции -B напрямую отображает трафик в байтах.
vmstat: статистика виртуальной памяти
vmstat [опции] [интервал [количество раз]]
1) В команде vmstat и последующих опциях между каждым элементом должен быть хотя бы один пробел. 2) задержка представляет собой интервал между двумя выходами. 3) count представляет количество статистических данных в соответствии с временным интервалом, заданным задержкой.
vmstat #<==Если параметры «интервал» и «количество раз» опущены, отчет будет отображен только один раз, а затем завершится.
vmstat 5 #<== означает, что выходная информация обновляется каждые 5 секунд, вывод зациклен, и для остановки вывода нажимается комбинация клавиш Ctrl C.
vmstat 5 6 #<== означает, что выходная информация обновляется каждые 5 секунд, а вывод прекращается после 6-го счета.
vmstat -a 2 5 отображает активную и неактивную память.
vmstat -s Просмотр сведений об использовании памяти.
vmstat -d Просмотр операций чтения/записи диска.
vmstat -p /dev/sda1 Просмотр статистики чтения и записи диска /dev/sda1.
mpstat: статистика информации о процессоре
mpstat [опции] [интервал времени [количество раз]]
1) В команде mpstat и последующих опциях между каждым элементом должен быть хотя бы один пробел. 2) задержка представляет собой временной интервал между двумя выходами. 3) count представляет количество статистических данных в соответствии с временным интервалом, заданным задержкой.
mpstat #<==Если параметры «интервал времени» и «количество раз» опущены, отчет будет отображен только один раз, а затем завершится.
mpstat 5 6 #<== означает, что выходная информация обновляется каждые 5 секунд, а вывод прекращается после 6-го счета.
mpstat -P 0 #<==Отобразить информацию о первом процессоре.
iostat: статистика информации ввода-вывода
iostat [опции] [интервал [количество раз]]
1) В команде iostat и последующих опциях между каждым элементом должен быть хотя бы один пробел. 2) интервал представляет собой интервал между двумя выходными данными. 3) count представляет количество статистических данных в соответствии с временным интервалом, заданным задержкой.
iostat #<==Если параметры «интервал времени» и «количество раз» опущены, отчет будет отображен только один раз, а затем завершится.
iostat 2 3 #<==Обновлять дисплей каждые 2 секунды и отображать его всего 3 раза.
iostat -d #<==Опция -d отображает только статистику диска.
iostat -d -k #<==Опция -k отображает данные в КБ.
iostat -d -m #<==Опция -m отображает данные в МБ.
iostat -d -x -k #<==Опция -x отображает расширенную информацию.
iostat -c #<==Опция -c используется только для отображения статистики процессора системы.
iotop: динамически отображать статистику дискового ввода-вывода.
иотоп [опции]
йотоп
sar: собрать системную информацию
sar [опции] [интервал [количество раз]]
1) В команде sar и последующих опциях между каждым элементом должен быть хотя бы один пробел. 2) интервал представляет собой интервал между двумя выходными данными. 3) count представляет количество статистических данных в соответствии с временным интервалом, указанным интервалом.
sar -u 2 3 #<== Используйте опцию -u для отображения состояния загрузки всех процессоров в системе во время выборки, за которой следует 2 3, указывающая статистику каждые 2 секунды и 3 раза.
sar -q 2 3 #<==Используйте опцию -q, чтобы отобразить размер очереди выполнения.
sar -r 2 3 #<==Используйте опцию -r, чтобы отобразить использование системной памяти во время выборки.
sar -b 2 3 #<==Используйте опцию -b, чтобы отобразить использование буфера во время выборки.
sar -n DEV 2 3 #<==Используйте -n DEV для отображения информации о сетевом интерфейсе.
sar -n EDEV 2 3 #<==Используйте -n EDEV для отображения статистики сетевых ошибок.
sar -n SOCK 2 3 #<==Используйте -n SOCK для отображения информации о сокете.
sar -d 2 3 #<==Используйте опцию -d, чтобы отобразить состояние использования всех жестких дисков в системе во время выборки.
chkconfig: Управление службой загрузки
chkconfig [опции]
chkconfig --list #<==Используйте параметр --list напрямую, чтобы просмотреть состояние всех служб.
chkconfig --list sshd #<==Укажите имя системной службы, чтобы отобразить статус запуска этой службы.
chkconfig sshd off #<==Используйте off, чтобы отключить службу sshd и запустить ее автоматически на уровнях 2, 3, 4 и 5.
chkconfig sshd on #<==Используйте on, чтобы включить автоматический запуск службы sshd на уровнях 2, 3, 4 и 5.
chkconfig --level 3 sshd off #<==Используйте --level, чтобы указать выключение службы sshd и ее автоматический запуск на уровне 3.
chkconfig --level 3 sshd on #<==Используйте --level, чтобы указать, что служба sshd будет автоматически запускаться на уровне 3.
ntsysv: Управление службой загрузки
ntsysv [опции]
нцисв
настройка: инструмент управления системой
Команда настройки — это инструмент управления системой на основе текстового интерфейса, который объединяет управление аутентификацией пользователей, управление брандмауэром, управление сетью и управление системными службами.
настраивать
ethtool: запрос параметров сетевой карты
ethtool [устройство сетевой карты]
ethtool eth0 #<==Подключите указанную сетевую карту, чтобы отобразить параметры сетевой карты.
mii-tool: Управление состоянием сетевых интерфейсов
mii-tool [опции] [сетевой интерфейс]
mii-tool eth0 #<==Не принимать никаких параметров и отображать упрощенную информацию.
mii-tool -v eth0 #<==Используйте опцию -v для отображения подробной информации.
dmidecode: запросить информацию об аппаратном обеспечении системы.
dmidecode [опции]
dmidecode -s system-product-name #<==Модель сервера автора — Dell 2950. PowerEdge 2950
dmidecode -s системный-серийный-номер #<==Просмотр ключевого слова серийного номера системный-серийный-номер.
dmidecode -t Memory #<==-Используйте опцию -t, за которой следует ключевое слово Memory, чтобы просмотреть только информацию о памяти. Дополнительные ключевые слова можно просмотреть с помощью команды dmidecode -t.
lspci: показать все устройства PCI
lspci [опции]
lspci -s 02:04.0 #<==02:04.0 Из примера 1 мы можем узнать номер устройства сетевой карты.
lspci -s 02:04.0 -v #<==Просмотр подробной информации.
ipcs: отображает состояние средств межпроцессной связи.
ипкс [варианты]
IPCRM: очистить информацию, связанную с IPC
IPCRM [опции]
ipcrm -s 0 #<==Удалить набор сигналов с указанным полуИДом, равным 0.
rpm: менеджер пакетов RPM
об/мин [опции]
rpm -qpi lrzsz-0.12.20-27.1.el6.x86_64.rpm #<==Отображает версию пакета rpm, дату создания и другую информацию.
rpm -qpl lrzsz-0.12.20-27.1.el6.x86_64.rpm #<==Просмотр файлов в пакете rpm.
rpm -qpR lrzsz-0.12.20-27.1.el6.x86_64.rpm #<==Просмотр файлов, необходимых для установки этого пакета rpm.
rpm -ivh lrzsz-0.12.20-27.1.el6.x86_64.rpm #<==Установите пакет rpm и используйте параметр -h для отображения индикатора выполнения. #<==rpm также поддерживает онлайн-установку, прямое подключение к URL-адресу.
rpm -qa lrzsz #<==Параметр -p здесь не используется, поскольку lrzsz — это имя программного обеспечения, которое не заканчивается на «.rpm».
rpm -e lrzsz #<== Используйте параметр -e для удаления пакета программного обеспечения. Этот параметр более опасен. Как правило, старайтесь не удалять пакет программного обеспечения, если в нем нет необходимости, поскольку весьма вероятно, что некоторые необходимые файлы будут удалены. система будет удалена по ошибке, что в конечном итоге приведет к повреждению системы.
rpm -qf $(который ifconfig) #<== Иногда вы обнаружите, что в системе нет определенных файлов или команд, но вы не знаете, к какому программному пакету принадлежит файл или команда. В этом случае вы можете использовать команду . Параметр -f для запроса (в разделе Query в системе, в которой есть этот файл). Например, в этом примере команда ifconfig принадлежит программному пакету net-tools.
ням: автоматизированный инструмент управления пакетами RPM
ням [опции] [команда] [пакет]
ням, установи httpd
yum list httpd #<==Проверьте список установки httpd.
yum search httpd #<==Поиск пакетов, содержащих строку httpd.
yum grouplist #<==Просмотр установленных и удаленных групп пакетов.
yum groupinstall "Поддержка SNMP" -y #<==Установить группу пакетов, выполнить поиск в списке групп yum.
Глава 10. Команды управления сетью Linux
ifconfig: настройка или отображение информации о сетевом интерфейсе.
ifconfig [сетевой интерфейс] [опции]
интерфейс — это имя сетевого интерфейса. Имена сетевых интерфейсов в Linux аналогичны eth0, eth1, lo и т. д., которые соответственно представляют первую сетевую карту, вторую сетевую карту и интерфейс обратной связи. Это необязательная опция. Если вы не добавите эту опцию, будет отображаться вся информация о сетевой карте в системе. Если вы добавите эту опцию, будет отображаться указанная информация о сетевой карте.
Использование команды ifconfig для настройки информации о сетевой карте вступит в силу только временно. Перезапуск конфигурации сети или сервера сделает ее недействительной.
Команда ifconfig должна выполняться от имени пользователя root при настройке информации о сетевой карте.
ifconfig #<== Отображает всю информацию о сетевой карте в системе.
Команда Ifconfig eth0 #<== связана с именем сетевой карты, чтобы указать отображаемую информацию о сетевой карте.
ifconfig -a #<==Используйте опцию -a для просмотра всей информации о сетевой карте.
ifconfig eth1 up #<== Добавьте после имени сетевой карты, чтобы запустить сетевую карту.
ifconfig eth1 down #<==Добавьте down после имени сетевой карты, чтобы выключить сетевую карту.
ifconfig eth0 192.168.120.56 #<==Подключите IP-адрес напрямую к сетевой карте, которую необходимо настроить.
ifconfig eth0:0 10.0.0.8 сетевая маска 255.255.255.0 up#<== Формат синтаксиса: Псевдоним IP-адреса Маска подсети Активировать сетевую карту
ifconfig eth0:1 10.0.0.9/24 up #<==Добавьте второй псевдоним IP, 10.0.0.9/24 имеет тот же эффект, что и 10.0.0.9 маска сети 255.255.255.0, 24 — это маска подсети 255.255.255.0 Другая форма выражения .
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE#<==Ключевые слова для изменения MAC-адреса hw (установка MAC-адреса) ether (тип сетевого устройства).
ifup: активировать сетевой интерфейс
ifup [сетевой интерфейс]
ifup eth0 #<==Активировать сетевой интерфейс eth0 Поскольку eth0 уже запущен, запрос будет следующим. RTNETLINK отвечает: Файл существует.
ifup eth1 #<==Активировать сетевой интерфейс eth1. В нормальных условиях выходной сигнал отсутствует.
fup eth2 #<==Активируйте сетевой интерфейс eth2 и сообщите об ошибке. Файл конфигурации eth2 не найден.
ifdown: отключить сетевой интерфейс
ifdown [сетевой интерфейс]
ifdown eth1 #<== Закройте сетевую карту eth1.
маршрут: отображение или управление таблицами маршрутизации.
маршрут [варианты]
маршрут #<==По умолчанию команда маршрута выполняет разрешение DNS по IP-адресу для создания имени хоста.
маршрут -n #<==Используйте опцию -n, чтобы не выполнять разрешение DNS, что ускорит отображение.
маршрут del default #<==Удалить метод шлюза 1.
маршрут добавления по умолчанию gw 10.0.0.2 #<==Добавить метод шлюза 1, вам необходимо указать адрес шлюза 10.0.0.2 или другой правильный адрес.
маршрут del default gw 10.0.0.2 #<==Удалить метод шлюза 2.
маршрут добавить по умолчанию gw 10.0.0.2 dev eth0#<== Добавить метод шлюза 2, используйте dev для указания сетевого устройства, подходящего для хостов с несколькими сетевыми устройствами.
arp: управляет кэшем arp системы.
арп [варианты]
arp #<==Показать все записи в кэше arp.
arp -n #<==Используйте опцию -n для числового отображения всех записей в кэше arp.
arp -n 10.0.0.1 #<== Укажите, чтобы запросить информацию arp для 10.0.0.1.
arp -s 10.0.0.100 00:0c:29:c0:5a:ef #<==Привязка IP-адреса и MAC-адреса.
arp -d 10.0.0.100 #<==Удалить статическую привязку ARP.
ip: инструмент настройки сети
ip [опции] [сетевой объект] [команда операции]
ip link show dev eth1 #<==Показать свойства сетевой карты eth1.
ip -s link show dev eth1 #<==Показать подробные атрибуты.
ip -s -s link show dev eth1 #<==Используйте два -s для отображения более подробных атрибутов.
ip link set eth1 up #<==Активировать сетевую карту eth1.
ip link set eth1 down #<==Выключите сетевую карту eth1.
ip link set eth1 адрес 0:0c:29:13:10:11 #<==Измените MAC-адрес.
ip a #<==Эффект тот же, что и IP-адрес. Отображаемые результаты включают активированные и неактивные сетевые карты.
ip a add 172.16.1.12/24 dev eth1 #<==Используйте опцию add, чтобы добавить IP-адрес 172.16.1.12, маску подсети 255.255.255.0, сокращенно 172.16.1.12/24, и используйте опцию dev, чтобы указать сеть устройство как eth1.
ip a add 172.16.1.13/24 dev eth1 #<==Вы можете добавить несколько IP-адресов, которые называются вспомогательными IP-адресами. Псевдоним, созданный предыдущей командой ifconfig, — IP. В настоящее время широко используемое программное обеспечение высокой доступности, такое как Heartbeat и Keepalive, использует вспомогательный IP-адрес.
ip a del 172.16.1.12/24 dev eth1 #<==Удалить основной IP-адрес, удалить IP-адрес, настроенный командой ip, и напрямую изменить параметр добавления в предыдущей команде добавления на del.
·Удаление основного IP-адреса сетевой карты также приведет к удалению всех IP-адресов сетевой карты. ·Удаление дополнительного IP-адреса сетевой карты не повлияет на другие IP-адреса сетевой карты.
ip a add 10.0.0.20/32 dev eth1 label eth1:1 #<== Используйте опцию label для создания псевдонима IP.
ip Route|column -t #<==Используйте команду столбца для форматирования, опция -t. По умолчанию количество столбцов во входной строке определяется на основе разделения пробелов для создания таблицы.
ip маршрут добавить 10.1.0.0/24 через 10.0.0.253 dev eth0 #<==Добавить статический маршрут.
ip маршрут del 10.1.0.0/24 #<==Удалить статический маршрут.
ip сосед #<==Используйте команду соседа для просмотра кэша arp.
ip сосед добавить 192.168.1.100 lladdr 00:0c:29:c0:5a:ef dev eth0 #<==Добавить статический ARP.
ip соседа del 192.168.1.100 dev eth0 #<==Удалить статический ARP.
netstat: просмотр состояния сети
нетстат [опции]
netstat -an #<== Часто используемые комбинации -a и -n отображают всю информацию о соединении.
нетстат -lntup Функция приведенного выше командного оператора — отображать всю информацию о прослушиваемых соединениях TCP и UDP. ·-l: Отобразить все сетевые соединения в состоянии ПРОСЛУШИВАНИЕ. ·-n: отображать IP-адрес без преобразования DNS в имя хоста и имя домена. ·-t: Отобразить все TCP-соединения. ·-u: Отобразить все UDP-соединения. ·-p: Отобразить номер и имя процесса.
netstat -rn #<==Используйте параметр -r для отображения информации таблицы маршрутизации. Параметр -n не выполняет разрешение DNS для ускорения выполнения команд.
ss: просмотр состояния сети
Команда ss — это инструмент, аналогичный netstat, который заменит ее. Ее можно использовать для просмотра информации о состоянии сети, включая TCP, UDP-соединения, порты и т. д. Его преимущество в том, что он может отображать все более подробную информацию о состоянии сетевого подключения, и это быстрее и эффективнее, чем netstat.
Если в системе нет команды ss, вам необходимо ее установить. Команда ss принадлежит пакету iproute, поэтому команда установки — yum-y install iproute.
сс [опции] [фильтр]
ss -an #<==Отобразить все соединения сокетов.
ss -an|column -t #<==Приведенный выше вывод будет немного беспорядочным при написании в документе. Давайте отформатируем его с помощью столбца.
ss -lntup|column -t #<==Отобразить все прослушиваемые соединения TCP и UDP.
ss -s #<== Подсчитать текущее количество установленных, закрытых, потерянных и ожидающих TCP-сокетов.
ping: проверка сетевого подключения между хостами.
ping [опции] [целевой хост]
ping www.oldboyedu.com #<==Команда ping напрямую связана с именем домена или IP-адресом, и результат ping всегда будет отображаться.
ping -c 3 -i 3 -s 1024 -t 255 www.oldboyedu.com ·-c 3: отправить пакеты ICMP 3 раза. ·-i 3: интервал времени между отправкой каждого пакета составляет 3 секунды. ·-s 1024: Установить размер отправляемого пакета равным 1024 байта. ·-t 255: установить значение ttl отправленного пакета данных равным 255.
трассировка: отслеживать статус маршрутизации передачи данных.
трассировка [опции] [имя хоста или IP] [размер пакета]
arping: отправить запрос arp
арпинг [варианты]
arping -f 10.0.0.1 #<== Используйте опцию -f для выхода при получении первого ответа, чтобы определить, активен ли хост назначения.
arping -f 10.0.0.3 #<==Неработающий хост не отвечает, и команда ожидает завершения работы с помощью Ctrl C.
telnet: удаленный вход на хост
telnet [опции] [имя хоста или IP] [порт]
telnet 10.0.0.12 22 #<== Замените здесь 10.0.0.12 собственным IP-адресом считывателя, а 22 — это номер порта по умолчанию службы SSH.
nc: многофункциональный сетевой инструмент
nc — это простой, надежный и мощный сетевой инструмент, который может устанавливать TCP-соединения, отправлять UDP-пакеты, прослушивать любые порты TCP и UDP, выполнять сканирование портов и обрабатывать пакеты IPv4 и IPv6. Если в системе нет команды nc, вы можете установить ее вручную. Команда установки — yum-y install nc.
NC [варианты]
nc -l 12345 >oldboy.nc #<== Прослушать порт 12345 и записать данные в oldboy.nc. #<==После выполнения указанной выше команды текущее окно зависает. #<==Открыть новое окно для выполнения команды.
nc 10.0.0.12 12345 <oldboy.log #<==Используйте команду nc для передачи файла oldboy.log на порт 12345 хоста 10.0.0.12.
nc -z 10.0.0.12 20-30 #<==Сканировать порты с 20 по 30 хоста 10.0.0.12.
nc -z 10.0.0.12 22 #<==Хост может следовать за одним адресом или диапазоном адресов.
nc -z -v 10.0.0.12 20-30 #<== Используйте опцию -v для подробного отображения процесса сканирования.
ssh: безопасный удаленный вход на хост
ssh [опции] [пользователь@][имя хоста или IP-адрес] [команда, выполняемая удаленно]
ssh 10.0.0.29 #<== Это сокращенная команда для удаленного входа на сервер, эквивалентная ssh -p 22 root@10.0.0.29. #<==Следующие четыре строки будут предложены только при первом подключении к удаленному серверу и не будут запрашиваться при повторном подключении.
ssh -p 22 oldboy@10.0.0.29 #<== Использовать пользователя oldboy для входа на удаленный сервер. Этот пользователь должен быть существующим пользователем на удаленном сервере. -p указывает порт 22.
ssh 10.0.0.29 "free -m" #<== Просто поместите команду, которую нужно выполнить удаленно, в конец. Используйте кавычки, чтобы сделать ее более стандартизированной. Вот информация о памяти сервера, на котором вы ее просматриваете.
ssh -v root@10.0.0.19 #<==Используйте опцию -v для входа в режим отладки.
wget: инструмент загрузки из командной строки
·Поддержка функции загрузки точки останова. ·Поддержка методов загрузки FTP и HTTP. ·Поддержка прокси-сервера. ·Очень стабильный, обладает высокой адаптируемостью в ситуациях с очень узкой полосой пропускания или нестабильной сетью. Если загрузка не удалась по сетевым причинам, wget продолжит попытки, пока не будет загружен весь файл. Если сервер прервет процесс загрузки, он снова подключится к серверу и продолжит загрузку с того места, где остановился. Это полезно для загрузки больших файлов с серверов с ограниченным временем соединения.
wget [опции] [адрес загрузки]
wget http://www.oldboyedu.com/favicon.ico #<==wget просто подключитесь к адресу загрузки.
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo #<==Это команда для обновления исходного кода epel, будет epel-6 Загрузите репозиторий, поместите его в каталог /etc/yum.repos.d/ и переименуйте его в epel.repo.
wget --limit-rate=3k http://www.oldboyedu.com/favicon.ico #<==Используйте параметр --limit-rate, чтобы установить максимальную скорость загрузки 3 КБ/с.
wget -c Используйте параметр -c, чтобы возобновить загрузку с точки останова.
wget -b http://www.oldboyedu.com/favicon.ico Используйте wget-b для загрузки файлов в фоновом режиме.
wget --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, например Gecko) Chrome/10.0.648.204 Safari/534.16" http://www.oldboyedu. com/favicon.ico #<==Используйте параметр --user-agent, чтобы указать тип клиента.
wget -q -T 3 --tries=1 --spider www.baidu.com #<== Использовать автоматический доступ, тайм-аут через 3 секунды, повторить попытку один раз, имитировать доступ сканера.
mailq: отображает очередь передачи почты.
mailq [опции]
mailq #<==Просмотр очереди почты.
почта: отправлять и получать почту
почта [варианты]
mail -s «Привет от oldboyedu» zhangyao@oldboyedu.com #<== Читателям предлагается изменить получателя на свой собственный адрес электронной почты. здравствуйте, это содержимое письма #<==Введите две строки содержимого письма вручную. Добро пожаловать на сайт www.oldboyedu.com. EOT #<== Введите Ctrl D в новой пустой строке, чтобы завершить ввод и отправить электронное письмо.
echo -e "Привет, это содержимое письма. Добро пожаловать на www.oldboyedu.com."|mail -s "Привет от oldboyedu" zhangyao@oldboyedu.com Описание команды: за echo следует тело письма.
#<==Отправьте одно вложение. [root@oldboy ~]# echo "test"|mail -s "test" -a favicon.jpg zhangyao@oldboyedu.com
#<==Отправить несколько вложений. [root@oldboy ~]# echo "test"|mail -s "test" -a favicon.jpg -a web.sh zhangyao@oldboyedu.com
nslookup: инструмент запроса доменных имен
nslookup [параметры] [имя домена/IP] [DNS-сервер]
·Интерактивный режим: Пользователи могут запрашивать у сервера доменных имен информацию о различных хостах и именах доменов или выводить список хостов в имени домена. · Неинтерактивный режим: получение только конкретных имен или необходимой информации для имени хоста или домена.
nslookup - 223.5.5.5 #<==Вы можете напрямую указать адрес сервера для разрешения доменного имени в командной строке, но обратите внимание на написание и не пропустите "-".
nslookup www.oldboyedu.com 223.5.5.5 #<==Неинтерактивный запрос доменного имени www.oldboyedu.com.
dig: инструмент запроса доменных имен
копать [вариант]
копать www.oldboyedu.com
dig @223.5.5.5 www.oldboyedu.com #<==Используйте @, чтобы указать DNS-сервер для запроса.
dig -x 101.200.195.98 #<==Используйте опцию -x для обратного разрешения доменного имени.
dig -t MX oldboyedu.com #<==Используйте опцию -t, чтобы выбрать тип запроса.
dig @223.5.5.5 www.oldboyedu.com трассировка #<==Отображает полный процесс преобразования доменного имени в IP.
dig nocmd nocomment nostat www.oldboyedu.com #<== Упростить некоторую информацию описания.
копать короче www.oldboyedu.com
хост: инструмент запроса доменного имени
хост [варианты]
Команда хоста www.oldboyedu.com #<==host может быть напрямую связана с именем домена.
хост -a www.oldboyedu.com #<==Используйте опцию -a для запроса подробной информации.
хост -a www.oldboyedu.com 223.5.5.5 #<== Прямое подключение к указанному IP-адресу DNS-сервера.
хост -t MX oldboyedu.com #<==Используйте опцию -t, чтобы выбрать тип запроса.
nmap: инструмент проверки сети и сканер безопасности/портов.
nmap [тип сканирования] [общие параметры] {цель сканирования}
nmap 10.0.0.12 #<==nmap подключается напрямую к целевому хосту и по умолчанию сканирует первые 1~1000 портов.
nmap -p 1024-65535 10.0.0.12 Параметр #<==-p определяет диапазон сканирования.
nmap 10.0.0.0/24 #<==Сканировать локальную сеть, используя формат сегмента сети.
nmap -sn 10.0.0.0/24 #<==Используйте опцию -sn, чтобы не сканировать порт.
nmap -sn 10.0.0.1-10 #<== Этот диапазон адресов можно использовать для сканирования.
nmap -O -sV 10.0.0.12 #<==-sV отображает номер версии службы. #<==-O отображает версию системы, но команда nmap сравнивает обнаруженный отпечаток TCP/IP со своей собственной базой данных отпечатков пальцев. Если системы нет в базе данных отпечатков пальцев, она не будет распознана.
tcpdump: мониторинг сетевого трафика
tcpdump [опции] [выражение]
tcpdump #<==По умолчанию прямой запуск tcpdump будет отслеживать все пакеты, проходящие через первый сетевой интерфейс.
tcpdump -q #<==По умолчанию команда tcpdump выводит дополнительную информацию. Чтобы отобразить упорядоченную информацию, вы можете использовать опцию -q.
tcpdump -c 5 #<==Используйте опцию -c, чтобы указать количество отслеживаемых пакетов, поэтому нет необходимости использовать Ctrl C.
tcpdump -i eth0 #<==Используйте опцию -i, чтобы указать сетевую карту для мониторинга
tcpdump -n хост 10.0.0.1 #<== Используйте опцию -n, чтобы не выполнять разрешение DNS и ускорить отображение. Ключевое слово для мониторинга указанного хоста — хост, за которым следует имя хоста или IP-адрес. Функция этой команды — отслеживать все пакеты данных, полученные и отправленные хостом 10.0.0.1.
tcpdump -n src host 10.0.0.1 #<==Прослушивать только пакеты данных, отправленные с 10.0.0.1, то есть адрес источника — 10.0.0.1, а ключевое слово — src (источник, адрес источника).
tcpdump -n dst хост 10.0.0.1 #<==Прослушивать только пакеты данных, полученные от 10.0.0.1, то есть целевой адрес — 10.0.0.1, а ключевое слово — dst (назначение, пункт назначения).
tcpdump -nn port 22 #<==Использование опции -n не выполняет разрешение DNS, но преобразует некоторые протоколы и порты, например порт 22, в ssh. Читатели могут сравнить выходные результаты примера 10-4. Поэтому в этом примере используется опция -nn. Ключевое слово для мониторинга указанного порта — порт, за которым следует номер порта.
tcpdump -n arp #<==Прослушивать пакеты ARP, чтобы выражение можно было записать непосредственно в arp.
tcpdump -n icmp #<==Прослушивать пакеты данных icmp (если вы хотите просмотреть данные мониторинга ниже, вы можете использовать другие машины для проверки связи с этой машиной)
tcpdump -n ip хост 10.0.0.12 и ! 10.0.0.1 #<==Получить IP-пакеты, с помощью которых хост 10.0.0.12 обменивается данными со всеми хостами (кроме хоста 10.0.0.1).
Глава 9. Команды управления процессами Linux
пс: Посмотреть процесс
пс [варианты]
ps -ef #<== Параметры формата UNIX, используйте параметр -e для отображения всех процессов, используйте параметр -f для дополнительного отображения полей UID, PPID, C и STIME.
ps -ef|grep ssh #<==Используйте grep, чтобы найти ключевое слово ssh.
ps aux #<== Параметры формата BSD, используйте параметры a и x для отображения всех процессов, используйте параметр u для отображения пользовательской информации о процессе.
ps -u root #<==Параметр формата UNIX, используйте параметр -u для отображения информации о процессе, связанной с указанным пользователем.
ps -l #<== Параметр формата UNIX, используйте параметр -l для отображения состояния процесса в подробном формате.
ps -eH #<== Параметры формата UNIX, используйте параметр -e для отображения всех процессов и параметр -H для отображения дерева процессов.
ps axf #<==Параметры формата BSD, используйте параметры a и x для отображения всех процессов и используйте параметр f для отображения дерева процессов.
ps -o pid,ppid,pgrp,session,tpgid,comm #<==-o, за которым следуют отображаемые поля, которые можно сравнить с первой строкой результата команды.
pstree: отображение дерева состояний процесса.
pstree [опции] [идентификатор процесса/пользователь]
pstree #<== Если номер PID процесса не указан или имя пользователя не указано, процесс init будет использоваться в качестве корневого процесса и будет отображена вся информация о процессах системы.
pstree mysql #<==mysql — имя пользователя системы.
pstree -c -p mysql #<== Используйте параметр -c для отображения всех процессов, включая дочерние и родительские процессы, и используйте параметр -p для отображения номера процесса.
pstree -u #<==Используйте опцию -u, чтобы отобразить имя пользователя, соответствующее процессу.
pgrep: найти процессы, соответствующие условиям
pgrep [опции] [критерии соответствия]
pgrep crond #<==Команду pgrep можно рассматривать как комбинацию команды ps и команды grep. Команда pgrep определяет фильтрацию поля crond и получает номер процесса crond.
pgrep -u root #<==Используйте опцию -u для отображения всех номеров процессов указанного пользователя root.
kill: завершить процесс
kill [опции] [номер процесса]
kill -l #<==Параметр -l отображает все сигналы системы.
kill -l SIGKILL #<== Параметр -l можно использовать для обмена именами сигналов и цифровыми сигналами.
kill -s 15 2203 #<==Этот формат использует параметр -s, чтобы явно указать отправку сигнала со значением 15, и эффект такой же, как и при kill 2203.
kill -9 2203 #<==Сигнал 9 принудительно завершит процесс, что приведет к некоторым побочным эффектам, таким как потеря данных, или терминал не может быть восстановлен в нормальное состояние, поэтому его следует избегать, насколько это возможно, если процесс не может быть прекращено с использованием других сигналов.
killall: завершить процесс по имени процесса
killall [опции] [имя процесса]
killall crond #<==Использование killall для завершения процесса может выполняться несколько раз. crond: ни один процесс не убит #<==Когда вы видите этот результат, это доказывает, что процесс мертв, при условии, что имя правильное.
killall -w crond #<==Используйте параметр -w, и вы увидите, что операция команды завершается после ожидания в течение нескольких секунд.
killall -u oldboy nginx #<==Этот метод может завершить все процессы nginx, принадлежащие пользователю oldboy
pkill: завершить процесс по имени процесса
pkill [опции] [имя процесса]
pkill crond #<== Завершить процесс запланированной задачи.
pkill -t tty1 #<==Используйте опцию -t, чтобы завершить процесс указанного терминала.
pkill -u oldboy #<==Используйте опцию -u, чтобы убить все процессы указанного пользователя. Лучше всего указать имя процесса, который нужно уничтожить одновременно, чтобы избежать случайного завершения службы.
вверху: отображение в реальном времени использования ресурсов каждым процессом в системе.
вверху [варианты]
top #<==Использование команды top обычно не принимает никаких параметров. Если вам нужны другие, более мощные функции, вам придется использовать интерактивные команды.
top -a #<==Используйте параметр -a для сортировки процессов по использованию памяти.
top -b #<==Используйте параметр -b, чтобы убедиться, что результаты выполнения команды постоянно обновляются вниз.
top -c #<==Используйте параметр -c, чтобы отобразить весь путь к команде процесса, а не только имя команды.
top-d 3#<==Используйте параметр -d, чтобы указать период обновления 3 секунды, что означает, что результаты команды обновляются каждые 3 секунды.
top -n 2 #<==Используйте параметр -n, чтобы указать количество обновлений до 2 раз, что означает, что результат команды будет обновлен дважды перед выходом. Параметр -n можно использовать в сочетании с параметром -d. .
top -p 15456 #<== Используйте опцию -p, за которой следует указанный номер процесса, чтобы отобразить только информацию об этом процессе.
приятно: отрегулируйте приоритет программы во время ее работы
хорошо [опция] [командный оператор]
Когда команда nice #<== не получает никакого содержимого, она показывает, что текущий приоритет запуска программы по умолчанию равен 0.
nice nice #<== Среди них первая команда nice корректирует приоритет второй команды nice со значением по умолчанию 10, то есть добавляет 10 к системному приоритету запуска программы по умолчанию, равному 0, чтобы получить новую программу с приоритетом запуска 10. , а затем запустите вторую команду nice с приоритетом 10. Наконец, вторая команда nice показывает, что текущий приоритет выполнения программы равен 10.
nice -n -10 vim test2 & #<==Используйте nice, чтобы настроить значение -10.
renice: настроить приоритет запущенных процессов
Ренис [варианты]
Ренис -n 5 -p 2711 #<==Используйте параметр -p renice, чтобы указать процесс со значением 2711, и измените его значение NI на 5.
nohup: пользователь выходит из системного процесса и продолжает работу
ноуп [варианты]
nohup пинг www.oldboyedu.com nohup: игнорирование ввода и добавление вывода в `nohup.out'#<==Текущий терминал завис. Если вы принудительно закроете текущий терминал (например, закроете ярлык или клиентский инструмент SSH), команда ping все равно будет запущена. фон.
nohup ping www.oldboyedu.com & #<==На работе мы обычно запускаем команду nohup с амперсандом, чтобы программа могла работать непосредственно в фоновом режиме.
strace: отслеживать системные вызовы процесса
трассировка [опции]
strace -tt -f /application/nginx/sbin/nginx #<== Параметр -f отслеживает целевой процесс и все дочерние процессы, созданные целевым процессом. Параметр -tt добавляет точную информацию о времени перед каждой строкой вывода. до микросекунд, и, наконец, определяемая команда /application/nginx/sbin/nginx — это команда запуска службы Nginx.
strace -tt -f -e трассировка=файл /application/nginx/sbin/nginx #<==-e трассировка=файл используется только для отслеживания системных вызовов, связанных с файловыми операциями.
strace -tt -f -e трассировка=файл -p 1909 #<==Используйте параметр -p только для отслеживания рабочего процесса, и результат будет более рациональным.
strace -c /application/nginx/sbin/nginx #<==Используйте параметр -c, чтобы выполнить статистический анализ всех системных вызовов процесса.
strace -c -o tongji.log /application/nginx/sbin/nginx #<==Используйте опцию -o для вывода результатов strace в файл.
strace -T /application/nginx/sbin/nginx #<==Используйте опцию -T, чтобы распечатать время, затраченное на каждый системный вызов. Время, затраченное на каждый вызов, находится в крайней правой угловой скобке строки вызова.
ltrace: отслеживать вызовы процессов к библиотечным функциям.
ltrace [опции]
За ltrace /application/nginx/sbin/nginx #<==ltrace следует оператор команды, который необходимо обнаружить.
ltrace -p 3892 #<==Используйте -p, чтобы указать номер процесса.
уровень запуска: вывести текущий уровень запуска
уровень запуска [опции]
уровень выполнения № 3
·0: выключение ·1: Однопользовательский режим ·2: Многопользовательский режим без сети ·3: Многопользовательский режим ·4: Не используется ·5: Многопользовательский режим графического интерфейса ·6: Перезапуск
init: инициализировать процесс Linux
инициализация [опции]
init 0 #<==Выключить
init 6 #<==Перезапустить.
сервис: обслуживание системы управления
сервис [имя сервиса] [команда выполнения]
Необязательные значения для команды включают запуск, останов, статус, перезапуск и т. д.
service --status-all #<==Показать статус всех служб.
service crond #<==Справочная информация будет отображаться, если оператор команды не завершен. crond — это имя службы запланированных задач.
service crond stop #<==Остановить службу.
service crond start #<==Запустить службу.
service crond restart #<==Перезапустите службу.
статус службы crond #<==Просмотр состояния службы.
Эта команда была заменена на systemctl в CentOS 7.
Глава 8. Команды управления дисками и файловой системой Linux
fdisk: инструмент для разметки диска
fdisk [опции] [имя устройства]
fdisk -l #<==Просмотр информации о разделах всех дисков в текущей системе.
fdisk /dev/sdb #<==Без параметров разбиение на разделы можно выполнить, напрямую подключив имя устройства.
partprobe: обновить информацию таблицы разделов жесткого диска ядра.
деталь-зонд [опции]
partprobe /dev/sdb #<==Лучше всего добавить конкретный диск, иначе может появиться сообщение об ошибке. Многие люди выполняют это напрямую и в конечном итоге сообщают об ошибке, поэтому им приходится перезапускать систему.
Tune2fs: настройка параметров файловой системы ext2/ext3/ext4.
Tune2fs [опции]
Tune2fs -l /dev/sda1|grep -i Mount#<== Проверьте количество подключений устройства sda1, то есть раздела /boot.
Tune2fs -C 30 /dev/sda1 #<==Параметр -C задает количество монтирований файловой системы.
Tune2fs -c 40 /dev/sda1 #<==Параметр -c устанавливает количество монтирований для принудительного самотестирования.
Tune2fs -c -1 /dev/sda1 #<==Отключите автоматическую проверку и другие функции.
Tune2fs -l /dev/sda1|grep -i check #<==Просмотр периода проверки.
Tune2fs -i 10 /dev/sda1 #<==Настройка параметра -i проверяется каждые 10 дней.
Tune2fs -i 0 /dev/sda1 #<==Восстановить нормальное состояние.
parted: инструмент для разметки диска
parted [опции] [имя устройства]
parted -l #<==Показать информацию обо всех разделах диска.
mkfs: создать файловую систему Linux.
mkfs [опции] [имя устройства]
mkfs -t ext4 -v /dev/sdb #<==Используйте параметр -v для отображения подробной информации.
mkfs.ext4 /dev/sdb #<==Этот способ записи проще, а эффект тот же.
dumpe2fs: экспортировать информацию о файловой системе ext2/ext3/ext4.
dumpe2fs [опции] [имя устройства]
resize2fs: изменить размер файловой системы ext2/ext3/ext4.
resize2fs [опции] [имя устройства]
fsck: проверка и восстановление файловых систем Linux.
fsck [опции] [файловая система]
Перед проверкой файловая система должна быть отключена, в противном случае могут возникнуть ошибки. Нет необходимости использовать эту команду для проверки диска в обычное время. Ее нужно выполнять только тогда, когда при включении системы отображается ошибка диска.
1) Помимо следования инструкциям по восстановлению загрузки, вы также можете использовать системный диск для входа в режим восстановления или однопользовательский режим для устранения системных сбоев. 2) Никогда не запускайте fsck для проверки диска, когда компьютер загружен и работает нормально, поскольку это может привести к сбою обычного диска. 3) Если последний номер столбца в файле /etc/fstab равен 1 или 2, fsck будет прочитан для выполнения самотестирования на этих системных дисках при включении системы. 4) Не выполняйте команды восстановления диска, такие как fsck, на уже смонтированной файловой системе, так как это может привести к сбою.
dd: конвертировать или копировать файлы
дд [варианты]
dd if=/dev/sda1 of=dev_sda1.img #<==Используйте if для чтения данных из /dev/sda1 и используйте для указания вывода в dev_sda1.img в текущем каталоге.
dd if=/dev/zero of=test.data bs=1M count=2 #<==Считать данные из /dev/zero и записать их в test.data. Размер сгенерированного файла test.data равен bs*count. =1М *2=2М.
dd if=test.txt conv=ucase of=test.txt_u#<==Используйте параметр conv, чтобы установить ucase для преобразования нижнего регистра в верхний регистр.
монтирование: монтировать файловую систему
монтировать [опции] [устройство] [каталог]
Смонтированный каталог должен существовать заранее и желательно быть пустым. Если каталог не пуст, содержимое предыдущего каталога будет закрыто после монтирования устройства, но содержимое исходного каталога не будет повреждено. uninstalled , то к предыдущему содержимому каталога можно будет снова получить доступ.
mount #<== Введите команду монтирования напрямую и нажмите Enter, чтобы просмотреть информацию о монтировании системы.
mount -l #<==Параметр -l также позволяет просмотреть информацию о монтировании.
mount /dev/cdrom /mnt #<==-t iso9660 здесь не указан, но команда монтирования автоматически распознает его. mount: блочное устройство /dev/sr0 защищено от записи, монтируется только для чтения#<== Сообщает, что устройство защищено от записи и смонтировано только для чтения.
mount -o remount,rw / #<==remount пытается перемонтировать "/" как rw (доступный для чтения и записи).
umount: отключить файловую систему
umount [опции] [каталог|устройство]
Удаление umount может подключаться к каталогу точки монтирования или файлам устройства.
umount /mnt #<== можно удалить, подключившись к точке монтирования, а также можно удалить umount /dev/cdrom.
umount /mnt/ #<== Поскольку он в настоящее время находится в каталоге mnt, его нельзя удалить. Здесь выполните первый метод, чтобы выйти из текущего каталога и удалить.
umount -lf /mnt/ #<==Метод 2: используйте параметр -lf для принудительного удаления.
df: отчет об использовании дискового пространства файловой системы.
df [опции] [<файл или каталог>]
Если параметр файла после команды не указан, будет отображаться использование всех разделов диска. Если указан файл, будет отображаться использование того раздела диска, на котором находится файл.
df #<==Если после команды не указать параметры файла, будет отображено использование всех разделов диска.
mkswap: создать раздел подкачки
mkswap [опции] [файл устройства]
mkswap /dev/sdb #<==По умолчанию весь диск нельзя использовать в качестве раздела подкачки.
mkswap -f /dev/sdb #<==Используйте параметр -f, чтобы принудительно использовать весь диск в качестве раздела подкачки.
swapon: активировать раздел подкачки
обмен [опция]
swapon /dev/sdb #<==Активировать раздел подкачки.
swapon -s #<==Используйте опцию -s, чтобы увидеть, что существует два раздела подкачки.
swapoff: отключить раздел подкачки
замена [опция]
Закрывая раздел подкачки, убедитесь, что он не используется. В противном случае система выдаст сообщение об ошибке «устройство занято».
swapoff /dev/sdb #<==Закройте раздел подкачки /dev/sdb.
swapoff -a #<== Закрыть все разделы подкачки.
sync: очистить буфер файловой системы.
синхронизировать [опции]
sync #<== Выполнить команду синхронизации несколько раз без каких-либо результатов.
Глава 7 Управление пользователями Linux и команды запроса информации о пользователях
useradd: создать пользователя
useradd [опции] [имя пользователя] useradd -D [опции]
Когда useradd ett создает пользователя, он также создает группу пользователей с тем же именем пользователя. В этом примере мы добавили системного пользователя с именем ett. При просмотре каталога /home/ мы обнаружим, что система автоматически создала каталог ett, который является стартовым каталогом пользователя после входа в систему, то есть домашним каталогом.
useradd -g sa -u 901 oldgirl #<==Созданный пользователь oldgirl принадлежит группе sa и имеет uid 901.
useradd -M -s /sbin/nologin tingting #<==-M не создает домашний каталог, -s указывает оболочку после входа пользователя в систему, здесь /sbin/nologin, что означает, что вход в систему запрещен. Этот пример часто используется при развертывании таких сервисов, как Nginx и MySQL, в производственных сценариях.
useradd -u 806 -s /bin/sh -c SysUser -G root,sa -e "2017/07/12" -f 2 -d /tmp/inca inca #<==Добавить пользователя inca и установить информацию о комментариях пользователя Для «SysUser», UID указан как 806, Он принадлежит к группе пользователей root и членам sa, его тип оболочки — /bin/sh, домашний каталог — /tmp/inca, срок действия пользователя — 2017/07/12, права пользователя будут приостановлены на два раза. дней после истечения срока действия.
useradd -D -s /bin/sh #<==Изменить оболочку входа по умолчанию.
useradd -D -e "2018/07/12" #<==Изменить период действия пользователя по умолчанию.
Функцию useradd-D можно полностью заменить, отредактировав и изменив vim/etc/default/useradd.
usermod: изменить информацию о пользователе
usermod [опции] [имя пользователя]
usermod -u 888 -s /sbin/nologin -c TmpUser -G root,sa,tech -e "2018/07/12" -f 30 -d /home/inca inca #<==информация о комментариях пользователя inca изменена на «TmpUser», UID изменен на 999, право собственности изменено на root группы пользователей, sa и технических участников, тип ее оболочки — /sbin/nologin, домашний каталог установлен на /home/inca, срок действия пользователя время 12.07.2018, срок действия истек. Приостановка через 30 дней.
userdel: удалить пользователя
userdel [опции] [имя пользователя]
userdel zuma #<==Удалить пользователя zuma.
userdel -r oldgirl #<== Удалить пользователя oldgirl с помощью параметра -r.
groupadd: создать новую группу пользователей.
groupadd [опции] [группа пользователей]
groupadd -g 123 test1 #<==Добавьте группу пользователей test1 с GID 123.
groupdel: удалить группу пользователей
groupdel [группа пользователей]
groupdel root #<==Не удалось удалить группу пользователей root, поскольку пользователь root все еще существует.
groupdel не может удалить основную группу пользователей, к которой принадлежит пользователь.
passwd: изменить пароль пользователя
passwd [опции] [имя пользователя]
· Пользователь root может изменить пароль любого пользователя, а обычные пользователи могут изменить только свой пароль. ·Когда пользователь root меняет пароль, если он не соответствует правилам системного пароля, будет выдано предупреждающее сообщение, но настройка пароля все равно вступит в силу. Когда обычные пользователи меняют свои пароли, если используется слабый пароль, будет выдано предупреждающее сообщение, и изменение будет недействительным.
passwd -S старая девочка Это может сделать только root. #<== Подскажите, что этот параметр может быть выполнен только под root.
echo "123456"|passwd --stdin oldgirl #<==--параметр stdin может получить пароль из стандартного ввода.
passwd -n 7 -x 60 -w 10 -i 30 oldgirl #<==oldgirl Пользователь не может изменить пароль в течение 7 дней и должен сменить пароль через 60 дней. Пользователь уведомляется за 10 дней до истечения срока действия, и пользователь. Запрещен вход в систему по истечении 30 дней.
chage: изменить срок действия пароля пользователя.
изменить [опции] [имя пользователя]
chage -m 7 -M 60 -W 10 -I 30 oldboy #<==Пользователи oldboy не могут изменить свои пароли в течение 7 дней и должны изменить свои пароли через 60 дней. Пользователи Oldboy будут уведомлены за 10 дней до истечения срока действия, и пользователи будут уведомлены об этом. будет запрещен вход в систему через 30 дней.
chage -m7 -M60 -W10 -I30 oldboy #<==Второй способ записи.
chpasswd: пакетное обновление паролей пользователей
chpasswd [опции]
chpasswd #<==Введите chpasswd в командной строке и нажмите Enter. root:123456 #<==Формат имени пользователя: пароль, пользователь должен существовать. oldboy:123456 #<==По одному в строке #<==Введите Ctrl D в новой пустой строке, чтобы завершить ввод.
su: сменить пользователя
su [опции] [имя пользователя]
1) Чтобы переключиться с обычного пользователя на пользователя root, вы можете использовать su- или su-root, но для завершения переключения необходимо ввести пароль root. 2) Для переключения пользователя root на обычного пользователя можно использовать метод записи "su-ordinary username". Для завершения переключения не требуется вводить какой-либо пароль. В CentOS 5. /sbin и других следующих командах) вам необходимо использовать полный путь для выполнения или настроить содержимое переменной PATH, чтобы у обычных пользователей CentOS 6 и CentOS 7 не было этой проблемы. 3) Если вы хотите выполнять команды только под определенным пользователем, не переключаясь напрямую на этого пользователя, вы можете использовать «команду» su-username-c.
visudo: редактировать файл sudoers
визуо [варианты]
visudo -c #<==Используйте опцию -c для проверки синтаксиса.
sudo: выполнить команду от имени другого пользователя
судо [опции]
Отображение информации о пользователе и группе пользователей
идентификатор [опции] [имя пользователя]
id #<== не принимает параметры пользователя, по умолчанию используется текущий вошедший в систему пользователь.
id oldboy #<== Указывает на отображение информации о пользователе oldboy.
id -g #<==Показать GID группы пользователей.
id -u #<==Показать идентификатор пользователя.
id -un #<==Показать имя пользователя (параметр -n означает не отображение чисел, а отображение имени).
w: отображение информации о вошедшем в систему пользователе.
w [опции] [пользователь]
w #<== обычно можно использовать без каких-либо параметров.
w -h #<==Используйте параметр -h, чтобы не отображать первые две строки информации заголовка.
who: отображает информацию о вошедшем в систему пользователе.
кто [вариант]
who #<== вообще можно использовать без каких-либо параметров.
who -b #<==Показать время запуска.
who -d #<==Показать вышедших из системы пользователей.
who -l #<==Отобразить процесс входа в систему.
who -H #<==Показать заголовок.
ho -H -a #<== Используйте параметр -H для отображения заголовка и параметр -a для отображения всей информации.
пользователи: отображает вошедших в систему пользователей.
пользователи #<==Если один и тот же пользователь входит в систему несколько раз, имя пользователя будет отображаться несколько раз.
whoami: отображает имя пользователя, вошедшего в систему в данный момент.
Команда whoami используется для отображения имени пользователя, вошедшего в систему. Эту команду можно рассматривать как сокращение английской фразы who is i.
последнее: отображение списка пользователей для входа в систему
последний [вариант]
последний #<== отобразит много строк.
last -10 #<== Указывает количество отображаемых строк, а также может использоваться с командой less через каналы.
последний oldboy #<== Отображает статус входа пользователя oldboy, но пользователь oldboy еще не вошел в систему, поэтому дисплей пуст.
Lastb: отображает записи ошибок входа пользователя в систему.
последнийb [опции]
Lastb #<==Вам необходимо уделять больше внимания результатам выполнения этой команды. Если вы обнаружите неизвестную информацию о неудачном входе в систему, вы должны подумать, была ли система взломана для входа в систему.
Lastlog: отображает последние записи входа всех пользователей.
Глава 6. Команды резервного копирования и сжатия файлов
tar: резервная копия пакета
tar [опции] [файл или каталог]
tar zcvf www.tar.gz ./html/ #<==Опция v отобразит процесс упаковки. Вам необходимо запомнить часто используемую комбинацию команд упаковки zcvf. Если вы не хотите отображать процесс упаковки, вы можете опустить команду. v, то есть комбинация опций — zcf.
tar ztvf www.tar.gz #<==Используйте опцию t для просмотра содержимого сжатого пакета без распаковки и опцию v для отображения атрибутов файла.
tar tf www.tar.gz #<==Если опция z не указана, команда tar также автоматически определит тип сжатого пакета и автоматически вызовет команду gzip.
tar zxvf www.tar.gz -C /tmp/ #<==Опция C указывает путь распаковки. Если C не добавлен, распаковка будет осуществляться в текущий каталог.
tar xf www.tar.gz -C /tmp/ #<== Если вы не хотите видеть слишком много вывода, вы можете удалить опцию v, и на функцию это не повлияет. В то же время параметр z также можно опустить. Пока задействована операция распаковки, команда tar может автоматически определить тип сжатия сжатого пакета, но при сжатии необходимо добавить параметр z.
tar zcvf www.tar.gz ./html/ --exclude=html/oldboy/test #<== Не добавляйте / в конец каталога теста, иначе он не удастся.
tar zcvf www.tar.gz ./html/ --exclude=html/oldboy/test --exclude=html/oldboy #<== Метод исключения более двух каталогов: используйте несколько --exclude параллельно.
tar zcvfX paichu.tar.gz list.txt ./html/ #<==Используйте параметр X для подключения списка исключаемых файлов.
При использовании общей опции tar zcf для упаковки файла, если файл является файлом ссылки, например /etc/rc.local, то tar упакует только сам файл ссылки, а не реальный файл, на который указывает файл ссылки, поэтому дополнительные use — опция h упаковывает файл сущности, соответствующий файлу мягкой ссылки.
Если каталог, который необходимо упаковать, имеет относительный путь, после --exclude можно указать только относительный путь. · Если каталог, который необходимо упаковать, имеет абсолютный путь, за --exclude может следовать либо абсолютный, либо относительный путь. ·Для удобства путь, за которым следует --exclude, и путь упаковки должны быть в одной и той же форме: относительные или абсолютные пути.
tar zcvf etc.tar.gz 'find etc/ -type f' #<== Используйте find для поиска всех обычных файлов и вложите оператор команды find, заключенный в обратные кавычки, в оператор команды tar.
gzip: сжать или распаковать файлы
gzip [опции] [файл]
gzip *.html #<==Используйте команду gzip для сжатия всех файлов, заканчивающихся на «.html», в текущем каталоге.
gzip -l *.gz #<== Используйте параметр -l для отображения информации о сжатии файла без распаковки. Поскольку все исходные файлы являются пустыми, степень сжатия составляет 0,0%.
gzip -dv *.gz #<==Используйте параметр -d для распаковки файла и параметр -v для отображения процесса распаковки.
gzip -c Services >services.gz #<== Используйте опцию -c с символом перенаправления вывода, чтобы направить вывод в Services.gz.
zcat Services.gz|head #<== Команда zcat может прочитать сжатый пакет, напрямую подключив его к сжатому файлу.
zcat Services.gz >services #<== также можно напрямую распаковать и перенаправить в файл.
zip: упаковка и сжатие файлов.
zip [опции] [файл или каталог]
zip Services.zip ./services #<==Формат: сжатый файл имени пакета в формате zip.
zip tmp.zip ./tmp/ #<==Это сжимает только файл в каталоге, файлы в каталоге не сжимаются.
zip -r tmp.zip ./tmp/ #<==Используйте опцию -r для рекурсивного сжатия.
zip -r tmp1.zip ./tmp/ -x tmp/services.zip Параметр #<==-x указывает несжатые файлы.
unzip: Разархивировать zip-файл
разархивировать [опции] [сжатый файл]
unzip -l tmp.zip #<==Используйте опцию -l для просмотра списка файлов в сжатом пакете.
unzip tmp.zip #<==Извлеките файл непосредственно в корень. Поскольку исходный файл все еще существует, появится следующее приглашение. #<==Заменять ли файлы, да да нет AЗаменить все файлы NНе заменять все файлы rПереименовать
unzip -v tmp.zip #<==Показать некоторую информацию при распаковке.
unzip -o tmp.zip #<==Не запрашивать перезапись при распаковке.
unzip -d /tmp tmp.zip #<==Вы можете использовать опцию -d для подключения каталога, чтобы указать каталог распаковки.
scp: удаленное копирование файла
scp [опции] [пользователь@хост1:файл1] [пользователь@хост2:файл2]
scp /etc/services 10.0.0.9:/tmp#<==scp Имя передаваемого файла IP-адрес целевого хоста: каталог, в который вы хотите выполнить перенос.
scp -p /etc/services 10.0.0.9:/tmp #<== Используйте опцию -p, чтобы сохранить переданные атрибуты файла.
scp -rp /tmp 10.0.0.9:/tmp #<==Вам нужно использовать опцию -r для копирования каталога
scp 10.0.0.9:/etc/services . #<== Просто измените порядок введенных команд и загрузите файл /etc/services с хоста 10.0.0.9 в текущий каталог.
scp -rp 10.0.0.9:/tmp . #<== Переместить каталог tmp хоста 10.0.0.9 в текущий каталог.
rsync: инструмент синхронизации файлов
1) Локальный режим: rsync [параметры] [исходный файл] [файл назначения]
2) Через режим удаленного доступа к оболочке: Получение: rsync [опции] user@host:исходный файл [файл назначения] Нажмите: rsync [опции] [исходный файл] пользователь@хост:файл назначения.
3) режим демона rsync Тянуть: rsync [опции] user@host::source file [файл назначения] rsync [опции] rsync://user@host:порт/исходный файл [файл назначения] Толкать: rsync [опции] [исходный файл] user@host::файл назначения rsync [опции] [исходный файл] rsync://user@host:порт/файл назначения
rsync -av /data1/ /data2 #<==Если в конце исходного каталога есть косая черта, вместо самого каталога будет скопировано содержимое каталога.
rsync -av /data1 /data2 #<==Если исходный каталог не имеет косой черты, будет скопирован сам каталог и содержимое в нем.
rsync -av /etc/hosts /tmp #<==Исходный файл /etc/hosts и целевой каталог /tmp находятся на одном хосте.
rsync -av --delete /null/ /tmp/ #<== опция --delete приводит к тому, что содержимое каталога tmp согласуется с пустым каталогом. Различные файлы и каталоги будут удалены, то есть то, что имеет значение null, будет удалено. в tmp. Если есть какой-либо контент, который не имеет значения null, но находится в tmp, его необходимо удалить. Поскольку каталог null пуст, эта команда удалит все содержимое в каталоге /tmp.
rsync -av 10.0.0.9:/tmp/ /tmp #<== Pull.
rsync -av /tmp/ 10.0.0.9:/tmp/ #<==Push.
rsync -av -e 'ssh -p 22' /tmp 10.0.0.9:/tmp/ #<== В предыдущем случае данные, синхронизированные с помощью rsync, передаются в виде открытого текста. В сценариях, где требуется безопасность данных, -e. можно использовать. Опция использует туннель SSH для шифрования и передачи данных. -p — это опция команды SSH, которая определяет номер порта для передачи SSH как 22. Результатом этой команды является передача данных в локальный файл /tmp. каталог к 10.0.0.9 через зашифрованный туннель SSH. Таким же образом выполните команду «rsync -av -e 'ssh -p 22' 10.0.0.9:/tmp/ /tmp», чтобы извлечь данные из каталога /tmp хоста 10.0.0.9 в локальный каталог /tmp через SSH-шифрованный туннель.
Глава 5 Команды отображения информации и поиска файлов в Linux
uname: отображать системную информацию
имя [опция]
uname -a #<== Отображает всю необходимую информацию о системе.
uname -m#<==64-битная аппаратная архитектура.
uname -n#<==Имя хоста — oldboy.
uname -r#<==Номер версии выпуска ядра.
uname -s #<==Имя ядра.
uname -v#<==номер версии ядра.
uname -p#<==Тип процессора — 64-разрядный.
uname -o#<==Имя операционной системы.
uname -i#<== аппаратная платформа.
имя хоста: отображает или устанавливает имя хоста системы.
имя хоста [опции]
имя хоста #<==Если параметры не указаны, будет отображено имя хоста.
Имя хоста Команда #<==имя хоста может использоваться для временного изменения имени хоста путем добавления имени хоста.
vi /etc/sysconfig/network #<==Только путем изменения файла конфигурации измененное имя хоста может оставаться действительным после перезапуска системы.
Следует отметить, что в системе CentOS7 файл конфигурации имени хоста изменяется на /etc/hostname. Изменение /etc/sysconfig/network не вступит в силу. Вам необходимо изменить /etc/hostname.
имя_хоста -s #<==Отобразить имя хоста в коротком формате.
имя_хоста -a #<==Отображение псевдонима хоста.
имя хоста -i #<==Когда сеть не очень хорошая, результаты будут очень медленными.
имя_хоста -I #<== Рекомендуется использовать -I для получения IP-адреса системы. Количество IP-адресов будет отображаться столько, сколько сетевых карт (с IP-адресами) имеется.
dmesg: Диагностика ошибок при запуске системы.
dmesg [опции]
dmesg|less #<==Просмотр содержимого буфера при подкачке с помощью команды less, которая используется для просмотра такой информации, как аппаратные сбои.
stat: отображение статуса файла или файловой системы.
stat [опции] [файл или каталог]
du: Статистика использования дискового пространства
du [опции] [файл или каталог]
du -a #<== Отображает размер всех файлов в текущем каталоге (включая скрытые файлы и все файлы в подкаталогах).
du -s #<==Показать общий размер текущего каталога.
du -h #<==-h параметры будут преобразованы в легко читаемые и понятные результаты, такие как K, M и G.
du -sh #<==-sh — это часто используемая комбинация команд и рекомендуемый метод.
du -sh /usr/local/ #<==Показать общий размер указанного каталога.
du -h --max-глубина=1 /usr/local/ #<==Отображает только размер каталога первого уровня.
du -h --max-глубина=2 /usr/local/ #<==Отображает только размер каталогов первого и второго уровня.
du -h --max-глубина=2 /usr/local/ --exclude=/usr/local/share #<==Не отображать размер каталога /usr/local/share.
дата: отображение и установка системного времени
дата [опции] [формат даты]
date %y #<==Отображение года (короткий формат).
date %Y #<==Отображение года (длинный формат).
date %m #<==Показать месяц.
date %d #<==Отображение дня.
date %H #<==Отображение часа.
date %M #<==Показать минуты.
date %S #<==Отображать секунды.
date %F #<==Отображение даты в специальном формате (год-месяц-день).
date %T #<==Отображение времени в специальном формате (час:минута:секунда).
date %F -d "-1day" #<==Показать вчерашний день (краткое написание).
date %F -d "вчера" #<==Показать вчера (английское написание).
date %F -d "-2day" #<==Отображение позавчерашнего дня.
date %F -d "1day" #<==Показать завтра.
date %F -d "tomorrow" #<==Отобразить завтра (английское написание).
date %F -d "2day" #<==Показать через 2 дня.
date %F -d "1месяц" #<==Отображается через 1 месяц.
date %F -d "1year" #<==Отображается 1 год спустя.
date -s 20170706 #<== установлено значение 20170706, а конкретное время пусто, то есть 00:00:00.
date -s 00:00:03 #<==Установите конкретное время, и дата не будет изменена.
date -s "00:00:03 20170706" #<== Здесь можно установить все время.
echo: отображает строку текста
эхо [опции] [текст]
echo Привет, мир! #<==echo напрямую получает текст, который вы хотите вывести.
echo "hello world" >>hello.txt #<== Используйте символ перенаправления добавления ">>" для записи текста в файл.
echo -n "oldboy";echo "oldboy" #<==Используйте опцию -n для вывода вывода в одну строку без разрывов строк.
смотреть: контролировать выполнение команд
смотреть [опции] [команда]
watch -n 1 -d netstat -ant #<==netstat будет подробно объяснен позже, -n указывает выполнение команд каждую секунду, а -d подсвечивает.
наблюдайте за котом oldboy.log<#==Отслеживайте изменения в файле oldboy.log в текущем каталоге.
watch -t cat параметр oldboy.log -t не отображает заголовок
который: отображает полный путь к команде
какой [опция] [имя команды]
какая дата #<==Просмотр полного пути к команде даты.
that that #<== Если для указанной команды установлен псевдоним, использование функции that также отобразит псевдоним.
который cd #<== встроенная команда Bash не может использовать.
that -a mysql #<==Отображаются все пути, содержащие команды MySQL.
где: отображает полный путь к команде и связанным с ней файлам.
где [опции] [имя файла]
гдеисвн
где -b svn #<==Найти только исполняемые файлы.
whereis -m svn #<==Искать только в файле справки man.
whereis -s svn #<==Найти только файлы исходного кода.
найти: быстро найти пути к файлам
найдите [опции] [имя файла]
За параметромlocate pwd #<== следует имя файла, который вы хотите найти. Если он содержит строку pwd, его можно найти.
locate -c pwd #<==Отображать только количество совпадающих строк.
найдите /etc/sh #<==Вывод, если его часть совпадает.
найдите /etc/sh* #<== Вы также можете использовать подстановочные знаки.
найдите -c /etc/*sh*
updateb: обновить базу данных mlocate
обновленоb [варианты]
Updatedb -vU /root/ #<==-v отображает процесс обновления, -U указывает путь обновления.
Глава 4. Три мушкетера текстовой обработки
grep: инструмент фильтрации текста
Команда grep — одна из наиболее важных команд в системе Linux. Ее функция — фильтровать совпадающие строки и данные из текстовых файлов или потоков данных.
grep -v "oldboy" test1.txt #<== Фильтровать строки, не содержащие строку oldboy. Обратите внимание на отфильтрованную строку и по возможности используйте двойные кавычки.
grep -n "oldboy" test2.txt #<== Выведите строки, содержащие строку oldboy, и отобразите номер строки.
grep -n "." test2.txt #<== отображает номера всех строк (аналогично cat -n test2.txt). Здесь "." означает совпадение любого отдельного символа, то есть совпадение всего содержимого. , отображать номера всех строк.
grep -i "alex" test2.txt #<==Используйте параметр -i для фильтрации alex без учета регистра.
grep -Ei "oldboy|alex" test2.txt #<== Он не чувствителен к регистру и отфильтровывает строки, содержащие oldboy и alex.
grep -Ei --color=auto "oldboy|alex" test2.txt #<==Добавьте параметр --color. #<== Совпадающие строки будут отображаться красным цветом.
grep -c "oldboy" test2.txt подсчитывает количество совпадающих строк
sed: редактор потока символов
sed [параметры] [встроенные командные символы sed] [входной файл]
sed '2a 106,dandan,CSO' person.txt #<==Здесь используется встроенная команда sed и функция добавления.
sed '2i 106,dandan,CSO' person.txt #<==Здесь используется встроенная команда sed и функция вставки.
sed '2a 106,dandan,CSO 107,bingbing,CCO' person.txt добавляет несколько строк текста после указанной строки в файле.
sed '2d' person.txt #<==Встроенная команда sed d используется здесь для реализации функции удаления, определяя удаление текста в строке 2
sed '2,5d' person.txt #<== "2,5" - это комбинация числовых адресов, разделенных запятыми. Его функция - удалить вторую-пятую строки файла (удалить несколько строк) текста, включая строки 2 и 5, поэтому остается только строка 1.
sed 's#zhangyao#dandan#g' person.txt #<==Встроенная команда s s используется здесь для реализации функции замены, а глобальный флаг замены g используется для замены всех строк, соответствующих чжанъяо в файле . Необходимо обратить внимание на грамматический формат. Поместите текст «чжанъяо», который необходимо заменить, между первым и вторым «#», а заменяемый текст «дандан» разместите между вторым и третьим «#». В результате «чжанъяо» во второй строке заменяется на «дандан».
sed '2p' person.txt #<== Здесь для реализации функции запроса используется встроенная команда sed p, а содержимое строки 2 указывается в сочетании с числовым адресом. Однако мы обнаружим, что результат. это не только вывод строки 2, но и остальная часть файла. Содержимое также отображается, поскольку команда sed имеет функцию вывода по умолчанию.
sed -n '2p' person.txt #<== Чтобы решить проблему, связанную с отображением избыточного содержимого приведенной выше командой, используйте опцию -n, чтобы отменить вывод по умолчанию и выводить только текст соответствующей строки, чтобы вы могли только нужно не забыть использовать команду p с необходимой опцией – n.
sed -n '2,3p' person.txt #<==Конечно, вы можете использовать диапазон адресов «2,3» для просмотра содержимого строк со 2 по 3.
Начало работы с основами awk
awk [параметр] 'условие {действие}' файл...
awk 'NR==5' oldboy.txt #<==По сравнению с приведенным выше содержимым, это действительно строка 5.
awk 'NR==2,NR==6' oldboy.txt
awk '{print NR,$0}' oldboy.txt добавляет номер строки перед каждой строкой файла.
awk 'NR==2,NR==6 {print NR,$0}' oldboy.txt #<==Отобразите строки со 2 по 6 файла oldboy.txt и напечатайте номер строки.
awk -F ":" '{print $1,$3,$NF}' oldboy.txt отображает первый, третий и последний столбцы файла oldboy.txt.
awk '{gsub("/sbin/nologin","/bin/bash",$0);print $0}' oldboy.txt Замените /sbin/nologin в файле на /bin/bash (практика использования функций awk).