Удаление директории
Для примера создать скелет:
Удаление директории со всеми ее файлами:
Удаление директории:
rmdir: failed to remove 'dir/': Directory not empty
Приглушить вывод ошибки:
Директория по прежнему не будет удалена, так как она не пустая. Эта опция позволяет скрипту продолжить выполнение без остановки и вывода ошибки, если наличие файлов в директории ожидаемо или не критично для дальнейшей работы скрипта.
Иногда в скриптах полезно использовать
#shell #utils
Для примера создать скелет:
$ mkdir dir/
$ dd if=/dev/zero of=dir/{a,b} bs=8000 count=1
Удаление директории со всеми ее файлами:
$ rm -r dir/
Удаление директории:
$ rmdir dir/
rmdir: failed to remove 'dir/': Directory not empty
Приглушить вывод ошибки:
$ rmdir --ignore-fail-on-non-empty dir/
Директория по прежнему не будет удалена, так как она не пустая. Эта опция позволяет скрипту продолжить выполнение без остановки и вывода ошибки, если наличие файлов в директории ожидаемо или не критично для дальнейшей работы скрипта.
Иногда в скриптах полезно использовать
rmdir, эта утилита удаляет только пустые директории.#shell #utils
trap
С помощью trap можно перехватывать/обрабатывать сигналы. Например:
Команда trap используется в оболочке для перехвата сигналов и выполнения функции или команды в ответ на эти сигналы. В данном случае функция
#shell
С помощью trap можно перехватывать/обрабатывать сигналы. Например:
func()
{
echo "This is SIGINT"
}
trap func SIGINT
Команда trap используется в оболочке для перехвата сигналов и выполнения функции или команды в ответ на эти сигналы. В данном случае функция
func будет вызвана при получении сигнала SIGINT.#shell
Как создать чистую переменную PATH?
Переменная окружения PATH определяет в каких каталогах система будет искать исполняемые файлы команд. Чтобы создать чистую переменную PATH, можно использовать команду (так же можно прописать это в
Эта команда задает новый порядок поиска команд, начиная с каталогов, содержащих программное обеспечение, установленное пользователем или системным администратором, и заканчивая стандартными системными каталогами. Такой подход позволяет лучше контролировать версии исполняемых файлов и уменьшает риск запуска нежелательных или вредоносных программ, которые могли бы находиться в неавторизованных каталогах. Установка чистого PATH может быть полезна при написании скриптов или настройке серверов, где важна безопасность и предсказуемость исполняемых команд.
#shell
Переменная окружения PATH определяет в каких каталогах система будет искать исполняемые файлы команд. Чтобы создать чистую переменную PATH, можно использовать команду (так же можно прописать это в
~/.bashrc):export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Эта команда задает новый порядок поиска команд, начиная с каталогов, содержащих программное обеспечение, установленное пользователем или системным администратором, и заканчивая стандартными системными каталогами. Такой подход позволяет лучше контролировать версии исполняемых файлов и уменьшает риск запуска нежелательных или вредоносных программ, которые могли бы находиться в неавторизованных каталогах. Установка чистого PATH может быть полезна при написании скриптов или настройке серверов, где важна безопасность и предсказуемость исполняемых команд.
#shell
——— НАВИГАЦИЯ ———
Git: #git
Жвачка: #fun
Ядро: #kernel
Разное: #misc
ПО: #software
Игры: #games
Книги: #books
Люди: #people
Сборка: #build
Утилиты: #utils
Python: #python
Теория: #theory
Debian: #debian
Новости: #news
Оболочка: #shell
Память: #memory
СПО: #opensource
Терминал: #terminal
Мои мысли: #thoughts
Безопасность: #security
Информация канала: #info
Конфигурационные файлы: #dotfiles
Кто я: https://xn--r1a.website/krxnotes/246
Откуда берется информация: https://xn--r1a.website/krxnotes/500
Поддержать канал:
Git: #git
Жвачка: #fun
Ядро: #kernel
Разное: #misc
ПО: #software
Игры: #games
Книги: #books
Люди: #people
Сборка: #build
Утилиты: #utils
Python: #python
Теория: #theory
Debian: #debian
Новости: #news
Оболочка: #shell
Память: #memory
СПО: #opensource
Терминал: #terminal
Мои мысли: #thoughts
Безопасность: #security
Информация канала: #info
Конфигурационные файлы: #dotfiles
Кто я: https://xn--r1a.website/krxnotes/246
Откуда берется информация: https://xn--r1a.website/krxnotes/500
Поддержать канал:
2202 2036 6907 4603
Спасибо, что читаете!Блокировка/автовыход из терминала/консоли
Автовыход из терминала (bash): Переменная окружения
Автоблокировка: Для автоблокировки можно использовать утилиту
Заблокировать текущую консоль:
Заблокировать все консоли:
Обе эти настройки помогут повысить безопасность, особенно в многопользовательских системах или в условиях, где доступ к терминалу должен быть ограничен в ваше отсутствие.
#shell #utils #security
Автовыход из терминала (bash): Переменная окружения
TMOUT задает таймаут в секундах для автоматического выхода из сессии bash. Сессия завершится через 60 секунд неактивности:export TMOUT=60
Автоблокировка: Для автоблокировки можно использовать утилиту
vlock. Это утилита, которая блокирует текущую виртуальную консоль, требуя ввода пароля для разблокировки. Это удобно для временной блокировки доступа к терминалу, когда вам необходимо отойти, не выходя из сессии.$ apt-get install -y vlock
Заблокировать текущую консоль:
$ vlock
Заблокировать все консоли:
$ vlock -a
Обе эти настройки помогут повысить безопасность, особенно в многопользовательских системах или в условиях, где доступ к терминалу должен быть ограничен в ваше отсутствие.
#shell #utils #security
Оболочки (Shells)
Shell - это общее название для командных интерпретаторов, которые позволяют взаимодействовать с операционной системой через командную строку. Bash (Bourne Again SHell) - это один из видов Shell, который является стандартным и наиболее распространенным в Linux-системах. Таким образом, Bash - это конкретный тип shell, но не единственный.
Покажет все доступные оболочки:
#shell
Shell - это общее название для командных интерпретаторов, которые позволяют взаимодействовать с операционной системой через командную строку. Bash (Bourne Again SHell) - это один из видов Shell, который является стандартным и наиболее распространенным в Linux-системах. Таким образом, Bash - это конкретный тип shell, но не единственный.
Покажет все доступные оболочки:
$ cat /etc/shells
#shell
Сортировка и удаление дубликатов в файле
Предположим, ваш файл содержит около 8 тысяч строк с путями, и вы не уверены, есть ли среди них дубликаты. Как можно упорядочить и очистить файл?
В файле много подобных строк:
Команда выглядит так:
#shell #utils
Предположим, ваш файл содержит около 8 тысяч строк с путями, и вы не уверены, есть ли среди них дубликаты. Как можно упорядочить и очистить файл?
В файле много подобных строк:
po/ru/man1/arch.1.po
po/ru/man1/arch.1.po
po/ru/man1/b2sum.1.po
po/ru/man1/base32.1.po
po/ru/man1/base64.1.po
po/ru/man1/basename.1.po
po/ru/man1/basename.1.po
Команда выглядит так:
$ sort paths.txt | uniq > clean-paths.txt
#shell #utils
Vim
Это не IDE в традиционном понимании, а скорее текстовый редактор. Однако благодаря своей расширяемости и поддержке множества плагинов, Vim можно настроить так, чтобы он функционировал как полноценная IDE.
Вот несколько инструментов и плагинов, которые часто используются для превращения Vim в мощную IDE:
1. fzf: Это командный инструмент для поиска файлов, который можно интегрировать с Vim для быстрого поиска и открытия файлов в проекте. Он помогает навигации по большим кодовым базам.
2. NERDTree: Плагин для управления файловой системой, который предоставляет дерево каталогов, подобное тому, что есть в других IDE. Это помогает легко перемещаться между файлами проекта.
3. vim-better-whitespace: Плагин, который подсвечивает и удаляет лишние пробелы в коде. Он помогает поддерживать чистоту и консистентность стиля кодирования, улучшая читаемость и предотвращая ошибки.
и многие другие.
Ссылка на мой .vimrc
#shell #dotfiles
Это не IDE в традиционном понимании, а скорее текстовый редактор. Однако благодаря своей расширяемости и поддержке множества плагинов, Vim можно настроить так, чтобы он функционировал как полноценная IDE.
Вот несколько инструментов и плагинов, которые часто используются для превращения Vim в мощную IDE:
1. fzf: Это командный инструмент для поиска файлов, который можно интегрировать с Vim для быстрого поиска и открытия файлов в проекте. Он помогает навигации по большим кодовым базам.
2. NERDTree: Плагин для управления файловой системой, который предоставляет дерево каталогов, подобное тому, что есть в других IDE. Это помогает легко перемещаться между файлами проекта.
3. vim-better-whitespace: Плагин, который подсвечивает и удаляет лишние пробелы в коде. Он помогает поддерживать чистоту и консистентность стиля кодирования, улучшая читаемость и предотвращая ошибки.
и многие другие.
Ссылка на мой .vimrc
#shell #dotfiles
fzf, fzy, ripgrep утилиты
Установка:
fzf (Fuzzy Finder) — это интерактивный инструмент командной строки для нечеткого поиска и фильтрации. Пример использования:
fzy — аналогичный инструмент, ориентированный на скорость и простоту, неинтерактивный, но также эффективен для фильтрации. Пример:
ripgrep (rg) — мощный и быстрый инструмент для поиска текста в файлах. Поддерживает рекурсивный поиск и регулярные выражения, игнорирует файлы, указанные в
Все три утилиты отлично дополняют рабочие процессы разработчиков, ускоряя поиск и навигацию по проектам. Часто используются в совокупности с Vim, или другими текстовыми редакторами/IDE.
#shell #utils
Установка:
$ apt-get install -y fzf fzy ripgrep
fzf (Fuzzy Finder) — это интерактивный инструмент командной строки для нечеткого поиска и фильтрации. Пример использования:
$ find . -type f | fzf
fzy — аналогичный инструмент, ориентированный на скорость и простоту, неинтерактивный, но также эффективен для фильтрации. Пример:
$ find . -type f | fzy
ripgrep (rg) — мощный и быстрый инструмент для поиска текста в файлах. Поддерживает рекурсивный поиск и регулярные выражения, игнорирует файлы, указанные в
.gitignore. Идеален для поиска текста в проектах:$ rg 'search_term'
Все три утилиты отлично дополняют рабочие процессы разработчиков, ускоряя поиск и навигацию по проектам. Часто используются в совокупности с Vim, или другими текстовыми редакторами/IDE.
#shell #utils
shellcheck
ShellCheck — это статический анализатор скриптов на языке shell (bash, sh и других). Основная цель утилиты — помочь разработчикам выявлять и исправлять ошибки, потенциальные баги и нарушения стиля в их скриптах. ShellCheck анализирует код и предоставляет рекомендации по улучшению, предупреждая о возможных проблемах, таких как:
1. Синтаксические ошибки.
2. Неинициализированные переменные.
3. Некорректное использование команд.
4. Проблемы с кавычками и экранированием.
5. Советы по улучшению читаемости и поддерживаемости кода.
Установка:
Запуск:
Использование ShellCheck помогает сделать скрипты более надежными и переносимыми. Оно особенно полезно для автоматизации процессов, где стабильность и корректность выполнения скриптов имеют критическое значение.
#utils #shell
ShellCheck — это статический анализатор скриптов на языке shell (bash, sh и других). Основная цель утилиты — помочь разработчикам выявлять и исправлять ошибки, потенциальные баги и нарушения стиля в их скриптах. ShellCheck анализирует код и предоставляет рекомендации по улучшению, предупреждая о возможных проблемах, таких как:
1. Синтаксические ошибки.
2. Неинициализированные переменные.
3. Некорректное использование команд.
4. Проблемы с кавычками и экранированием.
5. Советы по улучшению читаемости и поддерживаемости кода.
Установка:
$ apt install shellcheck
Запуск:
$ shellcheck ./script.sh
Использование ShellCheck помогает сделать скрипты более надежными и переносимыми. Оно особенно полезно для автоматизации процессов, где стабильность и корректность выполнения скриптов имеют критическое значение.
#utils #shell