Разное

Файл linux открыть: Как открыть текстовый файл Linux

Содержание

Как открыть текстовый файл Linux

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

Вот вы скажете, а что их там открывать, открыл и посмотрел или изменил, и все. Да, но не совсем, терминал Linux настолько гибкий инструмент, что даже обычный просмотр файлов можно очень сильно оптимизировать. Просмотр содержимого файлов Linux — это тоже искусство. В этой инструкции мы рассмотрим все команды, с помощью которых можно открыть текстовый файл linux, поговорим о том как ими пользоваться, а также приведем несколько примеров.

Содержание статьи:

Просмотр файла в Linux полностью

Самая простая и в то же время наиболее часто используемая утилита для просмотра содержимого файла в Linux это cat. Выводит все содержимое файла в стандартный вывод. В параметре нужно передать только адрес файла, или нескольких файлов. Идеально подходит для просмотра небольших файлов. Общий синтаксис команды cat такой:

$ cat опции адрес_файла …

Например просмотр содержимого файла linux /etc/passwd:

cat /etc/passwd

Также можно посмотреть сразу несколько файлов:

cat /etc/passwod /etc/group

Если файл доступен только для пользователя root, то нужно перед командой написать sudo:

sudo cat /etc/shadow

Опция -n включает нумерацию строк:

cat -n /var/log/Xorg.0.log

Для удобства, можно включить отображение в конце каждой строки символа $

cat -e /var/log/Xorg.0.log

А также отображение табуляций, все табуляции будут заменены на символ ^I:

cat -T /var/log/Xorg.0.log

Больше о ней говорить не будем, потому что большинство её опций направлены на форматирование вывода, более подробную информацию вы можете посмотреть в статье: Команда cat в Linux.

Просмотр файла в Linux с прокруткой

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

$ less опции файл

Также ее можно комбинировать с cat:

$ cat адрес_файла | less

Например, посмотрим лог Х сервера:

less /var/log/Xorg.0.log

Теперь мы можем листать содержимое файла в Linux с помощью стрелок вверх-вниз. Для того чтобы выйти нажмите q. Также эта утилита поддерживает поиск. Для поиска по файлу нажмите слеш «/». О более правильном способе поиска мы поговорим дальше.

Просмотр только начала или конца файла

Очень часто нам не нужен файл целиком.  Например, достаточно посмотреть несколько последних строчек лога, чтобы понять суть ошибки, или нужно увидеть только начало конфигурационного файла. Для таких случаев тоже есть команды. Это head и tail (голова и хвост).

По умолчанию head открывает текстовый файл в Linux и показывает только десять первых строчек переданного в параметре файла:

head /etc/passwd

Можно открыть сразу два текстовых файла в Linux одновременно аналогично cat:

head /etc/passwd /etc/group

Так можно открыть текстовый файл linux или несколько и вывести по десять первых строчек каждого из них.

Если вам не нужны все 10 строчек, опцией -n и цифрой можно указать количество строк которые нужно вывести. Например, 5:

head -n5 /var/log/apt/history.log

Тот же результат можно получить опустив букву n и просто передав цифру в качестве ключа:

head -5 /var/log/apt/history.log

Также можно задать количество байт, которые нужно вывести с помощью опции -с и числа. Например: 45:

head -c45 /var/log/apt/history.log

Тоже хотите подсчитать действительно ли там 45 символов? Используйте команду wc:

head -c45 /var/log/emerge.log | wc -c

Команда tail наоборот, выводит 10 последних строк из файла:

tail /var/log/Xorg.0.log

Утилита tail тоже поддерживает изменение количества строк, с помощью опции -n. Но она обладает еще одной интересной и очень полезной опцией -f. Она позволяет постоянно обновлять содержимое файла и, таким образом, видеть все изменения сразу, а не постоянно закрывать и открывать файл. Очень удобно для просмотра логов linux в реальном времени:

tail -f /var/log/Xorg.0.log

Просмотр содержимого файла с поиском

В большинстве случаев нам нужен не полностью весь файл, а только несколько строк, с интересующей нас информацией. Можно выполнить просмотр файла linux предварительно отсеяв все лишнее с помощью grep. Сначала синтаксис:

$ grep опции шаблон файл

Или в комбинации с cat:

$ cat файл | grep опции шаблон

Например выведем из лога только предупреждения:

cat /var/log/Xorg.0.log | grep WW

Но это еще не все, многие не знают, но у этой утилиты еще несколько полезных опций.

С помощью опции -A можно вывести несколько строк после вхождения:

cat /var/log/Xorg.0.log | grep -A2 WW

С помощью -B — до вхождения:

cat /var/log/Xorg.0.log | grep -B2 WW

А опция -С позволяет вывести нужное количество строк до и после вхождения шаблона:

cat /var/log/Xorg.0.log | grep -C2 WW

Также с помощью grep можно подсчитать количество найденных строк:

cat /var/log/Xorg.0.log | grep -c WW

Шаблоном может быть строка и простые спецсимволы замены. Если вы хотите использовать регулярное выражение укажите опцию -e или используйте egrep. Многие спрашивают, а какая разница между этими утилитами — уже никакой, в большинстве дистрибутивов egrep это ссылка на grep -e. А теперь пример:

cat /var/log/Xorg.0.log | egrep 'WW|EE'

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

Просмотр файлов Linux в сжатом виде

Иногда можно встретить в системе текстовые файлы в сжатом виде, формате gz. Это, например, конфигурационный файл ядра, или логи некоторых программ. Для того чтобы открыть файл в linux через терминал не распаковывая его есть целый ряд аналогов вышеописанных утилит с приставкой z. Это zcat, zless, zgerp, zegrep.

Например, открываем сжатый файл для просмотра:

zcat /var/log/syslog.2.gz

Или более практичный пример, распаковываем и копируем конфигурационный ядра в текущую директорию:

zcat /porc/cofig.gz .config

Так же можно использовать less, для просмотра сжатых файлов с прокруткой:

zless /porc/cofig.gz

А для фильтрации сжатых файлов по шаблону есть zgrep и zegrep. Например, ищем в сжатом логе ошибки:

zgrep 'EE' /var/log/Xorg.log.gz

Редактирование файлов в Linux

Довольно часто, обычного просмотра файла недостаточно и в нём надо что-то поправить. Для решения этой задачи cat уже не подойдёт, надо использовать текстовый редактор. В терминале можно пользоваться nano или vim, а в графическом интерфейсе — gedit. Чтобы открыть файл в терминале выполните:

$ nano /путь/к/файлу

Например:

sudo nano /etc/default/grub

Для большинства файлов в директории /etc/ запись доступна только пользователю root. Поэтому команду надо выполнять от имени суперпользователя с помощью sudo. После нажатия клавиши Enter утилита запросит пароль. Введите его, несмотря на то, что символы пароля не отображаются, это нормально. После внесения изменений сохраните их с помощью сочетания клавиш Ctrl + O.

Аналогично, можно открыть этот же файл в текстовом редакторе:

sudo gedit /etc/default/grub

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

Выводы

Вот и все. Разобрал все достаточно подробно. Теперь вы точно знаете как правильно открыть файл в терминале Linux. Если остались еще вопросы, оставляйте комментарии.

Оцените статью:

Загрузка…

Как открыть файл в терминале Linux (Ubuntu, Kali, Debian, CentOS)

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

В данной инструкции мы расскажем о том, как открыть файл в терминале Linux и какие команды для этого можно использовать. Материал будет актуален для любого дистрибутива Linux, включая Ubuntu, Debian, Kali Linux, CentOS и т.д.

Команды cat и tac

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

Чтобы использовать ее просто введите «cat» и название файла. Например, если вам нужно просмотреть содержимое файла «file_name.txt», то команда должна выглядеть вот так:

cat file_name.txt

После выполнение данной команды все содержимое указанного файла будет выведено в терминал Linux. Данный способ вывода удобен для быстрого просмотра небольших файлов.

При использовании команды «cat» может понадобиться нумерация строк. В этом случае команду нужно вводить с параметром «-n».

Также есть команда «tac», которая открывает файлы точно также как «cat», но выводит строки в обратном порядке (начиная с конца).

tac text.txt

Обратите внимание, для того чтобы узнать больше о «cat» и «tac», а также других командах Linux, введите в терминал «man» (от англ. manual) и через пробел название интересующей вас команды, например, «man tac». Это выведет подробную информацию о команде и список всех поддерживаемых параметров.

Команды head и tail

Если нужно открыть в терминале Linux большой файл, то вместо команды «cat» можно использовать «head» или «tail». Данные команды выводят в терминал только часть файла. В случае «head» выводится только начало документа, а в случае «tail» только конец.

Чтобы открыть файл с помощью данной команды просто введите «head» или «tail» и название файла:

head file_name.txt

tail file_name.txt

По умолчанию команды «head» и «tail» выводят по 10 строк с начала или конца файла. Но, при необходимости это значение можно изменить при помощи параметра «-n». Для этого вводим «-n» и число строк (не отделяя пробелом). Выглядит это примерно так:

head -n3 file_name.txt

tail -n5 file_name.txt

Кроме этого, вы можете ограничить количество информации, которую выводят команды «head» и «tail», указав значение в байтах. Для этого нужно использовать параметр «-c». Например, чтобы вывести 100 байт нужно добавить параметр «-c» и указать значение 100 (не отделяя пробелом). Выглядит это примерно так:

head -c100 file_name.txt

tail -c200 file_name.txt

Команды «head» и «tail» имеют общий набор параметров, но у «tail» есть уникальный параметр «-f», которого нет у «head». При вызове «tail -f file_name.txt» выводимая информация будет автоматически обновляться. Это может быть удобно для наблюдения за логами.

Команды more и less

Для открытия больших файлов в терминале Linux можно использовать команды «more» и «less». Команда «more» открывает файл в терминале Linux и позволяет пролистывать его только вниз при помощи клавиш Enter (одна строка вниз) и Space (страница вниз). Пролистывания вверх нет, поэтому, если вы случайно проскочили нужное вам место в файле, то вернуться назад не получится.

Чтобы открыть файл в терминале Linux с помощью команды «more» и «less» нужно ввести следующее:

more file_name.txt

less file_name.txt

Команда «less» также позволяет открывать большие файлы в терминале Linux, но она уже предоставляет больше возможностей. С помощью «less» можно пролистывать содержимое документа как вниз (Page Down), так и вверх (Page Up), переходить в конец (End) и начало файла (Home), пролистывать текст по одной строке (Enter), а также выполнять поиск в обоих направлениях.

Для того чтобы выполнить поиск после выполнения «less» нужно ввести слеш (/) и любой кусок текста. Чтобы перейти к следующему найденному отрывку нужно нажать N, а Shift-N возвращает к предыдущему найденному отрывку. Для поиска в обратном направлении вместо знака слеш (/) нужно вводить знак вопроса (?) и после этого любой текст.

Учитывая большие возможности команды «less», для открытия файлов в терминале Linux в основном используют именно ее, а не команду «more».

Команда most

Если возможностей «less» не хватает, то можно использовать команду «most». Она предоставляет еще больше возможностей для открытия файлов в терминале Linux, но она может быть не установлена по умолчанию.

Если вы используете Ubuntu Linux, то для установки «most» нужно выполнить вот такую команду:

sudo apt install most

Команда «most» позволяет открывать сразу несколько файлов и переключаться между ними при необходимости. Также «most» позволяет редактировать текущий файл, переходить к нужной строке файла, разделять экран пополам, блокировать или пролистывать оба экрана одновременно и многое другое. По умолчанию, «most» не обертывает длинные строки, а использует горизонтальную прокрутку.

Для того чтобы открыть файл в терминале Linux с помощью «most» нужно выполнить вот такую команду:

most file_name.txt

Для перемещения по открытому файлу в «most» можно использовать стрелки на клавиатуре, Tab (вправо), Enter (вниз), T (начало), B (конец), J и G (переход к n-й строке), SPACE и D (один экран вниз), DELETE и U (один экран вверх). Для поиска вперед S, f или слеш, для поиска назад знак вопроса (?).

Текстовый редактор Nano

Если вам нужно не просто открыть файл в терминале Linux, но и отредактировать его, то лучше всего использовать не «most», а какой-нибудь более продвинутый текстовый редактор для терминала. Например, это может быть редактор Nano.

В Ubuntu Linux текстовый редактор Nano установлен по умолчанию, но если его нет в вашей системе, то вы можете его установить следующими командами:

Для CentOS, Fedora:

yum install nano

Для Gentoo:

install app-editors/nano

Для Debian, Ubuntu:

apt-get install nano

Чтобы открыть файл в терминале Linux при помощи редактора Nano нужно выполнить следующую команду:

nano file_name.txt

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

Для управления текстовым редактором Nano используются следующие комбинации клавиш:

  • Ctrl-G или F1 – просмотр справки;
  • Ctrl-X или F2 – выход из программы;
  • Ctrl-O или F3 – сохранение открытого файла;
  • Ctrl-J или F4 – выровнять текущий абзац;
  • Ctrl-R или F5 – загрузить содержимое другого файла в текущий;
  • Ctrl-W или F6 – выполнить поиск;
  • Ctrl-Y или F7 – пролистать страницу вперед;
  • Ctrl-V или F8 – пролистать страницу назад;
  • Ctrl-K или F9 – вырезать строку и запомнить;
  • Ctrl-U или F10 – вставить;
  • Ctrl-C или F11 – положение курсора;
  • Ctrl-T или F12 – проверить орфографию;

Посмотрите также:

Как вывести содержимое файла Linux? Открываем текстовый файл в Linux » Tapen.ru

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

Просмотр текстового файла в Linux полностью

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

cat [опции] <путь_к_файлу/имя_файла>

Представьте, что надо посмотреть содержимое файла с названием myfile.txt:

cat myfile.txt

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

cat /etc/passwd

Если нужно посмотреть несколько файлов сразу, это тоже не вызовет проблем:

Кроме того, при просмотре текстового файла в Linux мы можем отобразить номера строк. Для этого потребуется всего лишь использовать опцию -n:

cat -n file.txt

Команда nl функционирует аналогично команде cat с опцией -n, выводя номера строк в столбце слева.

nl file.txt

При необходимости вы можете сделать так, чтобы при выводе текстового файла в конце каждой строки отображался символ $:

 cat -e test

Вывод будет следующим:

hello everyone, how do you do?$
$
Hey, am fine.$

Кроме cat, для вывода содержимого текстового файла в Linux используется команда tac. Её разница заключается в том, что она выводит содержимое файла в обратном порядке.

Как просмотреть файл в Linux с прокруткой

Бывает, что текстовый файл большой, поэтому его содержимое не помещается в один экран. Использовать в таком случае cat неудобно, зато есть less. Синтаксис у неё такой же:

less <путь_к_файлу/имя_файла>

Команда less обеспечит постраничный просмотр, что очень удобно. При этом:
1) less позволяет просматривать текст по определённому числу строк, для чего достаточно указать — (тире или минус) и количество строк:

less -5 myfile.txt

2) можно начать просмотр с конкретной строки в файле, указав + (плюс) и номер строки, с которой хотим начать чтение:

less +5 myfile.txt

Открыв текст, мы можем управлять его просмотром:

Просматриваем начало или конец файла в Linux

Порой, нам не нужно выводить содержимое всего файла и мы хотим, к примеру, посмотреть лишь несколько строчек лога. Такое часто бывает, если мы подозреваем, что в начале или в конце конфигурационного файла есть ошибки. Для решения данного вопроса у нас существуют команды head и tail (как вы уже догадались, это голова и хвост).

Команда head по умолчанию показывает лишь 10 первых строчек в текстовом файле в Linux:

head /etc/passwd

Вот, что мы увидим:

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/false
daemon:x:2:2:daemon:/sbin:/bin/false
adm:x:3:4:adm:/var/adm:/bin/false
lp:x:4:7:lp:/var/spool/lpd:/bin/false
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
news:x:9:13:news:/var/spool/news:/bin/false
uucp:x:10:14:uucp:/var/spool/uucp:/bin/false

Кстати, тут мы тоже можем открыть сразу несколько текстовых файлов в Linux одновременно. Вот просмотр сразу двух файлов:

 head /etc/passwd /etc/shadow

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

 head -n5 /var/log/emerge.log

В итоге мы вывели только пять строк:

1394924012: Started emerge on: Mar 15, 2014 22:53:31
1394924012: *** emerge --sync
1394924012: === sync
1394924012: >>> Synchronization of repository 'gentoo' located in '/usr/portage'...
1394924027: >>> Starting rsync with rsync://212.113.35.39/gentoo-portage

По правде говоря, букву n можно и не использовать, достаточно просто передать цифру:

 head -5 /var/log/emerge.log

Кстати, выводить содержимое текстового файла в Linux можно не построчно, а посимвольно. Давайте зададим число символов, которое нужно вывести (используем опцию -с):

 head -c45 /var/log/emerge.log

Итак, выводим 45 символов:

1394924012: Started emerge on: Mar 15, 2014 2

Не верите, что их действительно 45? Проверить можно командой wc:

 head -c45 /var/log/emerge.log | wc -c
45

С «головой» разобрались, давайте поговорим про «хвост». Очевидно, что команда tail работает наоборот, выводя десять последних строк текстового Linux-файла:

 tail /var/log/emerge.log

Количество строк при выводе тоже можно менять. Однако в tail есть такая полезная опция, как -f. С её помощью содержимое текстового файла будет постоянно обновляться, в результате чего вы станете видеть изменения сразу (постоянно открывать и закрывать файл не придётся). Это весьма удобно, если вы хотите просматривать логи Linux в реальном времени:

 tail -f /var/log/emerge.log

Просматриваем содержимое файла по шаблону в Linux

На практике зачастую нам необходим не весь текстовый файл, а лишь несколько строк из него. Используя grep, мы можем вывести Linux-файл, предварительно отсеяв лишнее:

grep опции шаблон файл

Команду можно применять и совместно с cat:

cat файл | grep опции шаблон

Давайте выведем из лога лишь предупреждения:

cat /var/log/Xorg.0.log | grep WW

Вывод:

(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 85.839] (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
[ 85.839] (WW) Disabling Keyboard0
[ 85.839] (WW) Disabling Mouse0
[ 87.395] (WW) evdev: A4TECH USB Device: ignoring absolute axes.

Есть и ряд полезных опций: -A, -B, -C. Допустим, нам надо выполнить вывод двух строк после вхождения enp2s0:

 $ ifconfig | grep -A2 enp2s0

Вывод из файла:

enp2s0: flags=4163 mtu 1500
inet 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::beae:c5ff:febe:8bb7 prefixlen 64 scopeid 0x20

А теперь, то же самое, но до вхождения loop:

 ifconfig | grep -B2 loop

Вывод:

inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (Local Loopback)

Можно по две строки как до, так и после loop:

ifconfig | grep -C2 loop

Вывод из файла:

inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (Local Loopback)
RX packets 9810 bytes 579497 (565.9 KiB)
RX errors 0 dropped 0 overruns 0 frame

Просматриваем Linux-файл в сжатом виде

Порой, в системе встречаются текстовые файлы в сжатом виде и формате gz. Это могут быть конфигурационные файлы ядра либо логи программ. Открыть такие файлы можно тоже через терминал, не прибегая к распаковке. Для этого существует множество аналогов вышеназванных утилит с той лишь разницей, что они имеют приставку z: zgerp, zegrep, zcat, zless.

Давайте откроем сжатый файл в Linux для просмотра:

zcat test.gz

Или выполним просмотр сжатого файла с прокруткой:

zless test

Вот, пожалуй, и всё. Теперь вы точно в курсе, как правильно открывать и просматривать текстовые файлы в терминале Linux.

Источники:
— https://blld.ru/kak-otkryt-tekstovyj-fajl-linux;
— https://linuxrussia.com/terminal-view-text-files.html;
— https://pingvinus.ru/note/show-text-file.

5 команд для просмотра содержимого файла в командной строке Linux

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

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

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

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

 

5 команд для просмотра файлов в Linux

Перед тем, как просмотреть файл в Unix-подобных системах, позвольте нам пояснить это, когда мы имеем в виду текстовые файлы здесь. Существуют различные инструменты и команды, если вы хотите читать двоичные файлы.

Давай начнем!

 

1. Cat

Это самая простая и, пожалуй, самая популярная команда для просмотра файла в Linux.

Cat просто печатает содержимое файла на стандартном экране, т.е. на экране. Это не может быть проще, чем это, не так ли?

Cat становится мощной командой, когда используется с ее параметрами. Мы рекомендуем прочитать это подробное руководство по использованию команды cat.

Проблема с командой cat в том, что она отображает текст на экране. Представьте, что вы используете команду cat с файлом, содержащим 2000 строк. Весь ваш экран будет заполнен 200 строками, и это не идеальная ситуация.

Итак, что вы делаете в таком случае? Используйте команду less в Linux (объяснено позже).

2. nl

Команда nl почти как команда cat. Разница лишь в том, что она добавляет номера строк при отображении текста в терминале.

Есть несколько вариантов с командой nl, которая позволяет вам контролировать нумерацию.

 

3. Less

Команда Less просматривает файл по одной странице за раз. Лучше всего, чтобы вы выходили меньше (нажимая q), на экране не отображаются строки. Ваш терминал остается чистым и нетронутым.

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

 

4. Head

Команда Head – это еще один способ просмотра текстового файла, но с небольшой разницей. Команда head отображает первые 10 строк текстового файла по умолчанию.

Вы можете изменить это поведение, используя опции с командой head, но основной принцип остается тем же: команда head начинает работать с заголовка (начала) файла.

 

5. Tail

Команда Tail в Linux аналогична и все же противоположна команде head. В то время как команда head отображает файл с начала, команда tail отображает файл с конца.

По умолчанию команда tail отображает последние 10 строк файла.

Команды Head и Tail могут быть объединены для отображения выбранных строк из файла. Вы также можете использовать команду tail для просмотра изменений, внесенных в файл в режиме реального времени.

Бонус: Strings

Хорошо! Мы обещали показывать только команды для просмотра текстового файла. И этот имеет дело как с текстовыми, так и с двоичными файлами.

Команда Strings отображает читаемый текст из двоичного файла.

Нет, он не конвертирует двоичные файлы в текстовые файлы. Если бинарный файл состоит из реально читаемого текста, команда strings отображает этот текст на вашем экране.

Заключение

Некоторые пользователи Linux используют Vim для просмотра текстового файла, но мы думаем, что это излишне. Наша любимая команда открыть файл в Linux – это команда less. Она оставляет экран чистым и имеет несколько параметров, которые значительно упрощают просмотр текстового файла.

Какую команду вы предпочитаете?

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как в Linux открыть файл для записи?

До этого чем ответить на заданный в заголовке вопрос, необходимо впрочем бы на начальном уровне знать принцип работы в Linux. Когда Windows диалог с пользователем осуществляет при помощи типовой графической оболочки: рабочий стол, мой компьютер, мои бумаги и т.д., то в Linux таких оболочек существует несколько и любая имеет свою специфику. Примеры оболочек — KDE, GNOME, Xfce. В различие от графической оболочки, относительно универсальным способом управления в Linux представляется Консоль. Именно ее называют сердцем Linux. Прошли те эпохи, когда для управления операционной системой Linux нуждалось знание командной строки. Сегодня в распоряжении юзеров Linux несколько отличных графических интерфейсов (собственно я предпочитаю GNOME). Однако необязательное не означает ненужное — знание команд открывает мощные возможности опции и управления системой. Время, вложенное в изучение бригад, окупится сторицей. Ниже несколько полезных бригад. В Ubuntu Linux операции, требующие полномочий админа, должны предваряться командой sudo.

Содержание статьи

Команды работы с файлами в Linux

Создать файл в нынешном каталоге:
touch имя_файла.txt
Найти файл:
locate имя_файла
одновить базу поиска файлов:
updatedb
Просмотреть текстовой файл:
cat /путь/имя_файла
Просмотреть текстовый файл в оборотном порядке — от последней строки к первой:
tac /путь/имя_файла
Перекопировать файл_1 в файл_2:
cp файл_1 файл_2
Перегнать файл_1 в файл_2:
mv файл_1 файл_2
Перегнать файл с сохранением оригинала (в конец имени файла дописывается знак ~):
mv -b файл целевой_каталог
Удалить файл:
rm имя_файла
Вписать информацию в файл, перезаписав его:
echo текст > имя_файла.txt
Приплюсовать информацию в файл без его перезаписи:
echo текст >> имя_файла.txt
Спаять несколько текстовых файлов в один:
cat файл_1 файл_2 > окончательный_файл

Открытие файла в Linux в графической оболочке

Так для открытия файла с информацией о типе процессора чрез Консоль необходимо ввести команду

[user@lic5 ~]$ cat /proc/cpuinfo (после cat — пробел).

Содержание файла отобразиться на экране. Таким же образом возможно открыть файл, содержащий информацию о памяти ПК (сat /proc/meminfo). Открыть файлы в Linux возможно и через графическую оболочку. В большинстве оболочек (KDE, GNOME) есть автоматическая привязка расширения файла к соответствующей програмке. Если файл не открывается двойным кликом, значивает такая привязка отсутствует. Сделать ее самостоятельно — сложная процедура. Поэтому проще сначала открыть програмку, а затем через нее — нужный файл либо, щелкнув левой кнопкой мыши, выбрать «открыть с помощью…» и отыскать программу из расширенного списка. На этом краткий ввод в то как раскрыть файл в Linux можно считать законченным. Полагаемся, что обзор поможет Вам в освоении открытых операционных систем.

Переадресовывание вывода команды в файл в Linux

Для переадресовывания вывода команды в файл используется запись варианта >имя_файла или >>имя_файла. Например:

echo "Единожды, в студёную зимнюю пору" >poetry.txt
echo "Я из бору вышел, был сильный мороз." >>poetry.txt

Первоначальная команда создаст в текущем каталоге файл с именем poetry.txt (либо, если файл с таким именем уже существует, удалит его и создаст новый файл с подобным названием) и запишет в этот файл строку контента, являющуюся первой строкой стихотворения. Вторая бригада, если файл с названием poetry.txt не существует, основывает такой файл, а если файл существует, то раскроет его для записи, и запишет в его конец вторую строку стишка.

Выполнение команд из файла в Linux

Для этого, чтобы выполнить команды, записанные в текстовый файл, возможно запустить из командной строки оболочку shell, показав ей в качестве аргумента имя файла. Например:
cat - >myscript.sh
#!/bin/sh
ls -l
echo "Hello, World!"
# Поднажмите Ctrl+D, чтобы завершить ввод в файл myscript.sh
sh myscript.sh

В этом примере будет создан текстовый файл, воображающий собою shell-скрипт, содержащий две команды. Первая вводит на терминал содержимое текущего каталога, а вторая вводит на терминал надпись «Hello, World!». Первоначальной строкой файла является запись комментария в особом формате, которая указывает командной оболочке shell путь к интерпретатору охватываемого файла, и таким образом, этот скрипт возможно сделать исполняемым файлом, добавив в его свойства свойство x:

chmod +x myscript.sh
./myscript.sh

Бригадой sh myscript.sh запускается командная оболочка shell, какой в качестве аргумента указан файл скрипта myscript.sh. Так же можено перепоручить вывод команды в файл:

$ cat file > copy_file

или приплюсовать к нему

$ cat file >> copy_file

Когда вы хотите написать напрямую, команда echo ‘text’

$ echo 'Hello World' > file

Раскрыть файл для редактирования в Linux

Консольная soft less является расширенной версией программы more, какая позволяла просматривать файл только в одном направленности — от начала файла к его концу. То что less позволяет рассматривать файлы и в обратном направлении, послужило основой для её наименования less (англ. меньше). Чтобы раскрыть файл для редактирования в less, используется следующий синтаксис:

less [характеристики] имя_файла

Как открыть большой файл в Linux

В эпоху большого количества информации, большие файлы (размером больше 500 Мб) могут встречаться очень часто. Предположим что вам нужно найти информацию или отредактировать такой файл, но обычные текстовые редакторы не приспособлены для этой задачи и могут просто зависнуть при попытке открыть файл размером несколько гигабайт из-за нехватки памяти.

Если вы опытный системный администратор вы можете открыть такой файл используя комбинацию консольных команд cat, tail, grep, sed, awk и т д. В этой статье я расскажу о более дружелюбных способах открытия и редактирования больших файлов в Linux.

Сначала давайте создадим текстовый файл для экспериментов размером 500 Мб. Для этого воспользуемся командой:

yes "losst.ru " | head -c 500MB > test.txt

Содержание статьи:

1. Большие файлы в Vim

У текстового редактора Vim есть множество различных плагинов или скриптов которые расширяют его функциональность. Одним из таких плагинов есть LargeFile Plugin.

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

Чтобы установить LargeFile plugin сначала необходимо установить vim, если он еще не установлен. Для Debian, Ubuntu, Linux Mint:

sudo apt install vim

В Fedora, ContOS, или RHEL:

sudo yim install vim-enhanced

Теперь скачайте плагин с официального сайта последняя версия на данный момент 5. Для установки в домашнюю директорию вы можете открыть vba файл расширения с помощью vim:

unzip LargeFile.vba.gz

vim LargeFile.vba

Наберите :so % и нажмите Enter, чтобы Vim установил расширение в домашнюю папку. Затем можете набирать :q для выхода. Плагин будет установлен в ~/.vim/plugin/LargeFile.vim и вы сможете его использовать.

Когда большой файл загружается в vim этот плагин отключает события, отмену действий и подсветку синтаксиса. По умолчанию большими файлами считаются файлы размером более 100 Мб. Чтобы изменить эту настройку нужно отредактировать файл ~/.vimrc. Например, будем считать большими файлы больше 10 Мб:

vi ~/.vimrc

let g:LargeFile=10

Несмотря на то что плагин LargeFile может ускорить загрузку и просмотр больших файлов сам vim справляется с редактированием больших файлов не очень хорошо потому что он пытается загрузить файл целиком в оперативную память. Например при загрузке моего текстового файла размером 500 Мб утилита будет занимать достаточно много оперативной памяти:

При этом на открытие файла ушло примерно 10-15 секунд. Так что если ваши файлы имеют размер больше чем количество оперативной памяти вам необходимо рассматривать другие варианты.

2. Glogg Log Explorer

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

Для установки Glogg в Debilan (Wheezy и выше) Ubuntu и Linux Mint наберите:

sudo apt install glogg

Для установки в Fedora:

sudo yum install glogg

Для открытия текстового файла просто выполните:

glogg test.txt

Glogg открывает большие файлы очень быстро. Мой тестовый файл открылся практически мгновенно:

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

По сравнению с Vim, Glogg более легкий, для загрузки файла журнала размером 500 Мб было использовано всего лишь 141 Мб оперативной памяти.

3. JOE Text Editor

JOE это легкий консольный текстовый редактор выпущенный под лицензией GPL. JOE один из немногих текстовых редакторов поддерживающих работу с большими файлами. С его помощью можно открывать и редактировать файлы намного большего размера чем размер оперативной памяти.

К тому же JOE поддерживает множество мощных функций для редактирования текста, таких как: безопасное редактирование, поиск и замена по регулярным выражениям, неограниченная отмена и повтор операций, подсветка синтаксиса и т д.

Для установки JOE в Debian, Ubuntu, или Linux Mint наберите:

sudo apt install joe

Для Fedora, CentOS или RHEL:

sudo yum install joe

Чтобы открыть текстовый файл для редактирования выполните:

joe test.txt

Загрузка больших файлов в JOE происходит немного медленнее чем в Glogg. На загрузку файла размером 500 Мб ушло примерно 15 секунд. Но это не так уж плохо учитывая что сразу после загрузки файл можно полноценно редактировать.

Потребление памяти JOE впечатляет. На загрузку и редактирование текстового файла размером 500 Мб было использовано 53 Мб физической памяти.

Если вам известный еще какой нибудь способ редактировать большие файлы, сообщите нам в комментариях.

Оцените статью:

Загрузка…

Открыть папку или файл из терминала

Бывает, сидишь такой в терминале, и надо файл из текущей папки по-быстрому открыть в редакторе. Или картинку посмотреть. Или PSD в Фотошопе открыть.

И ты такой идёшь, в проводнике находишь эту папку, потом нужный файл, потом открываешь. А можно-то открыть одной командой прямо из терминала.

Mac OS

Команда open.

Чтобы открыть папку в файндере, передайте имя папки. Текущая папка — точка:

# Откроет текущую папку
open .

Открылась папка в Finder

Если передать имя файла, он откроется в программе по умолчанию. CSS в текстовом редакторе, картинки в превью, PSD в фотошопе:

# Откроет файл в фотошопе
open file.psd

Файл открылся в фотошопе

Если нужно открыть в приложении не по умолчанию, используйте опцию -a. У меня дефолт для JS-файлов это Sublime Text. А в атоме я открою такой командой:

open -a 'Atom' file.js

Файл открылся в атоме

Даже сайт можно открыть:

# Открыть сайт
open 'https://isqua.ru/blog/'

Сайт открылся в браузере

У команды open есть и другие опции, посмотрите их вот так:

open --help

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

Windows

Команда start.

# Откроет папку
start path/to/dir

Папка открылась в проводнике

# Откроет файл в редакторе по умолчанию
start file.js

Файл открылся в редакторе

# Откроет файл в блокноте
start 'Notepad' file.md

Файл открылся в блокноте

# Откроет адрес в браузере
start 'https://isqua.ru/blog/'

Сайт открылся в браузере

Внимательный читатель заметил, что команда start работает из cmd, из PowerShell и из bash (cmder). Справку по команде start можно получить в PowerShell или cmd вот так:

help start

Если вы используете Cmder или ConEmu, то можно настроить и открытие папки из проводника в терминале.

Linux

Команда xdg-open. Тоже умеет открывать папки, файлы и адреса. Типа:

xdg-open 'https://isqua.ru/blog/'

Справку по команде xdg-open можно получить так:

man xdg-open

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

Системное программирование Linux: открыть файл, прочитать файл и записать файл

Это моя первая статья в серии статей о системном программировании для POSIX-совместимых операционных систем, которые, как я надеюсь, будут посвящены Linux. На самом деле я затронул эту тему некоторое время назад, когда написал три статьи о библиотечном программировании в Linux (статические библиотеки, динамические библиотеки и динамические библиотеки с использованием POSIX API). В этой серии статей моя цель — пройти основы системного программирования Linux от самых простых тем, таких как открытие файла, чтение файла и запись в файл, до более сложных вещей, таких как сетевое программирование сокетов Беркли.Итак, давайте начнем с настройки среды и примера программы, которая копирует исходный файл в целевой файл, используя системные вызовы POSIX API, чтобы продемонстрировать системные вызовы open (), read () и write () в операционной системе Linux.

Настройка среды

Я буду использовать свою заслуживающую доверия операционную систему Ubuntu Linux, но на самом деле вы можете использовать любую операционную систему, совместимую с POSIX, единственная разница, вероятно, будет заключаться в том, что вам нужно будет настроить вашу среду по-другому.Для начала системного программирования Linux нам нужен компилятор gcc со связанными пакетами и справочными страницами, относящимися к POSIX. Итак, вот как установить эти пакеты в операционной системе на основе Ubuntu:

 sudo apt-get install build-essential manpages manpages-dev manpages-posix manpages-posix-dev 

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

системных вызова open (), read () и write ()

Давайте продолжим наш первый системный вызов open () , цель которого — открыть файл для чтения или записи или создать новый файл. Вам следует открыть эту страницу руководства, если вы еще этого не сделали, с помощью команды man 2 open и прочитайте основы (2 — номер раздела руководства, используйте man man , чтобы узнать больше о номерах разделов встроенного руководства). В следующем примере мы также используем системные вызовы read (), и write (), для копирования из одного файлового дескриптора в другой (оба дескриптора возвращаются системным вызовом open () ), поэтому разумно открыть их man страниц ( человек 2 читает и человек 2 пишет ).Итак, вот пример кода программы, которая копирует входной файл, переданный в качестве первого аргумента, в выходной файл, переданный в качестве второго аргумента:

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 год
22
23
24
25
26
27
28
29
30
31 год
32
33
34
35 год
36
37
38
39
40
41 год
42
43 год
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
 
 / *
 ================================================== ==========================
 Имя: sp_linux_copy.c
 Автор: Марко Мартинович
 Описание: копировать входной файл в выходной файл
 ================================================== ==========================
 * /

# включить 
#include 
#include 
#include 
#include 
#include 

#define BUF_SIZE 8192

int main (int argc, char * argv []) {

    int input_fd, output_fd; / * Дескрипторы входных и выходных файлов * /
    ssize_t ret_in, ret_out; / * Количество байтов, возвращаемых функциями read () и write () * /
    буфер символов [BUF_SIZE]; / * Буфер символов * /

    / * Отсутствуют аргументы имени файла src и dest * /
    if (argc! = 3) {
        printf ("Использование: cp file1 file2");
        возврат 1;
    }

    / * Создаем дескриптор входного файла * /
    input_fd = open (argv [1], O_RDONLY);
    if (input_fd == -1) {
            perror («открыть»);
            возврат 2;
    }

    / * Создаем дескриптор выходного файла * /
    output_fd = open (argv [2], O_WRONLY | O_CREAT, 0644);
    if (output_fd == -1) {
        perror («открыть»);
        возврат 3;
    }

    / * Процесс копирования * /
    while ((ret_in = read (input_fd, & buffer, BUF_SIZE))> 0) {
            ret_out = запись (output_fd, & buffer, (ssize_t) ret_in);
            if (ret_out! = ret_in) {
                / * Ошибка записи * /
                perror ("писать");
                возврат 4;
            }
    }

    / * Закрываем файловые дескрипторы * /
    закрыть (input_fd);
    закрыть (output_fd);

    возврат (EXIT_SUCCESS);
} 

Если вы назвали этот файл кода sp_linux_copy.c и если вы хотите назвать исполняемый файл sp_linux_copy для компиляции этой программы, вы, вероятно, использовали бы что-то вроде этого:

 gcc -Wall -o sp_linux_copy sp_linux_copy.c 

Затем, если ваш исходный файл называется source_file.txt и если вы хотите назвать целевой файл destination_file.txt , вы должны запустить эту программу следующим образом:

 ./sp_linux_copy source_file.txt destination_file.txt 

Теперь давайте рассмотрим код и объясним сложные моменты. Первое, что мы должны сделать, это включить необходимые файлы заголовков. Страница руководства каждого системного вызова сообщает вам, какие файлы заголовков вам нужно включить, чтобы иметь возможность использовать этот системный вызов. Во-вторых, мы определим константу, которую будем использовать для определения размера нашего буфера в байтах. Чем меньше размер буфера, тем дольше процесс копирования, но и экономится память. Затем мы открываем исходный и целевой файловые дескрипторы, исходный код с O_RDONLY , чтобы сделать его только для чтения, назначение с O_WRONLY | O_CREAT , чтобы сделать его доступным для записи и создать целевой файл с флагами разрешений файловой системы 0644.В случае ошибки мы используем perror () man 3 perror для вывода относительно удобного сообщения об ошибке.

Теперь мы готовы начать процесс копирования. Мы запускаем read () и write () внутри цикла (поскольку исходный файл может быть больше, чем наш буфер) для копирования из одного файла в другой. Важно отметить, что write () использует количество байтов, прочитанных из исходного файла, возвращаемое функцией read () , поэтому он будет знать, сколько байтов записать в целевой файл.Если количество прочитанных байтов (ret_in) и количество записанных байтов (ret_out) различаются, это указывает на ошибку, поэтому мы снова используем perror () , чтобы распечатать описание ошибки. В конце, если все прошло хорошо, мы выполняем очистку, закрывая оба файловых дескриптора и возвращая 0 (EXIT_SUCCESS), чтобы указать, что программа завершилась без ошибок.

На этом вводная статья по системному программированию Linux. В своей следующей статье я покажу вам еще несколько примеров ввода / вывода POSIX, а затем перейду к системным вызовам, связанным с управлением памятью.

.

Linux: Показать открытые файлы, lsof

Linux: Показать открытые файлы, lsof

Учебник по Linux

Автор Xah Lee. Дата: . Последнее обновление: .

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

В unix / linux «все» — это файл. Устройства (например, все USB-устройства) — это файлы, сетевые сокеты — это файлы, каталог — это файл.

Вот некоторые из наиболее часто используемых опций.

  • lsof -h → отобразить краткую справочную документацию.456
  • lsof + d dir → по пути dir dir
  • lsof + D dir → по dir path dir , также показать всех детей dir
  • lsof -c cmd → показать файлы, открытые командой, имя которой начинается с cmd

lsof показывает несколько первых файлов, открытых firefox

FD → означает «файловый дескриптор». Общий код FD:

  • cwd → текущий рабочий каталог
  • ltx → текст общей библиотеки (код и данные)
  • m86 → DOS Объединить сопоставленный файл
  • mem → файл с отображением памяти
  • mmap → устройство с отображением памяти
  • pd → родительский каталог
  • rtd → корневой каталог
  • txt → текст программы (код и данные)
  • число → дескриптор файла.0 — стандартный ввод, 1 — стандартный вывод, 2 — стандартный поток. Буква {r, w, u} после него означает режим. «U» → читать и писать. «R» → читать. «W» → напишите.

см. Полный список и описание в man lsof .

TYPE → тип файла. Общие типы:

  • REG → обычный файл
  • LINK → файл символьной ссылки
  • DIR → каталог
  • BLK → блокировать специальный файл (файл устройства)
  • CHR → символьный специальный файл (файл устройства)
  • FIFO → специальный файл FIFO
  • ТРУБА → трубы
  • PMEM → / proc файл образа памяти
  • IPv4 → сокет IPv4
  • IPv6 → открыть сетевой файл IPv6 — даже если его адрес IPv4, сопоставлен с IPv6-адресом
  • inet → розетка интернет-домена
  • sock → сокет неизвестного домена
  • unix → сокет домена UNIX

Если у вас есть вопросы, положите 5 долларов на patreon и напишите мне.

Основы оболочки Linux
Системный администратор
Баш / Терминал
Рабочий стол Linux

∑XAH

© 1995, 2020 Xah Lee.

.

linux — подсчет открытых файлов на процесс

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

.

linux — C fopen против open

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

Загрузка…

  1. Авторизоваться
    зарегистрироваться

  2. текущее сообщество

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *