# Commands :bulb:
###### tags: `Linux` `linux` `commands` `nmap` `date` `ipgeolacation` `tr`
* add line in file
` echo "192.168.1.10 ipa.test.org ipa" >>/etc/hosts`
* посчитать количество строк
`grep -c ".*" file`
* удалить знаки из текстра (тут ковычки ")
` sed 's/\"//g' file`
* удалить повторы и стокиначинающиеся с 10
`awk '!x[$0]++' SOME_FILE.txt | sed '/^10/d' >> SOME_FILE.txt`
* nmap узнать тип аутентификации (скрипты nmap)
`nmap -Pn -p 22 --script ssh-auth-methods -iL <file>`
* действия с SCP
`scp /home/sergiy/file root@losst.ru:/root/`
`scp -P 2220 linpeas.sh hucker@127.0.0.1:/home/hucker`
* забрать файл с сервера
`scp username@remote_1:/file/to/send username@remote_2:/where/to/put`
* передать все файлы из каталога на удаленный сервер
`scp -r /home/sergiy/photos/* root@losst.ru:/root/`
`scp -r root@losst.ru:/root/photos /home/sergiy/`
* rclone
```
rclone config
rclone config show
rclone ls <config>:git-security/
rclone copy <config>:git-security/ git-security_"$(date +"%d-%m-%Y")"
git clone ./<file> <file>-repo
gpg <file>
```
* выбрать строки и записать в строчку
`cat gcp_ip_list_24-05-2022_result_v1.txt | awk '/IP:/ || /Country:/ || /City:/' | paste -s`
`./ipgeolocation.py -T gcp_ip_list_24-05-2022.txt -e /home/vaf/Documents/IPGeoLocation/gcp_ip_list_24-05-2022_result_v1.txt`
`cat gcp_ip_list_02-06-2022_result_v3.txt | awk '/IP:/ {print $2} /Country:/ {print $2} /City:/ {print $2}' | paste -s`
`cat gcp_ip_list_02-06-2022_result_v3.txt | awk '/IP:/ {print $2} /Country:/ {print $2} /City:/ {print $2}'`
* awk выбрать значения
`awk '/IP/ {print $2}' ip_ssh.txt`
* date
`touch "log$(date +'%m%d%y')"`
* удалить все пробелы в тексте
`sed s/' '//g -i <file_name>`
* удалить пустые строки
`sed -i '/^$/d' iplist.txt`
* удалить первый слэш /
`sed "s#^/\(.*\)#\1#" file`
* удалить / и все что после
`sed 's|/.*||' файл.txt`
* добавить слово в начале строки
`sed -i -e 's/^/https:/' url.list`
* давить знак символ в конце строки - тут запятая
`sed s/$/,/g sber.list >> sber.txt`
* добавить слово OR в конце строки
`cat req.txt |sed 's/.*/& or/'`
* добавить знак символ в начале и конце строки (тут ковычки)
`sed 's/^/"/;s/$/"/' sber.list >> sber.txt `
* вывод с новой строки с разделителем пробел ' ' или другой знак '|' или ','
`cat sberdev.list | tr '\n' ' '`
* вывод в столбик
`echo 95.163.58.{129..254} | tr -s ' ' '\n'`
* конвертер
`echo 193.35.96.{1..127} | tr -s ' ' '\n' | sed 's/^/"/;s/$/"/' | sed s/$/,/g >> sberip.list `
`cat fortigate_groups.list | sed 's/split-//' | sed 's/RM-//' | sed 's/full-//' | sort -u`
* вывод в строку
`wg show | awk '/peer:/ || /ips:/' | awk '{ORS=NR%2?" ":"\n"; print}'`
* вывод в строчку с новой строчки после значения
`awk '/^# BEGIN/ {printf("%s ", $0)} /^\[Peer\]/ {printf("%s ", $0)} /PublicKey/ {printf("%s ", $0)} /AllowedIPs/ {printf("%s# END %s\n", $0, substr($2, 7))}' wg0.conf`
### ipgeolacation
###### tags: `ipgeolacation`
* выводит нуные строки
```
./ipgeolocation.py -t 94.158.208.58 | awk '/IP:/ || /ASN:/ || /ISP:/ || /Organization:/'
```
* пробегает по файлу и выводит отформатированные результат в файл с датой
```
./ipgeolocation.py -T ali.list | awk '/IP:/ || /ASN:/ || /ISP:/ || /Organization:/' > "ali_result_$(date +'%m-%d-%y')"
```
* удалить из вывода ненужное слово оставляя сторку без изменений
`sed s/Host//g PTR_dc.list `
`sed 's/@//g`
* вывести только строку содержащую значение
`ping -c 1 8.8.8.8 | sed /icmp/p -n`
* преобразовать вывод нескольких команд
`(ping -c 1 -w 1 8.8.8.8 | sed /icmp/p -n && host 8.8.8.8) | paste -s > test.txt`
* изменить последний октет
```
var regex = /^(\d{1,3}\.\d{1,3}\.\d{1,3}\.)(\d{1,3})(\/[1-3]?\d)$/;
var ip = '169.254.0.17/30';
var octet4 = ip.match(regex)[2] - 1; // match and manipulate octet
var ip2 = ip.replace(regex, '$1' + octet4 + '$3'); // reassemble IP
console.log(ip2); //169.254.0.16/30
```
* разбить на колонки
`./ipgeolocation.py -T ip_short.list | awk '(/IP:/ || /ASN:/ || /ISP:/ || /Organization:/) {print $2}' | column -x`
* с новой строки
`./ipgeolocation.py -T list.ip | awk '(/IP:/ || /Country:/) {print $2}' | awk '{ORS=NR%2?" ":"\n"; print}' >> result.csv`