Как открыть файл через bash
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Как запустить Bash скрипт в Linux
Как системный администратор, вполне вероятно, что вы написали несколько сценариев Bash для автоматизации вашей работы. Например, вы можете запускать сценарии Bash для резервного копирования вашей работы или для регистрации некоторых событий, происходящих на вашем сервере.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Скрипты Bash, как и скрипты, написанные на других языках программирования, могут запускаться различными способами.
В этой статье мы расскажем о всех способах запуска скрипта Bash в Linux.
Подготовка
Если вы не являетесь владельцем файла, вам необходимо убедиться, что вы принадлежите к правильной группе или что права доступа предоставлены «другой» группе в вашей системе.
В некоторых дистрибутивах ваш файл будет выделен другим цветом, когда он исполняемый.
Теперь, когда ваш файл исполняемый, давайте посмотрим, как можно легко запустить скрипт Bash.
Запустить Bash скрипт из пути к скрипту
Чтобы запустить Bash скрипт в Linux, просто укажите полный путь к скрипту и укажите аргументы, которые могут потребоваться для запуска Bash скрипта.
В качестве примера, скажем, у вас есть Bash-скрипт, расположенный в вашем домашнем каталоге.
Чтобы выполнить этот скрипт, вы можете указать полный путь к скрипту, который вы хотите запустить.
Кроме того, вы можете указать относительный путь к скрипту Bash, который вы хотите запустить.
Таким образом вы узнали, как легко запустить Bash-скрипт в своей системе.
Запустить Bash скрипт, используя bash
Чтобы запустить скрипт Bash в вашей системе, вы должны использовать команду bash и указать имя скрипта, который вы хотите выполнить, с необязательными аргументами.
Полезно?
Почему?
😪 Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.
😍 Полезные IT – статьи от экспертов раз в неделю у вас в почте. Укажите свою дату рождения и мы не забудем поздравить вас.
Как открыть файл из скрипта bash?
Хорошо, так работает gedit myfile.txt работает хорошо. Но как насчет открытия файла внутри скрипта bash с использованием стандартного настольного приложения, связанного с типом файла?
Я попробовал ниже, который прекрасно работает при запуске вручную в терминале, но когда я помещаю его в файл Bash, ничего не происходит:
Что я должен сделать вместо этого?
Обратите внимание, что мне нужно, чтобы файл оставался открытым и после закрытия терминала.
6 ответов
Я думаю, что ваш сценарий должен работать. Но вы можете добавить что-то к нему, чтобы получить немного больше информации:
при запуске этого скрипта (с именем my_open.sh) в терминале, например:
Я получаю следующий вывод:
это говорит мне, что путь к файлу в порядке, mimetype распознается, и рабочий стол, который используется для открытия файла, также в порядке. И Gedit открывается с файлом, о котором идет речь.
Теперь при запуске на другом файле:
Я получаю следующий вывод:
Обратите внимание на другой mimetype и отсутствующий файл рабочего стола. Тем не менее, xdg-open открывает настройки по умолчанию для всех текстовых файлов (gedit).
Итак, вы можете захотеть добавить что-то подобное в ваш скрипт и посмотреть, получите ли вы неожиданный вывод (который вы затем можете добавить к своему вопросу. ).
Сделайте bash-скрипт test.sh как:
Затем сделайте скрипт исполняемым как:
Наконец, запустите скрипт как:
Может быть, gnome-open вместо xdg-open
Вы идете в правильном направлении. Если вы хотите, чтобы приложение gui оставалось открытым, когда вы закрываете окно терминала, вам просто нужно добавить nohup в начале строки.
Хотя я не уверен, что на самом деле должно быть достигнуто здесь, и основываясь на некоторых недавних комментариях, один скрипт должен открывать ЛЮБОЙ файл в приложении по умолчанию или в той степени, в которой это приложение поддерживает.
Используйте это как скрипт, вы можете использовать любое имя для скрипта, я буду использовать openit1 в качестве примера. Лучше всего использовать сценарии непосредственно из
/bin для добавления числа к имени, чтобы не конфликтовать ни с какими существующими командами Linux
Закройте Gedit & в терминале
Перезапустите, чтобы добавить
Для вызова откройте терминал и зайдите
Если указано как оригинал и используется ориг. сценарий для одного конкретного файла для каждого сценария и вызова d. щелкнув левой кнопкой мыши на скрипте, вам просто нужно выбрать «Выполнить» вместо «Выполнить в терминале»
Как открыть текстовый файл в Linux
В Linux все настройки, все логи, и почти вся информация хранится в обычных текстовых файлах. Важно уметь правильно и эффективно посмотреть содержимое файла linux с помощью терминала. Это еще одна из статей, ориентированных на новичков.
Просмотр файла в Linux полностью
Самая простая и в то же время наиболее часто используемая утилита для просмотра содержимого файла в Linux это cat. Выводит все содержимое файла в стандартный вывод. В параметре нужно передать только адрес файла, или нескольких файлов. Идеально подходит для просмотра небольших файлов. Общий синтаксис команды cat такой:
Например просмотр содержимого файла linux /etc/passwd:
Также можно посмотреть сразу несколько файлов:
cat /etc/passwod /etc/group
Если файл доступен только для пользователя root, то нужно перед командой написать sudo:
sudo cat /etc/shadow
Опция -n включает нумерацию строк:
А также отображение табуляций, все табуляции будут заменены на символ ^I:
Больше о ней говорить не будем, потому что большинство её опций направлены на форматирование вывода, более подробную информацию вы можете посмотреть в статье: Команда cat в Linux.
Просмотр файла в Linux с прокруткой
Если файл очень длинный и его содержимое не помещается на одном экране, cat использовать не очень удобно. для таких случаев есть less. Синтаксис тот же:
$ less опции файл
Также ее можно комбинировать с cat:
$ cat адрес_файла | less
Например, посмотрим лог Х сервера:
Теперь мы можем листать содержимое файла в Linux с помощью стрелок вверх-вниз. Для того чтобы выйти нажмите q. Также эта утилита поддерживает поиск. Для поиска по файлу нажмите слеш «/». О более правильном способе поиска мы поговорим дальше.
Просмотр только начала или конца файла
Очень часто нам не нужен файл целиком. Например, достаточно посмотреть несколько последних строчек лога, чтобы понять суть ошибки, или нужно увидеть только начало конфигурационного файла. Для таких случаев тоже есть команды. Это head и tail (голова и хвост).
По умолчанию head открывает текстовый файл в Linux и показывает только десять первых строчек переданного в параметре файла:
Можно открыть сразу два текстовых файла в Linux одновременно аналогично cat:
head /etc/passwd /etc/group
Так можно открыть текстовый файл linux или несколько и вывести по десять первых строчек каждого из них.
Тот же результат можно получить опустив букву n и просто передав цифру в качестве ключа:
Тоже хотите подсчитать действительно ли там 45 символов? Используйте команду wc:
Команда tail наоборот, выводит 10 последних строк из файла:
Просмотр содержимого файла с поиском
В большинстве случаев нам нужен не полностью весь файл, а только несколько строк, с интересующей нас информацией. Можно выполнить просмотр файла linux предварительно отсеяв все лишнее с помощью grep. Сначала синтаксис:
$ grep опции шаблон файл
Или в комбинации с cat:
$ cat файл | grep опции шаблон
Например выведем из лога только предупреждения:
cat /var/log/Xorg.0.log | grep WW
Но это еще не все, многие не знают, но у этой утилиты еще несколько полезных опций.
С помощью опции -A можно вывести несколько строк после вхождения:
Также с помощью grep можно подсчитать количество найденных строк:
cat /var/log/Xorg.0.log | egrep ‘WW|EE’
В примерах этого раздела использовались символы перенаправления ввода, подробнее о них можно почитать в этой статье.
Просмотр файлов Linux в сжатом виде
Иногда можно встретить в системе текстовые файлы в сжатом виде, формате gz. Это, например, конфигурационный файл ядра, или логи некоторых программ. Для того чтобы открыть файл в linux через терминал не распаковывая его есть целый ряд аналогов вышеописанных утилит с приставкой z. Это zcat, zless, zgerp, zegrep.
Например, открываем сжатый файл для просмотра:
Или более практичный пример, распаковываем и копируем конфигурационный ядра в текущую директорию:
Так же можно использовать less, для просмотра сжатых файлов с прокруткой:
А для фильтрации сжатых файлов по шаблону есть zgrep и zegrep. Например, ищем в сжатом логе ошибки:
zgrep ‘EE’ /var/log/Xorg.log.gz
Редактирование файлов в Linux
$ nano /путь/к/файлу
sudo nano /etc/default/grub
Для большинства файлов в директории /etc/ запись доступна только пользователю root. Поэтому команду надо выполнять от имени суперпользователя с помощью sudo. После нажатия клавиши Enter утилита запросит пароль. Введите его, несмотря на то, что символы пароля не отображаются, это нормально. После внесения изменений сохраните их с помощью сочетания клавиш Ctrl + O.
Аналогично, можно открыть этот же файл в текстовом редакторе:
sudo gedit /etc/default/grub
Открывать подобные файлы из файлового менеджера не надо, вы сможете их открыть для просмотра, но при попытке записать в них что-то получите ошибку, лучше пользоваться терминалом.
Выводы
Вот и все. Разобрал все достаточно подробно. Теперь вы точно знаете как правильно открыть файл в терминале Linux. Если остались еще вопросы, оставляйте комментарии.
Основные команды интерпретатора bash для начинающих
Сейчас читают:
Команды оболочки bash в Linux Ubuntu бывают 2 типов: встроенными и внешними. Последние расширяют базовую функциональность Ubuntu.
Основные термины
Активация консоли
После загрузки операционной системы создается 7 виртуальных консолей с текстовым интерфейсом (консольное окружение). Для навигации и их активации используется сочетание клавиш — Ctrl+Alt+F(1-7), где «F(1-7)» — соответствующие номера консолей.
Например, если требуется перейти во вторую консоль, то нужно нажать — Ctrl+Alt+F2. При переходе необходимо учитывать, что седьмая имеет графический интерфейс.
Работа в терминале
Новичкам рекомендуется начинать работу в терминале, который является эмулятором консоли.
В него можно зайти 2 способами:
Формат и правила набора
Общие правила
При вводе команды вручную или копирования из источника необходимо активировать ее нажатием клавиши «Enter». Если работа в терминале только начинается, то нужно указать пароль, который при вводе не отображается.
Ubuntu позволяет использовать пакетный файл, в котором прописывается последовательное выполнение команд. Для его создания требуется:
После этого в свойствах файла необходимо активировать флажок «Разрешить выполнение файла как программы» и закрыть окно.
Вышеописанный bash-скрипт создает папку «
/.archive» и перемещает в нее файлы, указывая в начале имени дату удаления.
Пакетный файл
Ubuntu позволяет использовать пакетный файл, в котором прописывается последовательное выполнение команд. Для его создания требуется:
После этого в свойствах файла необходимо активировать флажок «Разрешить выполнение файла как программы» и закрыть окно.
При двойном нажатии левой кнопкой мыши произойдет активация скрипта. Пример пакетного файла, который модифицирует команду rm, удаляющую файлы.
Вышеописанный bash-скрипт создает папку «
/.archive» и перемещает в нее файлы, указывая в начале имени дату удаления.
Экономия времени
Терминал Ubuntu поддерживает горячие клавиши, позволяющие экономить время при наборе однотипных команд.
Основные команды bash классифицируются на 10 групп
Файловые команды
Примеры:

Команда применяется с ключами для удобного отображения информации:
Ключи можно комбинировать между собой.
Работа с архивами
При помощи команды-архиватора tar можно создавать, разархивировать и просматривать любой tar-архив.
Работа с deb-пакетами
Deb-пакеты используются для инсталляции программного обеспечения, т. е. являются установочными файлами в Ubuntu.
Менеджер пакетов APT
Менеджер APT — специальное программное обеспечение для установки, модификации или удаления программ. Он компилирует deb-пакеты с репозиториев для конкретной конфигурации операционной системы.
Операции с текстом
Некоторые возможности sed
Сортировка
Пользователь и система
Иногда появляется необходимость в получении информации о пользователях и системе, которая применяется для написания различных программных продуктов.
Перенаправление вывода информации
Стандартным средством вывода информации о результатах команды, выполненной в терминале, является экран дисплея. Однако можно использовать альтернативный метод, воспользовавшись символами « > » (содержимое файла перезаписывается) или « >> » (добавление информации к существующей).
Работа с правами доступа
Команда chmod применяется для изменения прав доступа к файлам или каталогам. Она позволяет разрешить или запретить его, а также ограничить, используя параметры только для чтения.
Список прав доступа
SSH-подключение
SSH позволяет безопасно передавать данные в незащищенной среде по шифрованному каналу. Он применяется для удаленного подключения к серверу и запуска приложений.
Работа с датой и временем
Управление процессами
Процесс — программа, которая выполняется в текущий момент.
Начни экономить на хостинге сейчас — 14 дней бесплатно!
[в закладки] Bash для начинающих: 21 полезная команда
Материал, перевод которого мы публикуем сегодня, предназначен для тех, кто хочет освоить командную строку Linux. Умение эффективно пользоваться этим инструментом позволяет экономить немало времени. В частности, речь здесь пойдёт о командной оболочке Bash и о 21 полезной команде. Также мы поговорим о том, как пользоваться флагами команд и псевдонимами Bash, которые позволяют ускорить ввод длинных инструкций.
Термины
В ходе освоения работы в командной строке Linux вам может встретиться множество понятий, в которых полезно будет ориентироваться. Некоторые из них, вроде «Linux» и «Unix», или «командная оболочка» и «терминал», иногда путают. Поговорим об этих и о других важных терминах.
Unix — это популярная операционная система, которая была разработана Bell Labs в 1970-х. Её код был закрытым.
Linux — это самая популярная Unix-подобная операционная система. Она в наши дни используется на множестве устройств, в том числе — и на компьютерах.
Терминал (terminal), или эмулятор терминала — это программа, дающая доступ к операционной системе. Одновременно можно открывать несколько окон терминала.
Оболочка (shell) — это программа, которая позволяет отправлять операционной системе команды, написанные на особом языке.
Bash расшифровывается как Bourne Again SHell. Это — самый распространённый язык командной оболочки, используемый для взаимодействия с операционной системой. Кроме того, оболочка Bash по умолчанию используется в macOS.
Интерфейс командной строки (Command Line Interface, CLI) — это способ взаимодействия человека и компьютера, при использовании которого пользователь вводит команды с клавиатуры, а компьютер, выполняя эти команды, выводит, в текстовом виде, сообщения для пользователя. В основном CLI используется для получения свежей информации о неких сущностях, например, о файлах, и для работы с файлами. Интерфейс командной строки следует отличать от графического пользовательского интерфейса (Graphical User Interface, GUI), при работе с которым, в основном, используется мышь. Интерфейс командной строки часто называют просто командной строкой.
Скрипт (script) — это небольшая программа, которая содержит последовательность команд командной оболочки. Скрипты записывают в файлы, использовать их можно многократно. При написании скриптов можно пользоваться переменными, условными конструкциями, циклами, функциями и другими возможностями.
Теперь, когда мы рассмотрели важные термины, хочу отметить, что здесь я буду пользоваться терминами «Bash», «оболочка» и «командная строка» как взаимозаменяемыми, равно как и понятиями «директория» (directory) и «папка» (folder).
Стандартные потоки, которыми мы будем здесь пользоваться — это стандартный ввод (standard input, stdin ), стандартный вывод (standard output, stdout ) и стандартный вывод ошибок (standard error, stderr ).
Если в примерах команд, которые будут приводиться ниже, вы встретите нечто вроде my_whatever — это означает, что данный фрагмент нужно заменить чем-то вашим. Например — именем файла.
Теперь, прежде чем приступать к разбору команд, которым посвящён этот материал, давайте взглянем на их список и на их краткие описания.
21 Bash-команда
▍Получение информации
▍Манипуляции с файловой системой
▍Перенаправление ввода-вывода и конвейеры
▍Чтение файлов
▍Удаление файлов, остановка процессов
▍Поиск
▍Архивация
Подробности о командах
▍Получение информации
man command_name : вывод руководства по команде, то есть — справочной информации.
pwd : вывод на экран пути к текущей рабочей директории. В ходе работы с командной строкой пользователю часто нужно узнавать то, где именно в системе он находится.
ls : вывод содержимого директории. Эта команда тоже используется весьма часто.
ps : просмотр выполняющихся процессов.
▍Манипуляции с файловой системой
touch my_file : создание файла my_file по заданному пути.
mkdir my_directory : создание папки my_directory по заданному пути.
Теперь поговорим о перенаправлении ввода-вывода и конвейерах.
▍Перенаправление ввода-вывода и конвейеры
Например, после выполнения команды ls > my_folder_contents.txt будет создан текстовый файл, содержащий список того, что находится в текущей рабочей директории.
Теперь взглянем на конвейерную обработку данных.
То, что выводит одна команда, подаётся на вход другой команды. Это похоже на подключение одной трубы к другой
В Linux конвейерную обработку данных можно организовать с использованием практически любой правильно составленной команды. Часто говорят, что всё в Linux — это конвейер.
С помощью символа конвейера можно объединять в цепочку несколько команд. Выглядит это так:
Конвейер из нескольких команд можно сравнить с трубопроводом
Теперь поговорим о чтении данных из файлов и о выводе их на экран.
▍Чтение файлов
tail my_file : считывает строки из конца файла. Эту команду тоже можно использовать в конвейере.
Head (голова) находится спереди, а tail (хвост) — сзади
Если вы работаете с данными, используя библиотеку pandas, тогда команды head и tail должны быть вам знакомы. Если это не так — взгляните на вышеприведённый рисунок, и вы без труда их запомните.
Команда cat либо выводит содержимое файла на экран, либо конкатенирует несколько файлов. Это зависит от того, сколько файлов передано этой команде при вызове.
Если же передать ей два файла или большее количество файлов, то она ведёт себя по-другому.
Если результат конкатенации файлов нужно сохранить в виде нового файла, можно воспользоваться оператором > :
Теперь поговорим о том, как удалять файлы и останавливать процессы.
▍Удаление файлов, остановка процессов
kill 012345 : останавливает указанный выполняющийся процесс, давая ему время на корректное завершение работы.
▍Поиск
Теперь поговорим о работе с архивами.
▍Архивация
tar my_source_directory : объединяет файлы из папки my_source_directory в один файл tarball. Такие файлы удобно использовать для того, чтобы передавать кому-нибудь большие наборы файлов.
Bash-псевдонимы
Для создания подобного псевдонима достаточно добавить следующую команду в файл
Если в вашей системе нет файла
/.bash_profile можно добавлять псевдонимы для любых часто используемых команд.
▍Итоги
В этом материале мы рассмотрели 21 популярную команду Bash и поговорили о создании псевдонимов для команд. Если вам эта тема интересна — вот цикл публикаций, посвящённый Bash. Здесь можно найти pdf-версию этих публикаций. Кроме того, если вы хотите освоить Bash, помните о том, что тут, как и при изучении любой другой программной системы, важна практика.
Уважаемые читатели! Какие команды, которые полезно знать начинающим, вы добавили бы к тем, которые были рассмотрены в этой статье?































