
Новичкам в Linux, перешедшим из мира Windows, работа с командной строкой может показаться немного пугающей. Однако пользоваться ею не так уж и сложно. Всё, что нужно для начала работы с командной строкой, — это выучить несколько базовых команд.
Хотя большинство дистрибутивов Linux удобны в использовании и имеют простой графический интерфейс, умение работать с командной строкой может быть очень полезным. Командная строка даёт вам больше возможностей управления системой и доступ к функциям, недоступным через графический интерфейс.
В этой статье мы рассмотрим некоторые наиболее распространенные команды Linux, которые ежедневно используются системными администраторами Linux.
Получение информации о команды
Запоминать параметры команды обычно не нужно и может оказаться пустой тратой времени. Как правило, если вы не используете команду часто, вы легко можете забыть её параметры.
Большинство команд имеют опцию --help , которая выводит краткое сообщение о том, как использовать команду, и завершает работу:
command_name --help
man
Почти все команды Linux распространяются вместе со страницами руководства (man). Страница руководства (man) — это документация, объясняющая назначение команды, примеры её выполнения и принимаемые аргументы.
Команда man используется для отображения страницы руководства по заданной команде.
man command_name
Например, чтобы открыть страницу руководства команды cd , введите:
man cd
Для навигации по страницам руководства используйте клавиши Arrow , Page Up и Page Down . Для перемещения по строкам нажмите клавишу Enter , для перехода к следующему экрану — клавишу Space , а для перехода на предыдущий экран — клавишу b . Чтобы выйти со страницы руководства, нажмите клавишу q .
Навигация по файловой системе
В Linux все файлы и каталоги находятся в корневом каталоге — первом или самом верхнем каталоге в дереве каталогов. Корневой каталог обозначается одним слешем / в начале имени.
При навигации по файловой системе и работе с файлами можно использовать как абсолютный, так и относительный путь к ресурсу.
Абсолютный или полный путь начинается с системного корня / , а относительный путь начинается с вашего текущего каталога.
Текущий рабочий каталог (команда pwd )
Текущий рабочий каталог — это каталог, в котором пользователь работает в данный момент. Каждый раз, когда вы взаимодействуете с командной строкой, вы работаете в определённом каталоге.
Используйте команду pwd , чтобы узнать, в каком каталоге вы сейчас находитесь:
pwd
Команда отображает путь к текущему рабочему каталогу:
/home/linuxize
Изменение каталога (команда cd )
Команда cd («изменить каталог») используется для смены текущего рабочего каталога в Linux и других Unix-подобных операционных системах.
При использовании без аргументов cd перенесет вас в домашний каталог:
cd
Чтобы перейти в каталог, можно использовать его абсолютный или относительный путь.
Предполагая, что каталог Downloads существует в каталоге, из которого вы запускаете команду, вы можете перейти к нему, используя относительный путь к каталогу:
cd Downloads
Вы также можете перейти к каталогу, используя его абсолютный путь:
cd /home/linuxize/Downloads
Две точки ( .. ), следующие одна за другой, представляют родительский каталог или, другими словами, каталог, расположенный непосредственно над текущим.
Предположим, вы находитесь в каталоге /usr/local/share . Чтобы перейти в каталог /usr/local (на уровень выше текущего), введите:
cd ../
Чтобы подняться на два уровня вверх:
cd ../../
Чтобы вернуться к предыдущему рабочему каталогу, используйте символ тире ( - ) в качестве аргумента:
cd -
Если в имени каталога, в который вы хотите перейти, есть пробелы, вам следует либо заключить путь в кавычки, либо использовать символ обратной косой черты () для экранирования пробела:
cd Dir name with space
Работа с файлами и каталогами
Вывод содержимого каталога (команда ls )
Команда ls выводит информацию о файлах и каталогах внутри каталога.
При использовании без параметров и аргументов ls отображает список в алфавитном порядке имен всех файлов в текущем рабочем каталоге:
ls
Чтобы вывести список файлов в определенном каталоге, передайте путь к каталогу в качестве аргумента:
ls /usr
По умолчанию команда ls выводит только имена файлов и каталогов. Используйте опцию -l , чтобы вывести файлы в формате длинного списка:
ls -l /etc/hosts
Вывод включает тип файла, разрешения, количество жестких ссылок, владельца, группу, размер, дату и имя файла:
-rw-r--r-- 1 root root 337 Oct 4 11:31 /etc/hosts
Команда ls по умолчанию не выводит список скрытых файлов. Скрытым считается любой файл, имя которого начинается с точки ( . ).
Чтобы отобразить все файлы, включая скрытые, используйте опцию -a :
ls -a ~/
Отображение содержимого файла (команда cat )
Команда cat выводит содержимое одного или нескольких файлов и объединяет (конкатенирует) файлы, добавляя содержимое одного файла в конец другого файла.
Чтобы отобразить содержимое файла на экране, передайте имя файла в cat в качестве аргумента:
cat /etc/hosts
Создание файлов (команда touch )
Команда touch используется для обновления временных меток существующих файлов и каталогов, а также для создания новых пустых файлов.
Чтобы создать файл , укажите имя файла в качестве аргумента:
touch file.txt
Если файл уже существует, touch изменит время последнего доступа и изменения файла на текущее время.
Создание каталогов (команда mkdir )
В Linux вы можете создавать новые каталоги (также известные как папки) с помощью команды mkdir .
Чтобы создать каталог, передайте имя каталога в качестве аргумента команды:
mkdir /tmp/newdirectory
mkdir может принимать в качестве аргументов одно или несколько имен каталогов.
Если аргумент — имя каталога без полного пути, новый каталог создается в текущем рабочем каталоге.
Чтобы создать родительские каталоги, используйте опцию -p :
mkdir -p Projects/linuxgazette.ru/src/assets/images
Приведенная выше команда создает всю структуру каталогов.
При вызове mkdir с опцией -p каталог создается только в том случае, если он не существует.
Создание символических ссылок (команда ln )
Символическая ссылка (или симлинк) — это особый тип файла, который указывает на другой файл или каталог.
Чтобы создать символическую ссылку на заданный файл, используйте команду ln с опцией -s , именем файла в качестве первого аргумента и именем символической ссылки в качестве второго аргумента:
ln -s source_file symbolic_link
Если в качестве аргумента указан только один файл, ln создает ссылку на этот файл в текущем рабочем каталоге с тем же именем, что и у файла, на который он указывает.
Удаление файлов и каталогов (команда rm )
Для удаления файлов и каталогов используйте команду rm .
По умолчанию, при запуске без параметров, rm не удаляет каталоги. Она также не запрашивает у пользователя подтверждение удаления указанных файлов.
Чтобы удалить файл или символическую ссылку, используйте команду rm , указав в качестве аргумента имя файла:
rm file.txt
rm принимает в качестве аргументов одно или несколько имен файлов или каталогов.
Опция -i указывает rm запрашивать у пользователя каждый указанный файл перед его удалением:
rm -i file.txt
rm: remove regular empty file 'file.txt'?
Используйте опцию -d для удаления одного или нескольких пустых каталогов:
rm -d dirname
Чтобы рекурсивно удалить непустые каталоги и все файлы в них, используйте опцию -r (рекурсивно):
rm -rf dirname
Опция -f сообщает rm , что не нужно никогда выдавать пользователю запросы и игнорировать несуществующие файлы и аргументы.
Копирование файлов и каталогов (команда cp )
Команда cp позволяет копировать файлы и каталоги.
Чтобы скопировать файл в текущий рабочий каталог, используйте исходный файл в качестве первого аргумента, а новый файл — в качестве второго:
cp file file_backup
Чтобы скопировать файл в другой каталог, укажите абсолютный или относительный путь к целевому каталогу. Если в качестве целевого каталога указано только имя каталога, скопированный файл будет иметь то же имя, что и исходный файл.
cp file.txt /backup
По умолчанию, если файл назначения существует, он будет перезаписан.
Чтобы скопировать каталог, включая все его файлы и подкаталоги, используйте опцию -R или -r :
cp -R Pictures /opt/backup
Перемещение и переименование файлов и каталогов (команда mv )
Команда mv (сокращение от move) используется для переименования и перемещения файлов и каталогов из одного места в другое.
Например, чтобы переместить файл в каталог, выполните:
mv file.txt /tmp
Чтобы переименовать файл, необходимо указать имя конечного файла:
mv file.txt file1.txt
Синтаксис перемещения каталогов такой же, как и при перемещении файлов.
Чтобы переместить несколько файлов и каталогов одновременно, укажите целевой каталог в качестве последнего аргумента:
mv file.tx1 file1.txt /tmp
Установка и удаление пакетов
Менеджер пакетов — это инструмент, позволяющий устанавливать, обновлять, удалять и иным образом управлять пакетами программного обеспечения, специфичными для дистрибутива.
Разные дистрибутивы Linux имеют разные менеджеры пакетов и форматы пакетов.
Устанавливать и удалять пакеты может только пользователь root или с привилегиями sudo.
Ubuntu и Debian (команда apt )
Advanced Package Tool или APT — это система управления пакетами, используемая дистрибутивами на базе Debian.
В дистрибутивах Debian имеется несколько инструментов командной строки для управления пакетами, наиболее используемыми из которых являются apt и apt-get .
Перед установкой нового пакета необходимо обновить индекс пакетов APT:
apt update
Индекс APT — это база данных, в которой хранятся записи о доступных пакетах из репозиториев, включенных в вашей системе.
Чтобы обновить установленные пакеты до последних версий, выполните:
apt upgrade
Установка пакетов так же проста, как запуск:
apt install package_name
Чтобы удалить установленный пакет , введите:
apt remove package_name
CentOS и Fedora (команда dnf )
RPM — мощная система управления пакетами, используемая в Red Hat Linux и её производных, таких как CentOS и Fedora. RPM также относится к команде rpm и формату файлов .rpm .
Чтобы установить новый пакет в дистрибутивах на базе Red Hat, вы можете использовать команды yum или dnf :
dnf install package_name
Начиная с CentOS 8, dnf заменил yum в качестве менеджера пакетов по умолчанию. dnf обратно совместим с yum .
Чтобы обновить установленные пакеты до последних версий, введите:
dnf update
Удаление пакетов очень просто:
dnf remove package_name
Владение файлами и разрешения
В Linux доступ к файлам управляется с помощью прав доступа, атрибутов и владельца. Это гарантирует, что доступ к файлам и каталогам имеют только авторизованные пользователи и процессы.
В Linux каждый файл связан с владельцем и группой, а также ему назначаются права доступа для трех различных классов пользователей:
- Владелец файла.
- Члены группы.
- Все остальные.
К каждому классу применяются три типа разрешений:
- Разрешение на чтение.
- Разрешение на запись.
- Разрешение на выполнение.
Эта концепция позволяет указать, какие пользователи могут читать файл, записывать в файл или выполнять файл.
Чтобы просмотреть владельца файла и разрешения, используйте команду ls -l .
Изменение прав доступа (команда chmod )
Команда chmod позволяет изменять права доступа к файлу. Она работает в двух режимах: символьном и числовом.
В числовом режиме вы можете установить разрешения для владельца, группы и всех остальных. Каждое разрешение на запись, чтение и выполнение имеет следующее числовое значение:
-
r(чтение) = 4 -
w(писать) = 2 -
x(выполнить) = 1 - нет разрешений = 0
Число разрешений определенного класса пользователей представлено суммой значений разрешений для этой группы.
Например, чтобы предоставить владельцу файла разрешения на чтение и запись, а членам группы и всем остальным пользователям — только разрешения на чтение, выполните:
chmod 644 filename
Изменять права доступа к файлу может только пользователь root, владелец файла или пользователь с привилегиями sudo.
Для рекурсивной обработки всех файлов и каталогов в заданном каталоге используйте команду chmod с опцией -R, (–recursive):
chmod -R 755 dirname
Будьте особенно осторожны при рекурсивном изменении прав доступа к файлам.
Изменение владельца (команда chown )
Команда chown позволяет изменить владельца пользователя и группы для данного файла, каталога или символической ссылки.
Чтобы изменить владельца файла, используйте команду chown , за которой укажите имя пользователя нового владельца и целевой файл:
chown username filename
Чтобы изменить владельца и группу файла, вызовите команду chown , а затем укажите нового владельца и группу, разделенные двоеточием ( : ) без пробелов, и целевой файл:
chown username:groupname filename
Используйте опцию -R ( --recursive ) для рекурсивной обработки всех файлов и каталогов в указанном каталоге:
chown -R username:groupname dirname
Повысить привилегии (команда sudo )
Команда sudo позволяет запускать программы от имени другого пользователя, по умолчанию пользователя root. Если вы проводите много времени в командной строке, sudo — одна из команд, которые вы будете использовать довольно часто.
Использование sudo вместо входа в систему как root более безопасно, поскольку вы можете предоставить ограниченные административные привилегии отдельным пользователям, не зная их пароля root.
Чтобы использовать sudo , просто добавьте префикс sudo к команде:
sudo command
Управление пользователями и группами
Linux — многопользовательская система, что означает, что с одной и той же системой могут одновременно работать несколько человек. Группы используются для организации и администрирования учётных записей пользователей. Основное назначение групп — определить набор привилегий, таких как разрешение на чтение, запись или выполнение для определённого ресурса, совместно используемого пользователями внутри группы.
Создание пользователей (команды useradd и passwd )
Команда useradd позволяет вам создавать новых пользователей.
Чтобы создать новую учетную запись пользователя, вызовите команду useradd а затем укажите имя пользователя:
useradd newuser
После создания пользователя установите его пароль, выполнив команду passwd :
passwd newuser
Удаление пользователей (команда userdel )
В Linux удалить учетную запись пользователя можно с помощью команды userdel .
Чтобы удалить учетную запись пользователя, передайте имя пользователя команде userdel :
userdel newuser
Используйте опцию -r (–remove), чтобы удалить домашний каталог пользователя и почтовый ящик:
userdel -r newuser
Управление группами (команды groupadd и groupdel )
Чтобы создать новую группу, вызовите команду groupadd а затем укажите имя группы:
groupadd mygroup
Чтобы удалить группу, используйте команду groupdel с именем группы в качестве аргумента:
groupdel mygroup
Добавление пользователей в группы (команда usermod )
Чтобы добавить существующего пользователя в группу, используйте команду usermod , за которой укажите опцию -G и имя группы:
usermod -a -G sudo linuxize
Заключение
Мы рассмотрели некоторые наиболее используемые команды Gnu/Linux.
Хотя большинство задач, связанных с разработкой и системой, можно выполнить с помощью графического интерфейса, командная строка делает вашу работу более продуктивной и позволяет сделать больше за меньшее время.
Нажмите на ссылки для каждой команды, чтобы получить дополнительную информацию о параметрах команды и ее использовании.
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.
Связанные руководства