Как сделать выполняемый файл в linux

How to make a file (e.g. a .sh script) executable, so it can be run from a terminal

I have a script.sh file and type of this file is shellscript file. I want to make this file as application/x-executable file. How can I make it?

It is not a duplicate, because I have asked specifically about making it application/x-executable. The other question just asks for opening sh file in terminal.

4 Answers 4

You can mark the file as executable:

You can then execute it like this:

If you want to use a different command to start it, you can add an alias:

Add this at the end of the file:

Open a new terminal session or type source ~/.bashrc in your terminal to apply. Then simply use the new name to start the script.

Do you know how to use sudo command after entering the command as: «alias command1 = ‘/home/user_name/dir/script.sh’. In mine, it works without sudo, but not with it.

@user1993 Generally, using ./filename.sh specifies a file in the current directory and using filename.sh specifies a file in the current directory or any directory of PATH. The first usage removes any uncertainty as to which file is accessed. In this case, you are attempting to execute the script with bash or another interpreter (by virtue of assumed #!/bin/bash as first line in your script) just by entering the filename. This usage requires the directory is specified. Alternatively, you can try bash filename.sh which seems to work with unspecified directory.

There are two ways of making a file executable:

Right-click the file and select Properties. Go to the permissions tab, then tick the box Execute: [ ] Allow executing file as program or in Nautilus Program: [ ] Allow this file to run as a program in Thunar.

enter image description here

Terminal / Command method:

chmod +x filename.extension

chmod +x /path/to/your/filename.extension

chmod does also have some more advanced options:

The spaces are to show that it is split up: — rwx — —

The first set of — is User. The second is Group and the last is Other (anyone else)

r stands for Read, w for Write and x for eXecute.

So to allow everyone to read it, but only Group to execute and User to read and write it (but for some reason not execute) would be:

-rw- rx- r— But this would be added to the command as:

chmod +rw-rx-r— /path/to/file.extension

chmod also can do this in numbers. It is based on binary (I think, as it is 1,2 and 4)

So there are these numbers:

Execute by user is 100 . Execute by group is 010 . Execute by other is 001 .

Write by user is 200 . Write by group is 020 . Write by other is 002 .

Читайте также:  Suse linux файловая система

Read by user is 400 . Read by group is 040 . Read by other is 004 .

Then you add these together to get the desired combination.

So to allow everyone to read it, but only Group to execute and User to write it (but for some reason not execute) would be:

400 + 040 + 004 and 010 and 200

That adds up to 600 + 050 + 004 = 654.

You could then run the command.

chmod +654 /path/to/file.extension to set it.

And to set all permissions you can type:

chmod +rwxrwxrwx /path/to/file.extension

Or (this is a bit easier to write, but harder to remember each one):

chmod +777 /path/to/file.extension

chmod -777 /path/to/file.extension

To take all permissions away from everyone.

chmod +300 /path/to/file.extension

To add read and write for user, without affecting any other permissions (e.g. Execute permissions).

This website has a very useful little grid checkbox thing, whereby you can tick the options you want and it gives you the command:

enter image description here

However, not all the possible combinations are sensible to use; the main ones that are used are the following:

755 — Owner has all, and Group and Other can read and execute

644 — Owner can read and write, and Group and Other can read

600 — Owner can read and write

And, if you’re using non-trivial user groups:

775 — Owner can read and write, and Group and Other can read

770 — Owner and Group have all, and Other can read and execute

750 — Owner has all, and Group can read and execute

664 — Owner and Group can read and write, and Other can just read

660 — Owner and Group can read and write

640 — Owner can read and write, and Group can read

777 and 666 are rarely used, except in /tmp.

Thanks Ilmari Karonen for pointing out the ones in common usage!

Источник

Как в Linux сделать файл исполняемым?

Весьма часто в инструкциях по установке игр в Linux или в других ситуациях необходимо сделать файл выполняемым. У новичков, особенно тех кто перешёл на Ubuntu с операционной системы Windows этот момент возбуждает много вопросов. Давайте разберёмся в тонкостях и посмотрим как сделать всё правильно. Для начала чуть-чуть теории. в Windows, исторически ещё со времён DOS, было реализовано определение исполняемых файлов по их продолжению.

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

Исполняемые файлы в Linux

В вопросах исполняемых файлов, то есть, когда по простому, обычных программ, Ubuntu кардинально отличается от Windows. В Windows исполняемые компданные имеют расширение exe (в основном), а внутри представляют из себя нечитаемый набор байтов. А в Ubuntu выполняемым может быть даже текстовый файл. Сразу скажу, что exe — это программы для Windows и в Ubuntu они не трудятся без Wine (приложения для запуска исполняемых файлов Windows в Linux), но вообще говоря и в Wine они трудятся далеко не всегда.

Читайте также:  Linux mint проверка флешки

Итак, что же такое исполняемый файл с точки зрения Ubuntu? Практически это любой файл, который помечен, как исполняемый и который Ubuntu сможет запустить на исполнение. Означает это вот что: у каждого файла есть специальное свойство-переключатель, никак не зависящее ни от имени, ни от охватываемого, отвечающее за исполняемость. Если файл помечен, как исполняемый, то вообще говоря он таковым и представляется, а если не помечен — то это обычный файл с данными и напрямую запустить его на выполнение нельзя. Иное дело, что не любой файл, помеченный как исполняемый, Ubuntu сможет выполнить, хотя в запасе Ubuntu есть масса методов запуска файлов с совершенно различным содержимым.

Характерные черты исполняемых файлов в Linux

Пользователи, активно применяющие в повседневной работе операционную систему Windows, свыкнули к тому, что программы имеют расширение «.exe». Такие файлы содержат скомпилированный программный код, или иными словами – последовательность байтов, которая загружается в оперативную память и выполняется процессором. Linux реализует асбсолютно другой подход. Ранее, изучая написание скриптов командного интерпретатора Bash, мы уже поспели рассмотреть пример создания исполняемого файла. Он в отличие от Windows представляет собой обыкновенный текстовый документ с набором команд. Его особенностью является то, что перед основным содержимым дополняется специальный комментарий, говорящий операционной системе Linux, какую программу использовать для интерпретации. Кроме скрипта, исполняемым файлом является и скомпилированная программа. Таким образом, все файлы в Linux смогут быть, как обычными текстовыми документами, так и исполняемыми программами. Отличие лишь в специальных флагах и преимуществах доступа операционной системы (множество элементов, находящихся в отношениях и связях друг с другом, которое образует определённую целостность, единство).

Назначение прав для запуска файла в Linux

Сделать файл вразумительным для запуска можно с помощью графической оболочки. Нажмите по ярлыку правой кнопкой мыши. В контекстуальном меню выберите пункт «свойства». Открывшееся окно должно содержать вкладку «преимущества», в котором нужно активировать пункт «разрешить выполнение файла как программы». Данный метод будет отличаться в зависимости от дистрибутива Linux и графической оболочки. Также возможно приставить права запуска через консоль. Для этого используется команда chmod. Пример, презентованый ниже, устанавливает право выполнения для владельца файла и его группы. Вы можете скопировать Bash-скрипт из первоначального примера в файл и провести с ним данную операцию.

Установка прав на пуск в Linux

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

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

Источник

Как сделать файл исполняемым в Linux

В Linux, если вам нужно запустить файл или программу, он должен быть исполняемым, то есть ваш пользователь Linux или процесс должен иметь разрешение на выполнение. Иногда вам может понадобиться сделать файл исполняемым в Linux. Например, вы можете захотеть сделать исполняемым сценарий оболочки в Linux. По умолчанию, когда вы создаете новый файл в системе и добавляете в него код, он вряд ли будет исполняемым. Он будет иметь разрешения на чтение и запись для вашего пользователя Linux, но вы не сможете сразу же выполнить его. В этой статье мы узнаем, как сделать файл исполняемым. Вы можете использовать эти шаги, чтобы сделать исполняемым любой файл — сценарии оболочки, сценарии на python или perl и т.д.

Читайте также:  Linux copy folder to remote host

Как сделать файл исполняемым в Linux

Мы рассмотрим различные способы сделать файл исполняемым в Linux.

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

Вы можете легко проверить, является ли ваш файл исполняемым или нет, используя команду ls -all.

Например, следующая команда отобразит разрешения файла /home/test.sh

ls -all /home/test.sh

В приведенном выше выводе, -rw-r-r- указывает на то, что владелец файла имеет разрешение на чтение(r) и запись(w), но не разрешение на выполнение(x), обозначенное rw-. Это также указывает на то, что и группа, и пользователи, отличные от владельца, имеют разрешение только на чтение, обозначенное r-.

Самый простой способ сделать файл исполняемым — открыть терминал и выполнить команду chmod с параметром +x, за которым следует путь к файлу.

Вот пример того, как сделать файл /home/test.sh исполняемым.

В приведенной выше команде, если вы не укажете полный путь к файлу, chmod будет искать файл относительно вашего текущего рабочего каталога.

После этого вы можете легко запустить его, указав путь к нему.

Теперь, если вы снова проверите разрешение файла с помощью команды ls -all, вы увидите следующее.

ls -all /home/test.sh

Вы увидите, что owner, group и others имеют ‘x’ (для execute) в своих разрешениях, что указывает на то, что все они имеют право исполнять этот файл.

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

Если вы хотите снять разрешение на выполнение, используйте опцию -x в chmod.

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

Это откроет профиль bash. Добавьте в его конец следующее.

alias [новое имя]='[полный путь к скрипту]'

Замените на имя псевдонима, который вы хотите использовать, а на путь к исполняемому скрипту.

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

Теперь вы можете просто использовать имя псевдонима для вызова вашего скрипта.

2. Использование графического интерфейса пользователя

Вы также можете сделать файл исполняемым с помощью графического интерфейса. Для этого щелкните правой кнопкой мыши на вашем файле и выберите Свойства. Вы увидите следующее окно. Перейдите на вкладку Permissions (Разрешения). Затем установите флажок ExecuteAllow executing file as program (Разрешить выполнение файла как программы)

Permissions

Нажмите кнопку Закрыть/Сохранить/Ок, в зависимости от вашего дистрибутива Linux, чтобы применить изменения.

Заключение

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

Похожие записи:

Источник

Оцените статью
Adblock
detector