Администрирование Linux $ Командная оболочка
Рассмотрим джентельменский набор каждого, уважающего себя линуксоида:
cat - для просмотра файла
wc - вывод количества:
Если по конвейеру результат перенаправляется на ввод (stdin) - то отображается лишь счетчик (без файла)
grep - джентельменский набор для фильтрации всего, даже поток текста, перенаправленный на ввод (stdin). Таким образом, можно проводить несколько фильтраций одной командой:
paste - объединяет файлы как колонки. По умолчанию, в качестве разделителя юзается табуляция, но можно заменить параметром -d
Особенно полезно при сочетании в конвейере:
cat error.log | awk '{ print $5, "=> " $10, $11}'
tr - залупа для преобразования букв. Например заменить нижний регистр на верхний.
По умолчанию sed выдаёт результат в свой stdout, но может отредактировать и оригинальный файл с опцией -i
Рассмотрим джентельменский набор каждого, уважающего себя линуксоида:
cat - для просмотра файла
cat [файл]tail - просмотр последних строк
tail [файла] - вывод 10 последних строк в файлеhead - аналогично tail, но ток сверху-вниз
tail -n [номер] - вывод до указанной строки
wc - вывод количества:
wc -l [файл] - количество строкБез передачи аргумент выводит в таком порядке (строки-слова-символы-файл)
wc -c [файл] - символов
wc -w [файл] - слов
Если по конвейеру результат перенаправляется на ввод (stdin) - то отображается лишь счетчик (без файла)
grep - джентельменский набор для фильтрации всего, даже поток текста, перенаправленный на ввод (stdin). Таким образом, можно проводить несколько фильтраций одной командой:
grep -v [аргумент] [файл] - фильтрация всего, что не равно аргументу
grep -i [аргумент] [файл] - учет без регистра (верхние-нижние)
grep -l [аргумент] [файл] - вывод файлов с указанным названием
grep -c [аргумент] [файл] - подсчет найденного образца
grep -r [аргумент] [файл] - рекурсивный поиск по директориям
grep -w [аргумент] [файл] - вывод только совпадающих значений
cut - срезает часть файла - 2 разделителя (d - для полей | f - для столбцов)>> cut -d " " -f 5,6,7 < access.logВывод 5,6 и 7 столбцов из файла access.log (d в основном, оставляют пустым " ")
worker process 1076
worker process 1077
worker process 1078
worker process 1079
paste - объединяет файлы как колонки. По умолчанию, в качестве разделителя юзается табуляция, но можно заменить параметром -d
[разделитель]
-d:. Параметром -s объединяются значения из файла или stdin потока, разделитель указывается после -dpaste [файл] [...]sort - просто сортирует данные (в файле или в входном потоке)
sort -r - реверсионная сортировка (наоборот)uniq - вывод ток уникальные значения
uniq -c
- к каждой строке указывается количество (сколько раз оно встречалось)uniq -u
- показывает только уникальные значенияОсобенно полезно при сочетании в конвейере:
cut -d " " -f 2 < err.log | sort | uniq
awk - язык программирования, но в 99% случаев он юзается для разбивки файлов на столбцы, причем даже при перемешенных табов и пробелов, лучше чем cut в своем родеcat error.log | awk '{ print $5, "=> " $10, $11}'
worker => signal 9
worker => signal 9
worker => signal 9
worker => signal 9
Можно кастомизировать вывод, добавлять условные выражения, циклами баловаться и прочую хуйню делать.tr - залупа для преобразования букв. Например заменить нижний регистр на верхний.
>> echo "xyu" | tr a-z A-Z
XYU
sed - интерактивный редактор для преобразования текста во входном потоке строка за строкой. Входным аргументом юзается файл или stdin, на выходе тот же файл или stdout (перенаправление результата на сохранение файла):>> cat access.log | sed 's/worker/Служба/'
Вместо /, как разделитель можно юзать любой символ (@, :)По умолчанию sed выдаёт результат в свой stdout, но может отредактировать и оригинальный файл с опцией -i
sed -i '' 's/C#/Pidar/' result.txt