Перейти к содержимому

Как открыть файл через терминал linux

  • автор:

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

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

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

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

Screenshot_1-20219-1780c7.png

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

Screenshot_2-20219-99e730.png

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

Screenshot_3-20219-1dd6c5.png

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

terminal_linux_16_1-20219-fd57a5.png

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

Screenshot_1-20219-9c47c5.png

terminal_linux_17_1-20219-bc46ed.png

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

Screenshot_1-20219-31d952.png

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

Screenshot_2-20219-f17d52.png

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

Screenshot_3-20219-317e75.png

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

terminal_linux_21_1-20219-6bcb32.png

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

Бывает, что текстовый файл большой, поэтому его содержимое не помещается в один экран. Использовать в таком случае cat неудобно, зато есть less. Синтаксис у неё такой же: Screenshot_1-20219-005584.pngКоманда less обеспечит постраничный просмотр, что очень удобно. При этом: 1) less позволяет просматривать текст по определённому числу строк, для чего достаточно указать — (тире или минус) и количество строк: Screenshot_2-20219-5165b3.png2) можно начать просмотр с конкретной строки в файле, указав + (плюс) и номер строки, с которой хотим начать чтение: Screenshot_3-20219-7e18bd.pngОткрыв текст, мы можем управлять его просмотром:

1-20219-f917a7.png

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

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

Команда head по умолчанию показывает лишь 10 первых строчек в текстовом файле в Linux: Screenshot_1-20219-28c5fe.pngВот, что мы увидим: Screenshot_2-20219-c14f62.pngКстати, тут мы тоже можем открыть сразу несколько текстовых файлов в Linux одновременно. Вот просмотр сразу двух файлов: Screenshot_3-20219-a6503b.png

Если же вас не интересуют все 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.

Как запустить файл из командной строки?

Как запустить файл из командной строки? Когда из Nautilus'а запускаю, то просто два раза щелкаю по нему мышкой, а как из командной строки файл запустить?

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

sh название-файла

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

./filetorun

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

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

войдите, чтобы ставить лайки

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

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

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

Mac OS

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

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

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

Открылась папка в 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 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 

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

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

Форум русскоязычного сообщества Ubuntu

Страница сгенерирована за 0.206 секунд. Запросов: 23.

  • Сайт
  • Об Ubuntu
  • Скачать Ubuntu
  • Семейство Ubuntu
  • Новости
  • Форум
  • Помощь
  • Правила
  • Документация
  • Пользовательская документация
  • Официальная документация
  • Семейство Ubuntu
  • Материалы для загрузки
  • Совместимость с оборудованием
  • RSS лента
  • Сообщество
  • Наши проекты
  • Местные сообщества
  • Перевод Ubuntu
  • Тестирование
  • RSS лента

© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.

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

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