Linux Skill - Освой Linux c нуля до DevOps
10.8K subscribers
60 photos
76 videos
439 links
Освой Linux c нуля до DevOps
Подробный гайд по Linux и море других уроков для системных администраторов

📩 По всем вопросам: @chorapov

РКН https://vk.cc/cMUwm4
Download Telegram
🔍 Самый популярный вопрос по Linux на StackOverflow: 11,7 миллионов просмотров!

Вопрос: Как найти все файлы, содержащие определенный текст (строку) на Linux?

Если ты когда-либо задавался вопросом, как найти все файлы, содержащие определенный текст на Linux, то вот решение, которое стало невероятно популярным на StackOverflow:


grep -rnw '/path/to/somewhere/' -e 'pattern'


Объяснение параметров:
- -r или -R — рекурсивный поиск.
- -n — вывод номера строки.
- -w — поиск точного совпадения слова.
- -l — вывод только имени файла, содержащего совпадение.
- -e — шаблон, используемый для поиска.

Дополнительные флаги для более эффективного поиска:

1. Поиск только в файлах с расширениями .c или .h:

grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"


2. Исключение файлов с расширением .o:

grep --exclude=\*.o -rnw '/path/to/somewhere/' -e "pattern"


3. Исключение директорий dir1/, dir2/ и всех, соответствующих *.dst/:

grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/search/' -e "pattern"


Эти команды помогут тебе эффективно искать нужные файлы и исключать ненужные. Для получения дополнительных опций, ознакомься с man grep.

Советы от сообщества:
- Используй --exclude, чтобы исключить файлы, например: grep -rnw --exclude=*.o 'directory' -e "pattern".
- -r и -R могут работать по-разному в зависимости от реализации grep.
- Кавычки в командах важны, особенно для новичков.
- Добавь -I, чтобы пропустить все бинарные файлы.
- Для более широкого поиска используй -rni для игнорирования регистра.

Эти советы помогут тебе стать мастером поиска в Linux! Делись своими успехами и задавай вопросы в комментариях. 🚀

Ветка: https://stackoverflow.com/questions/16956810/find-all-files-containing-a-specific-text-string-on-linux

📩 Завтра: 🚀 Как использовать Ansible для автоматизации установки и настройки веб-сервера Apache под Linux
Включи 🔔 чтобы не пропустить!
________________

Дополнительный материал:
🧠 - Защита данных в Linux: Как обойти ограничения файловой системы
🧠 - Все, что вам нужно знать о команде ar в Linux
🧠 - SELinux: От Секретного Проекта до Корпоративного Стража


tags: #linux #grep #search #tips #stackoverflow @LinuxSkill
👍18🔥6
🔍 Как рекурсивно найти все файлы в текущей и поддиректориях с использованием шаблонов?

Если ты ищешь способ найти все файлы, соответствующие определенному шаблону, в текущей директории и всех поддиректориях, используй команду find:


find . -name "foo*"


Объяснение:
- find требует начальную точку поиска, поэтому . (точка) указывает на текущую директорию.
- "foo*" — это шаблон, который указывает find искать все файлы, начинающиеся с "foo".

Дополнительные возможности:
- Для поиска без учета регистра используй:

find . -iname "foo*"

- Если ты не хочешь получать уведомления об ошибках доступа к директориям, используй:

find . -name "foo*" 2>/dev/null

- Чтобы искать только файлы, исключая директории, добавь -type f:

find . -name "foo*" -type f


Советы:
- Обязательно используй кавычки вокруг шаблона, чтобы избежать его расширения оболочкой перед передачей в find.
- Если у тебя есть символические ссылки, и ты хочешь их обрабатывать, добавь опцию -L.

Ветка: https://stackoverflow.com/questions/5905054/how-can-i-recursively-find-all-files-in-current-and-subfolders-based-on-wildcard

📩 Завтра: Darling: Запускай MacOS приложения на Linux как профи!
Включи 🔔 чтобы не пропустить!
________________

Дополнительный материал:
🧠 - Linux Deep Dive: Разбираемся с UID и группами
🧠 - Как использовать команду basename для упрощения ваших скриптов Bash
🧠 - От простого до грандиозного: Путешествие Kubernetes в мире контейнеризации

tags: #linux #find #search #tips #stackoverflow @LinuxSkill
👍19🔥1
🛠️ Как удалить экспортированную переменную окружения в Linux?

Если тебе нужно удалить экспортированную переменную окружения, команда unset — это то, что тебе нужно:

unset GNUPLOT_DRIVER_DIR


Важно знать:
- Эта команда удаляет переменную только для текущей сессии терминала. При открытии нового окна терминала переменные загружаются из таких файлов, как ~/.bashrc или ~/.profile.
- Если переменная автоматически устанавливается при каждом запуске терминала, попробуй найти её в скрытых файлах домашней директории. Используй команду:
  grep -r <имя_переменной> ~

Это может занять время, если у тебя много файлов.

Как сохранить значение переменной, но убрать экспорт:
- В bash можно использовать:
typescript
  declare +x MYVAR

или

  export -n MYVAR


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

Ветка: https://stackoverflow.com/questions/6877727/how-do-i-delete-an-exported-environment-variable

📩 Завтра: Твой незаменимый помощник: Скрипт для мониторинга Linux!
Включи 🔔 чтобы не пропустить!
____________________

Дополнительный материал:
🧠 - Улучшаем Linux Skills: Мастерство символического представления разрешений с chmod
🧠 - Знаете ли вы, как узнать архитектуру вашей машины в Linux
🧠 - Открытие Ansible: Как простой инструмент стал гигантом управления конфигурациями

#stackoverflow @LinuxSkill #Linux #EnvironmentVariables #Bash #Tips #Automation
👍13