Я создал этот файл: /etc/profile.d/pycharm_alias.sh
startPyCharm() {...
}
alias py=startPyCharm
Я перезагрузил ПК, но затем псевдоним не доступен:
===> alias
...empty
Если я вхожу в ПК через ssh, псевдоним доступен:
===> ssh root@localhost
..
root@pc:~# alias
alias py='startPyCharm'
Как сделать псевдоним доступным для всех пользователей человечности система Linux?
Мы используем оболочку удара.
Почему Вы хотите псевдоним для всех пользователей?
, Почему бы не создать исполняемый сценарий?
сценарий А более прост и может использоваться от всей оболочки, не просто колотить.
, По крайней мере, в моем случае с помощью сценария вместо псевдонима решил мою проблему.
BTW: Это - просто обходное решение, не действительное решение вопроса.
~/.bashrc
файл). , Делают сценарий оболочки и помещают его в каталог, который находится в "общем пути".
, Но важно быть осторожным, чтобы не перезаписывать существующие программы или помещать существующие программы в тени. Можно поместить сценарий оболочки перед существующей программой в пути, так, чтобы система не находила его через [1 111].
, Другими словами, удостоверяются, что имя уникально для предотвращения проблем с другими программами.
Это - мой путь в Lubuntu 18.04.x LTS.
$ echo $PATH
/home/sudodus/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/games
у меня есть собственное bin
каталог, который автоматически найден и вставляет начало пути (с самым высоким приоритетом). Но остальная часть пути является стандартной.
я предложил бы, чтобы Вы
проверка, что не должно быть никакого конфликта с именем
type unique-name # shows if it exists and what kind of program it is
which unique-name # shows where an installed program is stored
unique-name # if known but not installed, you get a hint about it
apt-cache policy *unique-name* # package name (may or may not be same as program name)
, если никакой конфликт, создайте сценарий оболочки (это - тривиальный пример)
echo 'echo "Hello World"' > unique-name
, делают исполняемый файл сценария оболочки
chmod +x unique-name
, помещает сценарий оболочки в [1 113], если этому нужны полномочия пользователя root или иначе в [1 114].
sudo cp -i unique-name /usr/local/bin
опция -i
предлагает Вам, если имя уже существует в целевом каталоге.
при создании исполняемого файла сценария оболочки и это находится в каталоге в общем PATH
, все могут выполнить его через его имя файла,
unique-name
существует несколько коротких строк, которые еще не используются в качестве названий стандартных программ, и можно найти такие имена путем тестирования с [1 143]
type short-string-to-be-tested
, например
$ type py
bash: type: py: not found
В моем компьютере нет никакой исполняемой программы и никакой оболочки, встроенной с тем именем, таким образом, я могу использовать py
в качестве имени файла (и мне не нужен никакой псевдоним).
, Но при попытке работать py
прежде, чем переименовать Ваш сценарий оболочки к тому имени,
$ py
Command 'py' not found, but can be installed with:
sudo apt install pythonpy
, Вы найдете, что существует такая программа (но это еще не установлено), и это могла бы быть хорошая идея выбрать другое имя, например
pych
, который может быть кратким названием, полученным из Вашего настоящего имени PyCharm.
alias
работа deosn't Одна причина, глобальное alias
не работает, описано здесь :
<час>метод в этом ответе не должен использоваться. Псевдонимы в
.sh
файлы в/etc/profile.d/
(или/etc/profile
) будут определены только для оболочек входа в систему, и они не будут работать в интерактивных оболочках невхода в систему. В отличие от переменных среды, удар не может экспортировать псевдонимы в дочерние процессы, даже дочерние оболочки удара. Этот метод, может казаться, работает правильно, если он только тестируется в оболочках входа в систему, таких как исходная оболочка, полученная путем вхождения в систему в виртуальной консоли или через SSH, но он перестал работать в их дочерних оболочках и также перестал работать в оболочках, запущенных окнами терминала GUI. †“ Eliah Kagan 18 апреля '15 в 0:56
/etc/profile.d
В настоящее время Вы имеете /etc/profile.d/pycharm_alias.sh
содержащий:
startPyCharm() {...
}
alias py=startPyCharm
Присвоение глобального псевдонима к функции не необходимо. Вы могли просто создать глобальную функцию, вызванную py
, который делает то, что StartPyCharm
делает.
, Например, создайте /etc/profile.d/py.sh
содержащий:
#!/bin/bash
py () {
echo "Running py function in /etc/profile.d/py.sh"
echo "Substitute for py alias which calls StartPyCharm function"
}
export -f py
Замена echo
команды с содержанием Вашего тока StartPyCharm ()
функция.
, Когда пользователь входит в систему и открывает оболочку, они могут ввести py
, и глобальная функция вызвана вместо глобального псевдонима к функции.
Для наблюдения всех функций (и глобальный и локальный) использование declare -F
Можно попытаться поместить это в /etc/bash.bashrc
. Это формулировало цель, # System-wide .bashrc file for interactive bash(1) shells.
, Который кажется, что это может быть тем, что Вы хотите. Я удивлен, что Ваше profile.d решение не работало.