Stylesheet conf/userstyle.css not found, please contact the developer of "dokuwiki_2024" template.
linux:terminal:terminal_tnt_bash
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
linux:terminal:terminal_tnt_bash [2021/10/26 02:36] – dx | linux:terminal:terminal_tnt_bash [2021/11/22 15:17] (текущий) – dx | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Трюки в консоли: | ||
+ | {{mdi> | ||
+ | |||
+ | {{tag> | ||
+ | |||
+ | ==== /bin/sh^M: bad interpreter ==== | ||
+ | |||
+ | Ошибка **/ | ||
+ | |||
+ | TL;DR | ||
+ | |||
+ | <code bash>sed -i -e ' | ||
+ | |||
+ | или | ||
+ | |||
+ | <code bash> | ||
+ | apt install dos2unix | ||
+ | dos2unix prikol.sh | ||
+ | </ | ||
+ | |||
+ | К нам в Linux логово прокрался ужасный символ из мира Шиндоус - **^M** — символ возврата каретки | ||
+ | |||
+ | Из [[https:// | ||
+ | |||
+ | CR и LF это управляющие символы [[https:// | ||
+ | |||
+ | * CR = **Возврат каретки (Carriage Return)** ('' | ||
+ | * LF = **Перевод строки (Line Feed)** ('' | ||
+ | |||
+ | CR, за которым сразу следует LF (CRLF, '' | ||
+ | |||
+ | А еще есть утилита **[[https:// | ||
+ | |||
+ | <code bash>cat script.sh | tr -d ' | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | Этот протокол восходит к временам телетайпов. | ||
+ | |||
+ | CR - это аббревиатура для " | ||
+ | |||
+ | Если вы посмотрите на большинство интернет протоколов, | ||
+ | |||
+ | Unix принял в качестве разделителя строк простой LF. Если вы посмотрите на [[http:// | ||
+ | |||
+ | < | ||
+ | каждая | ||
+ | строка | ||
+ | начинается | ||
+ | </ | ||
+ | |||
+ | там, где закончилась предыдущая. Так что даже Unix может требовать CR+LF для разделения строк. Неявный CR перед LF - это изобретение Unix, вероятно с целью экономии одного байта на строчку. | ||
+ | |||
+ | Unix является " | ||
+ | |||
+ | Также язык C предложил термин " | ||
+ | |||
+ | ===== Размер истории bash и другие настройки ===== | ||
+ | |||
+ | <wrap tip> | ||
+ | |||
+ | <wrap tip> | ||
+ | |||
+ | Добавляем в '' | ||
+ | |||
+ | <code bash> | ||
+ | # вывод даты и времени | ||
+ | export HISTTIMEFORMAT=" | ||
+ | |||
+ | # количество команд, | ||
+ | export HISTSIZE=10000 | ||
+ | |||
+ | # количество строк, сохраняемых в истории, | ||
+ | export HISTFILESIZE=10000 | ||
+ | |||
+ | # дополнять историю, | ||
+ | shopt -s histappend | ||
+ | |||
+ | # все строки многострочной команды рассматриваются, | ||
+ | shopt -s cmdhist | ||
+ | |||
+ | # записывать историю сразу после ввода команды | ||
+ | PROMPT_COMMAND=" | ||
+ | | ||
+ | # ignorespace - не сохранять строки начинающиеся с пробела | ||
+ | # ignoredups | ||
+ | # ignoreboth | ||
+ | # erasedups | ||
+ | # можно комбинировать: | ||
+ | # export HISTCONTROL=ignorespace: | ||
+ | export HISTCONTROL= ignoreboth | ||
+ | |||
+ | # не сохранять команды top, history, ping | ||
+ | export HISTIGNORE=" | ||
+ | |||
+ | # кастомный файл истории команд | ||
+ | export HISTFILE=~/ | ||
+ | </ | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | ===== Добавить время в history ===== | ||
+ | |||
+ | Добавляем в '' | ||
+ | |||
+ | **$ export HISTTIMEFORMAT=" | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | или | ||
+ | |||
+ | **export HISTTIMEFORMAT=" | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | ===== Debug/ | ||
+ | |||
+ | < | ||
+ | |||
+ | ===== Статистика популярности использования команд на основании history ===== | ||
+ | |||
+ | < | ||
+ | history|awk ' | ||
+ | </ | ||
+ | |||
+ | ===== Не сохранять историю в bash ===== | ||
+ | |||
+ | Как вводить команды и быть увереным, | ||
+ | |||
+ | Просто добавь < | ||
+ | |||
+ | < | ||
+ | [space]ls -la /home | ||
+ | </ | ||
+ | |||
+ | Выйти из bash без сохранения истории и оставить предыдущие команды в истории нетронутыми | ||
+ | |||
+ | < | ||
+ | |||
+ | Полностью удалить историю bash и выйти | ||
+ | |||
+ | < | ||
+ | |||
+ | ===== Не сохранять историю в bash ЧАСТЬ 2 ===== | ||
+ | |||
+ | Как **полностью** удалить историю bash_history | ||
+ | |||
+ | < | ||
+ | |||
+ | или | ||
+ | |||
+ | < | ||
+ | |||
+ | ===== Как вывести полную дату для команды last ===== | ||
+ | |||
+ | < | ||
+ | |||
+ | Ключ '' | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | === Как очистить историю команд в bash === | ||
+ | |||
+ | via [[https:// | ||
+ | |||
+ | **Полностью удалить историю Bash** | ||
+ | |||
+ | **-c** - Очистить файл истории\\ | ||
+ | **-w** - Внести команды текущей сессии в файл с историей | ||
+ | |||
+ | < | ||
+ | |||
+ | **Удалить определенную строку из истории Bash** | ||
+ | |||
+ | **d** - Удалить строку с указанным номером из истории | ||
+ | |||
+ | < | ||
+ | |||
+ | **Очистить историю команд текущей сессии** | ||
+ | |||
+ | **-r** - Прочитать файл с текущие историей и добавить его содержимое к списку истории команд | ||
+ | |||
+ | < | ||
+ | |||
+ | **Не сохранять команду в истории Bash** | ||
+ | |||
+ | Выполнить команду не занося ее в историю Bash: | ||
+ | |||
+ | < |