Создание исполняемых файлов в Linux

вы можете пропустить расширение php php-gd, попробуйте установить его с помощью sudo apt install php-gd или sudo yum install php-gd или любым другим способом, подходящим для вашей ОС или метода установки

42
задан tshepang 9 December 2013 в 21:11
поделиться

5 ответов

Сделать исполняемый файл:

chmod + x file

Найти местоположение perl:

which perl

Это иногда должно возвращать что-то вроде

/ bin / perl / usr / local / bin

Затем в первой строке вашего скрипта добавьте:

#! "path" / perl с указанным выше путем, например,

#! / bin / perl

Затем вы можете выполнить file

./ file

Могут быть некоторые проблемы с PATH, поэтому вы можете захотеть изменить и это ...

86
ответ дан 26 November 2019 в 23:33
поделиться

Это действительно не так уж важно. Вы можете просто сделать скрипт с помощью одной команды:

chmod a+x *.pl

И запустить скрипт после создания файла perl. Кроме того, вы можете открыть файл с помощью команды, подобной этой:

touch filename.pl && chmod a+x filename.pl && vi filename.pl # choose your favorite editor
2
ответ дан 26 November 2019 в 23:33
поделиться

Похоже, вы хотите создать ссылки с истекающим сроком действия,

http://www.ioncannon.net/s3/21/creating-s3-urls-that-expire-using-php /

Затем вы можете сгенерировать их на лету и предоставлять в виде перенаправлений через ваше приложение. Так что кто-то просит, http://images.mydomain.com/img123.jpg

и вы генерируете красивый, автоматически истекающий URL-адрес s3, http://mydomain.s3.amazonaws.com/T154456.jpg?AWSAccessKeyId=1ESOMESPECIALIDJJAKJ6RA82&Expires=1241372284&Signature=ddfr%2BlkoSEPAL%2BGbMwlMzj6qll, вы автоматически перенаправили в свой аккаунт 12B-пользователя. таким образом, даже если пользователь смотрит на источник HTML, он видит только URL, возвращающийся на ваш сайт, но когда они нажимают на ссылку, они перенаправляются на Amazon, поэтому вам не нужно беспокоиться о прокси запрос через ваш сервер и поглощение ненужной пропускной способности.

Варианты его изменения: (а) взломать ваш собственный мод gedit или (б) найти текстовый редактор, который позволяет вам устанавливать предпочтения для прав доступа по умолчанию для новых файлов. (Извините, я не знаю ни одного.)

В свете этого, действительно не так уж и плохо иметь chmod для ваших файлов, верно?

0
ответ дан 26 November 2019 в 23:33
поделиться

Нет необходимости взламывать ваш редактор или переключать редакторы.

Вместо этого мы можем придумать сценарий для просмотра ваших каталогов разработки и файлов chmod по мере их создания. Это то, что я сделал в прилагаемом скрипте bash. Возможно, вы захотите прочитать комментарии и отредактировать раздел «config» в соответствии с вашими потребностями, тогда я бы предложил поместить его в каталог $ HOME / bin / и добавить его выполнение в ваш файл $ HOME / .login или аналогичный файл. Или вы можете просто запустить его из терминала.

Этот скрипт требует inotifywait, который входит в пакет inotify-tools в Ubuntu,

sudo apt-get install inotify-tools

Предложения / изменения / улучшения приветствуются.

#!/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 '{print $1}' | 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
6
ответ дан 26 November 2019 в 23:33
поделиться

What you describe is the correct way to handle this.

You said that you want to stay in the GUI. You can usually set the execute bit through the file properties menu. You could also learn how to create a custom action for the context menu to do this for you if you're so inclined. This depends on your desktop environment of course.

If you use a more advanced editor, you can script the action to happen when the file is saved. For example (I'm only really familiar with vim), you could add this to your .vimrc to make any new file that starts with "#!/*/bin/*" executable.

au BufWritePost * if getline(1) =~ "^#!" | if getline(1) =~ "/bin/" | silent !chmod +x <afile> | endif | endif
3
ответ дан 26 November 2019 в 23:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: