Linux перейти в конец файла

Обновлено: 05.07.2024

У меня есть несколько длинных файлов журнала. Я могу просмотреть последние строки tail -n 50 file.txt , но иногда мне нужно отредактировать эти последние строки.

Как мне перейти прямо к концу файла при просмотре nano ?

@ Hunter.S.Thompson Это было предназначено для не хардкорных пользователей (смеется) @ Hunter.S.Thompson Это не работает! Вы используете пользовательскую команду! Но теперь попробуйте vim по-портативному G @ VolkerSiegel Я не могу сказать, сарказм ли вы, но это не пользовательская команда. Это смайлик. Мы использовали эти вещи до того, как кто-то позволил Unicode курить травку. Саркастично, конечно! Я попробовал вашу команду: : открыть командную строку, чем - , P и войти. Вот что я получил: «E464: неоднозначное использование пользовательских команд». Всего наилучшего!

Откройте файл с помощью nano file.txt .

Теперь введите Ctrl +, _ а затем Ctrl + V

Вы также можете сделать Ctrl + W, Ctrl + V - в зависимости от того, что удобнее для ваших рук :) @psmears, который зависит от версии. v2.4 имеет ваши ярлыки. Текущая версия v4.0 имеет ярлыки, которые упоминает Марко. Очень надоедливый. @ Mausy5043: версии не ниже 2.4 имеют оба набора ярлыков. Версия 4.0, кажется, убрала Ctrl + W, Ctrl + V, что раздражает; у него действительно есть Ctrl + W, Ctrl + T, Ctrl + Y, который по крайней мере только на буквенных клавишах, но длиннее :-( Эти ярлыки не очень хорошо работают в Windows / Putty

Многие редакторы поддерживают опцию в командной строке, чтобы перейти непосредственно к строке NNN . К счастью для вас, кажется, что вы переходите в конец, если номер строки указан за концом файла, так что вы можете использовать что-то вроде: +NNN nano

Это также работает в joe , но не в, например, less или VIM, они жалуются на то, что они идут мимо EOF. (по крайней мере те, что в моей системе. less +G file и vi +$ file работают в тех.)

Конечно, что-то подобное $EDITOR +$(wc -l file) file , вероятно, будет работать в большинстве редакторов, но это немного глупо и требует чтения файла дважды.

Или, если nano уже открыт, используйте <kbd> Alt / <kbd> + <kbd> G </ kbd> и введите 99999

Из встроенной Nano help ( ^G ):

Итак, нажмите Alt +, \ чтобы перейти к первой строке, или нажмите Alt +, / чтобы перейти к последней строке .

  • Это будет эквивалентно gg (начало) или G (конец) в vim .
  • Это также утверждает, что Ctrl + Home или Ctrl + End должен работать, но это никогда не работало для меня кажется, что они работают изначально на консоли / десктопе, но не через SSH с использованием PuTTY.
  • Насколько я помню, это то, что / у нижней части клавиатуры и \ у верхней части.

Если вы хотите команду , вы можете написать функцию в вашем .bashrc или .bash_aliases использовать счетчик строк из wc :

Теперь просто введите, nano-end filename чтобы открыть файл до последней строки!

Ctrl + End работает, если у вас есть последняя (скомпилированная) версия nano редактора.

Если вы не знаете, как это сделать, вы можете прочитать редактор Compiling Nano с опциями

Обратите внимание, что в более новых системах, например, на основе Ubuntu 18.04, такая версия уже существует.

2017 12 апреля - GNU nano 2.8.1

. заставляет ^ Home и ^ End переходить в начало и конец файла (на терминалах, которые поддерживают эти нажатия клавиш) .

Замазка против Cygwin

У меня не установлен PuTTY, здесь мы должны полагаться на другие утверждения, что эти комбинации клавиш не работают в Windows 10 + PuTTY + SSH + nano> 2.8.1.

С другой стороны, у меня есть Cygwin, и Windows 10 + Cygwin + SSH + nano> 2.8.1 работает нормально.

Этичный хакинг и тестирование на проникновение, информационная безопасность

Стандартный вывод и стандартный ввод. Перенаправление вывода

Для командной строки существует такое понятие как «стандартный вывод». Стандартным является вывод в консоль. Например, команда

выводит в консоль список файлов:


  • сохранить в файл;
  • передать другой программе;
  • безвозвратно уничтожить без вывода и сохранения куда-либо.

Для сохранения в файл используется символ >

После этого символа нужно указать имя файла. Например:

При этом на экран ничего не вывелось. Но если проверить файлы, то можно увидеть новый с именем files.txt.


cat – для отображения содержимого файлов

Главной функцией cat является «склеивание» нескольких файлов. После неё можно указать название нескольких файлов, и она последовательно их выведет. Если вы указали название только одного файла, то будет отображён только он. Для показа только что созданного файла:


wc – для подсчёта строк, слов и байт

Программа wc считает, сколько ей передали строк, сколько слов и сколько байт.

После команды wc нужно указать имя файла, например:

Будет выведено что-то вроде:

  • 11 – количество строк в файле
  • 93 – количество слов в файле
  • 619 – количество байт в файле

Если вы хотите, чтобы вывод ограничился количеством строк, то используйте ключ -l:

Там вы увидите, что если файл не задан, то читается стандартный вывод. Мы уже выяснили, что стандартный вывод – это то, что другие программы выводят в консоль. Если мы хотим передать вывод одной программы в другую, то используется символ |. Например:

Если программа принимает от другой программы вывод через символ |, то это называется стандартным вводом.

Мы также можем использовать различные опции, как с первой, так и со второй командой:

Можно воспользоваться стандартным выводом команды cat:

grep – вывод строк, соответствующих шаблону

Общий вид использования команды:

Означает искать в файле files.txt строки, соответствующие шаблону «txt».


Команда grep также поддерживает стандартный ввод:

Поиск по шаблону осуществляется с учётом регистра. Т.е. txt, Txt и TXT – это три разных шаблона и если вы указали txt, то строка, содержащая TXT будет считаться неподходящей. Для поиска без учёта регистра используется опция -i.

Чтобы было интереснее, скачайте или создайте текстовый файл. Если у вас нет своего файла, то скачайте словарик:

Примечание: wget и bunzip2 – это также команды Linux. Первая используется для получения файлов по сети, вторая для распаковки архивов. Пока мы не будем останавливаться на них подробно.

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

Поищем в этом файле строки, содержащие, например, шаблон «russia», чтобы поиск осуществлялся без учёта регистра, добавим ключ -i:


Как мы помним, команда grep может работать со стандартным вводом. Поэтому следующая команда абсолютно аналогична:

Будет найдено довольно много совпадений. А сколько именно? Легко:


Если вы немного запутались, поясню. Команда cat считывает файл rockyou.txt и выводит его в стандартный вывод, по стандартному вводу (символ |) стандартный вывод передаётся команде grep, которая без учёта регистра (-i) ищет все строки, содержащие слово russia, найденные строки по стандартному вводу (символ |) передаются команде wc, которая считает их количество, при этом считается только количество строк, а количество слов и количество байт не отображается (-l).

uniq – сообщает о повторяющихся строках или удаляет их

Команда uniq удаляет одинаковые строки или показывает их. Но она «видит» одинаковые строки только если они являются смежными (следуют друг за другом). Т.е. перед применением команды uniq, записи в файле нужно отсортировать. Для этого применяется команда sort.

Давайте начнём с того, что посчитаем общее количество строк в файле rockyou.txt. Для этого мы выведем его содержимое в стандартный вывод командой cat, а затем применим команду wc:

Теперь перед тем, как посчитать количество строк, мы их отсортируем (команда sort) и удалим одинаковые (команда uniq). Обе эти команды умеют работать со стандартным вводом (а также и с файлами). Далее показан пример при работе со стандартным вводом:


Как можно заметить, в файле rockyou.txt имеется почти три тысячи абсолютно одинаковых строк.

Задание для самостоятельной работы: посмотрите справку по командам uniq, sort и wc и удалите дубликаты из файла rockyou.txt без использования стандартного ввода. А затем посчитайте количество уникальный записей также без использования стандартного ввода.

У команды uniq имется ключ -d, который позволяет просмотреть одинаковые строки. Но вначале очистим словарь от нечитаемых символов:

iconv -f utf-8 -t utf-8 -c

Подробности о проблеме, которую решает предыдущая команда, вы найдёте в статье «Как из текстового файла найти и удалить символы, отличные от UTF-8».

А теперь выведем список дублирующихся строк:

Различия между > и |

Оба символа: > и | используются для перенаправления стандартного вывода. Но символ > отправляет данные в файл, а символ | (его ещё называют «труба») отправляет их другой программе. Если сделать так:

То этой командой вы пытаетесь переписать бинарный (исполнимый) файл программы sort тем, что выдаст cat. Если вы обычный пользователь, то система не позволит вам испортить файл программы. Но если вы работаете под учётной записью администратора, то таким образом вы навредите системе, результат будет совершенно другим от ожидаемого вами.

Если вы хотите очистить файл rockyou.txt от дублей и сохранить результат в новый файл, то нужно сделать так:

Здесь cleaned_rockyou.txt – это название нового файла без дублей.

less – для просмотра содержимого больших файлов

Вы могли обратить внимание, что когда мы вывели результаты поиска командой:

то вывод получил достаточно большим и пришлось прокручивать окно консоли вверх.

Что делать, если нужно просмотреть большой вывод или очень объёмный текстовый файл? Команда

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

Для таких случаев имеется команда less. Она может работать и с файлами и со стандартным вводом. Для просмотра файла:

Вы можете прокручивать большие файлы вверх и вниз.

Вы можете вводить команды для поиска и навигации по файлу:

Команда Действие
Page Up или b Прокрутка назад на одну страницу
Page Down или пробел Прокрутка вперёд на одну страницу
Стрелка вверх (↑) Прокрутка вверх на одну строку
Стрелка вниз (↓) Прокрутка вниз на одну строку
G Перейти к концу файла
1G или g Перейти к началу файла
/символы Поиск вперёд по файлу введённых символов
n Поиск следующего вхождения предыдущего поиска
h Показать справку
q Выйти из less

Для выхода из команды less используйте клавишу q.

head — Вывод только начала текстового файла

Команда head выводит только начало текстового файла. По умолчанию будет выведено первые 10 строк, например, чтобы вывести начало файла ZTE F2.txt:

Если вам нужно оставить только определённое число строк, то используйте опцию -n, после которой укажите желаемое число строк, например, чтобы вывести только одну первую строку файла:

Чтобы вывести первые 100 строк:

tail — Вывод только конца текстового файла

Эта команда похожа на head, но выводит конец файла.

По умолчанию выводятся последние 10 строк, но вы можете изменить их количество опцией -n:

Ввод имён файлов в Linux

Консоль поддерживает drag-and-drop, т.е. вы можете перетащить и бросить в консоль файл, после этого в консоли появится полный путь до файла.

Также используйте клавишу TAB для автодополнения имени файла и пути до него.

Будьте внимательны с файлами, у которых присутствуют в имени пробелы. Например, если вы хотите переименовать файл files.txt в файл new file.txt, то следующая команда завершиться шибкой:

Чтобы избежать ошибку, нужно:

  • взять путь до файла, содержащий пробелы, в кавычки;
  • экранировать пробел;
  • вместо пробела использовать знак нижнего подчёркивания (_), который по общепринятому соглашению символизирует пробел.

Т.е. все следующие команды являются верными. Имя файла в кавычках:

Замена пробела на знак нижнего подчёркивания:

В Linux можно создавать файлы с именами, невозможными в Windows, например, в именах можно использовать слеши, двоеточие, нулевой байт и т.д. Будьте внимательны с такими файлами – в Windows вы не сможете их ни открыть, ни переименовать, ни удалить.

Связанные статьи:

факультете информационной безопасности от GeekBrains? Комплексная годовая программа практического обучения с охватом всех основных тем, а также с дополнительными курсами в подарок. По итогам обучения выдаётся свидетельство установленного образца и сертификат. По этой ссылке специальная скидка на любые факультеты и курсы!


Рекомендуется Вам:

2 комментария to Азы работы в командной строке Linux (часть 3)


Alexey :

Приветствую! Важное наблюдение. Дело в том, что файл rockyou.txt имеет несколько строк с неверными, с точки зрения UTF-8 символами, из-за которых команда uniq с опцией -d терпит неудачу.

Очистим словарь от нечитаемых символов:

Подробности о проблеме, которую решает предыдущая команда, вы найдёте в статье «Как из текстового файла найти и удалить символы, отличные от UTF-8».

А теперь можно вывести список дубликатов (в новом правильном файле):

Ваши действия (пересохранение файла) приводили к тому, что редактор сам удалял неправильные символы и после этого uniq -d начинала работать как надо.


Ctrl + R - обновить активную панель
Ctrl + \ - справочник каталогов быстрого доступа
Ctrl + S или M + S - поиск файлов в текущем каталоге по начальным символам
Ctrl + X H - добавить текущий каталог в справочник каталогов быстрого доступа
M + G - перейти на первый файл или каталог в видимом списке на панели
M + J - перейти на последний файл или каталог в видимом списке на панели
M + R - перейти на средний файл или каталог в видимом списке на панели
M + O - неактивная панель = активная панель
M + . - показывать/скрыть скрытые файлы и каталоги
M + T - cменить вид панели (стандартный, укороченный, расширенный)
+ (Plus) - вызвать окно для выделения группы файлов (можно использовать регулярные выражения)
\ (Backslash) - снять выделение с группы файлов (действие, обратное тому, которое вызывается по клавише "+").

Работа с файлами Midnight Commander

F3 - просмотр файла.
F4 - редактирование файла.
Shift + F4 - открыть редактор на изменение нового файла, при сохранении будет запрошено его имя
Shift + F5 - копирование файла в тот же каталог
Shift + F6 - инлайн-переименование текущего файла
Ctrl + X C - посмотреть/поменять права (chmod) для отмеченных файлов
Ctrl + X I - быстрый просмотр информации о текущем объекте на второй панели
Ctrl + X O - посмотреть/поменять владельца (chown) для отмеченных файлов
Ctrl + X Q - быстрый просмотр содержимого файла на второй панели
Ctrl + X S - создать символическую ссылку (symlink)
Ctrl + N - создать новый файл.
Ctrl + F - копировать выделенный текст в файл.
Shift + F5 - вставка текста из файла.

Работа с командной строкой Midnight Commander

Alt + ENTER - вставить файл или каталог, на котором установлен курсор в командную строку.
Alt + A - вставить в командную строку полный путь в активной панели.
Alt + P - вернуть предыдущую выполненную команду в командную строку.M + Enter - вставляет в командную строку имя файла, на котором находится курсор
Alt + T - смена режима отображения панели.
Alt + [.] - скрыть или показать скрытые файлы и каталоги начинаются на точку.
Alt + A - вставить в командную строку полный путь в активной панели.
Alt + C - смена текущего каталога.
Alt + H - просмотр последних выполненных команд.
Alt + I - смена каталога на неактивной панели, на каталог в котором вы находитесь.
Alt + O - неактивная панель переходит в каталог на который указывает активная панель.M + P - показывает в командной строке предыдущую команду
M + N - показывает в командной строке следующую команду
M + или Esc + - авто-дополнение команды, если вариантов несколько - то повторное нажатие высвечивает список возможных вариантов
Ctrl + X P или M + A - вставить в командную строку путь текущей панели
Ctrl + X T - вставить в командную строку выделенные объекты
Ctrl + X, Q - просмотр содержимого файла на второй панели.
Ctrl + X, I - просмотр информации о текущем объекте на второй панели.
Ctrl + O - скрыть или показать панели.
Ctrl + R - перечитать содержимое каталога.
Ctrl + Space - показать размер текущего каталога.

Работа с текстом Midnight Commander

F3 - начать выделение текста, повторное нажатие F3 закончит выделение.
Shift + F3 - начать выделение блока текста, повторное нажатие F3 закончит выделение.
F5 - скопировать выделенный текст.
F6 - переместить выделенный текст.
F8 - удалить выделенный текст.
Ctrl + K - удалить часть строки до конца строки.
Ctrl + Y - удалить строку.
Ctrl + X - перейти в конец слова.
Ctrl + Z - перейти на начало предыдущего слова.
ALT + L - переход на строку по номеру строки.
ALT + U - выполнить команду и вставить вывод результата команды в позицию под курсором.
ALT + T - сортировка строк выделенного текста.
Tab - отодвигает вправо выделенный текст.
Ctrl + U - отменить действия.

Работа с поиском Midnight Commander

Alt + Shift + [?] - Расширенный поиск.
Ctrl + S - Поиск файла или каталога.


В этом уроке мы изучаем различные способы добавления текста в конец файла в Linux.


Каждая операционная система на основе Unix имеет концепцию «места по умолчанию для вывода».

Каждый называет это «стандартный вывод» или «stdout», произносится как standard out.

Ваша оболочка (вероятно, bash или zsh) постоянно следит за местом вывода по умолчанию.

Когда ваша оболочка видит новый вывод, она выводит его на экран, чтобы вы могли его увидеть.

Процедура выглядит следующим образом:

Добавить текст в конец файла с помощью команды echo:

Добавить вывод команды в конец файла:

Добавление строк в конец файла

Мы можем добавить текстовые строки, используя этот символ перенаправления >> или мы можем записать данные и вывод команды в текстовый файл.

Используя этот метод, файл будет создан, если его не существует.

Добавление результата вывода данных команды в конец файла

Вы также можете добавить данные или запустить команду и добавить вывод в нужный файл.

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

Альтернативные методы

Давайте посмотрим, как добавить что-либо в файл с помощью утилиты tee, awk и sed Linux.

Использование инструмента командной строки tee

Команда Tee читает стандартный ввод и записывает его как в стандартный вывод, так и в один или несколько файлов.

Команда названа в честь Т-разветвителя, используемого в сантехнике.

Он прерывает вывод программы, так что вывод может быть отображен и сохранен в файле.

Использование инструмента командной строки awk

Awk в основном используется для сканирования и обработки шаблонов.

Использование инструмента командной строки sed

Команда Sed в Linux расшифровывается как потоковый редактор (stream editor) и может выполнять множество функций с файлом, таких как поиск, поиск и замена, вставка или удаление.

Используя sed, вы можете редактировать файлы, даже не открывая его, что значительно ускоряет поиск и замену чего-либо в файле.

Добавить несколько строк в файл

Есть несколько способов добавить несколько строк в файл одновременно.

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

Заключение

Есть способы добавить текст к концу определенного номера строки в файле или в середине строки с помощью регулярных выражений, но мы рассмотрим это в другой статье.

Дайте нам знать, какой метод для добавления в конец файла вы считаете лучшим в разделе комментариев.

Делить комментариями и добавляйте статьи в соц. сети, если они вам нравятся!

Читайте также: