Как файл сделать исполняемым в линукс
Как сделать файл исполняемым в Linux
Операционная система Linux, в отличие от Windows, определяет какие файлы являются программами не по расширению, а по специальному флагу исполняемости. У каждого файла есть три основных флага, чтение, запись и исполнение. Они определяют что система может делать с этим файлом.
Когда вы загружаете различные установщики программ из интернета или создаете скрипт в текстовом редакторе, для них устанавливаются флаги по умолчанию - только чтение и запись. Вы не сможете запустить такой файл как программу, с ним нужно сделать еще кое-что. В этой статье мы рассмотрим как сделать файл исполняемым в Linux.
Содержание статьи:
Что такое исполняемость?
Уже много написано о том, как установить флаг исполняемости. Но что происходит с файлом во время этого, что такое исполянемость и как это работает?
Программа - это набор инструкций, которые по очереди выполняет процессор над данными, чтобы получить определенный результат. Но это вы, наверное, уже знаете.
На самом деле для процессора нет разницы между данными и инструкциями. И те и другие состоят из байт, проще говоря цифр. Когда-то договорились, что определенные сочетания цифр будут означать то или иное действие процессора, а во всем остальном это те же данные. Поэтому для процессора нет никакой разницы что выполнять - исполняемый файл linux или обычный текстовый файл. Оба могут быть успешно выполнены, вот только во втором варианте инструкции не имеют никакого смысла.
Чтобы система могла определить какие файлы нужно выполнять, а какие лучше не надо и был придуман флаг исполняемости. По сути, флаг исполяемости - это несколько байт в файловой системе, которые говорят нужно выполнять файл или нет, само содержимое файла никак не изменяется. Со скриптами все работает точно так же, только команды из файла выполняет не процессор, а интерпретатор, например, в bash скриптах - сама оболочка bash. Да и в обычных программ тоже есть свой загрузчик - это ld-linux.so.2.
Как сделать файл исполняемым в Linux?
В операционной системе Linux, для управления флагами файлов используется утилита chmod. Синтаксис вызова утилиты:
$ chmod категория действие флаг адрес_файла
- Категория - флаги могут устанавливаться для трех категорий: владельца файла, группы файла и всех остальных пользователей. В команде они указываются символами u (user) g (group) o (other) соответственно.
- Действие - может быть + (плюс), что будет значить установить флаг или - (минус) снять флаг.
- Флаг - один из доступных флагов - r (чтение), w (запись), x (выполнение).
Например, чтобы сделать исполняемый скрипт в linux для владельца файла, достаточно выполнить:
chmod u+x адрес_файла
Этого в большинстве случаев бывает достаточно, но если мы хотим чтобы файл могли выполнять и другие пользователи, нужно указать также другие категории: g и o:
chmod ugo+x адрес_файла
Посмотреть флаги в терминале можно с помощью утилиты ls:
ls -l каталог_с_файлами
Это значит, что все флаги включены для всех категорий. Первое rwx - флаги владельца, второе - группы, а третье - для всех остальных. Если флаг не установлен, на его месте будет прочерк.
Снять флаг исполняемого файла очень просто. Используется та же команда только со знаком минус:
chmod u-x адрес_файла
Как установить фалг исполняемости в GUI
Вы можете сделать файл исполняемым в linux не только через терминал. Такая функциональность есть во всех файловых менеджерах. Возможно, на первых порах это будет для вас проще. Рассмотрим на примере файлового менеджера GNOME, Nautilus. Кликните правой кнопкой по нашему файлу программы или скрипта, чтобы открыть контекстное меню, затем выберите свойства:
Дальше перейдите на вкладку права и установите галочку Разрешить выполнение файла как программы:
Готово, исполняемый файл linux может быть запущен системой, прямо из файлового менеджера.
Выводы
Вот и все, теперь вы знаете как сделать файл исполняемым в linux. И если нужно будет запустить скрипт или установщик из интернета, у вас не возникнет никаких проблем. Если остались вопросы, спрашивайте в комментариях!
Как в Linux сделать файл исполняемым?
Весьма часто в инструкциях по установке игр в Linux или в других ситуациях необходимо сделать файл выполняемым. У новичков, особенно тех кто перешёл на Ubuntu с операционной системы Windows этот момент возбуждает много вопросов. Давайте разберёмся в тонкостях и посмотрим как сделать всё правильно. Для начала чуть-чуть теории. в Windows, исторически ещё со времён DOS, было реализовано определение исполняемых файлов по их продолжению.
В Linux и других unix системах ситуация иная. Здесь расширение файлов как таковые отсутствуют, т.е. безусловно вы можете в имени файла использовать точку и три буквы в качестве расширения, но только из собственных эстетических соображений. Для операционной системы это не будет иметь никакого значения. Ну и главный вопрос как же операторная система определяет какой файл исполняемый, является программой, а какой нет. Всё очень элементарно — это устанавливается одним из битов прав на файл.
Содержание статьи
Исполняемые файлы в Linux
В вопросах исполняемых файлов, то есть, когда по простому, обычных программ, Ubuntu кардинально отличается от Windows. В Windows исполняемые компданные имеют расширение exe (в основном), а внутри представляют из себя нечитаемый набор байтов. А в Ubuntu выполняемым может быть даже текстовый файл. Сразу скажу, что exe — это программы для Windows и в Ubuntu они не трудятся без Wine (приложения для запуска исполняемых файлов Windows в Linux), но вообще говоря и в Wine они трудятся далеко не всегда.
Итак, что же такое исполняемый файл с точки зрения Ubuntu? Практически это любой файл, который помечен, как исполняемый и который Ubuntu сможет запустить на исполнение. Означает это вот что: у каждого файла есть специальное свойство-переключатель, никак не зависящее ни от имени, ни от охватываемого, отвечающее за исполняемость. Если файл помечен, как исполняемый, то вообще говоря он таковым и представляется, а если не помечен — то это обычный файл с данными и напрямую запустить его на выполнение нельзя. Иное дело, что не любой файл, помеченный как исполняемый, Ubuntu сможет выполнить, хотя в запасе Ubuntu есть масса методов запуска файлов с совершенно различным содержимым.
Характерные черты исполняемых файлов в Linux
Пользователи, активно применяющие в повседневной работе операционную систему Windows, свыкнули к тому, что программы имеют расширение «.exe». Такие файлы содержат скомпилированный программный код, или иными словами – последовательность байтов, которая загружается в оперативную память и выполняется процессором. Linux реализует асбсолютно другой подход. Ранее, изучая написание скриптов командного интерпретатора Bash, мы уже поспели рассмотреть пример создания исполняемого файла. Он в отличие от Windows представляет собой обыкновенный текстовый документ с набором команд. Его особенностью является то, что перед основным содержимым дополняется специальный комментарий, говорящий операционной системе Linux, какую программу использовать для интерпретации. Кроме скрипта, исполняемым файлом является и скомпилированная программа. Таким образом, все файлы в Linux смогут быть, как обычными текстовыми документами, так и исполняемыми программами. Отличие лишь в специальных флагах и преимуществах доступа операционной системы (множество элементов, находящихся в отношениях и связях друг с другом, которое образует определённую целостность, единство).
Назначение прав для запуска файла в Linux
Сделать файл вразумительным для запуска можно с помощью графической оболочки. Нажмите по ярлыку правой кнопкой мыши. В контекстуальном меню выберите пункт «свойства». Открывшееся окно должно содержать вкладку «преимущества», в котором нужно активировать пункт «разрешить выполнение файла как программы». Данный метод будет отличаться в зависимости от дистрибутива Linux и графической оболочки. Также возможно приставить права запуска через консоль. Для этого используется команда chmod. Пример, презентованый ниже, устанавливает право выполнения для владельца файла и его группы. Вы можете скопировать Bash-скрипт из первоначального примера в файл и провести с ним данную операцию.
chmod ug+x games-dialog
Установка прав на пуск в Linux
Для того чтобы сделать файл исполняемым в Ubuntu Linux необходимо осуществить в окне терминала простую команду:
chmod +x имя_файла
или
sudo chmod +x имя_файла
Вот и все, сейчас вы знаете как сделать файл исполняемым в Linux. И если нужно будет запустить script или установщик из интернета, у вас не возникнет никаких проблем. Если остались вопросы, спрашивайте в комментах!
Несколько полезных команд Linux. Linux статьи
Хочу рассказать о некоторых командах Linux, которыми иногда приходится пользоваться для решения небольших задач.
Как сделать файл исполняемым
chmod +x myfile
Данная команда сделает исполняемым файл myfile.
chmod +x *
Данная команда сделает исполняемыми все файлы в текущей директории.
Как сделать файл неисполняемым
chmod -x myfile
Команда снимает право на выполнение файла.
Как создать пустой файл в Linux
Для решения данной задачи можно воспользоваться командой touch:
touch filename
Хотя команда touch предназначена и не для этого, но пустой файл она создает. Прошу отписаться в комментариях о других способах (а их много) создания файлов в командой строке.
Завершение (уничтожение) процесса
Иногда бывает нужно уничтожить какой-нибудь процесс (зависшую программу). Если вы знаете имя команды, которой был запущен процесс (программа), то вы можете воспользоваться командой killall:
killall firefox
Данная команда остановит все процессы, запущенные командой firefox.
Если же killall не помог или неприемлем, то можно найти PID (идентификатор процесса) и убить его командой kill:
admin@pingvinus:~$ ps -Aef | grep firefox admin 2275 1 11 07:42 ? 00:05:52 /usr/lib/firefox-3.5.8/firefox admin 2821 2800 0 08:32 pts/2 00:00:00 grep firefox admin@pingvinus:~$ kill 2275
Здесь мы сначала с помощью команд ps и grep определяем PID процесса (первое число слева), а потом останавливаем данный процесс командой kill.
Как сделать файл исполняемым (для запуска) из командной строки?
spotter02.02.2018
18:52
+1
Войдите, чтобы ставить лайкимне нравитсяскажите, почему некоторые пишут вот так - chmod u+x адрес_файла
[аноним]11.04.2019
23:13
+1
Войдите, чтобы ставить лайкимне нравитсяchmod не действует даже от root, чтобы сделать исполняемым из usb appimage.Это заговор разработчиков Линукс или я что-то делаю неправильно?
#su
password root
#chmod u+x /run/media/vladimir/usb name/appimage
#
#mount
#.... /run/media/vladimir/usb name/appimage =rw
11.04.2019
23:40
+1
Войдите, чтобы ставить лайкимне нравитсяВ качестве версии, -- установлен запрет на исполнение программ из usb, -- потому что абсолютистское сознание воспринимает usb как сексуальную установку на исполнение некоторого действия, -- US, -- мерять конец от американец. Что удивляет по этой же причине не хотят избавляться от мусорных полигонов ибо гестапо заложило в наше подсознание необходимость подличать, -- под лiчать, числить под собою инакомыслящего своею женою. Потому и поЛИ go-эн, -- энный go, шут, общий, -- по, -- половой орган Ложно Идентифицированный. Как-то так. Да, понимаю, что воспринимается будто отморозок пишет.
Как открыть файл sh в Linux
Новые пользователи Linux часто задают вопросы: Как запустить исполняемый файл в Linux? Как выполнить файл. sh в Linux?
Bash — это оболочка, или интерпретатор командного языка, для операционной системы Linux. Это название является аббревиатурой от Bourne-Again SHell.
Как же запустить shell скрипт в Linux?
Откроем терминал. Обычно он вызывается комбинацией клавиш Ctrl+Shift+T. Используйте консольный текстовый редактор вроде vi/vim или nano чтобы создать shell скрипт в линукс:
$ vim myscript.sh
Сделайте скрипт исполняемым
$ chmod +x myscript.sh
Запустите shell скрипт, написал в терминале:
$ ./myscript.sh
или
$ bash myscript.sh
Теперь давайте рассмотрим другой пример создания sh скрипта в Linux.
Создадим новый файл скрипта test.sh:
$ vim test.sh
Нажмем i или Insert на клавиатуре, чтобы перейти в режим вставки текста. Скопируем туда или напишем следующее:
!/bin/bash
echo "Hello, $USER"
echo "Today is $(date)"
echo "Bye"
Чтобы сохранить файл, нажмем ESC, затем напишем 😡 и нажмем ENTER.
Попробуем запустить скрипт:
$ ./test.sh
И видим:
bash: ./test.sh: Permission denied
Ошибка появилась потому что мы не сделали файл исполняемым. Сделаем это. Как и выше, чтобы сделать файл sh в линукс исполняемым, выполним команду:
$ chmod +x test.sh
Запустим его снова:
$ ./test.sh
Мы пишем ./ потому что находимся в той же директории, где и расположен скрипт. Так же мы можем использовать полный путь для запуска из другого места. Например, если скрипт находится в директории /home/user/ то можно запустить так из любого места:
$ /home/user/test.sh
Что у нас есть в скрипте test.sh?
Первая строка #!/bin/bash указывает на интерпретатор, спомощью которого будет исполняться скрипт. В нашем случае это Bash.
Вторая строка использует глобальную переменную $USER, которая содержит имя текущего пользователя, от которого исполняется скрипт. Мы получим «Hello, user», если нашего пользователя зовут user.
В третьей строке мы используем переменную, содержащую текущую дату и время — $(date).
И в четвертой мы просто выводим Bye.
Как в linux сделать файл исполняемым?
Вопрос: Как в linux сделать файл исполняемым?
Ответ: Необходимо воспользоваться командой chmod
chmod +x
- Нажмите здесь, чтобы поделиться контентом на Facebook. (Открывается в новом окне)
- Нажмите, чтобы поделиться на LinkedIn (Открывается в новом окне)
- Нажмите, чтобы поделиться на Reddit (Открывается в новом окне)
- Нажмите, чтобы поделиться на Twitter (Открывается в новом окне)
- Нажмите, чтобы поделиться записями на Tumblr (Открывается в новом окне)
- Нажмите, чтобы поделиться записями на Pinterest (Открывается в новом окне)
- Нажмите, чтобы поделиться записями на Pocket (Открывается в новом окне)
- Нажмите, чтобы поделиться в Telegram (Открывается в новом окне)
- Нажмите, чтобы поделиться в WhatsApp (Открывается в новом окне)
- Нажмите, чтобы поделиться в Skype (Открывается в новом окне)
Создание исполняемых файлов в Linux
Переполнение стека- Около
- Товары
- Для команд
- Переполнение стека Общественные вопросы и ответы
- Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами