Алиасы

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Аватара пользователя
SerW
Сообщения: 402
ОС: macOS& Fedora Workstation Latest

Алиасы

Сообщение SerW »

Как можно обозвать частовызываемую команду в терминале ее алиасом?
К примеру, мне хоца, чтобы команда

Shell

gs -o Untitled-with-outlines.pdf -dNoOutputFonts -sDEVICE=pdfwrite Untitled.pdf
вызывалась по алиасу

Shell

gsu
Сергей Ш. » DragonSerW.RU
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2428
ОС: gentoo fluxbox

Re: Алиасы

Сообщение yoricI »

Зависит от оболочки.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20834
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Алиасы

Сообщение Bizdelnick »

Вы не поверите…
alias gsu='gs -o Untitled-with-outlines.pdf -dNoOutputFonts -sDEVICE=pdfwrite Untitled.pdf'
Добавлено (18:04):
yoricI писал:
19.09.2021 17:59
Зависит от оболочки.
Во всех POSIX-совместимых (и не только) одинаково.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
astroncia
Сообщения: 133

Re: Алиасы

Сообщение astroncia »

С аргументами - функции удобнее

Shell

gsu() { gs -o "$1" -dNoOutputFonts -sDEVICE=pdfwrite "$2" }

Shell

gsu Untitled-with-outlines.pdf Untitled.pdf
Спасибо сказали:
Аватара пользователя
SerW
Сообщения: 402
ОС: macOS& Fedora Workstation Latest

Re: Алиасы

Сообщение SerW »

В мемориз!
Всем отписавшимся -- респект и уважуха.
Сергей Ш. » DragonSerW.RU
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2428
ОС: gentoo fluxbox

Re: Алиасы

Сообщение yoricI »

Bizdelnick писал:
19.09.2021 18:01
Во всех POSIX-совместимых (и не только) одинаково.
А куда прописать? Если bash - .bash_aliases, хотя можно и в другой. А всякие zsh ksh tcsh etc?
Спасибо сказали:
Аватара пользователя
bars
Сообщения: 941
ОС: BSD/LINUX

Re: Алиасы

Сообщение bars »

yoricI писал:
19.09.2021 19:29
А куда прописать? Если bash - .bash_aliases, хотя можно и в другой. А всякие zsh ksh tcsh etc?

Код: Выделить всё

.bashrc
.cshrc
У меня там приписано пару команд.
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Аватара пользователя
delvin-fil
Сообщения: 135
ОС: Linux → Gentoo

Re: Алиасы

Сообщение delvin-fil »

bars писал:
19.09.2021 19:35
У меня там приписано пару команд.

Shell

cat .bash_aliases | wc -l
94
Гы :drinks:
import __hello__
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20834
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Алиасы

Сообщение Bizdelnick »

Offtopic
delvin-fil писал:
19.09.2021 21:24

Shell

cat .bash_aliases | wc -l
94
Никогда не понимал, зачем так писать вместо wc -l .bash_aliases.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
bars
Сообщения: 941
ОС: BSD/LINUX

Re: Алиасы

Сообщение bars »

Bizdelnick писал:
19.09.2021 23:11
Никогда не понимал, зачем так писать вместо wc -l .bash_aliases.
Возможно дело привычки.
По сути так вывод чище cat .bash_aliases | wc -l
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Аватара пользователя
algri14
Сообщения: 1369
ОС: Mageia 5.1 & 8 x86_64, KDE

Re: Алиасы

Сообщение algri14 »

Хорошая тема, от практиков с полезными нюансами, но для новичков пояснения нужны более подробные (вообще что такое "алиасы"), ну а далее заинтересовавшийся новичок может поискать в инете дополнительную информацию.

alias — это «сокращатель» команд.

При работе в командной строке очень помогают "короткие" команды-алиасы.
Общий формат определения псевдонима при помощи alias таков:
alias псевдоним="команда"
Этой командой вы «связываете» команду с назначаемым ей псевдонимом. Далее, если вы введёте в командной строке имя псевдонима, он автоматически будет заменён оболочкой на соответствующую ему команду. В качестве псевдонима можно использовать набор — алфавитно-цифровые символы, дефис, точку, запятую и символ подчёркивания.
В файл ~/.bashrc алиасы писать не надо, лучше всего создать специально под них файл пользователя в Домашней папке ~/.bash_aliases , исходя из этого в консоли root эти алиасы действовать не будут.
Для начала в файле ~/.bashrc сделать сноску на файл ~/.bash_aliases следующими строчками:

Код: Выделить всё

if [ -f ~/.bash_aliases ]; then
        . ~/.bash_aliases 
fi
По дефолту было:

Код: Выделить всё

# .bashrc

# User specific aliases and functions

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi
Стало:

Код: Выделить всё

# .bashrc

# User specific aliases and functions

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

if [ -f ~/.bash_aliases ]; then
        . ~/.bash_aliases 
fi
В дальнейшей работе при необходимости добавить какие-либо алиасы, писать их в файл ~/.bash_aliases , а дефолтный ~/.bashrc останется без изменений.

Для примера вот несколько сокращённых команд:

Код: Выделить всё

# alias.sh

alias c='clear'       
#очистить консоль

alias ping='ping -c 5'   
#выполнить команду ping с количеством пакетов 5, а не бесконечно

alias x="exit"        
#выход из сеанса
зы: комментарии в сообщении даны для пояснения, если они нужны в файле их пишут под функцией и в начале строки ставят знак « # » (решётка)
Для новичков: знак « ~ » называется "тильда", обозначает Домашнюю папку пользователя, т.е.
/home/имя_юзера/.bashrc и ~/.bashrc — это одно и тоже местонахождение файла.

Когда-то для этих пояснений пользовался статьёй Использование alias в bash , на данный момент ресурс не открывается, впрочем в инете есть и другие статьи.
Спасибо сказали:
Аватара пользователя
algri14
Сообщения: 1369
ОС: Mageia 5.1 & 8 x86_64, KDE

Re: Алиасы

Сообщение algri14 »

Подскажите где находятся алиасы для всей системы.
Дал команду:
Spoiler

Shell

alias -p | cat -n
1 alias c='clear'
2 alias cd..='cd ..'
3 alias cp='cp -i'
4 alias d='ls'
5 alias df='df -h -x supermount'
6 alias du='du -h'
7 alias egrep='egrep --color'
8 alias fgrep='fgrep --color'
9 alias grep='grep --color'
10 alias l='ls'
11 alias la='ls -a'
12 alias ll='ls -l'
13 alias ls='ls -F --color=auto'
14 alias lsd='ls -d */'
15 alias mc='. /usr/libexec/mc/mc-wrapper.sh'
16 alias md='mkdir'
17 alias mv='mv -i'
18 alias p='cd -'
19 alias ping='ping -c 5'
20 alias rd='rmdir'
21 alias rm='rm -i'
22 alias s='cd ..'
23 alias wttr='curl wttr.in/Воронеж?M\&lang=ru'
24 alias x='exit'
Оказалось что в системе их 24 шт, из них 4 шт мои собственные (1; 19; 23; 24), из файла ~/.bash_aliases , остальные дефолтные от Mageia,
вопрос — где они находятся?
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2428
ОС: gentoo fluxbox

Re: Алиасы

Сообщение yoricI »

Код: Выделить всё

locate alias
если установлено.

Код: Выделить всё

grep -r alias /etc/*
Или find
А может в bash зашито.
Спасибо сказали:
Аватара пользователя
algri14
Сообщения: 1369
ОС: Mageia 5.1 & 8 x86_64, KDE

Re: Алиасы

Сообщение algri14 »

yoricI, спасибо.
Вообще-то читал, что должно быть где-то в /etc/profile.d
Ваша подсказка указала на /etc/profile.d/60alias.sh , почти все, 19 шт, ещё одну потом найду, команда locate alias выдала файлик … в 5200 строчек :D

Дополнено 24.02.23, 10:20:
grep -r alias /etc/* покороче 337 строк, потому что во многое "отказано в доступе", но те же данные из /etc/profile.d/60alias.sh консоль показала, а большего и не надо.

Нашёл и 20-й:
alias mc='. /usr/libexec/mc/mc-wrapper.sh'
лежит в /etc/profile.d/20mc.sh
Спасибо сказали: