Linux Helper

Linux dot files

https://github.com/andrejs82git/my_reminder/tree/master/env

Что слушает Linux

Команда выдаст список слушаемых портов с протоколом(ipv4\ipv6).

  lsof -i -P -n | grep LISTEN

Примерный вывод в консоль:

systemd-r  567 systemd-resolve   14u  IPv4  16939      0t0  TCP 127.0.0.53:53 (LISTEN)
sshd       812            root    3u  IPv4  18421      0t0  TCP *:22 (LISTEN)
sshd       812            root    4u  IPv6  18432      0t0  TCP *:22 (LISTEN)
postgres  5059        postgres    5u  IPv4  33441      0t0  TCP 127.0.0.1:5432 (LISTEN)
apache2   8885            root    3u  IPv4  45790      0t0  TCP *:80 (LISTEN)
apache2   8886        www-data    3u  IPv4  45790      0t0  TCP *:80 (LISTEN)
apache2   8887        www-data    3u  IPv4  45790      0t0  TCP *:80 (LISTEN)

Apache

Слушаем только ipv4,

/etc/apache2/ports.conf

#Было
#Listen 80

#Стало
Listen 0.0.0.0:80

Размер файлов в текущей папке с сортировкой

du -h -d 1 | sort -h

-d 1 означает глубина вложенности

Монтирование сетевой папки по ip адресу

sudo mount -t cifs //192.168.0.20/share /mnt/z

Поиск файла по имени

src: https://www.plesk.com/blog/various/find-files-in-linux-via-command-line/

  1. find . -name thisfile.txt
    Если нужно найти файл по имени. Ищет в текущей папке и подпапках.

  2. find /home -name *.jpg
    Делает поиск в расширению файла. Начинает искать с директории /home и ведет поиск внутри в поддиректориях.

  3. find . -type f -empty
    Ищет пустые файлы в текущей папке.

  4. find /home -user randomperson -mtime 6 -iname ".db"
    Ищет все файлы .db (независимо от регистра) который был изменен предшесвующие 6 дней назад пльзователем с именем randomperson.

Выключение ipV6

src: https://gist.github.com/andreibosco/3badaac477446587bcd6751e186df446

sudo vim /etc/sysctl.conf

Добавляем строчку

net.ipv6.conf.all.disable_ipv6 = 1

Применить изменения

sudo sysctl -p

Проверяем есть ли ipV6 в списке интерфейсов

ifconfig

Добавить скрипт как сервис

Общая инструкция

Указать рабочую папку WorkingDirectory

kill remote vscode на удаленном хосте

Можно из самого vscode набрать команду
Remote-SSH: kill VS Code Server on Host...

Но если ничего не помогает то можно так:

ps uxa | grep .vscode-server | awk '{print $2}' | xargs kill -9

Или прямо в ssh

ssh hostName  "ps uxa | grep .vscode-server | awk '{print \$2}' | xargs kill -9" 

ssh подключение с пробросом ключа на widnows gitbash

Бывает что нужно подключиться к машине которая находится внутри сети и не видна снаруж.
Тоесть для подключения к этой машине нужно сначала подключиться к публичной машине с помощью ключа а потом внутри подключиться к целевой машине.

eval $(ssh-agent)
ssh-add ~/.ssh/where_ever_privake_key_is

ssh -A host_for_connection

Поиск текста в файлах

 sudo find . -name 'authorized_keys' -exec grep -i 'Alex' {} \; -print

Запуск отложенной команды

for i in seq 86400 -1 1 ; do echo -ne "\r$i " ; sleep 1 ; done && echo hello!

86400 секунд — один день

Поиск одинаковых файлов через хэш файла

src: https://unix.stackexchange.com/a/277707/191512

find . ! -empty -type f -exec md5sum {} + | sort | uniq -w32 -dD

Выведет хэш и имя файла если он имеет дубль(один или более файлов).

Пример вывода:

1b504d3328e16fdf281d1fb9516dd90b  ./test5.txt
1b504d3328e16fdf281d1fb9516dd90b  ./test6.txt
1b504d3328e16fdf281d1fb9516dd90b  ./test7.txt
e7df7cd2ca07f4f1ab415d457a6e1c13  ./test2.txt
e7df7cd2ca07f4f1ab415d457a6e1c13  ./test.txt