/etc- Конфигурационные файлы ОС и ПО/bin,/sbin- Системные исполняемые файлы/usr/bin,/usr/local/bin- установленное пользователем ПО и ваши исполняемые файлы./var/log,/var/lib- var это часто изменяемые данные, логи приложений, библиотеки и так далее./var/lib/systemd- конфигурация системы инициализации systemd./etc/systemd/system- пользовательские файлы конфигурации systemd./dev- аппаратные устройства./proc- файлы процессов.
-
Обычный файл - текстовый или бинарный исполняемый файл. Начинается с дефиса, пример вывода
ls -l <file>->-rw-r--r-- -
Каталог - особый файл для структурирования других файлов (папка). Начинается с буквы
d, пример:ls -l <dir>->-drwxr-xr-x -
Блочное устройство - специальный тип файлов, обеспечивает буферизированный доступ к оборудованию (hdd, ssd и так далее). Начинается с буквы
b. -
Именованный канал (или конвейер) - используются для коммуникации между процессами. Начинается с буквы
p. -
Ссылки - ссылки бывают двух видов жесткие и символические (мягкие, symlink). Символическая ссылка полезна как ярлык, чтобы иметь доступ к файлу из разных мест. Начинается с буквы
l. -
Сокеты - используются для коммуникации между процессами. Например через сокет коммуницирует
nginxиPHP-FPM. Сокет обозначается буквойs.
gcc myprogram.c -I ../include ../lib/libsome.a -o myprogram.out
- Download the archive and extract it to /opt/
- Then run:
/opt/PhpStorm-xxx/bin/phpstorm
sudo systemctl enable --now docker # run the Docker service sudo systemctl disable --now docker.service docker.socket # stop the engine sudo docker run hello-world # verify the installation
whereis <binary_name>
CTRL + A - в начало строки
CTRL + E - в конец строки
man <program> man ls # выводит в less документацию к утилите ls man <page> <function> man 3 printf # выводит документацию к функции языка C - printf() man 2 unlink # выводит документацию к функции языка C - unlink()
Копирование файлов и каталогов между узлами
# передача файла с локального узла на удаленный: rsync /path/to/local_file.txt remote_node:path/to/remote_dir ## # передача файла с удаленного узла на локальный: rsync remote_node:path/to/remote_file.txt path/to/local_dir
file text.txt
ln -s file1.txt link1
zip -r <name>.zip <dir>/ # archive a folder
pwd
ls ls /path ls -l # detailed info (permissions, owners, type, modified date) ls -h # human-readable sizes ls -lh # -l & -h combination
cd /path
find /dir/path -name '*.ext' # найти файлы по расширению find /dir/path -type d -iname '*lib*' # найти каталоги по шаблону find / -t type d -name home # search entire FS for directory named "home" find . -exec echo {} \; # runs echo for each file in current dir find -iname foobar # case insensitive find -name "foobar*" # names starting with foobar find -name "*foobar" # names ending with foobar
less <filename>
- Useful for large files (logs).
- Use arrow keys to navigate.
/textto search,qto quit.
tail <filename>
- Полезно для больших файлов, например логов, чтобы увидеть последние строки.
touch <filename>
mkdir <path1> <path2> ... mkdir -p <path> # create nested directories if not exist
rm <filename> rm -rf <directory>
ps aux # list processes ps aux | head -n 10 # first 10 lines ps -eLf # show threads ps -ejH # process tree ps -aux | grep <name> # legacy way to find process by name (use pgrep) pgrep <name> # find PID by name
top # realtime process monitor iotop # I/O monitor nethogs # network monitor
kill <PID> # sends SIGTERM signal ( polite stop ) kill -9 <PID> # sends SIGKILL signal ( force stop )
Everything is a file in UNIX.
lsof -p <PID> # list descriptors of process. lsof -p <PID> | less # read descriptors page by page.
Службы часто называются демонами, это продолжительные процессы которые выполняются в фоновом режиме, например - СУБД, веб-серверы, системные службы для ОС и так далее. Эти службы обычно запускает система инициализации, например systemd.
Управлять службами systemd можно только с правами root (через sudo)
Запустить службу
systemctl start <service_name>
Остановить службу
systemctl stop <service_name>
Перезапустить службу
systemctl restart <service_name>
Вывести текущее состояние службы
systemctl status <service_name>
Включение / отключение автозапуска службы, при загрузке системы
systemctl enable <service_name> # включение systemctl disable <service_name> # отключение