🐧 Linux Junior. Программирование под Linux.
رفتن به کانال در Telegram
Канал для программистов работающих с Linux. Почти все Python девелоперы с нами ну и другие тоже подтянутся. По рекламе: @jannytg @anothertechrock
نمایش بیشتر3 072
مشترکین
+224 ساعت
+17 روز
-1030 روز
آرشیو پست ها
👩💻 Что такое командная оболочка (shell) в Linux?
Shell или командная оболочка представляет собой не только командный интерпретатор, обеспечивающий взаимодействие пользователя с ядром операционной системы, но и язык программирования, включающий операторы условного ветвления, циклы, переменные и другие конструкции.
При входе пользователя в систему или открытии терминала операционная система запускает командную оболочку.
Пользователь увидит приглашение оболочки, состоящее из имени пользователя, имени хоста, текущего пути и символа
$ или #, отражающего его привилегии.
Вводимые пользователем команды бывают внутренними (встроенными в оболочку) и внешними (выполняемыми как отдельные программы).
⚡️При необходимости определить тип команды, пользователь может использовать команду type <имя_команды>.
В nix-системах существует два основных типа оболочек:
• оболочки на основе Bourne shell
• оболочки на основе C shell.
Типичными представителями оболочек типа Bourne shell являются:
- sh (Bourne shell) - bash (Bourne Again shell) - ksh (Korn shell) - zsh (Z Shell)К оболочкам типа C Shell относятся:
- csh (C shell) - tcsh (TENEX/TOPS C shell)
👩💻 Команда ps
Как правило, команда перечисляет и отображает все запущенные процессы в ядре Linux. Основная функциональность заключается в отображении информации о процессе, включая уникальный идентификатор процесса (PID), терминал или пользователя, связанного с процессом, и команду, запускающую процесс.
1️⃣ Список процессов, связанных с текущей оболочкой
Использование простой команды ps выводит список запущенных в данный момент процессов в оболочке.
psВ выводе есть четыре столбца: PID, TTY, TIME и CMD. Давайте разберем, что означают эти четыре аббревиатуры. • PID: это сокращенная форма "Process ID". Каждый запущенный процесс имеет определенный идентификатор, отличающий его от других процессов. • TTY: расшифровывается как "Terminal Type", демонстрирующий терминал, используемый для запуска указанного процесса. • TIME: это примерно то время, в течение которого процесс использовал центральный процессор, а не количество времени, в течение которого процесс был запущен. • CMD: этот элемент показывает команду, использованную при запуске процесса. 2️⃣ Использование команды для просмотра всех запущенных процессов
ps -A
ps -eКоманда не связана с каким-либо терминальным сеансом всякий раз, когда TTY является вопросительным знаком. 3️⃣ Просмотр процессов, связанных с терминалом
ps -T• Выполнив эту команду, мы больше не будем видеть вопросительный знак в столбце TTY. • Эта команда имеет две функциональные возможности: одна для запуска процессов, связанных с терминалом, а другая для отображения потоков определенного процесса 4️⃣ Отображать процессы, не связанные с терминалом Чтобы просмотреть все процессы, кроме руководителей сеансов и процессов, связанных с терминалом.
ps -aРуководитель сеанса - это процесс, который запускает другие процессы, например, bash. 5️⃣ Список всех запущенных процессов с полным именем команды Чтобы перечислить все запущенные в данный момент процессы с полным названием команды, введите следующую команду:
ps -ax
Нужно использовать фигурные скобки:
touch file{1..100}.txt
А чтобы создать три файла с разными расширениями для одного проекта, введите:
touch app.{html,css,js}
Аналогичным образом можно удалять однотипные файлы. Например, удалить из текущей директории все картинки:
rm ./*.{jpg,jpeg,png,gif}❓ Как быстро создать много однотипных файлов в одной директории?
Речь идет о файлах типа file1,txt, file2.txt, file3.txt ... file100.txt или app.html, app.css, app.js.
Ответ через час.
#вопросы
⚙️ Используй майские праздники наилучшим образом!
Изучай новые технологии или закрой пробелы в знаниях по своему стеку.
🤩 Admin Books – техническая литература для сетевых и системных администраторов и ИБ специалистов.
Ссылка для своих: https://t.me/+-MOgvZlaKGc0ODYy
❓ Что такое chroot?
CHROOT – это системный вызов, который временно перемещает root каталог в новую папку.
Как правило, root-каталог находится в «/». Но при помощи chroot можно задать другой каталог, который будет служить как root-каталог в окружении chroot.
Любые приложения, которые запускаются внутри изолированного окружения, в принципе не могут взаимодействовать с остальной операционной системой. Кроме того, не-рутовый пользователь (non-root), помещённый в chroot-окружение, не сможет перемещаться по иерархии каталогов
📎 Зачем оно нужно?
Chroot-окружение необходимо в самых различных ситуациях. К примеру, оно позволяет собирать, устанавливать и тестировать программное обеспечение в среде, которая отделена от остальной операционной системы. Также его можно использовать для запуска 32-битных приложений в 64-битной среде.
В целом, chroot – это способ временно воссоздать окружение операционной системы из подмножества файловой системы. Это позволяет временно перейти с привычных утилит на их экспериментальные версии, посмотреть, как приложения ведут себя в чистом окружении. Также chroot может помочь выполнить операции по восстановлению, развернуть систему или создать дополнительный барьер, чтобы предотвратить потенциальный взлом системы.
📎 Недостатки chroot
Основным недостатком chroot является неудобство в работе, вызванное тем, что в системе могут существовать приличное количество окружений и разных архитектур. Ну и стоит помнить, что даже этот способ не является 100%-тно безопасным и не защищает систему от кривых рук пользователя.
❗️Шорткаты: Alt+T и Esc+T
Позволяют поменять местами два слова в строке. Меняются местами слова, между которыми стоит курсор. Если курсор стоит в конце строки, то два последних слова. Похоже на Ctrl+T, который позволяет менять местами символы.
Удобный "справочник" по любой команде в Linux.
ExplainShell представляет удобный интерфейс для поиска справочной информации по любой команде. Просто вбиваете нужную вам команду со всеми аргументами в поисковую строку — и получаете подробное объяснение, что конкретно делает каждый аргумент.
Крч, нереально годная вещь!
Что будет, если перейти на уровень корня (/) и выполнить команду cd .. ?
split -l 100 имя_файла 100-
В результате работы этой команды в директории появятся файлы 100-aa, 100-ab…, содержащие по 100 строк из исходного файла. Если исходный файл содержал число строк, не кратное 100, то в последнем файле будет меньше ста строк.❓Как разбить текстовый файл на несколько по 100 строк в каждом?
Ответ через час.
#вопросы
⭐️🚀 Пройдите вступительный тест и получите доступ к бесплатным урокам курса "Administrator Linux. Professional".
👉 Пройти тест
Хотите стать экспертом в администрировании Linux? У нас для вас отличная новость!
Представьте, как вы:
- Освоите настройку и управление сетевыми сервисами на Linux.
- Научитесь автоматизировать задачи с помощью Ansible.
- Сможете эффективно управлять дисковыми подсистемами и файловыми системами.
- Настроите и будете администрировать веб-серверы (Nginx, Apache) и базы данных (MySQL, PostgreSQL).
- Повысите уровень безопасности своих серверов с помощью SELinux и брандмауэров.
- Получите навыки мониторинга и логирования с использованием Prometheus и Zabbix.
Наш курс включает в себя все необходимые знания и практические задания, чтобы вы стали настоящим профессионалом.
❗️После успешного прохождения теста вам будут доступны уроки на лендинге курса, и скидка на обучение "Administrator Linux. Professional".
👉 Пройти тест
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🚫 Блокировка или скрытие файлов в Linux
Когда вам нужно заблокировать доступ к файлу или каталогу, то самый простой способ сделать это - использовать права доступа.
Если вы являетесь владельцем файла или каталога, вы можете заблокировать доступ к нему для остальных пользователей путем снятия прав на чтение, запись и выполнение. Для этого используйте:
chmod 700 path_to_file # или chmod go-rwx path_to_fileНу а чтобы просто скрыть файл или каталог, переименуйте его, добавив в начале имени точку
(.). Например:
mv file .filename👩💻 Команды su и sudo
Когда речь заходит о администрировании Linux-систем, две команды, которые часто используются, это
su и sudo.
Обе команды позволяют выполнить команды с привилегиями суперпользователя, но они имеют некоторые различия в использовании и функциональности.
Команда su
⏺"su" означает "подставить пользователя" (substitute user) и используется для смены пользователя на другого, включая суперпользователя (root).
⏺Использование. Команда su без аргументов позволяет войти в систему под суперпользователем. Например, su root попросит ввести пароль суперпользователя и переключит вас на учетную запись root.
⏺Привилегии. При использовании su вся командная строка выполняется с привилегиями суперпользователя, что может быть опасно, особенно при выполнении неизвестных или рискованных команд.
Команда sudo
⏺"sudo" означает "выполнить как другой пользователь" (superuser do) и позволяет выполнить одну команду с привилегиями суперпользователя.
⏺Использование. sudo перед командой позволяет выполнить эту команду с привилегиями суперпользователя. Например, sudo apt-get update попросит ввести ваш пароль пользователя, а не суперпользователя, и затем выполнит команду.
⏺Привилегии. sudo предоставляет более гибкий и безопасный способ выполнения команд с привилегиями суперпользователя, так как он ограничивает доступ только к выполнению одной команды, а не к полной сессии как su.
⚡️Команды su и sudo предоставляют доступ к привилегиям суперпользователя, но их использование и функциональность немного различаются. В большинстве случаев sudo является более безопасным и предпочтительным выбором для выполнения команд с привилегиями суперпользователя.