Упражнения по работе с командной строкой linux

Всем доброго времени суток и других разностей.

Синтаксис

sort [/r] [/+<N>] [/m <kilobytes>] [/l <locale>] [/rec <characters>] [[<drive1>:][<path1>]<filename1>] [/t [<drive2>:][<path2>]] [/o [<drive3>:][<path3>]<filename3>]

Параметры

Параметр Описание
/r Меняет порядок сортировки на обратный (т. е. Сортировка от Z к A и от 9 до 0).
/+<N> Указывает номер позиции символа, где Сортировка будет начинать каждое сравнение. N может быть любым допустимым целым числом.
/m <kilobytes> Указывает объем основной памяти, используемый для сортировки в килобайтах (КБ).
/l <locale> Переопределяет порядок сортировки символов, определенных локальом системы по умолчанию (то есть языка и страны или региона, выбранных во время установки).
/рек <characters> Указывает максимальное число символов в записи или строку входного файла (значение по умолчанию — 4 096, а максимальное — 65 535).
[<drive1>:][<path1>]<filename1> Указывает файл для сортировки. Если имя файла не указано, сортируется стандартный ввод. Указание входного файла выполняется быстрее, чем перенаправление того же файла в стандартный вход.
/t [<drive2>:][<path2>] Указывает путь к каталогу для хранения рабочего хранилища команды сортировки , если данные не помещаются в основную память. По умолчанию используется временный системный каталог.
/o [<drive3>:][<path3>]<filename3> Указывает файл, в котором должны храниться отсортированные входные данные. Если этот параметр не указан, данные записываются в стандартный вывод. Указание выходного файла выполняется быстрее, чем перенаправление стандартных выходных данных в один и тот же файл.
/? Отображение справки в командной строке.

Комментарии

  • По умолчанию сравнения начинаются с первого символа каждой строки. /+ Параметр командной строки начинает сравнение по символу, указанному параметром N. Например, /+3 указывает, что каждое сравнение должно начинаться с третьего символа каждой строки. Строки, содержащие менее N символов, сортируются перед другими строками.

  • Используемая память всегда составляет не менее 160 КБ. Если размер памяти указан, то для сортировки используется точный указанный объем (по крайней мере 160 КБ), независимо от объема доступной основной памяти.

  • Максимальный размер памяти по умолчанию, если размер не указан, составляет 90% доступной основной памяти, если входные и выходные данные являются файлами, или 45% основной памяти в противном случае. Значение по умолчанию обычно обеспечивает наилучшую производительность.

  • В настоящее время единственным альтернативом языкового стандарта по умолчанию является язык C, который быстрее, чем сортировка на естественном языке (Сортирует символы в соответствии с их двоичными кодировками).

  • Символ вертикальной черты () можно использовать | для направления входных данных в команду Sort из другой команды или для направления отсортированного вывода в другую команду. Входные и выходные файлы можно указать с помощью символов перенаправления ( < или > ). Он может быть быстрее и эффективнее (особенно с большими файлами) для непосредственного указания входного файла (как определено в параметре имя_файла1 в синтаксисе команды), а затем указать выходной файл с помощью параметра /o .

  • Команда Sort не различает прописные и строчные буквы и не имеет ограничений на размер файла.

  • Программа сортировки использует таблицу упорядочения, соответствующую коду страны или региона и параметрам кодовой страницы. Символы, превышающие код ASCII 127, сортируются на основе сведений в файле или в альтернативном файле, указанном в команде Country в файле config. NT.

  • Если сортировка соответствует максимальному размеру памяти (по умолчанию или в соответствии с параметром /m ), то сортировка выполняется в рамках одного прохода. В противном случае сортировка выполняется в двух отдельных проходах сортировки и слияния, а объем памяти, используемый для обоих проходов, равен. При выполнении двух проходов частично отсортированные данные сохраняются во временном файле на диске. Если недостаточно памяти для выполнения сортировки в два прохода, выдается ошибка времени выполнения. Если параметр командной строки /m используется для указания большего объема памяти, чем доступно на самом деле, может произойти снижение производительности или ошибка времени выполнения.

Запуск команды top и расшифровка таблицы

Подключитесь к серверу по SSH и введите в консоли top — Enter и вы увидите таблицу, в которой выведен список запущенных процессов. Изначально перечень составлен в порядке убывания нагрузки, приходящейся на процессор.

О том, как сортировать данные по критерию, который нужен вам, поговорим дальше. А сейчас давайте рассмотрим, как расшифровать столбцы в таблице и о чем свидетельствуют значения в каждом из них.

Первые два столбика — номер процесса (PID) и имя пользователя, его запустившего (USER).

Следующие 2 столбца показывают, какой приоритет имеет процесс в данный момент (PR) и приоритет, присвоенный ему командой NICE (NI).

Информация, содержащаяся в других колонках, характеризует непосредственно уровень потребления ресурсов. Расшифровываются они следующим образом:

**VIRT — виртуальная память, которую использует процесс **RES — физическая память, занятая данным процессом **SHR — общий объем памяти, которую данный процесс делит с другими **S — текущий статус процесса: R — running; S — sleeping, Z — zombie **%CPU — процент используемого времени центрального процессора **%MEM — процент ОЗУ, используемой процессом **TIME+ — продолжительность работы процесса с момента запуска **COMMAND — название команды (программы), которая инициировала процесс.

Синтаксис

Рассмотрим синтаксис команды.

more опции файлы

Основные опции:

  • -d — показывает в конце страницы подсказки, например «Нажмите пробел для продолжения».
  • -f — считает логические строки.
  • -с — текст показывается сверху, при этом стирает предыдущий вывод.
  • -p — очистка терминала, как и параметр «-с». Используется для того, чтобы не было прокрутки и информацию было удобно читать.
  • -s — заменяет пустые строки, которые стоят рядом на одну.
  • -u — убирает подчеркивание.
  • —help — вывести справочную информацию.
  • -v — текущая версия утилиты.

После запуска утилиты, управление осуществляется горячими клавишами.

Чтобы осуществить переход на другую страницу используется клавиша «Пробел». Для смещения на одну строчку вниз — «Enter».

Основные горячие клавиши:

  • h — мини help. Выдаст описание команд.
  • :f — утилита покажет имя текущего файла и количество строк.
  • z или «Пробел» — переход на следующую страницу.
  • = — выводит количество строк на данный момент.
  • q — выход из more.

Примеры

Для первого примера запустим утилиты без параметров, а именно прочитаем лог «», который состоит из двух страниц.

more Итак, это была только первая страница. Перейдем на вторую, нажав клавишу «Пробел».

Утилита more позволяет читать несколько файлов. В этом случае нужно вводить имена документов по очереди, разделяя их пробелом. Вывод текста будет осуществляться в таком же порядке.

Прочитаем два лога. Один , второй —

more

Как видно из скриншота, первый лог оказался небольшим. Чтобы перейти во второй документ нажмем «Пробел».

Откроем документ, которые лежит в домашнем каталоге /home/ya/dokument.

more /home/ya/dokument

Как видно из скриншота выше, в документе много пустых строк, чтобы убрать повторы, введем команду с опцией «-s».

more -s /home/ya/dokument

ОПЦИИ

Теперь рассмотрим основные опции утилиты sort.

  • -b — не учитывать пробелы
  • -d — использовать для сортировки только буквы и цифры
  • -i — сортировать только по ASCII символах
  • -n — сортировка строк linux по числовому значению
  • -r — сортировать в обратном порядке
  •  — проверить был ли отсортирован файл
  • -o — вывести результат в файл
  • -u — игнорировать повторяющиеся строки
  • -m — объединение ранее отсортированных файлов
  • -k — указать поле по которому нужно сортировать строки, если не задано, сортировка выполняется по всей строке.
  • -f — использовать в качестве разделителя полей ваш символ вместо пробела.

Я понимаю, что многое из всего этого может быть непонятно, но на примерах все станет намного яснее.

Работа с текстовыми файлами

Как сравнить два текстовых файла? ответ

diff файл_1 файл_2 или diff -a файл_1 файл_2

Как посчитать количество строк в текстовом файле? ответ

wc -l имя_файла

или awk ‘END {print NR}’ имя_файла

а можно открыть файл в текстовом редакторе vi имя_файла и посмотреть кол-во строк CTRL+G

Как вывести на экран отсортированные строки текстового файла? ответ

sort имя_файла

Как удалить дубли строк из файла? ответ

sort -u имя_файла

или sort имя_файла | uniq

Как дописать содержимое одного текстового файла в конец второго? ответ

cat файл_1 >> файл_2

Как разбить текстовый файл на несколько по 100 строк в каждом? ответ

split -l 100 имя_файла 100-

в результате работы этой команды в директории появятся файлы 100-aa, 100-ab… содержащие по 100 строк из исходного файла. Если исходный файл содержал число строк не кратное 100, то в последнем файле будет меньше ста строк.

Как вывести на экран первые 30 строк файла? ответ

head -n30 имя_файла

Как вывести на экран последние 30 строк файла? ответ

tail -n30 имя_файла

Как посмотреть содержимое текстового файла? ответ

cat имя_файла — вывести файл на экран целиком

more имя_файла — выводить файл на экран постранично (пробел — перейти к следующей странице, enter — на строку вниз)

less имя_файла — выводить файл на экран с возможностью перемещаться по нему вверх и вниз

vi имя_файла или nano имя_файла или emacs имя_файла — открыть файл в любимом текстовом редакторе

Как вывести на экран строки текстового файла /tmp/ начинающиеся со слова ‘START’? ответ

sed -n ‘/%[email protected]~*!G4;:%#`START/ p’ имя_файла

grep ‘%[email protected]~*!G4;:%#`START’ имя_файла

Как вывести на экран содержимое текстового файла без однострочных комментариев (строка комментария начинается с символа #)? ответ

sed -n ‘/%[email protected]~*!G4;:%#`[%[email protected]~*!G4;:%#`#]/ p’ имя_файла

grep -v ‘%[email protected]~*!G4;:%#`#’ имя_файла

Как среди нескольких файлов в директории найти те, которые содержат слово ‘test’? ответ

grep ‘test’ * — поиск во всех файлах в текущей директории

grep ‘test’ файл_1 файл_2 файл_3 — поиск только в указанных файлах

.. Parent Directory

Двойной период или «двойная точка» (..) представляет родительский каталог вашего текущего. Вы можете использовать это, чтобы перейти на один уровень вверх в дереве каталогов.

cd ..

.. Parent Directory

Вы также можете использовать эту команду с относительными путями — например, если вы хотите подняться на один уровень вверх в дереве каталогов, а затем ввести другой каталог на этом уровне.

Вы также можете использовать эту технику для быстрого перехода к каталогу на том же уровне в дереве каталогов, что и текущий. Вы запрыгиваете на один уровень вверх, а затем обратно в другой каталог.

cd ../gc_help

.. Parent Directory
Читайте также:  Skype на linux, mac, ubuntu, debian, mint, fedora, kali