- Creating executable files in Linux
- 5 Answers 5
- How to Execute .bin and .run Files in Ubuntu
- Executing .bin and .run files
- Search
- About This Site
- Latest Tutorials
- Установка или запуск программ формата sh и run в Linux
- Что представляют из себя файлы sh и run файлы?
- Запуск sh и run файлов
- Подведем итог
- Create run file linux
- Learn Latest Tutorials
- Preparation
- Trending Technologies
- B.Tech / MCA
- Javatpoint Services
- Training For College Campus
Creating executable files in Linux
One thing I plan to be doing is writing (painfully simple) Perl scripts, and I’d like to be able to run them without explicitly calling Perl from the terminal. I appreciate that, to do this, I need to grant them execute permissions. Doing this with chmod is easy enough, but it also seems like a slightly laborious extra step. What I would like is one of two things: Firstly, is there a way to set the execute flag when saving a file? Currently I’m experimenting with gedit and geany, but would be willing to switch to a similarly- (or better-) featured editor if it had this capability. Failing that, is there a way to declare that all files created in a particular directory should have execute permissions? My umask is set to 022, which should be OK, as far as I understand, but it would appear that the files are created as text files (with 666 default permissions) rather than executable files (with 777 default permissions). Perhaps I’m just being lazy, but I figure there must be a more convenient way than chmodding every single script one creates.
You have to print the output of every file. You have to import the right libraries of every file. This seems like another step in the process of programming, and one that is dangerous to circumvent.
5 Answers 5
This should return something like
Then in the first line of your script add:
Then you can execute the file
There may be some issues with the PATH, so you may want to change that as well .
Thanks, but that’s not quite my problem. I’ve already gotten into the habit of starting my scripts with #!/usr/bin/perl. I can run scripts fine once I’ve given them executable permissions; I was just looking for a simpler way of doing so.
May I recommend #!/usr/bin/env perl instead? The env program basically finds the argument given (in this case, «perl») on the PATH and runs that. It’s useful when you’re sending scripts to other people — for example, I use a Mac, and Perl is located in /opt/local/bin.
No need to hack your editor, or switch editors.
Instead we can come up with a script to watch your development directories and chmod files as they’re created. This is what I’ve done in the attached bash script. You probably want to read through the comments and edit the ‘config’ section as fits your needs, then I would suggest putting it in your $HOME/bin/ directory and adding its execution to your $HOME/.login or similar file. Or you can just run it from the terminal.
This script does require inotifywait, which comes in the inotify-tools package on Ubuntu,
sudo apt-get install inotify-tools
Suggestions/edits/improvements are welcome.
#!/usr/bin/env bash # --- usage --- # # Depends: 'inotifywait' available in inotify-tools on Ubuntu # # Edit the 'config' section below to reflect your working directory, WORK_DIR, # and your watched directories, WATCH_DIR. Each directory in WATCH_DIR will # be logged by inotify and this script will 'chmod +x' any new files created # therein. If SUBDIRS is 'TRUE' this script will watch WATCH_DIRS recursively. # I recommend adding this script to your $HOME/.login or similar to have it # run whenever you log into a shell, eg 'echo "watchdirs.sh &" >> ~/.login'. # This script will only allow one instance of itself to run at a time. # --- config --- # WORK_DIR="$HOME/path/to/devel" # top working directory (for cleanliness?) WATCH_DIRS=" \ $WORK_DIR/dirA \ $WORK_DIR/dirC \ " # list of directories to watch SUBDIRS="TRUE" # watch subdirectories too NOTIFY_ARGS="-e create -q" # watch for create events, non-verbose # --- script starts here --- # # probably don't need to edit beyond this point # kill all previous instances of myself SCRIPT="bash.*`basename $0`" MATCHES=`ps ax | egrep $SCRIPT | grep -v grep | awk '' | grep -v $$` kill $MATCHES >& /dev/null # set recursive notifications (for subdirectories) if [ "$SUBDIRS" = "TRUE" ] ; then RECURSE="-r" else RECURSE="" fi while true ; do # grab an event EVENT=`inotifywait $RECURSE $NOTIFY_ARGS $WATCH_DIRS` # parse the event into DIR, TAGS, FILE OLDIFS=$IFS ; IFS=" " ; set -- $EVENT E_DIR=$1 E_TAGS=$2 E_FILE=$3 IFS=$OLDIFS # skip if it's not a file event or already executable (unlikely) if [ ! -f "$E_DIR$E_FILE" ] || [ -x "$E_DIR$E_FILE" ] ; then continue fi # set file executable chmod +x $E_DIR$E_FILE done
How to Execute .bin and .run Files in Ubuntu
Before we explain how to run .bin and .run files on your Ubuntu system, let’s first define what exactly these file extensions are:
Bin file: A binary or BIN file in Ubuntu refers to installation packages, which are mostly self-extracting executable files used to install software on your system. You can install most software packages through the Ubuntu Software Manager, such as .deb packages and .tar.xz packages. However, there is software that is not available in these formats. This mainly includes newer software and newer versions of software, usually beta versions, that are not otherwise available. The bin packages are simply run from the Ubuntu command line, the terminal.
Run File: These are also executable files typically used to install Linux programs. Run Files contain program data and instructions for installation; they are often used for distributing device drivers and software applications. Run packages are easily executed from the Ubuntu command line, the terminal.
In this article, we will explain how to run/execute the files with .run and .bin extensions on Ubuntu Linux.
We have run the commands and procedures mentioned in this article on an Ubuntu 22.04 LTS system. We will use the Ubuntu command line, the terminal, to explain how to run bin and run files. You can open the terminal application either by searching in the system application launcher or by pressing Ctrl+Alt+T.
Note: Make sure that your .run and .bin files are from a reliable source, because running an unsafe file can damage your system and even compromise your system security.
Executing .bin and .run files
The process of running both the run and BIN files is pretty simple and straightforward in Ubuntu.
We are assuming that you have already downloaded your bin/run file in a known location on your Ubuntu.
Open the Terminal application and move to the location where you have saved the executable file.
For example, I would use the following command to move to my Downloads folder:
Now use the following command to make your .bin/.run file executable:
In this example, I will be making a sample .run file named samplefile.run executable.
If your .run/.bin file does not exist in the current location, you can specify the exact file path/location in the above commands.
My file is now marked as executable. The system indicates it by a change in color of the filename when listed through the ls command:
Once your .bin/.run file has become executable, you can use the following command to execute/run it:
You can specify the path of the executable file in the above command if it does not exist in the current folder you are in.
My sample file is pretty much an empty file. In the case of a proper installation package, the installation process will begin after you execute the file.
This is the power of the Ubuntu command line. You can install rare software packages available in the .run and .bin formats easily on your system.
Search
About This Site
Vitux.com aims to become a Linux compendium with lots of unique and up to date tutorials.
Latest Tutorials
Установка или запуск программ формата sh и run в Linux
Многообразие вариантов установки программного обеспечения на дистрибутивы Линукс не ограничиваются только пакетными базами (RPM, DEB), портативными форматами приложений (Snap, Flatpak, Appimage) или исходным кодом.
Иногда пользователю могут попадаться такие форматы установочных файлов, как sh или run. Помню, что когда сам впервые столкнулся с ними, то не мог понять, как их запустить. Потому специально для таких же «непонимашек», каким был я, написан этот пост, в котором расскажу и покажу что это за форматы и как с ними работать.
Что представляют из себя файлы sh и run файлы?
Оба формата установочных файлов являются скриптами, то есть содержат некую последовательность команд, которые при выполнении производят необходимые действия с дистрибутивом — устанавливают нужные зависимости, создают необходимые папки и файлы, задают необходимые для работы ПО права. Раз эти файлы являются скриптами, то вполне возможно просмотреть их содержимое при помощи текстового редактора (графического или консольного). Обратите внимание на скриншот, представленный ниже.
Для поста я скачал установочный файл run для установки драйверов Nvidia и программу Mediaget, про которую уже рассказывал в предыдущей заметке на канале.
Если теперь открыть содержимое файла с установкой драйверов Nvidia в текстовом редакторе (в примере использую консольный редактор Neovim), то мы увидим те самые команды, про которые говорил ранее.
Если перейти в папку mediaget, то увидим внутри три sh-файла. Если откроем их в редакторе, то также увидим набор команд, которые выполняются при запуске.
Обратите внимание на самую первую строку в обоих примера.
Она уже упоминалась в заметке про автоматизацию удаления файлов при помощи bash-скрипта. В этой статье я как раз таки объяснил, что указание этой строки в начале файла превращает его в понятный для консоли скрипт.
Запуск sh и run файлов
Настоятельно рекомендую перед тем как запускать скачанные где-либо sh и run-файлы просмотреть их содержимое в текстовом редакторе. Если какие-то команды покажутся вам подозрительными или странными, то лучше найти информацию о том, что они делают в интернете, чтобы запуском сомнительного скрипта не позволить вредоносному коду попасть на компьютер. Но давайте исходить из того, что вы все уже проверили и сомнений в нормальности файлов нет. Как установить программы при помощи этих файлов?
Помним, что любой файл в Linux можно прочитать (read), изменить (write) и запустить (executable). Об этом я рассказывал в статье о правах на файлы и папки.
Нас, как вы понимаете интересует запуск. Для этого нужно сделать скрипт исполняемым. Происходит это при помощи следующей команды:
Если вы используете нестандартную bash-оболочку, то после выполнения команды скрипты, готовые к запуску будут подсвечены другим цветом.
Обратите внимание на пример выше — в папке mediaget все скрипты уже являются исполняемыми и потому выделены зеленым цветом, а вот файл для установки драйверов Nvidia другого цвета. После ввода команды все sh и run файлы становятся зелеными.
Теперь файл готов к запуску, осуществить который мы можем указав на это оболочке:
Так как драйвера Nvidia у меня уже установлены, а программа Mediaget в этой папке работает только для DEB-платформ, то запускать скрипты не стану, но в статьях, на которые давал ссылки ранее есть момент запуска и демонстрация его успешности.
Отдельно встает вопрос об использовании команды sudo, дающей текущему пользователю права суперпользователя. Я поступаю очень просто: сначала запускаю скрипт без sudo, а если оболочка ругается на то, что скрипту для выполнения определенных процедур не хватает прав, уже использую «власть» суперпользователя. Поэтому важно, повторюсь, просматривать скрипты перед их запуском, так как команда запущенная от суперпользователя может сотворить с системой все, что угодно.
Подведем итог
Мы узнали, что sh и run установочные файлы представляют собой последовательность программ, которые выполняются для установки ПО на дистрибутив, познакомились с правилами безопасности при работе с этими файлами и научились их запускать. Видите сколько полезной и нужной информации выхватили из такого небольшого поста!
Надеюсь, что для кого-то этот материал окажется полезным, а также жду от вас обратной связи в виде комментариев, лайков, репостов и подписок на канал.
Create run file linux
Learn Latest Tutorials
Preparation
Trending Technologies
B.Tech / MCA
Javatpoint Services
JavaTpoint offers too many high quality services. Mail us on h[email protected], to get more information about given services.
- Website Designing
- Website Development
- Java Development
- PHP Development
- WordPress
- Graphic Designing
- Logo
- Digital Marketing
- On Page and Off Page SEO
- PPC
- Content Development
- Corporate Training
- Classroom and Online Training
- Data Entry
Training For College Campus
JavaTpoint offers college campus training on Core Java, Advance Java, .Net, Android, Hadoop, PHP, Web Technology and Python. Please mail your requirement at [email protected].
Duration: 1 week to 2 week
Like/Subscribe us for latest updates or newsletter