Полезные команды (пополняется)
Полезные команды Linux - утилиты командной строки, предназначенные для выполнения различных задач в системе Linux. Они позволяют управлять файловой системой, процессами, пользователями, а также выполнять другие важные операции.
SSH
ssh-keygen -t rsa -C "rsa-key"
- генерация ключа, алгоритмrsa
ssh-keygen -t ed25519 -C "ed25519-key"
- генерация ключа, алгоритмed25519
(~/.ssh/
- в каталог сохранятся ключи)ssh-keygen -f ./mykey -t ed25519 -C "ed25519-key"
- генерация ключа, алгоритмed25519
, сохранение в текущем каталоге с именемmykey
иmykey.pub
ssh-copy-id [email protected]
- копировать публичную часть ключа на удаленный сервер
TAR GZ — Создание / распаковка архива
tar -cvf file.tar /full/path
- создать.tar
tar -czvf file.tar.gz /full/path
- создать.tar.gz
tar -cjvf file.tar.bz2 /full/path
- создать.tar.bz2
tar -xvf file.tar.gz
- распаковать.tar.gz
Консольные утилиты
whoami
- показывает имя пользователяlast -10
- показывает последние 10 подключенийfind
- показать содержимое текущего каталогаfind /home
- показать содержимое каталога/home
nl file.txt
- нумерация строк файлаcat -n
- отлично заменяетnl
, более того,cat -n
умеет иgrep
tree
- структура в древовидном видеwhich ping
- путь до утилитыping
whereis ping
- путь до утилитыping
screen ./long-unix-script.sh
- после запуска команды нажмитеCtrl + A
и затемd
, чтобы отключить процесс от текущей сессии. Он будет продолжать работать в фоновом режиме. Для того, чтобы снова подключить процесс, введите:screen -r 4980.pts-0.localhost
. Замечание: последняя часть команды здесь - этоid
скрина, который можно узнать с помощью командыscreen -ls
cd -
- если вы случайно сменили директорию, можно просто вернуться в последнююsudo !!
- если вы набрали команду безsudo
, а потом оказалось, что она необходима.!!
вообще полезная штука. Если вдруг забыл набратьcd
перед путем до директории, можно сделать такой же трюк, как и сsudo
, т.е.cd !!
mtr
- мощный инструмент для диагностики сети. Он совмещает в себе функциональностьtraceroute
иping
pkill [application_name]
- завершает запущенный процесс. Эта команда особенно полезна, когда приложение не отвечаетw
- показывает, кто на данный момент вошел в систему, наряду с другой полезной информацией такой, как время работы или нагрузкой процессораless
- читать файл, можно пользоватьсяw
иz
для пролистывания страниц,/
для поиска текста и т.д.rev
- переворачивает строчку задом на перед, напримерecho abc | rev
tailf
- синонимtail -f
users | nl
- имена всех авторизованных пользователейdu -hd 0
- измеряет размер директории, в которой находитесьdu -hd 1
- измеряет размер всех директорий в директории, в которой находитесьcp /path/to/file.txt{,.backup}
- результат:/path/to/file.txt
и/path/to/file.txt.backup
mv /path/to/file.{txt,log}
- результат:/path/to/file.log
>/var/log/daemon.log
- очистить файл:>/var/log/daemon.log
- очистить файлgrep -vE "^#|^$" /etc/apt-cacher-ng/acng.conf
- просмотр конфигов без закомментированных строкss -nltup | column -t
-column -t
выстраивает данные в удобочитаемые таблицы. Еще пример:mount | column -t
echo 1 > /sys/block/sda/device/rescan
- перечитать размер диска/dev/sda
, выполняется от пользователяroot
growpart /dev/sda 3
- увеличить 3-тью областьopenssl pkcs12 -export -in certca.pem -inkey privateky.key -out output.pfx
- создатьPFX
-сертификатcurl https://itdraft.ru -H 'User-Agent: GPTBot' -I
- меняем User-Agent в CURL запросеnohup ./script.sh > /dev/null &
- запуск программы или скрипт а в фонеps -aux | grep script
илиpgrep -a script
- узнать id фоновой программы или скрипта, что бы потом завершить ее (kill 21536
)
Записать строки в файл, включая спецсимволы, не открывая текстовый редактор:
1
2
3
4
5
sudo tee /etc/apt/apt.conf.d/00proxy <<'EOF' > /dev/null 2>&1
Acquire {
HTTP::proxy "http://mirror.itdraft.ru:3142";
}
EOF
echo "proxy=http://mirror.itdraft.ru:3142" | sudo tee /etc/yum.conf > /dev/null 2>&1
- перезаписать/etc/yum.conf
echo "proxy=http://mirror.itdraft.ru:3142" | sudo tee -a /etc/yum.conf > /dev/null 2>&1
- добавить строку в/etc/yum.conf
> /dev/null 2>&1
- не выводить результат
Сочетания клавиш в редакторе Nano
CTRL + S
- сохранитьALT + T
- очистить все дальше кареткиCTRL + C
- показать номер строкиCTRL + K
- удалить строкуCTRL + W
- поиск
Сочетание клавиш в консоли
CTRL + R
- поиск по историиCRTL + S
- остановить вывод логов, например при выводе командойtail -f /var/log/nginx/access.log
CTRL + Q
- продолжить вывод логов, например при выводе командойtail -f /var/log/nginx/access.log
ESC + .
- последний аргумент командыCTRL + L
- очистить терминалCRTL + R
- поиск в истории команд терминалаCTRL + C
- прервать работу командыCTRL + Z
- перевести в фоновую. Чтобы посмотреть задачи, которые сейчас работают в фоне используйте командуjobs
, а для возврата задачи в нормальный режим - командуfg
CTRL + P
иCTRL + N
- альтернативы клавишам стрелкивверх
ивниз
CTRL + A
иCTRL + E
- аналоги клавишHome
иEnd
Ctrl + U
- удалить весь текст от начала строки до позиции курсораCtrl + K
- удалить весь текст от позиции курсора и до конца строкиCTRL + W
- стереть слово перед курсором. Если курсор находится в середине слова, то будут стёрты все символы от курсора до начала словаAlt + Shift + 3
- ставит в начало строки знак комментария и нажимаетEnter
Firewall-cmd
1
2
3
4
5
6
7
8
$ sudo firewall-cmd --list-all
$ sudo firewall-cmd --permanent --zone=public --add-service=https
$ sudo firewall-cmd --permanent --zone=public --add-service={http,https}
$ sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
$ sudo firewall-cmd --permanent --zone=public --add-port=4990-4999/udp
$ sudo firewall-cmd --permanent --zone=public --remove-service=https
$ sudo firewall-cmd --permanent --zone=public --remove-port=80/tcp
$ sudo firewall-cmd --reload
SSL сертификат
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -sha256 -days 365
- самоподписанный сертификат, interactiveopenssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -sha256 -days 3650 -nodes -subj "/C=RU/ST=Moscow/L=Moscow/O=Company/OU=IT/CN=CommonNameOrHostname"
- самоподписанный сертификат, non-interactiveopenssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout example.com.key -out example.com.crt -subj "/CN=example.com" -addext "subjectAltName=DNS:example.com,DNS:*.example.com,IP:10.0.0.1"
- самоподписанный сертификат,altname
Nginx
Редирект http > https
1
2
3
4
5
6
7
8
9
10
11
12
server {
listen 80;
listen 443 default ssl;
server_name _;
...
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
...
if ($scheme != "https") {
return 301 https://$host$request_uri;
}
...
Балансировка
1
2
3
4
5
6
7
8
9
10
11
12
upstream backend {
server 192.168.1.1:443;
server 192.168.1.2:442;
}
server {
...
location / {
proxy_pass https://backend;
...
}
}
Docker
Прописать зеркало и разрешить подключение по http
(необходимо перезапустить сервис Docker)
1
2
3
4
5
6
7
8
$ cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.itdraft.ru"]
}
{
"insecure-registries" : ["registry.itdraft.ru:5000"]
}
docker exec -it %id% /bin/bash
- подключиться к контейнеру
GIT
Инициализируем репозиторий и пушим в Git
1
2
3
4
5
6
7
8
$ cd /opt/nginx
$ git init
$ git config --global user.email "[email protected]"
$ git config --global user.name "Maksim Makarov"
$ git add .
$ git commit -m "ver 1.0"
$ git remote add origin ssh://[email protected]:10022/m.makarov/nginx.git
$ git push origin master
Пушим изменения в Git
1
2
3
4
$ cd /opt/nginx
$ git add .
$ git commit -m "ver 1.2"
$ git push origin master
Подтянуть изменения из Git
1
2
$ cd /opt/nginx
$ git pull origin main