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

Как запустить файл в linux

  • автор:

Linux сделать файл исполняемым и запустить его из командной строки — пример командного файла

vedro-compota's picture

Пусть у нас есть файл с содержимым типа (запустит Наутилус с правами суперпользователя):

#!/bin/bash sudo nautilus /var/www/
  1. Запустите текстовый редактор.
  2. Последовательно запишите команды, располагая каждую команду на отдельной строке.
  3. Сохраните этот файл, сделайте его исполняемым, применив команду:
chmod +x имя_файла.
chmod +x runme

Как запустить в командной строке

Для запуска в командной строке просто перейдите в папку с файлом и наберите команду вида:

./runme

Как запускать при двойном клике в Ubuntu

  • Если вы используйте в качестве проводника Наутилус (обычно в убунту стоит именно он)

Key Words for FKN + antitotal forum (CS VSU):

  • linux создание командного файла
  • линукс скрипт пример
  • ubuntu make file executable by double click
  • ubuntu как сделать файл исполняемым
  • ubuntu make executable and run it from terminal
  • ubuntu make executable and run it from terminal — but stil opens in text editor like gpedit problem
  • ubuntu run .sh by double click
  • ubuntu запуск .sh по двойному клику
  • скрипт для запуска наутилус проводника с правами супервользователя root

Как запускаются исполняемые файлы в Linux

исполняемые файлы в linux

Доброго времени, читатели моих постов о Linux!

В сегодняшней статье расскажу о том, как работают исполняемые файлы. Из моей прошлой статьи о атрибутах доступа к файлам в Linux думаю Вам будет известно, что такое полномочия выполнения (исполнения). Данное право можно установить для любого файла. Исходя из этого, можно задать вопрос: неужели любой файл можно сделать программой? Да, так и есть. В Linux является ли файл исполняемым или нет, определяется не по его расширению, как в Windows (понятие расширение файла отсутствует в файловой системе Linux), а по правам доступа. Если у файла установлено право x (выполнения), его можно запустить на выполнение.

Что происходит, когда мы пытаемся выполнить файл ? Мы пытаемся набрать имя и, может быть, путь к файлу, который пытаемся запустить в командной строке и нажимаем Enter. (если файл расположен в текущем каталоге, то необходимо набирать ./ program). В первую очередь, оболочка проверяет, а имеет ли пользователь права на исполнение этого файла? Если имеет, тогда система смотрит, а это исполняемый бинарный файл? В Linux все исполняемые бинарные файлы в начале файла имеют заголовок .ELF (Executable and Linkable Format) (напомню, что в Windows в исполняемых файлах заголовок — MZ). Если это исполняемый бинарный файл, тогда, согласно его заголовку, происходит распределение оперативной памяти, и управление передается программе.

Если файл не бинарный, тогда считается, что это текстовый файл — скрипт или сценарий. В первых двух байтах сценария обнаруживается последовательность символов #!. Если символы «#!» присутствуют, тогда всю первую строку сценария, начиная с третьего байта, ядро воспримет как команду обработки. Исполнение сценария, содержащего указанную последовательность приведет к запуску указанной после » #!» команды, последним параметром которой будет имя самого файла сценария. Например, для файлов, написанных на языке shell script, первая строка будет выглядеть так:
#! /bin/sh

Для программ, написанных на perl, так:
#! /bin/perl

Таким образом, можно написать сценарий для любой программы, пример:

[bash@localhost ]$ cat > to.sort #!/bin/sort some unsorted lines [bash@localhost ]$ chmod +x to.sort [bash@localhost ]$ ./to.sort #!/bin/sort lines some unsorted

Во всех интерпретируемых языках программирования # — это символ комментария. То есть первая строка считается комментарием и программой не выполняется. При указании интерпретатора можно писать аргументы командной строки. Например:
#! /bin/sed -f command

Если в файле в первой строке нет этих символов, тогда все зависит о программы оболочки, в которой запускается программа. Если используется bash, то он считает, что файл содержит программу, написанную на языке shell script, запускает копию себя любимого и передает этой копии файл на интерпретацию. Если в файле действительно находится программа, то он ее выполняет. Если в файле находится «Война и мир» графа Льва Николаевича Толстого, то на экране появляются сообщения об ошибках shell script: «Я не знаю оператор Пьер Безухов. Наташа Ростова — это оператор или функция?»

Если Вы желаете выполнить exe-файл, который запускали в Windows, необходимо воспользоваться таким пакетом, как Wine. Но это уже совсем другая тема.

С Уважением, Mc.Sim!

P.S. Спасибо http://www.kryukov.biz/ за исходный текст.

Другие материалы в категории основы Linux
  • Текстовый редактор VIM, основы работы
  • ddrescue или спасаем данные с HDD
  • Резервное копирование файлов сайта по ssh
  • Седьмой релиз Debian
  • Использование ramdisk в Linux (ramdisk, ramfs, tmpfs) или препарирование рамдисков
  • SNMP протокол (основы)
  • Установка антивирусного сканера ClamAV на Debian
  • HOWTO использование backports в Debian
  • Конспект установки Debian на сервер
  • SSH сервер на Debian

Основные команды Linux: делаем первые шаги в командной строке

url image

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

  • Навигация
  • Поиск
  • Работа с папками
  • Работа с файлами
  • Переименование, перемещение и копирование

Навигация

После подключения к серверу Linux вы оказываетесь в домашней директории пользователя. Чтобы узнать точный путь к вашему текущему местонахождению, воспользуйтесь командой:

Она выведет текущую рабочую директорию (print working directory).

Если вам нужно перейти в другую директорию, для этого используется команда cd (change directory) с указанием пути к нужной вам директори:

cd /home

Говоря о навигации, нельзя не упомянуть сокращения для обозначения некоторых директорий Linux:

текущая директория, в которой вы сейчас находитесь. Например, чтобы найти документ с именем hello.txt в текущей директории, можно использовать команду:

find . -name hello.txt

директория, расположенная на уровень выше текущей. Если вы находитесь в /home/user , то комбинация .. будет обозначать папку /home . То есть, чтобы вернуться на один уровень назад, достаточно выполнить команду:

домашняя директория текущего пользователя. Например, запустить скрипт some-script.sh из домашней директории, когда вы находитесь в другой, можно с помощью команды:

sh ~/some-script.sh

предыдущая посещённая директория. Представим, что вы перешли в /home , потом вам потребовалось изменить настройки в /etc . Чтобы вернуться назад, достаточно использовать команду:

Для навигации с помощью команды cd есть два формата указания пути к нужной директории: абсолютный и относительный.

Абсолютный путь — это полный путь от корневого каталога сервера «/» . Например, вот такой:

/var/www/data/username/data/www/example.com/

Также к абсолютным относятся пути, в которых используется ~ — указание на домашний каталог текущего пользователя. Например, при доступе к файлу ~/.bash_profile он всегда будет открываться из одного и того же места: вместо ~ будет использоваться значение переменной окружения $HOME, которое не меняется.

Относительный путь — это неполный путь. Он указывается относительно какого-то объекта: например, текущей рабочей директории. То есть в начале отсутствует символ корневого каталога «/» .

./docs/files/file.txt file.txt

Представим, что мы сейчас работаем с файлами в /var/www/data/username . Нам нужно отредактировать содержимое в директории на уровень выше — /var/www/data . Чтобы управлять данными в этой директории, нам не обязательно постоянно указывать полный путь к ним — можно работать с относительным, начиная его с «../» .

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

Чтобы отобразить список содержимого каталога, можно использовать команду ls (list). Она покажет названия объектов в текущем каталоге:

Если дополнить её ключом -al , команда покажет типы данных, разрешения и скрытые объекты. Например, в этом случае она выведет в терминал подробный список содержимого /etc:

ls -al /etc

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

apt -y install mc
yum -y install mc

Его особенность — примитивный графический интерфейс. Он позволяет быстро ориентироваться в структуре каталогов, перемещаться между ними, создавать новые директории. Интерфейс разбит на два окна, между которыми вы можете перемещать объекты. Помимо прочего, в нём можно работать и с помощью мыши — перемещаться с помощью двойного клика, использовать кнопки в нижней части панели.

Поиск

С помощью команды find можно найти на сервере директорию или файл по набору условий. Структура команды проста:

find [где искать] [как искать] [что искать]

Например, мы знаем название скрипта hello.txt , но не знаем, где именно на сервере он лежит. Найти его поможет команда:

find / -name "hello.txt"
  • / указывает, что искать надо, начиная с корневой директории сервера. Если вам известно, где может лежать искомое, можно задать путь точнее.
  • «hello.txt» — имя файла, который нам нужно найти. Если известна только часть имени, можно указать сокращённый вариант: «hello*» , «*.txt»

Кроме -name , команда find имеет множество опций, которые позволяют уточнить условия поиска. Вот список наиболее полезных параметров:

Позволяет указать тип искомых данных: -type f — файлы, -type d — директории

Позволяет вывести файлы с определённым уровнем доступа. Например, — perm 777

Отображает только пустые файлы или папки

Позволяет искать данные среди файлов, принадлежащих конкретному пользователю: -user root

Позволяет искать данные среди файлов, принадлежащих определённой группе пользователей: -group www-data

Позволяет задать условие относительно времени изменения:

  • -mtime 7 — менявшиеся в течение последних 7 дней;
  • -mtime +7 — менявшиеся более чем 7 дней назад;
  • -mtime -14 — менявшиеся менее чем 14 дней назад.

Позволяет задать условие относительно времени последнего доступа, аналогично mtime

Позволяет уточнить размер (или диапазон размера)

Позволяет применить к найденным файлам команду COMMAND

Больше информации о возможностях команды find можно узнать в документации. Здесь на помощь пользователям приходит команда man — используя её, вы сможете получить полную справочную информацию о любой команде Linux:

man find

Из встроенных инструментов поиска можно также отметить утилиту whereis . Она предназначена для поиска бинарных и системных файлов и директорий служб. Следующий пример выведет список всех объектов, имеющих прямое отношение к php :

whereis php

Работа с папками

Для создания новых директорий в системе Linux используется команда mkdir с указанием пути. Например, команда ниже создаст директорию /new в /home/user :

mkdir /home/user/new

Если нужно создать сразу несколько вложенных папок, можно использовать параметр -p . В таком случае все несуществующие директории, указанные в пути, будут созданы автоматически. Представим, что нам нужно создать вложенные папки docs/photos/2020-08-17 в текущей директории — тогда команда будет выглядеть так:

mkdir -p docs/photos/2020-08-17

Если нужно создать несколько папок за раз, можно просто перечислить их через пробел:

mkdir docs pictures games

Удалить директорию можно с помощью команды rmdir с указанием пути. При этом она будет удалена только в случае, если она пуст (можно использовать параметр —ignore-fail-on-non-empty , чтобы удалить ее в любом случае). Для удаления нескольких вложенных папок можно аналогично использовать параметр -p . Например, команда ниже удалит /photos и все папки внутри нее:

rmdir -p docs/photos

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

Работа с файлами

Создание

Для создания новых файлов в ОС Linux есть несколько полезных команд.

Самый простой способ, одновременно создающий и файл, и недостающие папки — команда touch . Для этого ей достаточно только передать полный путь. Например, создадим в директории docs папку copies , а внутри неё — copies-list.txt :

touch docs/copies/copies-list.txt

Несуществующая папка copies создастся автоматически.

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

touch file1.txt file2.txt file3.txt file4.txt file5.txt

Ещё один способ — вызвать какой-нибудь консольный текстовый редактор с указанием полного пути к файлу. Тогда редактор автоматически создаст его и откроет для редактирования. Однако все папки придётся создать заранее, а файл придётся сохранить (даже пустой), иначе он не будет создан.

Команда ниже создаст new-file.txt с помощью редактора vi :

vi new-file.txt

Для сохранения и выхода в vi нужно нажать клавишу Esc , ввести сочетание :wq и нажать Enter . Для выхода без сохранения нужно также нажать Esc , ввести сочетание :q! и нажать Enter .

Также создать пустой файл можно с помощью команды cat или команды echo:

cat > new-file.txt echo > new-file.txt

Редактирование

Для редактирования используются консольные текстовые редакторы. Самые известные — vi и nano . В некоторых дистрибутивах vi заменён на vim ( vi improved, улучшенный vi ) или vim.tiny

Редактор vi будет доступен вам по умолчанию на большинстве Linux-систем.

А теперь к делу. Vi (более известен как Vim) — старый, очень гибкий и при этом не очень простой в плане управления редактор. Собственно, так он и попал в популярные программистские и админские шуточки, а вопрос «как выйти из Vim?» стал практически культовым среди пользователей Linux-систем.

Запуск редактора без аргументов откроет его в режиме справки:

Чтобы закрыть Vim (без сохранения), введите сочетание :q!

Если указать редактору путь к файлу, он откроет его для редактирования. Если его не существовало, то он будет создан:

vi new-file.txt

При первом входе Vim открывает файл в режиме просмотра. Он не позволяет редактировать его содержимое, но можно вводить командные последовательности, перемещаться по тексту, выполнять поиск и пр.

Чтобы начать ввод, нужно перейти в режим редактирования с помощью клавиши I . Чтобы вернуться в режим просмотра, нажмите Esc .

Перемещение по тексту выполняется с клавиатуры:

  • перемещение в начало текста: Esc + дважды G
  • перемещение в конец текста: Shift + G
  • перемещение по строке горизонтально: стрелки ← →
  • перемещение по строкам вертикально: стрелки ↑ ↓
  • отображение номеров строк: Esc , введите :set number , нажмите Enter
  • перемещение по номерам строк: Esc , введите : номер строки, нажмите Enter

Для выхода с сохранением файла нажмите Esc и введите :wq!

Текстовый редактор vim — краткое руководство

Более современной и удобной альтернативой Vim считается редактор nano . Современные дистрибутивы Linux включают его по умолчанию, но на ранних версиях устанавливать придётся вручную:

apt -y install nano
yum -y install nano

Вызов nano без аргументов откроет пустой редактор. Можно начать ввод (при сохранении вам будет предложено указать имя и сохранить файл) или вызвать режим помощи со списком доступных команд с помощью сочетания Ctrl + G .

Для сохранения нажмите Ctrl + O — редактор предложит ввести имя файла: введите имя и нажмите Enter . Если файл существовал и имя изменять не требуется, просто нажмите Enter .

Для выхода из редактора нажмите Ctrl + X .

Чтение

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

Например, команда cat позволяет вывести в терминал всё содержимое файла, который указан в качестве аргумента:

cat example.txt

Однако, если мы заведомо знаем, что в файле большой объём информации, нет смысла выводить его целиком. Например, команды head и tail могут вывести часть содержимого с начала или конца соответственно. Если добавить к ним ключ -n , можно уточнить, сколько строк текста нужно вывести:

head -n 3 example.txt

tail -n 3 example.txt

Помимо прочего, команда tail очень удобна для чтения логов с ключом -f . В таком режиме она открывает файл в режиме ожидания и выводит все добавляемые данные. Это может пригодиться для тестирования или дебаггинга.

Иногда нам всё-таки нужно полностью просмотреть файл. При этом читать его вывод в терминале неудобно. На такие случаи есть команда less — она открывает файл (или переданный в неё вывод другой команды) в режиме чтения:

less example.com

В режиме чтения команда less можно перемещаться, искать текст и многое другое. Все командные последовательности и горячие клавиши можно вывести с помощью параметра —help :

less --help

Для выхода из режима чтения введите q и нажмите Enter .

Удаление

Для удаления используется команда rm . Она крайне опасна — неправильное применение грозит удалением всего содержимого сервера. Поэтому, как говорится, семь раз отмерь, один раз отрежь: категорически важно перепроверять путь, который вы указываете для удаления.

Самая простая версия команды rm удалит файл с предварительным подтверждением — для этого потребуется ввести y и нажать Enter :

rm new-file.txt

Для полного же уничтожения всего и вся к команде добавляются параметры -rf . Первый отвечает за рекурсивное удаление данных (т.е. удаление вложенных файлов и папок), второй позволяет отключить подтверждение при удалении. Например, следующая команда удалит папку photos , размещённую в docs , и всё её содержимое:

rm -rf docs/photos

Эта команда приобрела некоторую популярность из-за того, что её используют ради шутки над неопытными администраторами и пользователями, которые только начинают своё знакомство с системой Linux. Им под тем или иным предлогом предлагают выполнить из терминала команду rm -rf [/] (без квадратных скобок). Она удаляет всё содержимое сервера от корня. Результат — все данные безвозвратно теряются, а сервер перестаёт работать.

Скачивание и загрузка

Для передачи файлов на сервер и скачивании их с с сервера есть много способов. Самый простой — использование программ wget , curl или утилиты scp .

    wget позволяет скачивать данные на сервер. Она поддерживает HTTP, HTTPS и FTP протоколы.

wget [как скачать] [откуда скачать]

Скачать файл по ссылке в вашу текущую рабочую директорию можно с помощью команды:

wget https://ru.wordpress.org/latest-ru_RU.tar.gz

С помощью параметра -P можно указать путь, куда нужно сохранить скачиваемое:

wget -P /var/www/example.com https://ru.wordpress.org/latest-ru_RU.tar.gz

Полный список параметров wget можно посмотреть с помощью команды man :

man wget
curl [как скачать] [откуда скачать / куда загрузить]
  • Ubuntu и Debian:
    apt -y install curl
  • CentOS:
    yum -y install curl

Для работы с curl нужно знать название и расположение файлов, которые необходимо скачать/загрузить. Например, так будет выглядеть команда на скачивание по ссылке:

curl -O https://ru.wordpress.org/latest-ru_RU.tar.gz

В примере мы скачиваем архив latest-ru_RU.tar.gz по ссылке и сохраняем его в текущую рабочую директорию с таким же именем — за это отвечает ключ -O . Если использовать опцию -o , можно задать своё имя ( wp.tar.gz ) для сохраняемого файла:

curl -o wp.tar.gz https://ru.wordpress.org/latest-ru_RU.tar.gz

Если нам нужно загрузить файл c нашего сервера на другой, используется следующая конструкция:

curl -T filename.txt https://example.com/downloads/filename.txt

Здесь filename.txt из текущей рабочей директории загружается на сайт example.com в директорию downloads и сохраняется с именем filename.txt . Пример подразумевает, что у нас есть права на запись в указанный каталог.

Остальные возможности curl можно узнать в справочной информации с помощью команды:

man curl
scp [откуда копируем] [куда копируем]

Например, для передачи filename.txt с нашего сервера на удалённый сервер 1.2.3.4 в директорию new-documents пользователя username можно использовать в терминале следующую команду:

scp ~/documents/filename.txt username@1.2.3.4:/home/username/new-documents

В процессе система запросит у нас пароль пользователя username для подключения к удалённому серверу. После авторизации файл будет скопирован на целевой сервер в указанную директорию. Чтобы скачать файл с удалённого сервера, достаточно немного видоизменить нашу команду:

scp username@1.2.3.4:/home/username/documents/filename.txt ~/new-documents/

Здесь мы в качестве источника для получения копии указали удалённый сервер, а в качестве цели для загрузки копии — папку на текущем сервере. С помощью scp аналогичным образом можно копировать данные между двумя удалёнными серверами:

scp username1@1.2.3.4:/home/username1/documents/filename.txt username2@2.3.4.5:/home/username2/new-documents

Запуск исполняемых bash-скриптов

Чтобы запустить скрипт script.sh на сервере Linux, нужно выполнить два шага:

    Настроить права на запуск файла для пользователей с помощью команды chmod :

chmod +x ./script.sh
./script.sh

В некоторых случаях нужно использовать команду sh либо указывать путь к исполняемому файлу командной оболочки:

sh ./script.sh
/bin/bash ./script.sh

Чтобы иметь возможность запускать скрипт из любого места на сервере одной простой командой в терминале, можно создать для него алиас — короткую команду (псевдоним), которая будет ассоциироваться системой с полным вызовом скрипта.

Весь список существующих алиасов системы можно вывести с помощью команды alias :

Создать свой постоянный алиас можно с помощью файла .bashrc , размещённого в домашнем каталоге вашего пользователя. Нужно открыть его для редактирования:

vi ~/.bashrc

В соответствующем разделе нужно добавить ваш алиас в следующем формате:

alias [короткая команда]='[исходная команда]'

Например, если нам потребуется создать псевдоним для скрипта выше, настройки будут выглядеть так:

alias myScript='sh /путь/к/скрипту/script.sh'

Чтобы после добавления алиас сразу стал доступен, предварительно нужно обновить командную оболочку с помощью команды:

source ~/.bashrc

После этого вы сможете вызывать ваш скрипт с помощью короткой команды.

Скрипт можно добавить в расписание планировщика cron , чтобы он запускался регулярно.

Как настроить cron по ssh

Переименование, перемещение и копирование файлов и папок

Скопировать файл в терминале Linux можно с помощью команды:

cp [что копируем] [куда копируем]

К примеру, вы можете сделать копию конфигурационного файла, который вы хотите изменить. Здесь мы создаём копию nginx.conf :

cp nginx.conf nginx.conf.copy

Директории копируются аналогично. При необходимости скопировать каталог со всем содержимым (рекурсивно) нужно добавить к команде ключ -r :

cp -r /docs /files

Здесь мы создаём копию docs со всем её содержимым с именем files .

Переместить файл также просто, для этого используем в терминале команду mv :

mv [что переместить/переименовать] [куда переместить/как назвать]

Например, следующая команда переместит файл file.txt в директорию new :

mv file.txt docs/new

Переименовать файл тоже не составит труда. В Linux переименование аналогично перемещению в ту же самую папку, но с новым именем. Например, команда ниже переименует file.txt (в директории /docs/new/) в todolist.txt:

mv /docs/new/file.txt /docs/new/todolist.txt

В этом примере file.txt переименовывается в todolist.txt

Аналогично можно перемещать и переименовывать директории.

Теперь, когда вы знаете базовые команды для работы с терминалом Linux, самое время познакомиться с файловой системой.

Как запустить отредактированный файл C++ в терминале Linux Ubuntu быстрее всего (кратчайшей командой)?

Я пользуюсь Ubuntu 20.10. Предположим, что у меня есть c++ файл testfile.cpp в следующем каталоге \home\username . Я хочу его запустить в терминале, для этого я перехожу в \home\username , после чего выполняю следующий код в терминале:

g++ -o testfile testfile.cpp ./testfile 

После чего код успешно выполняется.После чего, я редактирую код через редактор кода, сохраняю изменения в файле testfile.cpp , выполняю в терминале

cd /home/username ./testfile 

И терминал выдаёт мне результат старого кода. Если я проделываю опять процедуру

g++ -o testfile testfile.cpp ./testfile 

Все успешно работает. Посему вопрос, есть ли более короткие способы запустить c++ файл в терминале?Я хотел бы максимально коротко запускать отредактированный файл, не прописывая каждый раз g++ -o testfile testfile.cpp или make testfile в терминале.

Отслеживать
задан 29 ноя 2021 в 12:28
user450648 user450648

Запустить C++ файл вообще нельзя, можно запустить только программу, которая будет включать в себя код единицы трансляции этого файла. Соответственно после каждого редактирования необходимо будет пересобирать программу каким-либо способом. А вообще используйте IDE. Там и пересобираться все будет автоматически, и даже есть возможность менять код прямо по ходу выполнения программы.

29 ноя 2021 в 13:02

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Ужимаете в одну команду: g++ -o testfile testfile.cpp && ./testfile .

Чтобы запустить повторно, не пишете ее руками, а делаете ↑ Enter .

Если даже один раз писать надоедает, или флагов или файлов становится слишком много, то советую настроить какую-нибудь систему сборки (Make/CMake/. ) и/или в своем текстовом редакторе настроить хоткей под эту команду.

Отслеживать
ответ дан 29 ноя 2021 в 13:05
HolyBlackCat HolyBlackCat
26.9k 3 3 золотых знака 27 27 серебряных знаков 40 40 бронзовых знаков
Да, тоже хорошии идеи, спасибо!
– user450648
29 ноя 2021 в 13:06
«Ужимаете в одну команду» — это скорее ужатие двух команд в одну строчку
29 ноя 2021 в 13:07

если написать makefile, то можно просто make написать и все будет работать.

Если же совсем все плохо, то можно веселее.

Открываете консоль и пишите такое

и теперь любой с++ файл можно компилировать и запустить вот так

cr ~/mycpp/data/main.cpp 

Если скомпилировать не удалось, то запускать не будет. Результат компиляции забрасываем в /tmp, что бы не засорять текущий каталог. Да, в некоторых случаях на /tmp каталоге могут быть наложены так права, что бы нельзя было исполнять там бинарники, но это отдельная тема.

Если все работает как нужно, то открываем ~/.bashrc и аккуратно добавляем в конец (там иногда может быть много другого, так что действуем по обстоятельствам).

И на последок, почему cr ? это от compile & run , такая комбинация, как минимум у меня, не занята и она очень короткая.

Я бы на самом деле эту команду чуточку расширил

а также, -pedantic/-Wextra — что бы сразу давало побольше информации.

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

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