Bug 22469

Summary: [FR] add default global ls aliases
Product: Sisyphus Reporter: Michael Shigorin <mike>
Component: zshAssignee: Fr. Br. George <george>
Status: ASSIGNED --- QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P3 CC: arseny, at, evg, george, grenka, grizlik78, mithraen, real.altlinux.org, swi, viy
Version: unstable   
Hardware: all   
OS: Linux   

Description Michael Shigorin 2009-12-07 17:36:32 MSK
Предлагаю добавить в пакетный /etc/zshrc
alias l='ls -lapt'      # Detailed listing, sorted by modification time.
alias ll='ls -laptc'    # Detailed listing, sorted by change time.
(после исправления #14641 они больше не подбираются из /etc/bashrc.d/alias.sh, а удобны и думаю -- многим уже привычны)
Comment 1 Sir Raorn 2010-01-30 00:35:56 MSK
*** Bug 22859 has been marked as a duplicate of this bug. ***
Comment 2 Dmitry V. Levin 2010-09-21 14:51:28 MSD
Не понял, чего вы хотите.  В bash что-то не работает?
Comment 3 Sir Raorn 2010-09-21 15:00:57 MSD
zsh перестал читать /etc/bashrc.d/*, а люди хотят иметь изкоробочные алиасы как в bash.  bug 14641 comment 4
Comment 4 Dmitry V. Levin 2010-09-21 15:04:56 MSD
(In reply to comment #3)
> zsh перестал читать /etc/bashrc.d/*, а люди хотят иметь изкоробочные алиасы как
> в bash.  bug 14641 comment 4

Чем пакет bash может помочь в этой ситуации пользователям пакета zsh?
Перенести в profile.d нельзя, zshrc вне компетенции bash.
Comment 5 Sir Raorn 2010-09-21 15:10:10 MSD
(In reply to comment #4)
> Чем пакет bash может помочь в этой ситуации пользователям пакета zsh?
> Перенести в profile.d нельзя, zshrc вне компетенции bash.

Я ничего не понял что ты имел в виду этими бессвязными фразами.  Перечитай ещё раз bug 14641 comment 4 и заголовок баги, это будет ответом на твой вопрос.  И обясни нам, невежественным пользователям, по какой же такой выдуманной причине "Перенести в profile.d нельзя".
Comment 6 Dmitry V. Levin 2010-09-21 15:58:27 MSD
(In reply to comment #5)
> (In reply to comment #4)
> > Чем пакет bash может помочь в этой ситуации пользователям пакета zsh?
> > Перенести в profile.d нельзя, zshrc вне компетенции bash.
> 
> Я ничего не понял что ты имел в виду этими бессвязными фразами.  Перечитай ещё
> раз bug 14641 comment 4 и заголовок баги, это будет ответом на твой вопрос.

Перечитал.  Там о другом.

> И обясни нам, невежественным пользователям, по какой же такой выдуманной
> причине "Перенести в profile.d нельзя".

Семантика bashrc.d и profile.d существенным образом отличается:
$ (alias foo=bash; bash -c 'alias foo')
bash: line 0: alias: foo: не найден
Comment 7 Sir Raorn 2010-09-21 16:08:16 MSD
(In reply to comment #6)
> Семантика bashrc.d и profile.d существенным образом отличается:
> $ (alias foo=bash; bash -c 'alias foo')
> bash: line 0: alias: foo: не найден

Перечитал.  Там о другом.

Бага будет висеть в состоянии NEW до тек пор, пока не изменится эта мифическая "семантика"?
Comment 8 Dmitry V. Levin 2010-09-21 16:18:00 MSD
Перемещение /etc/bashrc.d/alias.sh в /etc/profile.d/ невозможно.
Comment 9 Michael Shigorin 2010-09-21 18:36:27 MSD
(In reply to comment #7)
> > Семантика bashrc.d и profile.d существенным образом отличается:
> Бага будет висеть в состоянии NEW до тек пор, пока не изменится эта мифическая
> "семантика"?
Она не мифическая, сталкивался -- перечитываю bash(1):

INVOCATION
[...]
       When bash is invoked as an interactive login shell, or as a  non-inter
       active  shell with the --login option, it first reads and executes com
       mands from the file /etc/profile, if that file exists.   After  reading
       that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile,
       in that order, and reads and executes commands from the first one  that
       exists  and  is  readable.  The --noprofile option may be used when the
       shell is started to inhibit this behavior.
[...]
       When  an  interactive  shell that is not a login shell is started, bash
       reads and executes commands from ~/.bashrc, if that file exists.   This
       may  be inhibited by using the --norc option.  The --rcfile file option
       will force bash to read and  execute  commands  from  file  instead  of
       ~/.bashrc.

На это накладывается:

--- /etc/skel/.bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
---

и 

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

Таким образом,
- интерактивный bash в качестве login shell проинтерпретирует при запуске
  и *profile*, и *bashrc*;
- интерактивный bash не как login shell -- только *bashrc*.

Если перенести файлик, то алиасы будут зацепляться только login shell'ом, гругря.
Comment 10 Michael Shigorin 2010-09-21 18:43:54 MSD
А ещё всё-таки предлагаю объявить в zsh нэзалэжнисть от алиасов в bash -- возможно, получится и получше наборчик выкроить (например, с df -h -x tmpfs вместо археологического упоминания supermount).

Есть такое наблюдение, что привычки у пользователей bash и zsh со временем заметно различаются...

У меня сейчас:

alias l='/bin/ls -l --color=tty'
alias sdr='screen -dr'
alias df='df -h -x nfs'
export GREP_OPTIONS='--color=auto' GREP_COLOR='1;32'
Comment 11 Michael Shigorin 2010-09-21 19:46:30 MSD
Да, и верну-ка исходное Summary да перевешу на nobody@, по факту.
Comment 12 Fr. Br. George 2012-01-20 16:33:43 MSK
Я так понимаю смысл баги, что сейчас в zsh вообще никакие zsh-специфические алиасы из коробки не хватаются? Это нехорошо. Стоит, однако, обсудить, какие они должны быть. Меня, например, alias rm='rm -i' бесит невообразимо.
Comment 13 Michael Shigorin 2012-01-21 11:58:39 MSK
(In reply to comment #12)
> Меня, например, alias rm='rm -i' бесит невообразимо.
У меня он лет десять как unalias, но это ооочень неприятный момент про ожидания.
Comment 14 Grigory Ustinov 2018-04-27 17:55:28 MSK
Прошу добавить ещё --color=auto к алиасам. Раскраска ускоряет грепанье глазами в разы.