Для бэкенд-разработчика просмотр и просмотр содержимого файлов в Linux является базовой операцией. особенно обычноАнализ файлов журналов для устранения неполадок, то как нам правильно открыть лог-файл? Для новичка вроде автора первая реакция - кот, хвост, ви (или вим), да, я много раз пользовался редактором вим для просмотра лог-файлов.
Никогда не используйте команду vi для просмотра содержимого больших файлов., особенно для больших файлов размером в десятки гигабайт. Поскольку vi это всего лишь редактор (его можно понимать как блокнот в windows), после использования команды vi все содержимое файла будет загружено в память, если памяти недостаточно, сервер может быть парализован .
Чтобы сгенерировать тестовые данные, автор почесал голову и собрал их по кусочкам, и написал сценарий оболочки для создания тестового файла, который удобен для демонстрации команды ниже и может быть скопирован в командную строку linux для выполнения.
# 生成10行测试数据(可根据需求自行修改)
for ((i=1;i <= 10; i++));
do
echo "第$i行" >> test.txt
if [[ `expr $i % 2` -eq 0 ]]
then
echo -e >> test.txt
fi
done
Просмотр содержимого файла напрямую
Есть три команды для просмотра содержимого всего файла, команду cat/tac/nl, nl я использую реже, поэтому не буду ее здесь демонстрировать, заинтересованные друзья могут зайти на Baidu Yiha.
cat [-AbEnTv]
Опции и параметры:
-A: Эквивалент интеграции -vET, класс перечисляет некоторые специальные символы вместо пробелов.
-b: Список номеров строк и отображение номеров строк для непустых строк, пустые строки не будут отмечены.
-E: отображать завершающий символ новой строки $
-n: Напечатайте номер строки, наряду с пустой строкой, также будет номер строки, который отличается от параметра -b
-T: отображать клавишу [tab] как ^I
-v: Список некоторых невидимых специальных символов.
Пример 1: просмотр содержимого файла test.txt.
cat test.txt
Пример 2: просмотреть содержимое файла test.txt и отобразить номер строки
cat -n test.txt
Пример 3: cat не рекомендуется для просмотра больших файлов
cat -n test.txt
cat подходит только для просмотра файлов с меньшим количеством строк, если файл относительно большой, бессмысленно, файл быстро превратится в последнюю строку. Если в файле есть специальные символы, такие как [Tab], новая строка и т. д., которые необходимо отобразить, необходимо добавить такие параметры, как -A. Конечно, кошка также может использоваться с более или менее сквозным персонажем для достижения лучших результатов.
tac (обратный порядок печати кота)
Изучив тактику, автор ни разу ее фактически не применил.Поскольку она используется меньше, ее достаточно знать каждому. Однако эта команда более интересна, она пишется напротив cat, поэтому они печатаются в обратном порядке, и последняя строка выводится как первая строка.
Пример 1: Flashback для просмотра содержимого файла
Страница для просмотра
more
Достаточно понять команду more.Функций слишком мало.Я в основном пользуюсь командой less.
ключ/команда
Космос (Космос): листать вниз
Входить: прокрутить вниз
/нить: В отображаемом в данный момент содержимом (положение хода перелистывания страниц) найдите это строковое ключевое слово вниз.
:f: сразу отображать имя файла и номер строки текущей позиции
q:: выйти из просмотра текущего файла
б или ctrl+b: страница назад
Пример 1: После поворота линии проверьте номер линии
less
Команда «меньше» более гибкая, чем «больше»: она может перелистывать страницы вперед и назад не только для поиска вверх, но и для просмотра вниз.
ключ/команда
[pagedown]: листать вниз
[pageup]: страница вверх
/нить: В отображаемом в данный момент содержимом (положение хода перелистывания страниц) найдите это строковое ключевое слово вниз.
?нить: найти строку
n: Повторить предыдущий поиск, связанный с/или ?, например предыдущую команду? Указывает смотреть вверх, в это время n будет смотреть вверх
N: Повторить предыдущий поиск в обратном порядке.
g: Перейти к первой строке данных текущего файла.
G: перейти к последней строке данных текущего файла.
q: выйти из просмотра текущего файла
Пример демонстрации
Перехват данных
head
Команда head используется для извлечения первых n строк файла, обычно с параметром -n. Когда указанное количество строк отрицательно -x, будут напечатаны все остальные данные, кроме следующих x строк.
Пример 1: просмотр первых 10 строк данных.
Пример 2 (всего 10000 строк, без пустых строк):head -n -9989 test.txt
tail
Извлечь данные из конца файла. Tail также является наиболее часто используемой командой в работе, потому что вы можете использовать опцию -f для обновления, чтобы получить последние данные в конце файла.
Опции и параметры
-n: просмотрите последние n строк данных, обратите внимание на значение после nСо знаком «+» для начала с x-й строки, какtail -n +1000 test.txt
-f: показать обратную сторону файла
Пример 1: просмотреть последние 5 строк данных [tail -n 5 test.txt]
Пример 2: просмотр данных в конце файла и обновление данных в режиме реального времени.
Пример 3: просмотр 5 строк данных в конце файла и обновление данных в режиме реального времени.
Общее командование
трубопровод: Shell также имеет функцию, которая может соединять две или более команд (программ или процессов) вместе., принимать вывод одной команды как ввод следующей команды, две или более команд, соединенных таким образом, образуют канал, команда каналаИспользуйте «|», чтобы указать.
пример: просмотр первых 10 строк вывода команды ll.
ll | head -n 3
grep: команда дляНайти совпадающие строки в файле, эти две команды также наиболее часто используются в Linux, и эти две команды обычно используются вместе при просмотре файлов журнала.
пример: просмотреть файлы, в которых строки содержат «999»
cat -n test.txt | grep '999'
>> : команда перенаправления добавления файла, вы можете добавить данные в конец файла, как указано вышеecho "第$i行" >> test.txt
.
пример: Скопируйте последние 10 строк файла в helloworld.txt.
tail -n 10 >> helloworld.txt
wc:Просмотр количества байтов, слов и строк в файлеwc [-clw] [文件...]
,
-cИли --bytes или --chars отображают только количество байтов.
-lИли --lines для отображения только количества строк.
-wИли --words для отображения только количества слов.
пример: просмотр количества строк в файлеwc -l
Дело боевое
Дело 1: Печатать строки с 11 по 20 в файле журнала.
Идея: сначала получить первые 20 строк, а затем получить последние 10 строк из 20 строк, вам нужно использовать команду конвейера.head -n 20 text.txt | tail -n 10
cat -n test.txt | head -n 20 | tail -n 10
(если требуются номера строк)
Суммировать
В линуксе слишком много команд, и их много для разработки, но автор считает, чтоСначала вам нужно знать, есть ли связанная команда, затем разделитьНаиболее часто используемое классовое мастерствоДа, когда нужноСправочная таблицаВот и все. Не нужно беспокоиться о запоминании команд или нет, в конце концов, эти вещи не определяют ваш верхний предел.
В дополнение к вышеперечисленным командам в Linux есть множество приемов для просмотра содержимого лог-файлов, таких как команда sed и т. д. Итак, какие команды вы используете чаще всего? Добро пожаловать, чтобы написать друзьям, чтобы остаться (: