Как прописать алиас
Перейти к содержимому

Как прописать алиас

  • автор:

Где прописать алиас чтоб вызвать скрипт с php?

Ну дык вы в каком месте редактировали .bachrc? В домашней директории рута? Вот от рута и работает.

Надо в домашнем каталоге www-data, тогда может и заработает.

Можно еще в /usr/local/bin символическую ссылку кинуть попробовать.

Но нафига такие заморочки тоже не пойму. Чтоб красивее было что ли?

На сайте с 22.11.2013
12 сентября 2023, 15:21
br.almighty #:
Но нафига такие заморочки тоже не пойму. Чтоб красивее было что ли?

нет. просто я делаю скрипт на пк. (windows)

отдаю его клиенту. сайт на линуксе. поетому хочу чтоб было одинаково и не менять ничего

На сайте с 22.11.2013
12 сентября 2023, 15:23
br.almighty #:
Надо в домашнем каталоге www-data, тогда может и заработает

и как туда попасть. у меня пароля нет. ето хз что за пользователь. ето наверно группа пользователей .его сама исп установила

На сайте с 13.07.2021
12 сентября 2023, 15:26
lutskboy #:
хочу чтоб было одинаково и не менять ничего

var_dump(shell_exec( $_SERVER['DOCUMENT_ROOT'] . '/data/curl/getweb 2>&1'));

Одинаково и не надо ничего менять.

Создание синонимов команд в Linux. Команда alias

Синонимы команд alias

В Linux можно создавать синонимы для других команд. Рассмотрим, как это сделать.

Синонимы для команд (или псевдонимы, или алиасы) — это команда, состоящая из одного слова, но выполняющая другую заданную команду. Это удобно, например, когда нужно часто выполнять длинную команду или команду с различными ключами. Вместо ввода длинной команды достаточно выполнить одну команду-синоним.

Создание синонимов (команда alias)

В командной оболочке Bash для создания синонимов используется команда alias .

Синтаксис команды alias

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

alias синоним =» команда »

синоним — короткая команда (алиас), которая будет использоваться для запуска команды .
команда — команда, которая будет запускаться при вызове синонима . Записывается в двойных или одинарных кавычках.

Примеры создания синонимов

Вывод списка файлов:

alias ll="ls -la"

То есть, вместо выполнения ls -la теперь достаточно выполнить команду ll :

> ll Documents/ итого 16480 drwxr-xr-x 3 yuriy yuriy 4096 дек 7 17:46 . drwxr-xr-x 45 yuriy yuriy 4096 янв 4 13:23 .. -rw-rw-r-- 1 yuriy yuriy 155 июл 25 16:12 code.md drwxrwxr-x 2 yuriy yuriy 4096 июл 27 14:48 data .. -rw-r--r-- 1 yuriy yuriy 11116 июл 24 22:01 Pingvinus.docx -rw-rw-r-- 1 yuriy yuriy 251 июл 25 16:31 pingvinus.md 

Создадим команду для быстрого перехода в заданную директорию:

alias cdwork=”cd /home/pingvinus/Documents/data”
yuriy@pingvinus:~$ cdwork yuriy@pingvinus:~/Documents/data$ 

Подключение по ssh к определенному серверу:

alias serv="ssh -p 1234 pingvinus@192.168.0.123"

Сохранение синонимов

Когда вы создаете синоним с помощью команды alias, то он функционирует только в текущей сессии, пока открыто окно терминала. Чтобы сохранить синонимы на постоянной основе, нужно прописать выполнение команд alias в файл .bashrc .

Запустите терминал и откройте файл .bashrc для редактирования, выполнив команду:

nano ~/.bashrc

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

alias ll="ls -la" alias cdwork="cd /home/pingvinus/Documents/data" alias serv="ssh -P 1234 pingvinus@192.168.0.123"

Сохраните изменения и закройте файл. Для этого нажмите Ctrl+X , откроется запрос на сохранение изменений в файле — нажмите y и затем Enter .

Чтобы изменения вступили в силу, можно выйти и снова войти в систему или выполните команду:

source ~/.bashrc

Просмотр списка синонимов

Чтобы просмотреть список всех активных в данный момент синонимов используется команда:

alias -p

Во многих дистрибутивах несколько синонимов уже может быть создано в системе. Например у меня результат следующий:

> alias -p alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l='ls -CF' alias la='ls -A' alias ll='ls -alF' alias ls='ls --color=auto'

Удаление синонимов

Чтобы удалить синоним используется команда unalias . Удаление происходит только в текущей сессии терминала.

Удаление синонима по заданному имени:

unalias имя_синонима

Удаление всех синонимов:

unalias -a

Несколько примеров синонимов

Очистка окна терминала:

alias c="clear"

Вывод подробного списка файлов:

alias ll="ls -la"

Вывод списка скрытых файлов:

alias l.="ls -d .* --color=auto"

Поиск по истории команд (запускается, например, так hs ssh ):

alias hs="history | grep"

Показать список открытых портов:

alias ports="netstat -tulanp"

Выполнять ping только 5 раз, а не бесконечно:

alias ping5="ping -c 5"

Узнать свой внешний IP-адрес:

alias ipe="curl ipinfo.io/ip"

Создание синонимов, используя Bash-функции (синонимы с аргументами)

Командная оболочка Bash позволяет создавать функции, которые могут выполнять одну или несколько команд. Они относятся к программированию в Bash, но их иногда можно использовать и для создания синонимов. Такие функции могут принимать аргументы в командой строке, в отличии от синонимов, создаваемых командой alias.

Синтаксис функций в Bash

имя_функции () <
команда1
команда2
.
> function имя_функции <
команда1
команда2
.
>

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

имя_функции аргумент1 аргумент2

Чтобы внутри функции обратиться к аргументам, используются сокращения $1 , $2 и т.д. $1 соответсвует первому аргументу, $2 второму и т.д. $0 соответсвует имени функции.

Примеры создания функций

Функции можно создавать прямо в текущей сессии терминала, но лучше прописать их в файле .bashrc .

Создадим функцию которая принимает имя директории, создает данную директорию и переходит в нее:

mkcd ()

Теперь, вместо того, чтобы выполнять mkdir для создания директории, а затем cd , чтобы перейти в нее, достаточно выполнить:

mkcd mynewdir

У вас может возникнуть вопрос, что означают символы — и && внутри нашей функции?

  • — — используется, чтобы указать, конец опций команды. То есть все, что будет записываться после — это уже аргументы и они не будут интерпретироваться, как опции для данной команды. В нашем примере мы можем попробовать создать директорию имя которой начинается с символа — , и если бы мы не использовали — , то команда mkdir подумала бы, что мы пытаемся передать ей не имя директории а опцию.
  • && — логическое И — сначала выполняется команда, стоящая слева от && и только если она выполнена успешно, запускается команда, стоящая справа от && .

Заключение

Синонимы команд в Linux очень удобный инструмент, упрощающий работу с системой. В данной статье мы рассмотрели создание синонимов командой alias , а также использование функций Bash для создания синонимов.

Не смотря на удобство использования синонимов, сильно увлекаться ими не стоит. Не нужно создавать тонну алиасов на все случаи жизни. Это может привести к путанице и банальному незнанию полных команд, когда пересаживаешься за другой компьютер.

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

Алиасы в bash для быстрого набора команд Git

Командный интерпретатор bash позволяет задавать произвольные алиасы для разных команд и выражений. Алиасы не являются командами сами по себе, но им, как и командам, можно передавать аргументы. Алиасы позволяют сделать вызов громоздких команд очень простым, с легко запоминающимися названиями.

Использовать Git я привык исключительно из консоли, но на ввод длинных команд с разными аргументами тратится значительное количество времени. Поэтому я ввёл практику использования алиасов. Для безопасных команд я использовал короткие алиасы, которые по сути стали горячими клавишами, а для функциональных — простые короткие слова из состава команд Git. Если команда опасная, то можно сделать её в два слова, написанных через дефис, для исключения случайного ввода. На самом деле, использование алиасов для работы с Git широко практикуется, я решил лишь преподнести отдельный вариант подборки алиасов, которые для меня оказались очень удобными.

Формат задания алиаса имеет следующий вид:

alias name 

Основной проблемой алиасов является то, что они не подхватываются автоматически механизмом автодополнения кода. Их написание отличается от тех команд, которые зарегистрированы в системе автодополнения, поэтому приходится дополнительно регистрировать алиасы, назначая им соответствующие спецификации автодополнения (compspec) через встроенную в bash команду complete . В случае с Git над complete существует обёртка __git_complete , в которую необходимо передавать предопределённые функции-обёртки, начинающиеся с префикса _git_ и оканчивающиеся названием подкоманды git. В Ubuntu весь связанный с этим код можно посмотреть в файле /usr/share/bash-completion/completions/git .

Алиас

Действие

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

Просмотреть текущее состояние локального репозитория

Просмотреть текущее состояние локального репозитория и количество изменённых строк

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

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

Список последних коммитов в кратком формате.

Список последних коммитов с развёрнутой информацией о них.

Переход на другую ветку или коммит, создание новой ветки с опцией -b .

Получить изменения с сервера и влить их в текущую ветку.

Сделать коммит (зафиксировать изменения).

Добавить файлы или изменения в будущий коммит.

Отменить добавление изменений в будущий коммит.

Отправить новые коммиты на сервер.

Отправить коммиты на сервер с перезаписью их истории, если другие люди не успели отправить туда свои коммиты.

Влить заданную ветку в текущую.

Добавить изменения в уже сделанный коммит или изменить его комментарий.

Выполнить перезапись истории коммитов, например, переместив коммиты в конец другой ветки.

Переименовывание или удаление локальной ветки

Применить в текущей ветке отдельные существующие коммиты.

Сохранить свои текущие изменения во временное хранилище.

Применить свои текущие изменения из временного хранилища, но не удалять и оттуда.

Забрать свои изменения из временного хранилища и применить их.

Ниже приведено примерное содержимое файла ~/.bash_aliases с основными алиасами Git и кодом их автоматической регистрации в механизме автодополнения командой строки.

#!/bin/bash alias f="git fetch --tags" alias s="git status" alias ss="git status && git diff --shortstat" alias d="git diff" alias dd="git diff --word-diff=color" alias l="git log -n 20 --graph --pretty=format:'%Cred%h%Creset %an: %s / %Cgreen%cr%Creset %Creset %C(yellow)%d%Creset' --abbrev-commit --date=relative" alias ll="git log" alias go="git checkout" #или alias gg="git checkout" alias pull="git pull" alias commit="git commit" alias add="git add" alias reset="git reset" alias push="git push" alias push-fix="git push --force-with-lease" alias merge="git merge" alias amend="git commit --amend" alias rebase="git rebase" alias branch="git branch" alias pick="git cherry-pick" alias stash="git stash" alias apply="git stash apply" alias pop="git stash pop" # Регистрируем алиасы в системе автодополнения git_completions="/usr/share/bash-completion/completions/git" if [ -f "$" ]; then source "$" # Получаем массивы алиасов и соответствующих им команд git cmds=( $(alias | grep -v ss | grep -Po '(?; i++ )); do a="$" cmd="$" __git_complete "$" _git_"$" done fi

Для того, чтобы файл с алиасами применялся при входе в систему, необходимо добавить его подключение в файл ~/.bashrc с помощью команды source (или . ). Файл ~/.bashrc запускается на исполнение всегда при старте командного интерпретатора bash, поэтому если файл редактировался из консоли, потребуется её заново открыть или запустить вложенный командный интерпретатор bash.

if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi

Алиасы s , d и l простые, дают необходимый минимум информации. Задумка двухбуквенных в том, чтобы дать слегка больше информации, если это требуется. С помощью f можно получить последние изменения в репозитории и влить их в текущую ветку с помощью pull или pull -r . Через l можно посмотреть, что за новые коммиты прилетели в ветку, или что было последним из изменений, а через ll — подробно изучить коммиты. Переключиться на другую ветку можно через go , создать новую ветку можно через go -b . При создании коммита, в общем случае, сначала вводится s , проверяется на какой мы ветке, какие файлы требуется добавить, затем d , чтобы проверить свои изменения. Через add добавляются файлы (или add -i для выбора отдельных изменений в файлах), через commit -m создаётся новый коммит. Если вдруг в тексте сообщения коммита оказалась опечатка, можно быстро всё поправить через amend . Если в main-ветку успели прилететь новые коммиты, можно сделать rebase main . И потом сделать push . Если ветка своя собственная, то можно делать rebase -i с исправлениям прошлых коммитов и отправить модифицированные коммиты через push-fix .

Если шла работа, но срочно понадобилось переключиться на другую ветку, можно временно убрать свои изменения через stash , переключиться на другую ветку через go . Потом можно вернуть изменения с помощью apply или pop . Отдельные коммиты из других веток можно применять с помощью pick , также это может быть полезным, если случайно сделать изменения в отделённом HEAD (например, в подмодуле).

Алиасы могут совпадать с существующими командами. Если такие команды обычно не используются, то это проблемой не является. Если же команды понадобятся, то в случае исполняемых файлов всегда можно указать полный путь к файлу. Не будет проблем и с командами, которые запускаются от имени суперпользователя, поскольку алиасы прописаны лишь для непривилегированного пользователя. Если используется язык Go, то с использованием алиаса go могут возникнуть проблемы. В качестве решения можно изменить алиас на gg или gc , либо же сделать алиас golang для команды go . Здесь кому как удобнее.

В Ubuntu 21.10 при использовании алиаса над git checkout выводятся сообщения об ошибках. Происходит это из-за того, что одна из переменных в целочисленных сравнениях оказывается пустой. Вариантом подавления вывода ошибок является замена в файле /usr/share/bash-completion/completions/git сравнения через квадратные скобки на арифметическое сравнение через двойные скобки, например, (( var1 < var2 )) , в которых можно использовать названия переменных без предшествующего знака $ . Такое исправление работает и в zsh, на который автодополнение тоже рассчитано.

Патч, решающий проблему

--- /usr/share/bash-completion/completions/git 2021-08-09 15:29:27.000000000 +0300 +++ ./git 2022-04-08 23:32:38.501198226 +0300 @@ -1011,7 +1011,7 @@ if [ "$cmd" = "remote" ]; then ((c++)) fi - while [ $c -lt $cword ]; do + while (( c < cword )); do i="$" case "$i" in --mirror) [ "$cmd" = "push" ] && no_complete_refspec=1 ;; @@ -1187,7 +1187,7 @@ done local wordlist="$1" - while [ $c -lt $cword ]; do + while (( c < cword )); do for word in $wordlist; do if [ "$word" = "$" ]; then if [ -n "$" ]; then @@ -1221,7 +1221,7 @@ done local wordlist="$1" - while [ $c -gt "$__git_cmd_idx" ]; do + while (( c > __git_cmd_idx )); do ((c--)) for word in $wordlist; do if [ "$word" = "$" ]; then @@ -1283,7 +1283,7 @@ __git_has_doubledash () < local c=1 - while [ $c -lt $cword ]; do + while (( c < cword )); do if [ "--" = "$" ]; then return 0 fi @@ -1449,7 +1449,7 @@ < local i c="$__git_cmd_idx" only_local_ref="n" has_r="n" - while [ $c -lt $cword ]; do + while (( c < cword )); do i="$" case "$i" in -d|-D|--delete|-m|-M|--move|-c|-C|--copy) @@ -2479,7 +2479,7 @@ __git_config_get_set_variables () < local prevword word config_file= c=$cword - while [ $c -gt "$__git_cmd_idx" ]; do + while (( c >__git_cmd_idx )); do word="$" case "$word" in --system|--global|--local|--file=*) @@ -3213,7 +3213,7 @@ _git_tag () < local i c="$__git_cmd_idx" f=0 - while [ $c -lt $cword ]; do + while (( c < cword )); do i="$" case "$i" in -d|--delete|-v|--verify) @@ -3388,7 +3388,7 @@ local __git_C_args C_args_count=0 local __git_cmd_idx - while [ $c -lt $cword ]; do + while (( c < cword )); do i="$" case "$i" in --git-dir=*) 

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

Вопросы-Ответы

Как прописать псевдонимы (алиасы) к своему домену? Я хочу чтобы по разным доменам открывался один и тот же сайт.

Иногда возникают ситуации, когда необходимо, чтобы по нескольким адресам открывался один и тот же сайт. Здесь речь не идет о редиректе или переадресации. Это делается путем добавления к основному домену псевдонимов, или, как их еще часто называют, алиасов. В таком случае, заходя и на один свой домен, и на второй домен, Вы будете видеть одно и то же содержимое. Для добавления псевдонима Вам необходимо перейти в панель управления Вашим хостинг-аккаунтом ISPManager, авторизировавшись под своими данными, после чего перейти во вкладку "WWW-домены". Данная вкладка отображается все домены и поддоменны, которые работают в рамках Вашего аккаунта. Список доменных имен и поддоменов созданных в рамках хостинг-аккаунтаДвойным щелчком мыши выберите домен, которому необходимо добавить алиасы, после чего перед Вами откроется окно редактирования настроек Вашего домена (также это можно сделать выделив одним щелчком мыши Ваше доменное имя и нажав на иконку "Изменить" в правой верхней части панели управления). Окно добавление псевдонима в панель управления хостингом ISPManagerДля добавления псевдонима в окошке "Параметры домена" в поле Псевдонимы нажмите на стрелочку "вверх-вниз", это расширит поле "Псевдонимы" и позволит Вам удобно работать с псевдонимами Вашего основного домена. Это поле уже содержит один псевдоним - это Ваш основной домен с www. Для добавления псевдонима с новой строчки впишите домен, который необходимо прописать как алиас для основного, и в следующей строчке пропишите его-же, но уже с приставкой www (так, как показано на верхней картинке).
После этого нажмите ОК и дождитесь перезагрузки сервера для обновления его настроек. Обратите внимание: для того, чтобы такая конструкция работала, необходимо чтобы псевдоним был направлен на тот же хостинг, что и основной домен.

Способы оплаты

script type="text/javascript"> jQuery(document).ready(function($) < //Показывать кнопки, если только браузер достаточно широк if( $(window).width() >= 1030 ) $('#social-float').show(); // Update when user resizes browser. $(window).resize(function() < if( $(window).width()

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

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