Основные команды Linux
Linux Shell — это программа, которая также известна как CLI (англ. Command Line Interface). Она передает команды от пользователя операционной системы и отображает выходные данные, если таковые имеются.
Многие из дистрибутивов имеют графический интерфейс, называемый GUI (англ. graphical user interface), но в серверных и минимальных версиях Linux используется интерфейс командной строки. Попробуем рассмотреть некоторые команды, которые помогут нам освоить командный интерфейс Linux.
При первом входе в терминал мы можем видеть что-то наподобие:
root@server:~#
если вы вошли в систему с привилегированным пользователем root;
user@server:~$
если вы вошли в систему под пользователем с обычными правами.
Когда вы только открываете терминал, вы находитесь в домашней папке пользователя. Для того, чтобы узнать, в какой папке вы находитесь в данный момент, вы можете воспользоваться командой pwd:
root@server:~# pwd
/root
Чтобы сменить каталог воспользуйтесь командой cd:
root@server:~# cd /tmp
root@server:/tmp#
Также вы можете переходить в каталог выше или в корневую директорию используя команды:
root@server:~# cd ..
вернет вас в предыдущий каталог;
root@server:~# cd /
перейдет в корень файловой системы.
Чтобы увидеть содержимое каталога используйте команду ls:
root@server:~# ls
mybase.sql
Downloads
site.zip
Использование команды ls с параметром -a позволит увидеть скрытые файлы:
root@server:~# ls -a
.htaccess
mybase.sql
Downloads
site.zip
Скрытые файлы, начинаются со знака "."
Для создания пустого файла используется команда touch:
root@server:~# touch readme.txt
Если же мы хотим создать файл с некоторым содержимым, воспользуемся командой echo:
root@server:~# echo Hello, my name is Linux >> readme.txt
Данная строка создаст файл readme.txt, содержащий строку Hello, my name is Linux.
Для просмотра содержимого файла используем команду cat:
root@server:~# cat readme.txt
Hello, my name is Linux
Для просмотра файлов также можно использовать следующие команды:
more — постраничный просмотр содержимого;
less — то же самое, но с возможностью пролистывания вверх-вниз;
head — покажет первые десять строк файла;
tail — покажет последние десять строк.
Также может понадобится создать каталог, для чего есть команда mkdir:
root@server:~# mkdir backups
Для удаления каталога существует команда rmdir. Она удалит каталог, если он пуст:
root@server:~# rmdir backups
Для рекурсивного удаления каталогов и файлов в них используйте команду rm:
root@server:~# rm -rf backups
удалит каталог backups, все файлы и каталоги в нем;
root@server:~# rm readme.txt
удалит файл readme.txt.
Чтобы скопировать файлы применим команду cp. В формате cp "что копировать"-"куда копировать":
root@server:~# cp readme.txt backups
Для того, чтобы переместить файл, используем команду mv:
root@server:~# mv readme.txt backups
Также с помощью этой команды можно переименовать файл:
root@server:~# mv readme.txt readme.old
Sudo (англ. substitute user and do) — это утилита, позволяющая запускать команды от имени другого пользователя:
root@server:~$ sudo -i
root@server:~$
Она запустит Shell от имени суперпользователя root. Sudo используется при необходимости запустить команду с правами суперпользователя:
root@server:~$ sudo nano /etc/ssh/sshd_config
Данная строка откроет с правами администратора файл sshd_config в текстовом редакторе nano.
Также могут возникать задачи, когда необходимо сменить владельца файла. В этом случае на помощь придет команда chown:
root@server:~# chown -R www-data:www-data /var/www/html/mysite.com
Данная строка рекурсивно сменит владельца и группу каталога /var/www/html/mysite.com на www-data.
Если же необходимо сменить права доступа на файлы и каталоги, можем использовать утилиту chmod:
root@server:~# chmod -R 755 /var/www/html/mysite.com/*
Она рекурсивно назначит права 755 на все содержимое каталога /var/www/html/mysite.com.
Используя более сложную конструкцию, можно раздельно назначить права на файлы и каталоги:
root@server:~#chmod 755 $(find /var/www/html/mysite.com -type d)
root@server:~#chmod 640 $(find /var/www/html/mysite.com -type f)
Для каждой команды можно использовать аргумент --help для получения более подробной информации по ее использованию:
root@server:~#cp --help
Usage: cp [OPTION]... [-T] SOURCE DEST
or: cp [OPTION]... SOURCE... DIRECTORY
or: cp [OPTION]... -t DIRECTORY SOURCE...
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
.....
Также всегда на помощь придет команда man.
С более подробной инструкцией по запрашиваемой команде можно ознакомиться следующим образом:
root@server:~#man ls
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is speci‐
fied.
...