Основные команды 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 /tmproot@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.oldSudo (англ. substitute user and do) — это утилита, позволяющая запускать команды от имени другого пользователя:
root@server:~$ sudo -iroot@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 contentsSYNOPSIS
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.
...
700
300
700
300
700
300