Новые пользователи Linux, пришедшие из мира Windows, могут найти работу с командной строкой несколько пугающей. Тем не менее, это не так сложно в использовании. Все, что вам нужно для начала работы с командной строкой, это выучить несколько основных команд.
В то время как большинство дистрибутивов Linux удобны для пользователя и имеют простой в использовании графический интерфейс, знание командной строки может быть очень полезным. Командная строка дает вам больше власти над вашей системой и доступ к функциям, которые недоступны через графический интерфейс.
В этой статье мы рассмотрим некоторые из наиболее распространенных команд Linux, которые ежедневно используются системными администраторами Linux.
Запоминание опций команды обычно не требуется и может быть пустой тратой времени. Обычно, если вы не используете команду часто, вы можете легко забыть ее параметры.
У большинства команд есть опция —help, которая печатает короткое сообщение о том, как использовать команду, и выходит:
command_name --help
Почти все команды Linux распространяются вместе с man-страницами. Страница man или manual page — это форма документации, которая объясняет, что делает команда, примеры того, как вы ее запускаете, и какие аргументы она принимает.
Команда man используется для отображения страницы руководства данной команды.
man command_name
Например, чтобы открыть справочную страницу команды cd, вы должны набрать:
man cd
Для перемещения по manual page, использовать клавиши Arrow, Page Upи Page Down. Вы также можете нажать клавишу Enter для перемещения по одной строке за раз, клавиша Space для перехода на следующий экран и клавишу b для возврата на один экран назад. Для выхода из справочной страницы нажмите клавишу q.
В Linux каждый файл и каталог находится в корневом каталоге, который является первым или самым верхним каталогом в дереве каталогов. Корневой каталог указывается одиночной косой чертой /.
При навигации по файловой системе при работе с файлами вы можете использовать либо абсолютный, либо относительный путь к ресурсу.
Абсолютный или полный путь начинается с системного корня /, а относительный путь начинается с вашего текущего каталога.
Текущий рабочий каталог — это каталог, в котором в данный момент работает пользователь. Каждый раз, когда вы взаимодействуете с командной строкой, вы работаете в каталоге.
Используйте команду pwd, чтобы узнать, в каком каталоге вы сейчас находитесь:
pwd
Команда отображает путь вашего текущего рабочего каталога:
/home/andreyex
Команда cd («change directory») используется для изменения текущего рабочего каталога в Linux и других Unix-подобных операционных системах.
При использовании без каких-либо аргументов команду cd, вы попадете в ваш домашний каталог:
cd
Чтобы перейти в каталог, вы можете использовать его абсолютный или относительный путь.
Предполагая, что каталог Downloads существует в каталоге, из которого вы запускаете команду, вы можете перейти к нему, используя относительный путь к каталогу:
cd Downloads
Вы также можете перейти к каталогу, используя его абсолютный путь:
cd /home/andreyex/Downloads
Две точки ( ..), одна за другой, представляют родительский каталог или, другими словами, каталог непосредственно над текущим.
Предположим, что вы находитесь в каталоге /usr/local/share, чтобы переключиться на каталог /usr/local (на один уровень выше текущего каталога), вы должны набрать:
cd ../
Чтобы подняться на два уровня вверх, используйте:
cd ../../
Чтобы вернуться к предыдущему рабочему каталогу, используйте символ (-) dash в качестве аргумента:
cd -
Если в каталоге, который вы хотите изменить, в имени есть пробелы, вы должны либо заключить путь в кавычки, либо использовать символ обратной косой черты () для выхода из пробела:
cd Dir\ name\ with\ space
Команда 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 /etc/hosts
Команда touch используется для обновления временных меток существующих файлов и каталогов, а также для создания новых пустых файлов.
Чтобы создать файл, укажите имя файла в качестве аргумента:
touch file.txt
Если файл уже существует, touch изменит время последнего доступа к файлу и время модификации на текущее время.
В Linux вы можете создавать новые каталоги (также называемые папками) с помощью команды mkdir.
Чтобы создать каталог, передайте имя каталога в качестве аргумента команде:
mkdir /tmp/newdirectory
mkdir может принимать одно или несколько имен каталогов в качестве аргументов.
При указании только имени каталога без полного пути оно будет создано в текущем рабочем каталоге.
Для создания родительских каталогов используйте параметр -p:
mkdir -p Projects/andreyex.com/src/assets/images
Команда выше создает всю структуру каталогов.
Когда команда mkdir вызывается с параметром -p, он создает каталог, только если он не существует.
Symbolic link (или symlink) — это специальный тип файла, который указывает на другой файл или каталог.
Чтобы создать символическую ссылку на данный файл, используйте команду ln с параметром -l, имя файла в качестве первого аргумента и имя символической ссылки в качестве второго аргумента:
ln -s source_file symbolic_link
Если в качестве аргумента указан только один файл, ln создает ссылку на этот файл в текущем рабочем каталоге с тем же именем, что и файл, на который он указывает.
Для удаления файлов и каталогов используйте команду 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 file file_backup
Чтобы скопировать файл в другой каталог, укажите абсолютный или относительный путь к каталогу назначения. Если в качестве места назначения указано только имя каталога, то скопированный файл будет иметь то же имя, что и исходный файл.
cp file.txt /backup
По умолчанию, если целевой файл существует, он будет перезаписан.
Чтобы скопировать каталог, включая все его файлы и подкаталоги, используйте параметр -R или -r:
cp -R Pictures /opt/backup
Команда mv(short from move) используется для переименования и перемещения файлов и каталогов из одного места в другое.
Например, чтобы переместить файл в каталог, который вы запустите:
mv file.txt /tmp
Чтобы переименовать файл, вам нужно указать имя файла назначения:
mv file.txt file1.txt
Синтаксис для перемещения каталогов такой же, как при перемещении файлов.
Чтобы переместить несколько файлов и каталогов одновременно, укажите конечный каталог в качестве последнего аргумента:
mv file.tx1 file1.txt /tmp
Диспетчер пакетов — это инструмент, который позволяет устанавливать, обновлять, удалять и иным образом управлять пакетами программного обеспечения, специфичными для дистрибутива.
Различные дистрибутивы Linux имеют разные менеджеры пакетов и форматы пакетов.
Только root или пользователь с привилегиями sudo может устанавливать и удалять пакеты.
Advanced Package Tool или APT — это система управления пакетами, используемая дистрибутивами на основе Debian.
Есть несколько инструментов управления пакетами из командной строки в дистрибутивах Debian с apt и apt-get является наиболее используемыми из них.
Прежде чем устанавливать новый пакет, вам необходимо обновить индекс пакета APT:
apt update
Индекс APT — это база данных, в которой хранятся записи доступных пакетов из репозиториев, включенных в вашей системе.
Чтобы обновить установленные пакеты до их последних версий, выполните:
apt upgrade
Установить пакеты так же просто, как запустить:
apt install package_name
Чтобы удалить установленный пакет , введите:
apt remove package_name
RPM — это мощная система управления пакетами, используемая Red Hat Linux и его производными, такими как CentOS и Fedora. RPM также относится к команде rpm и формату файла .rpm.
Для того, чтобы установить новый пакет на основе дистрибутивов Red Hat, вы можете использовать либо команду yum или команду dnf:
dnf install package_name
Начиная с CentOS 8 yum заменен на dnf в качестве менеджера пакетов по умолчанию. dnf обратно совместим с yum.
Чтобы обновить установленные пакеты до их последних версий, введите:
dnf update
Удаление пакетов так же просто, как:
dnf remove package_name
В Linux доступ к файлам управляется через права доступа, атрибуты и владение файлами. Это обеспечивает доступ к файлам и каталогам только авторизованным пользователям и процессам.
В Linux каждый файл связан с владельцем и группой и ему назначены права доступа для трех разных классов пользователей:
Существует три типа разрешений, которые применяются к каждому классу:
Эта концепция позволяет вам указать, каким пользователям разрешено читать файл, записывать в файл или выполнять файл.
Чтобы просмотреть владельца файла и разрешения, используйте команду ls -l.
Команда chmod позволяет изменить права доступа к файлу. Работает в двух режимах: символическом и числовом.
При использовании числового режима вы можете установить разрешения для владельца, группы и всех остальных. Каждое разрешение на запись, чтение и выполнение имеет следующее числовое значение:
Номер разрешений определенного класса пользователей представлен суммой значений разрешений для этой группы.
Например, чтобы дать владельцу файла разрешения на чтение и запись, а также права на чтение только для членов группы и всех остальных пользователей, которых вы будете запускать:
chmod 644 filename
Только root, владелец файла или пользователь с привилегиями sudo могут изменять права доступа к файлу.
Чтобы рекурсивно работать со всеми файлами и каталогами в данном каталоге, используйте команду chmod с опцией -R, (–recursive):
chmod -R 755 dirname
Будьте особенно осторожны при рекурсивном изменении прав доступа к файлам.
Команда chownпозволяет изменить владельца группы и пользователя для данного файла, каталога или символической ссылки.
Чтобы изменить владельца файла, используйте команду chown, за которой следует имя пользователя нового владельца и целевой файл:
chown username filename
Чтобы изменить владельца и группу файла, вызовите команду chown, за которой следует новый владелец и группа, разделенные двоеточием (:) без промежуточных пробелов и целевого файла:
chown username:groupname filename
Используйте опцию -R( —recursive), чтобы рекурсивно работать со всеми файлами и каталогами в данном каталоге:
chown -R username:groupname dirname
Команда sudo позволяет запускать программы от имени другого пользователя, по умолчанию пользователь root. Если вы проводите много времени в командной строке, sudo это одна из команд, которую вы будете использовать довольно часто.
Использование sudo вместо входа в систему в качестве пользователя root более безопасно, поскольку вы можете предоставлять ограниченные административные привилегии отдельным пользователям, не зная пароля root.
Чтобы использовать sudo, просто префикс команды с sudo:
sudo command
Linux является многопользовательской системой, что означает, что более чем один человек может взаимодействовать с одной и той же системой одновременно. Группы используются для организации и администрирования учетных записей пользователей. Основной целью групп является определение набора привилегий, таких как чтение, запись или выполнение разрешения для данного ресурса, которые могут быть общими для пользователей в группе.
Команда useradd позволяет создавать новых пользователей.
Чтобы создать новую учетную запись пользователя, используйте команду useradd с именем пользователя:
useradd newuser
Как только пользователь создан, установите пароль пользователя, выполнив команду passwd:
useradd newuser
В Linux вы можете удалить учетную запись пользователя с помощью команды userdel.
Чтобы удалить учетную запись с именем, передайте имя пользователя в команду userdel:
userdel newuser
Используйте опцию -r (–remove) для удаления домашнего каталога пользователя и почтового спула:
userdel -r newuser
Чтобы создать новую группу, используйте команду groupadd, за которой следует имя группы:
groupadd mygroup
Чтобы удалить группу, используйте команду groupdel с именем группы в качестве аргумента:
groupdel mygroup
Чтобы добавить существующего пользователя в группу, используйте команду usermod, а затем опцию -G и имя группы:
usermod -a -G sudo andreyex
Мы рассмотрели некоторые из наиболее часто используемых команд Gnu/Linux.
Хотя вы можете выполнять большинство задач, связанных с разработкой и системой, с помощью графического интерфейса, командная строка делает вас более продуктивным и способным выполнять больше задач за меньшее время.
Нажмите на ссылки в каждой команде, чтобы получить больше информации о параметрах команды и ее использовании.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Кто, все-таки, пришел из мира Windows — команды или пользователи?
Это из рода, что появилось раньше курица или яйцо )
UNIX или Windows???
Не думаю что у юзеров перешедших с Unix будут проблемы в Linux с командной строкой
яйцо однозначнее раньше, сперва крокодилы, потом куры 😀