Автор Тема: Почему не выводится история bash после перезагрузки  (Прочитано 3272 раз)

Оффлайн foxadmin

  • Участник
  • *
  • Сообщений: 40
Кстати, я бы старое не удалял. Лучше держать в системе более одного ядра на всякий случай.

А, поздно - уже прибил!
Теперь разбираюсь почему не выводится история bash после перезагрузки.
Т.е. команда history работает не так как мне надо, но это уже будет другая тема и не сегодня.
« Последнее редактирование: 23.05.2016 07:51:15 от ruslandh »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 160
    • Домашняя страница
Потому что bash скидывает кэш команд при штатном завершении только. В отличие от zsh.
Андрей Черепанов (cas@)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Теперь разбираюсь почему не выводится история bash после перезагрузки.
Т.е. команда history работает не так как мне надо, но это уже будет другая тема и не сегодня.

https://www.opennet.ru/base/sys/bash_tips.txt.html
Цитировать
1. Потеря комманд в .history

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

   bash  по  умолчанию  пишет в историю набранные за сеанс команды только
   при  своем  закрытии  (перед  самоликвидацией).  Поэтому  при открытии
   нового  терминала  в другой вкладке вы не увидите только что набранные
   команды из первой вкладки - они еще не записаны в хистори.

   К  тому  же  закрыв  первый  терминал,  а потом второй вы не найдете в
   истории  команд  набранных в первом терминале. Потому что по умолчанию
   bash не дописывает файл .history, а переписывает.

   Исправить  ситуацию  можно,  дописав в конфигурационный файл ~/.bashrc
   пару строк
        shopt -s histappend
        PROMPT_COMMAND='history -a'

   Теперь  каждая  введенная  вами команда будет писаться в историю сразу
   же. Не бойтесь - дырку на жестком месте такая конфигурация не протрет.
   Не  так  уж  часто  вы  команды  в  баше набираете. :) Да и слава богу
   кеширование дисков пока еще рулит.

Оффлайн foxadmin

  • Участник
  • *
  • Сообщений: 40
Да, я сравнил файлы .bashrc из ALT-Linux и Debian.
Плюс man bash и в итоге, помимо вышеупомянутых строк, я ещё в альтовский .bashrc вписал несколько переменных:
HISTCONTROL=ignoreboth
HISTSIZE=1000
HISTFILESIZE=2000
Добавил несколько альясов и раскраску вывода.
Всё заработало так как и хотелось.
Решено!

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 160
    • Домашняя страница
А можете полученный файл приложить? Полезное постараемся в параметры по умолчанию перенести.
Андрей Черепанов (cas@)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Да, я сравнил файлы .bashrc из ALT-Linux и Debian.
Плюс man bash и в итоге, помимо вышеупомянутых строк, я ещё в альтовский .bashrc вписал несколько переменных:
HISTCONTROL=ignoreboth
HISTSIZE=1000
HISTFILESIZE=2000
Добавил несколько альясов и раскраску вывода.
Всё заработало так как и хотелось.
Решено!

В .bashrc можно ещё добавить:
export HISTCONTROL='ignorespace:ignoredups:erasedups'

HISTCONTROL='ignorespace:ignoredups:erasedups'
erasedups - удалять дубликаты команд из истории терминальной сессии
ignoredups - игнорировать дубликаты команд в истории терминальной сессии
ignorespace - не сохранять в историю команд, команды начинающиеся с пробела

Последнее на случай, если не надо чтобы штучно сохранялось в истории то, что очень нежелательно.

Да, присоединюсь к Skull, - файлик таки приведите, пусть бы bash-удобняшки в альтах были дефолтом.
« Последнее редактирование: 23.05.2016 16:42:59 от Speccyfighter »

Оффлайн foxadmin

  • Участник
  • *
  • Сообщений: 40
Вот такой у меня .bashrc у непривилегированного пользователя
# .bashrc

# User specific aliases and functions

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

export PATH="/home/$USER/bin:/usr/libexec/lightdm:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/X11R6/bin:/sbin:/usr/sbin";

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# Цветной вывод ls с обозначениями файлов и каталогов
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls -CF --color=auto'
    alias dir='dir --color=auto'
    alias vdir='vdir --color=auto'

fi

alias ll='ls -lh'
alias la='ls -lah'
alias l='ls -CF'

alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'

export GREP_OPTIONS="--color=auto"

alias ping='ping -c5'

# Красим приглашение
if [ $(whoami) != "root" ]; then
    PS1="\[\033[33;1m\]\u\[\033[34m\]@\[\033[33;1m\]\h:\[\033[34m\]\w/$ \[\033[32m\]"
else
PS1="\[\033[33;1m\]\u\[\033[34m\]@\[\033[33;1m\]\h:\[\033[31m\]\w/# \[\033[32m\]"
fi

PS2="\[\e[35m\]> \[\e[32m\]"

# Красим man
export LESS_TERMCAP_mb=$'\033[01;31m'
export LESS_TERMCAP_md=$'\033[01;31m'
export LESS_TERMCAP_me=$'\033[0m'
export LESS_TERMCAP_se=$'\033[0m'
export LESS_TERMCAP_so=$'\033[01;44;33m'
export LESS_TERMCAP_ue=$'\033[0m'
export LESS_TERMCAP_us=$'\033[01;32m'
Однако, расцветка вывода консоли для чёрного фона!
С другим фоном может выглядеть ужасно.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 160
    • Домашняя страница
Андрей Черепанов (cas@)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 160
    • Домашняя страница
Если не делать яркой, то будет выглядеть нормально и на светлом фоне.
Андрей Черепанов (cas@)

Оффлайн foxadmin

  • Участник
  • *
  • Сообщений: 40
У root-а в .bashrc пришлось включить альяс
alias caja='caja -n'
Бывает от root, точнее после переключения пользователя (su) с парметром "-", с помощью caja просматриваю каталоги (не хорошо конечно).
И после закрытия caja и mate-terminal начинается бесконечный запуск x-caja-desktop.
Работать становится невозможно.
Альяс решает этот вопрос.
« Последнее редактирование: 02.06.2016 17:33:44 от foxadmin »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 160
    • Домашняя страница
Завтра в p7/p8/Sisyphus появится пакет color-prompt-and-man, после установки которого в консоли раскрашивается приглашение оболочки и man-страницы, просматриваемые в консоли.
Андрей Черепанов (cas@)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 160
    • Домашняя страница
Снимки экрана:
Андрей Черепанов (cas@)