Сообщение об ошибке сообщает, что вы пытаетесь выполнить файл, который не существует.
Мы можем смутно догадываться о том, какие файлы существуют, но без доступа к вашей системе мы не можем точно знать, что вы на самом деле установили и где.
Возможно, у вас есть файл с именем tcframe
в каталоге с именем scripts
в вашем домашнем каталоге?
alias tcframe=$HOME/scripts/tcframe
Общепринятым способом избежать засорения вашей среды одним или несколькими псевдонимами для каждой случайной утилиты, которую вы где-то установили, является создание выделенного каталога для вашего PATH
- общепринятое соглашение - вызывать его bin
- и заполнять его с символическими ссылками на вещи, которые вы хотите иметь исполняемыми.
Только один раз,
mkdir $HOME/bin
и отредактируйте .profile
(или .bash_profile
или .bashrc
, если хотите) , включив в него строку
PATH=$HOME/bin:$PATH
Теперь, чтобы сделать исполняемый скрипт доступным из любого места без явного пути, создайте символическую ссылку на него в bin
;
ln -s $HOME/scripts/tcframe $HOME/bin
Обратите внимание, что синтаксис похож на cp
; последний аргумент - это пункт назначения (который может быть каталогом или новым именем файла), а первый (и любые последующие аргументы перед последним, если последний является каталогом) являются источниками. Если местом назначения является каталог, имя файла каждого исходного аргумента используется как имя новой символической ссылки в каталоге назначения.
Также обратите внимание, что вы обычно хотите использовать абсолютные пути; относительный путь разрешается относительно bin
(например,
ln -s ../scripts/tcframe $HOME/bin
, даже если вы находитесь в каталоге, где ../scripts
не существует.)
Скрипты по определению должны быть исполняемыми. Если это не так, вы получаете «разрешение отказано» при попытке запустить их. Это контролируется разрешениями; каждый файл имеет набор битов прав, которые указывают, можете ли вы читать, записывать (или перезаписывать) и выполнять этот файл. Эти разрешения также устанавливаются отдельно для членов вашей группы (так что вы можете управлять грубой формой доступа группы) и для всех остальных. Но для ваших личных сценариев вам действительно важно, чтобы бит x
(исполняемый) был установлен для вас. Если это не так, вы можете изменить его - это требуется только один раз.
chmod +x scripts/tcframe