Совет дня по Linux
Расширение скобок
Чтобы использовать расширение скобок, укажите начало и конец последовательности внутри фигурных скобок
Это выведет числа от 1 до 5.
Также работает с буквами:
Примеры практического применения расширения скобок:
Создание файлов с последовательными именами:
Использование диапазонов в циклах:
Создание нескольких каталогов за один вызов:
Перемещение группы файлов:
В следующий раз, когда нужно вывести последовательность — не набирайте всё вручную. Используйте расширение скобок и сэкономьте время и усилия.
Расширение скобок
{} — одна из самых недооценённых, но мощных возможностей оболочек Linux. Оно позволяет удобно и быстро генерировать произвольные строки или числовые последовательности без ручного ввода.Чтобы использовать расширение скобок, укажите начало и конец последовательности внутри фигурных скобок
{}, разделённых двумя точками .. . Например:
$ echo {1..5}
1 2 3 4 5
Это выведет числа от 1 до 5.
Также работает с буквами:
$ echo {a..e}
a b c d e
Примеры практического применения расширения скобок:
Создание файлов с последовательными именами:
$ touch report-{1..12}.txt
Использование диапазонов в циклах:
$ for i in {1..10}; do ...; done
Создание нескольких каталогов за один вызов:
$ mkdir backup-{1..4}
Перемещение группы файлов:
$ mv data-{1..5}.txt /path/to/destination/
В следующий раз, когда нужно вывести последовательность — не набирайте всё вручную. Используйте расширение скобок и сэкономьте время и усилия.
👍24❤4😁2
В чем разница между объявлением переменной export VAR="VALUE" и VAR="VALUE" в bash?
В
1.
- Это обычное объявление переменной в текущей оболочке (сессии).
- Переменная
- Например, если вы запустите новую команду или скрипт из текущей оболочки,
2.
- Команда
- То есть,
- Это полезно, когда необходимо передать значение переменной в другие программы или скрипты, запущенные из текущей оболочки.
Для примера
Таким образом,
В
bash (и других оболочках Unix) разница между командами export VAR="VALUE" и VAR="VALUE" связана с областью видимости переменной:1.
VAR="VALUE": - Это обычное объявление переменной в текущей оболочке (сессии).
- Переменная
VAR будет доступна только внутри текущей сессии, и не будет передаваться дочерним процессам, запущенным этой сессией.- Например, если вы запустите новую команду или скрипт из текущей оболочки,
VAR не будет доступна в этом дочернем процессе.2.
export VAR="VALUE": - Команда
export делает переменную VAR доступной для всех дочерних процессов текущей оболочки.- То есть,
VAR будет установлена и доступна не только в текущей сессии, но и во всех процессах, запущенных из этой сессии.- Это полезно, когда необходимо передать значение переменной в другие программы или скрипты, запущенные из текущей оболочки.
Для примера
# Присвоение переменной без export
VAR="Hello"
bash -c 'echo $VAR' # Ничего не выведет, так как VAR не экспортирована
# Присвоение переменной с export
export VAR="Hello"
bash -c 'echo $VAR' # Выведет "Hello", так как VAR экспортирована
Таким образом,
export используется для того, чтобы переменная была доступна в дочерних процессах, тогда как обычное присвоение без export ограничивает переменную только текущей сессией.👍21❤6👎2
This media is not supported in your browser
VIEW IN TELEGRAM
Быстрый совет по Linux
В терминале сочетание
Идеально подходит для повторного использования длинных путей к файлам или имён файлов без необходимости набирать их заново. Если нажимать
Это позволяет быстро и точно извлекать и переиспользовать ранее введённые данные, экономя время и снижая количество ошибок
В терминале сочетание
Alt + . – это небольшой, но очень мощный шорткат для повышения продуктивности. Оно вставляет последний аргумент предыдущей команды в текущую позицию курсора.Идеально подходит для повторного использования длинных путей к файлам или имён файлов без необходимости набирать их заново. Если нажимать
Alt + . несколько раз подряд, можно перебирать аргументы из более ранних команд в истории, двигаясь назад. Это позволяет быстро и точно извлекать и переиспользовать ранее введённые данные, экономя время и снижая количество ошибок
👍35❤7
Основы компьютерных сетей
Тема №1. Основные сетевые термины и сетевые модели
Тема №2. Протоколы верхнего уровня
Тема №3. Протоколы нижних уровней (транспортного, сетевого и канального)
Тема №4. Сетевые устройства и виды применяемых кабелей
Тема №5. Понятие IP адресации, масок подсетей и их расчет
Тема №6. Понятие VLAN, Trunk и протоколы VTP и DTP
Тема №7. Протокол связующего дерева: STP
Тема №8. Протокол агрегирования каналов: Etherchannel
Тема №9. Маршрутизация: статическая и динамическая на примере RIP, OSPF и EIGRP
Тема №1. Основные сетевые термины и сетевые модели
Тема №2. Протоколы верхнего уровня
Тема №3. Протоколы нижних уровней (транспортного, сетевого и канального)
Тема №4. Сетевые устройства и виды применяемых кабелей
Тема №5. Понятие IP адресации, масок подсетей и их расчет
Тема №6. Понятие VLAN, Trunk и протоколы VTP и DTP
Тема №7. Протокол связующего дерева: STP
Тема №8. Протокол агрегирования каналов: Etherchannel
Тема №9. Маршрутизация: статическая и динамическая на примере RIP, OSPF и EIGRP
🔥18👍10
• https://t.me/sysadminof Книги для админов, полезные материалы
• https://t.me/i_odmin Все для системного администратора
• https://t.me/i_odmin_book Библиотека Системного Администратора
• https://t.me/i_odmin_chat Чат системных администраторов
• https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
• https://t.me/bash_srv Bash Советы
• https://t.me/win_sysadmin Системный Администратор Windows
• https://t.me/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
• https://t.me/linux_odmin Linux: Системный администратор
• https://t.me/devops_star DevOps Star (Звезда Девопса)
• https://t.me/i_linux Системный администратор
• https://t.me/linuxchmod Linux
• https://t.me/sys_adminos Системный Администратор
• https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
• https://t.me/sysadminoff Новости Линукс Linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
Перевод статей из серии «Кунг-фу стиля Linux»:
— Удобная работа с файлами по SSH
— Мониторинг дисковой подсистемы
— Глобальный поиск и замена строк с помощью ripgrep
— Упрощение работы с awk
— Наблюдение за файловой системой
— Наблюдение за файлами
— Удобный доступ к справке при работе с bash
— Великая сила make
— Устранение неполадок в работе incron
— Расшаривание терминала в браузере
— Синхронизация настроек
— Бесплатный VPN по SSH
— Превращение веб-приложений в полноценные программы
— Утилита marker и меню для командной строки
— sudo и поворот двух ключей
— Программное управление окнами
— Организация работы программ после выхода из системы
— Регулярные выражения
— Запуск команд
— Разбираемся с последовательными портами
— Базы данных — это файловые системы нового уровня
— О повторении кое-каких событий сетевой истории
— PDF для пингвинов
— Делаем все и сразу
— Файловые системы пользовательского пространства теперь доступны и в Windows
— Делиться — это плохо
— Автоматическое генерирование заголовочных файлов
— Простые конвейеры
— Удобная работа с файлами по SSH
— Мониторинг дисковой подсистемы
— Глобальный поиск и замена строк с помощью ripgrep
— Упрощение работы с awk
— Наблюдение за файловой системой
— Наблюдение за файлами
— Удобный доступ к справке при работе с bash
— Великая сила make
— Устранение неполадок в работе incron
— Расшаривание терминала в браузере
— Синхронизация настроек
— Бесплатный VPN по SSH
— Превращение веб-приложений в полноценные программы
— Утилита marker и меню для командной строки
— sudo и поворот двух ключей
— Программное управление окнами
— Организация работы программ после выхода из системы
— Регулярные выражения
— Запуск команд
— Разбираемся с последовательными портами
— Базы данных — это файловые системы нового уровня
— О повторении кое-каких событий сетевой истории
— PDF для пингвинов
— Делаем все и сразу
— Файловые системы пользовательского пространства теперь доступны и в Windows
— Делиться — это плохо
— Автоматическое генерирование заголовочных файлов
— Простые конвейеры
🔥12👍7😁1
🚀 Подборка полезных IT каналов в Max
Системное администрирование, DevOps 📌
https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных
Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков
Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов
Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼💻👩💻
Шутки программистов 📌
https://max.ru/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free
Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров
Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике
Вакансии 📌
https://max.ru/progjob Вакансии в IT
Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных
Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
Системное администрирование, DevOps 📌
https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных
Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков
Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов
Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼💻👩💻
Шутки программистов 📌
https://max.ru/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free
Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров
Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике
Вакансии 📌
https://max.ru/progjob Вакансии в IT
Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных
Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
MAX
Системный Администратор | Sysadmin Windows & Linux Server. …
Купить рекламу: https://telega.in/m/i_odmin
Блог практикующего админа. Настройка Windows Server, Active Directory (AD), GPO и терминальных серверов (RDP). Раб…
Блог практикующего админа. Настройка Windows Server, Active Directory (AD), GPO и терминальных серверов (RDP). Раб…
💩27👎8🤬7❤2👍2
Совет для Linux💡
Получайте уведомления, когда ваши команды в терминале завершатся!
Замените
Получайте уведомления, когда ваши команды в терминале завершатся!
$ sudo apt update; notify-send "Обновление завершено" "Обновления получены"
Замените
apt update на любую команду, выполнение которой займет время. Не забудьте сначала установить inotify-tools:
$ sudo apt install inotify-tools
👍21❤1
Cамые нужные команд SSH
Запускай команды быстро
Чтобы выполнить всего одну удаленную команду, совсем не обязательно подключаться к SSH, вводить команду, а затем отключаться. Можно сделать это сразу. Например, так можно посмотреть заполненность ФС удаленной машины:
А так — перезагрузить ее:
Составляй списки команд и запускай их разом
Если у тебя есть целый список команд, которые следует выполнить, их можно записать в файл и скормить этот файл SSH:
Редактируй удаленные файлы локальным редактором
Чтобы отредактировать файл на удаленной машине, не требуется заходить на нее и использовать консольный редактор. На самом деле файл можно открыть в твоем любимом текстовом редакторе на локальной машине (gvim заменяем на свой редактор):
Копируй содержимое удаленного файла в буфер обмена
Если необходимо скопировать содержимое удаленного файла или вывод команды в буфер обмена, не обязательно выводить его на экран или открывать в текстовом редакторе и копировать вручную. Можно использовать следующую команду:
А так можно скопировать вывод команды:
Сравнивай удаленный и локальный файл без копирования
Похожий прием можно использовать для сравнения двух файлов:
Работай с удаленными файлами с помощью локального файлового менеджера
Не всегда удобно работать с большим количеством файлов с помощью консольных команд или mc, запущенного на удаленной машине. Но всегда можно подключить любой каталог удаленной машины как сетевой диск. Для этого достаточно установить sshfs:
Создать каталог для подключения «сетевого диска»:
И подключить его:
Теперь все файлы удаленного каталога /home/user будут видны в каталоге ~/remote_files/ и с ними можно работать, как с обычными.
Копируй ключи быстро
Хоть и копирование публичного ключа на удаленный сервер — задача простая, но она требует выполнения нескольких действий вручную. Если тебя это напpягает, скопировать ключ можно в автоматическом режиме:
При этом не обязательно копировать основной ключ, с помощью флага -i можно указать любой другой:
Создай постоянное соединение с машиной
Если в течение дня ты часто подключаешься к одной машине, в том числе на несколько минут или секунд (чтобы просто запустить одну команду, например), есть смысл создать с ней постоянное соединение. Твой комп будет держать соединение открытым и использовать его для каждого подключения к машине. Это намного быстрее и экономичнее с точки зрения трафика и нагрузки на процессор.
Добавь следующие строки в ~/.ssh/config:
А затем создай соединение:
Запускай команды быстро
Чтобы выполнить всего одну удаленную команду, совсем не обязательно подключаться к SSH, вводить команду, а затем отключаться. Можно сделать это сразу. Например, так можно посмотреть заполненность ФС удаленной машины:
$ ssh user@host df -hА так — перезагрузить ее:
$ ssh user@host sudo rebootСоставляй списки команд и запускай их разом
Если у тебя есть целый список команд, которые следует выполнить, их можно записать в файл и скормить этот файл SSH:
$ ssh user@host "`cat file.txt`"Редактируй удаленные файлы локальным редактором
Чтобы отредактировать файл на удаленной машине, не требуется заходить на нее и использовать консольный редактор. На самом деле файл можно открыть в твоем любимом текстовом редакторе на локальной машине (gvim заменяем на свой редактор):
$ gvim scp://user@host//путь/к/файлуКопируй содержимое удаленного файла в буфер обмена
Если необходимо скопировать содержимое удаленного файла или вывод команды в буфер обмена, не обязательно выводить его на экран или открывать в текстовом редакторе и копировать вручную. Можно использовать следующую команду:
$ ssh user@host cat /путь/к/файлу | xclipА так можно скопировать вывод команды:
$ ssh user@host uname -a | xclipСравнивай удаленный и локальный файл без копирования
Похожий прием можно использовать для сравнения двух файлов:
$ ssh user@host cat /путь/к/удаленному/файлу | diff /путь/к/лoкальному/файлу -Работай с удаленными файлами с помощью локального файлового менеджера
Не всегда удобно работать с большим количеством файлов с помощью консольных команд или mc, запущенного на удаленной машине. Но всегда можно подключить любой каталог удаленной машины как сетевой диск. Для этого достаточно установить sshfs:
$ sudo apt-get install sshfsСоздать каталог для подключения «сетевого диска»:
$ mkdir remote_filesИ подключить его:
$ sshfs user@host:/home/user ~/remote_files/Теперь все файлы удаленного каталога /home/user будут видны в каталоге ~/remote_files/ и с ними можно работать, как с обычными.
Копируй ключи быстро
Хоть и копирование публичного ключа на удаленный сервер — задача простая, но она требует выполнения нескольких действий вручную. Если тебя это напpягает, скопировать ключ можно в автоматическом режиме:
$ ssh-copy-id user@hostПри этом не обязательно копировать основной ключ, с помощью флага -i можно указать любой другой:
$ ssh-copy-id -i ~/my_key.pub user@hostСоздай постоянное соединение с машиной
Если в течение дня ты часто подключаешься к одной машине, в том числе на несколько минут или секунд (чтобы просто запустить одну команду, например), есть смысл создать с ней постоянное соединение. Твой комп будет держать соединение открытым и использовать его для каждого подключения к машине. Это намного быстрее и экономичнее с точки зрения трафика и нагрузки на процессор.
Добавь следующие строки в ~/.ssh/config:
Host host
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster noА затем создай соединение:
$ ssh -MNf user@host🔥22❤4👎1