Неколико небитних Линукс хинтова
У принципу све ће бити везано за терминал, ништа графика и ништа нешто да је прекомпликовано, па то му је што му је. Такође, баците поглед и на неке моје малецке функције које сам турио на Гитхаб, можда и тамо има нечег занимљивог за вас ако улазите у Линукс воде, тј немате девојку или дечка.
Портови и мрежа
# Да ли је отворен TCP порт telnet remote.host 22 nc remote.host 22 -z -v nmap -p 22 remote.host # Да ли је отворен UDP порт nc -u remote.host 53 -z -v nmap -sU -p 53 remote.host
# Преглед отворених портова на локалној машини
lsof -i -P -n | grep LISTEN
netstat -tulpn | grep LISTEN
ss -tulpn | grep LISTEN
Пинговање више IP адреса одједном помоћу команде пинг: линк овде
Vim (најкоришћеније форице)
# Позиционирај се на прву линију gg # Обриши све од курсора на доле dG # Обриши линију на којој си сад dd # Обриши све од курсора па до краја линије d$ # Обриши карактер на којем ти је позициониран курсор x # Обриши све од курсора до почетка линије d0 # Обриши све од курсора до почетка фајла dgg # Обриши 4 линије испод курсора 4dd # Undo u # Redo CTRL+r # Стави линију у којој си сад у клипборд (copy) yy # Прекопирај то испод линије на којој си сад (paste) p
Фајл систем, дискови
# Интерактивна команда: Излистај највеће фајлове и фолдере на некој путањи
echo -n "Enter filesystem path: " ; read FS ; NUMRESULTS=30 ; clear ; date ; df -hPT $FS ; echo "--------------------------------------" ; echo "Largest Directories:" ; du -x $FS 2>/dev/null | sort -rnk1 | head -n $NUMRESULTS | awk '{printf "%d MB %s\n", $1/1024,$2}' | column -t ; echo "--------------------------------------" ; echo "Largest Files:" ; nice -n 20 find $FS -mount -type f -ls 2>/dev/null | sort -rnk7 | head -n $NUMRESULTS |awk '{printf "%d MB\t%s\n", ($7/1024)/1024,$NF}' | column -t
# Интерактивна команда: Првих 30 фолдера са највише inode-ова
echo -n "Enter filesystem path: " ; read FS ; find ${FS} -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n | tail -30
# Излистај ми 50 највећих фајлова на некој путањи
find /path/to/file -type f -ls | awk '{print int($7/1024/1024)"MB "$5":"$6" ("$9"."$8"/"$9":"$10") "$11}' | sort -h | tail -50 | column -t
# Да ли се неки диск користи на систему или не (добра провера код додавања нових дискова у LVM). Writes и IO треба да су нула
# Команда је интерактивна
echo -n "Disk name (example sdx): " ; read DN ; vmstat -d | head -1 ; vmstat -d 1 | grep ${DN}
# Колико мегабајта заузимају сви логови из неког фолдера и његових подфолдера
find /path/to/folder -type f -iname '*.log' -exec du -shm {} \; | cut -f1 | awk '{s+=$1} END {printf "%.0f MB", s}' && echo
# Излистај ми све фајлове веће од 300MB и ислистај по времену измене
find /folder/ -type f -size +300M -exec stat -c 'Modified: %y | Size: %s | %n' {} \; | sort -h
# Излистај ми све фајлове старије од 90 дана (интеркативно)
echo -n "Path: " ; read PATH_TO_SEARCH ; echo "--------------------------------------" ; find "$PATH_TO_SEARCH" -type f -mtime +90 2>/dev/null | xargs ls -ltr 2>/dev/null | awk '{print $9" "$7"."$6"@"$8 " "$3":"$4" "int($5/1024/1024)"MB"}' | column -t
# Излистај фајлове који су обрисани али их неки процес још држи необрисанима
lsof | grep deleted | grep 'REG\|DIR' | awk '{ print $1" pid:"$2" user:"$3" "$9" "int($7/1024/1024)"MB" }' | column -t
Меморија, процесор, SWAP
# Меморија: Првих 10 најтежих процеса
ps aux --sort -rss | head -11
# Меморија SWAP: Првих 30 најтежих процеса
for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | head -30
Греповање, компарације
# Изгрепуј неискоментарисане линије из неког фајла (корисно код читања конфигурационих фајлова)
grep -v '^#\|^$' /path/to/file
# Нађи исте линије које се налазе у нека два фајла
awk 'FNR==NR{a[$1];next}($1 in a){print}' fajl1.txt fajl2.txt
Остало
# Четовање између сервера серверска страна nc -l 55555 # Четовање између сервера клијентска страна nc remote.host 5555 # Па пиши поруке
# Да ли је машина виртуална или не
dmidecode | grep 'Product Name'
# Скидање целе странице са све фајловима иза линкова на истој (корисно код синхронизације репозиторијума ако нема rsync-a омогућеног
wget --no-clobber --convert-links --random-wait -r -p -E -e robots=off -U mozilla 'link-ka-stranici.nekoj.bla/blabla'
Аца
05/07/2019 @ 14:42
Имаш ли неки програм који под Линоксом извештава о апликацијама које тренутно користе хард диск? И још када би ми стигао емаил када одговориш…
shellinflux@safe-mail.net
24/01/2022 @ 18:55
Поздрав, можете пробати програм lsof. Можда од помоћи буду и hdparm и powertop. Тренутно не могу да се сетим нечег кориснијег од ових.