bash | Как настроить? - ageomash.ru https://ageomash.ru Блог про настройку компьютеров, роутеров, мобильных устройств Thu, 28 Nov 2024 10:38:33 +0000 ru-RU hourly 1 https://wordpress.org/?v=6.7.1 https://ageomash.ru/wp-content/uploads/2016/03/cropped-chip-32x32.png bash | Как настроить? - ageomash.ru https://ageomash.ru 32 32 История команд Bash — полезности для администратора - ageomash.ru https://ageomash.ru/istoriya-komand-bash/ https://ageomash.ru/istoriya-komand-bash/#respond Thu, 28 Nov 2024 10:38:33 +0000 https://ageomash.ru/?p=11751 В этой статье мы поговорим о команде history, которая позволяет просматривать список ранее выполненных команд, искать по списку и манипулировать файлом истории. Запустить её на выполнение — половина дела. Если Вы — системный администратор, то эти несколько настроек точно пригодятся для управления историей команд в Bash и значительно повысят удобство и эффективность. Погнали! Записываем введённые ... Читать далее

The post История команд Bash — полезности для администратора first appeared on Как настроить?.]]>
История команд Bash

В этой статье мы поговорим о команде history, которая позволяет просматривать список ранее выполненных команд, искать по списку и манипулировать файлом истории. Запустить её на выполнение — половина дела. Если Вы — системный администратор, то эти несколько настроек точно пригодятся для управления историей команд в Bash и значительно повысят удобство и эффективность. Погнали!

Записываем введённые команды сразу в файл:

PROMPT_COMMAND='history -a'

Добавляем метку времени к каждой команде. Используем формат: ГГГГ-ММ-ДД ЧЧ:ММ:СС:

export HISTTIMEFORMAT='%F %T '

По умолчанию в Bash хранится всего 500 последних команд.  Давайте увеличим этот лимит до 10 000:

export HISTSIZE=10000

Исключим, при необходимости, простейшие команды вроде ls или pwd. Вот так:

export HISTIGNORE="ls:pwd:history:w:htop:top"

Будьте осторожны и внимательны с HISTIGNORE. К примеру, если команда top была исключена из истории,  то после перезагрузки (командой reboot) вы не сможете повторить её, нажав стрелку вверх. А вот команда reboot будет и можно случайно повторно перезагрузиться.

Наверное каждый пользователь Linux знает, что если перед вводом команды поставить пробел — она не попадёт в историю:

export HISTCONTROL=ignorespace

Прочие аргументы опции HISTCONTROL:
ignoredups — не сохранять строки, совпадающие с последней выполненной командой
ignoreboth — использовать обе опции ‘ignorespace’ и ‘ignoredups’
erasedups — удалять ВСЕ дубликаты команд с истории

После того, как Вы внесли настройки в ~/.bashrc — примените их:

source ~/.bashrc

Во время поиска в истории Вы можете использовать фильтрацию через «grep» или Ctrl+r:

history | grep 'apt install'
The post История команд Bash — полезности для администратора first appeared on Как настроить?.]]>
https://ageomash.ru/istoriya-komand-bash/feed/ 0
Пошаговая отладка Bash-скриптов - ageomash.ru https://ageomash.ru/poshagovaya-otladka-bash-skriptov/ https://ageomash.ru/poshagovaya-otladka-bash-skriptov/#respond Thu, 25 Jul 2024 13:44:55 +0000 https://ageomash.ru/?p=11710 Полезный лайфхак для тех, часто пишет свои bash-скрипты и, особенно, кто только начинает это делать. Ведь если скрипт не работает, то порой сложно определить на каком шаге происходит сбой. Особенно если код скрипта объёмный, то совсем труба. И вот тут есть волшебная строчка! Её нужно добавить после #!/bin/bash и тогда bash-скрипт можно будет отлаживать по ... Читать далее

The post Пошаговая отладка Bash-скриптов first appeared on Как настроить?.]]>
отладка Bash-скрипта

Полезный лайфхак для тех, часто пишет свои bash-скрипты и, особенно, кто только начинает это делать. Ведь если скрипт не работает, то порой сложно определить на каком шаге происходит сбой. Особенно если код скрипта объёмный, то совсем труба. И вот тут есть волшебная строчка! Её нужно добавить после #!/bin/bash и тогда bash-скрипт можно будет отлаживать по шагам.

Вот пример листинга простейшего bash-скрипта с пошаговой отладкой:

#!/bin/bash
trap ‘echo «# $BASH_COMMAND»;read’ DEBUG
echo line1
echo line2
echo line3

Используемые директивы:

  • Команда trap умеет перехватывать разные сигналы. В нашем примере она перехватывает сигнал DEBUG, посылаемый перед выполнением команды.
  • Команда read умеет ожидать с клавиатуры. У нас это нужно только для того, чтобы отловить нажатие клавиши «Enter»(Ввод) или сочетания Ctrl+C.
  • Переменная окружения $BASH_COMMAND — используется внутри обработчика команды trap.

Процесс отладки скрипта:

Запускаем скрипт. Перед выполнением каждой команды выведено то, что будет исполняться, после чего интерпретатор начинает ожидать нажатия клавиши «Enter»(Ввод).

Если мы приходим к выводу, что на каком-то этапе что-то пошло не по сценарию и выполняется не так, как нужно — нажимаем Ctrl+C и таким образом выходим из отладки.

The post Пошаговая отладка Bash-скриптов first appeared on Как настроить?.]]>
https://ageomash.ru/poshagovaya-otladka-bash-skriptov/feed/ 0
Алиасы в Linux - ageomash.ru https://ageomash.ru/alias/ https://ageomash.ru/alias/#respond Thu, 20 Sep 2012 05:24:31 +0000 http://ageomash.ru/?p=23 Работа в консоли операционных систем семейства Linux сопряжена с частым вводом одних и тех же команд. Само собой, каждый пользователь со временем задумывается как бы оптимизировать свою работу. Для этой цели и существуют алиасы — aliases. Команда alias — это встроенная директива интерпретаторов командной строки (bash, zsh и пр.), позволяющая определять имена для команд, и ... Читать далее

The post Алиасы в Linux first appeared on Как настроить?.]]>

Работа в консоли операционных систем семейства Linux сопряжена с частым вводом одних и тех же команд. Само собой, каждый пользователь со временем задумывается как бы оптимизировать свою работу. Для этой цели и существуют алиасы — aliases. Команда alias — это встроенная директива интерпретаторов командной строки (bash, zsh и пр.), позволяющая определять имена для команд, и их последовательностей. Т.е. алиас даёт возможность не набирать часто используемую команду с большим количеством параметров, а просто сделать для него как бы псевдоним(или ярлык) и в дальнейшем набирать уже этот псевдоним.
Например для вот такой команды:
$ find . | grep *.mp3
Можно сделать вот такой алиас:
$ alias fimp3=»find . | grep *.mp3″
И далее при вводе команды
$ fimp3
будет выполняться команда:
find . | grep *.mp3
И таких сокращений можно делать сколько угодно.
Если же Вам надо отменить алиас — вводим команду:
$ unalias fimp3
Одна проблема, после перезагрузки операционной системы алиасы надо будет вводить заново. Но и тут есть выход.
Все псевдонимы для интерпретатора bash хранятся в /home/user/.bashrc или /home/user/.bash_aliases в зависимости от системы. Если у вас zsh, то там алиасы будут в файле ~/.zshrc

Переходим в пользовательский каталог /home/user
$ cd ~/
Открываем файл .bashrc и вводим туда все нужные нам псевдонимы:
$ vi /home/user.bashrc
Перезагружаемся. Теперь алиасы будут работать постоянно.

Если Вы работаете в нескольких командных интерпретаторах, то Вам придется либо для каждого вбивать алиасы, либо сделать так:
создаем файли ~/.alias:
$ touch ~/.alias
Вносим в него все наши алиасы. Затем прописываем его в ~/.bashrc, ~/.zshrc и т.п. такой строкой:
. $HOME/.alias #
Между точкой и $ обязательно должен быть пробел.
Сохраняем файл и перезагружаемся.
После этого один и тот же набор илиасов будет доступен во всех командных оболочках.

The post Алиасы в Linux first appeared on Как настроить?.]]>
https://ageomash.ru/alias/feed/ 0