Двойные тире в командах Linux
Порой опытные админы используют команды в консоли следующим образом:
Что означает это двойное тире? Зачем оно? Давайте разбираться.
Двойное тире означает «флаги командной строки». Оно указывает
У меня есть такая команда:
Приведенный выше синтаксис указывает
Короче говоря мы сообщаем
Двойное тире не обрабатывается оболочками bash/zsh/csh/sh/fish и т.п. Оно обрабатывается средствами самих программ, но НЕ всех. Например
Например, вы не сможете просмотреть файл с именем
Опа. Ошибка!
Ошибка пропала и файл успешно вывелся на экран, ну либо выскочило сообщение
Закрепим:
Ну а что бы передать параметры в
Просто, логично, мелодично. Но как я и сказал выше, не все команды умеют работать с двойным тире. Например, команда
Выведется это:
Порой опытные админы используют команды в консоли следующим образом:
ssh root@linuxzone.ru --
Что означает это двойное тире? Зачем оно? Давайте разбираться.
Двойное тире означает «флаги командной строки». Оно указывает
ssh или другой команде не пытаться анализировать то, что следует после параметров. На словах выглядит не очень, давайте посмотрим на практике!У меня есть такая команда:
ssh root@linuzone.ru -- command1 --arg1 --arg2
Приведенный выше синтаксис указывает
ssh не пытаться анализировать параметры arg1 и arg2 после символа --. Это гарантирует, что команда command1 примет arg1 и arg2 в качестве аргументов командной строки и выполнится на удаленном сервере.Короче говоря мы сообщаем
ssh: все то, что идет после двойного тире, это не твои параметры и аргументы, анализировать это НЕ НАДО! СТОП! Дальше дело за command1 и его параметрами и аргументами.Двойное тире не обрабатывается оболочками bash/zsh/csh/sh/fish и т.п. Оно обрабатывается средствами самих программ, но НЕ всех. Например
ssh это умеет делать, как и множество других команд и утилит. Рассмотрим другие примеры. Например, вы не сможете просмотреть файл с именем
--file или -f, используя команду cat. Проверяем:cat --file
cat -f
Опа. Ошибка!
cat: unrecognized option --file/f. Давайте теперь передадим двойное тире:cat -- --file
cat -- -f
Ошибка пропала и файл успешно вывелся на экран, ну либо выскочило сообщение
cat: --file/f: No such file or directory. Это нормально.Закрепим:
rm --file = получим ошибку
rm -- '--file' = а вот это сработает
Ну а что бы передать параметры в
rm, делаем так:rm -v -i -- '--file'
rm -f -v -i -- '-f'
Просто, логично, мелодично. Но как я и сказал выше, не все команды умеют работать с двойным тире. Например, команда
echo. Все попытки подружить её с двойным тире просто-напросто провалятся:/usr/bin/echo -- -n
echo -- --test
Выведется это:
-- -n
-- --test
👍6🔥5
Ответ через час.
#вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Необходимость групповых действий с файлами возникает довольно часто. При помощи команды
Например, можно:
- изменить расширение файлов с .jpeg на .jpg
- заменить первое вхождение abc на xyz во всех файлах в текущей директории
- поменять местами части расширения файлов, заменив .html.en, .html.de на .en.html, .de.html:
С опцией
mmv можно копировать, перемещать, переименовывать несколько файлов одновременно.Например, можно:
- изменить расширение файлов с .jpeg на .jpg
mmv '*.jpeg' '#1.jpg'
- заменить первое вхождение abc на xyz во всех файлах в текущей директории
mmv '*abc*' '#1xyz#2'
- поменять местами части расширения файлов, заменив .html.en, .html.de на .en.html, .de.html:
mmv '*.html.??' '#1.#2#3.html'
С опцией
-c команда будет не переименовывать, а копировать файлы.🔥12
Каким будет вывод следующей команды?
$ echo "The process id is" $$$$
$ echo "The process id is" $$$$
Anonymous Quiz
10%
The process id is $$
11%
The process id is $<pid>$<pid>
26%
The process id is <pid><pid>
27%
The process id is $$$$
26%
Посмотреть ответ
Когда речь заходит о администрировании Linux-систем, две команды, которые часто используются, это
su и sudo. Обе команды позволяют выполнить команды с привилегиями суперпользователя, но они имеют некоторые различия в использовании и функциональности.
Команда su
su без аргументов позволяет войти в систему под суперпользователем. Например, su root попросит ввести пароль суперпользователя и переключит вас на учетную запись root.su вся командная строка выполняется с привилегиями суперпользователя, что может быть опасно, особенно при выполнении неизвестных или рискованных команд.Команда sudo
sudo перед командой позволяет выполнить эту команду с привилегиями суперпользователя. Например, sudo apt-get update попросит ввести ваш пароль пользователя, а не суперпользователя, и затем выполнит команду.sudo предоставляет более гибкий и безопасный способ выполнения команд с привилегиями суперпользователя, так как он ограничивает доступ только к выполнению одной команды, а не к полной сессии как su.su и sudo предоставляют доступ к привилегиям суперпользователя, но их использование и функциональность немного различаются. В большинстве случаев sudo является более безопасным и предпочтительным выбором для выполнения команд с привилегиями суперпользователя.Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤2
🚫 Блокировка или скрытие файлов в Linux
Когда вам нужно заблокировать доступ к файлу или каталогу, то самый простой способ сделать это - использовать права доступа.
Если вы являетесь владельцем файла или каталога, вы можете заблокировать доступ к нему для остальных пользователей путем снятия прав на чтение, запись и выполнение. Для этого используйте:
Ну а чтобы просто скрыть файл или каталог, переименуйте его, добавив в начале имени точку
Когда вам нужно заблокировать доступ к файлу или каталогу, то самый простой способ сделать это - использовать права доступа.
Если вы являетесь владельцем файла или каталога, вы можете заблокировать доступ к нему для остальных пользователей путем снятия прав на чтение, запись и выполнение. Для этого используйте:
chmod 700 path_to_file
# или
chmod go-rwx path_to_file
Ну а чтобы просто скрыть файл или каталог, переименуйте его, добавив в начале имени точку
(.). Например:mv file .filename
👍2
⭐️🚀 Пройдите вступительный тест и получите доступ к бесплатным урокам курса "Administrator Linux. Professional".
👉 Пройти тест
Хотите стать экспертом в администрировании Linux? У нас для вас отличная новость!
Представьте, как вы:
- Освоите настройку и управление сетевыми сервисами на Linux.
- Научитесь автоматизировать задачи с помощью Ansible.
- Сможете эффективно управлять дисковыми подсистемами и файловыми системами.
- Настроите и будете администрировать веб-серверы (Nginx, Apache) и базы данных (MySQL, PostgreSQL).
- Повысите уровень безопасности своих серверов с помощью SELinux и брандмауэров.
- Получите навыки мониторинга и логирования с использованием Prometheus и Zabbix.
Наш курс включает в себя все необходимые знания и практические задания, чтобы вы стали настоящим профессионалом.
❗️После успешного прохождения теста вам будут доступны уроки на лендинге курса, и скидка на обучение "Administrator Linux. Professional".
👉 Пройти тест
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👉 Пройти тест
Хотите стать экспертом в администрировании Linux? У нас для вас отличная новость!
Представьте, как вы:
- Освоите настройку и управление сетевыми сервисами на Linux.
- Научитесь автоматизировать задачи с помощью Ansible.
- Сможете эффективно управлять дисковыми подсистемами и файловыми системами.
- Настроите и будете администрировать веб-серверы (Nginx, Apache) и базы данных (MySQL, PostgreSQL).
- Повысите уровень безопасности своих серверов с помощью SELinux и брандмауэров.
- Получите навыки мониторинга и логирования с использованием Prometheus и Zabbix.
Наш курс включает в себя все необходимые знания и практические задания, чтобы вы стали настоящим профессионалом.
❗️После успешного прохождения теста вам будут доступны уроки на лендинге курса, и скидка на обучение "Administrator Linux. Professional".
👉 Пройти тест
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
split -l 100 имя_файла 100-
В результате работы этой команды в директории появятся файлы
100-aa, 100-ab…, содержащие по 100 строк из исходного файла. Если исходный файл содержал число строк, не кратное 100, то в последнем файле будет меньше ста строк.🔥14❤1
Что будет, если перейти на уровень корня (/) и выполнить команду cd .. ?
Anonymous Quiz
8%
Выведется сообщение об ошибке, где будет сказано, что пользователь не может выйти дальше корня
4%
Поведение зависит от установленной системы
16%
Переход в домашнюю директорию
64%
Ничего не произойдет
9%
Посмотреть ответ
Удобный "справочник" по любой команде в Linux.
ExplainShell представляет удобный интерфейс для поиска справочной информации по любой команде. Просто вбиваете нужную вам команду со всеми аргументами в поисковую строку — и получаете подробное объяснение, что конкретно делает каждый аргумент.
Крч, нереально годная вещь!
ExplainShell представляет удобный интерфейс для поиска справочной информации по любой команде. Просто вбиваете нужную вам команду со всеми аргументами в поисковую строку — и получаете подробное объяснение, что конкретно делает каждый аргумент.
Крч, нереально годная вещь!
❤8🔥6