Ganav Posted July 24, 2014 Report Posted July 24, 2014 Acesta este primul dintr-o serie de tutoriale care prezinta diverse comenzi si scurtaturi in bash. Lista de comenzi se afla mai jos:sudo !!Comanda de mai sus ruleaza comanda anterioara ca si r00t.du | sort -gr > dimensiune_fisiereComanda sorteaza dimensiunea fisierelor in ordine crescatoare dupa care salveaza rezultatele in "dimensiune_fisiere".echo La miezul noptii | at midnightComanda de mai sus se executa de fiecare data la miezul noptii(echo poate fi inlocuita cu orice comanda).find . -type f | wc -lComanda numara toate fisierele care se gasesc in directorul curent. Numara, de asemenea, si fisierele situate in subdirectoare ale directorului curent.ps aux | sort -nk +4 | tailComanda afiseaza primele 10 procese dupa consumul acestora de memorie(+4 reprezinta a patra coloana dupa executia comenzii ps aux). tail afiseaza ultimele zece linii ale unui fisier in stdout. In cazul nostru acestea sunt procesele care consuma cea mai mare cantitate de memorie.tar czv fisier folder1 fisier2 | ssh user@server tar zxv -C /destinatieComanda de mai sus arhiveaza fisier, folder1 si fisier2 dupa care le scrie in stdout. Rezultatul este transmis pe server prin ssh dupa care este dezarhivat in directorul /destinatie de pe server.nslookup rstforums.com | tee rst_dns.txtComanda tee face o copie a iesirii standard(stdout) a comnezii nslookup in fisierul rst_dns.txtresetComanda restaureaza sesiune unui terminal inchis.URL=rstforums.com && wget -rq --spider --force-html "https://$URL" && find $URL -type d > link-uri_rst.txt && rm -rf $URLComanda de mai sus extrage toate link-urile de pe forum dupa care le salveaza in link-uri_rst.txt.watch -n 30 uptimeCu aceasta comanda putem pastra o sesiune ssh activa(watch este rulata la fiecare 30 de secunde; conexiunea este inchisa dupa un anumit timp de inactivitate).ssh user@192.168.6.7 "ps aux | grep apache2"Putem rula o comanda pe un server. Comanda de mai sus verifica daca apache este pornit pe 192.168.6.7.(cd /tmp && ls -la)Cu aceasta comanda putem naviga intr-un director, executam o comanda dupa care revenim in directorul initial.find /cale/catre/director -type f -print0 | xargs -0 rmComanda de mai sus permite stergerea fisierelor din /cale/catre/director(directoarele sunt pastrate).mkdir ~/Proiecte/proiect{1..3}Comanda de mai sus permite crearea unui numar mare de directoare itntr-o singura linie de comanda. Acestea vor avea forma proiect1, proiect2, proiect3.du -s * | sort -n | tailComanda de mai sus afiseaza primele zece cele mai mari fisiere/directoare din directorul curent.whereis numecomandawhich numecomandalocate numecomandaComenzile de mai sus permit localizarea unui executabil.ssh -N -L2000:localhost:80 statieladistantaCrearea unui tunel ssh de la portul 80 al unei statii la distanta si portul 2000 al statiei curente(pe cea care a fost rulata comanda).echo "rm -rf /director-mare/nefolositor" | batchComanda de mai sus sterge directorul daca acesta ocupa mai mult de 80 la suta din dimensiunea capacitatii de stocare in care se gaseste.ssh user@host cat /cale/catre/fisier/ladistanta | diff /cale/catre/fisier/local-Comanda de mai sus compara doua fisiere:unul situat pe statia locala iar celalalt pe o statie la distanta.cat /etc/issueComanda de mai sus afiseaza numele distributiei curente.iptables -A INPUT -s 192.168.2.3/32 -j DROPComanda de mai sus blocheaza conexiuni care vin din partea statiilor ce au urmatoarele IP-uri 192.168.2.xx .lspci -vvComanda de mai sus afiseaza toate drivere-le instalate.python -m HTTPServerComanda de mai sus creeaza un server http care poate fi accesat la adresa http://$HOSTNAME:8000/lsof -i -n | grep ESTABLISHEDComanda de mai sus afiseaza toate conxiunile TCP active.curl -I rstforums.comComanda de mai sus preia antetele HTTP(HTTP headers) ale forum-ului. 4 2 Quote
tromfil Posted July 24, 2014 Report Posted July 24, 2014 Câteva lucruri utile ?i aici.https://rstforums.com/forum/43047-sh0rt-line-c0de.rst+repEdit: nu se mai poate. "You must spread some Reputation around before giving it to Ganav again." 1 Quote
malsploit Posted July 24, 2014 Report Posted July 24, 2014 Puteti sa aruncati un ochi si pe aici. All commands | commandlinefu.com Quote
Castiel Posted July 25, 2014 Report Posted July 25, 2014 Aici aveti detalii in romana + exemple : linuxtm.ro | comenzi linux , tutoriale linux Quote
Ganav Posted July 25, 2014 Author Report Posted July 25, 2014 Acest tutorial face parte din continuarea unei serii incepute aici:https://rstforums.com/forum/87361-tut-comenzi-utile-bash-1-a.rst#post560313Un material pe aceasta tema, de asemenea interesant, se gaseste la:https://rstforums.com/forum/43047-sh0rt-line-c0de.rstmount /cale/catre/imagine.iso /mnt/cdrom <-oloop>)Comanda de mai sus monteaza o imagine .iso intr-un director anume. Optiunea -oloop permite folosirea fisierului(a imaginii) ca un device de tip block.fuser [numar port]/[protocol]Comanda de mai sus gaseste procesul asociat unui port deschis(pid-ul acestuia mai exact).du -hc *Comanda afiseaza spatiul ocupat in Kb/Mb/Gb al unui folder pentru fiecare fisier pe care il contine. In acest exemplu toate fisierele vor fi luate in considerare. python -m smtpd -n -c ServerDebug localhost:2025Aceasta comanda creeaza un smtp server care asculta pe portul 2025 si permite operatii de depanare. Server-ul afiseaza la iesirea standard(stdout) antetele email(e-mail headers) si corpul mesajelor(email body)perl -pi -e 's/sir1/sir2/g' fisier*Comanda de mai sus inlocuieste in toate fisierele din directorul curent care incep cu string-ul "fisier" cuvintele "sir1" cu "sir2".sed -i 's/sir1/sir2/g' fisierComanda este asemanatoare cu cea de mai sus.ps auxfComanda de mai sus listeaza toate procesele active la un moment dat precizand si relatia dintre acestea(care sunt procese de tip parinte si care sunt fiii acestora). netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -cComanda afiseaza numarul si tipul conexiunilor active la un moment dat. for i in */*.rar; do unrar i $i; donefor i in *.rar; do unrar i $i; donefor i in */*.zip; do unzip i $i; donefor i in *.zip; do unzip i $i; donefor i in */*.tar.gz; do tar zxvf i $i; donefor i in *.tar.gz; do tar zxvf i $i; donefor i in */*.tar.bz2; do tar xvjf i $i; donefor i in *.tar.bz2; do tar xvjf i $i; doneComenzile de mai sus prezinta mijloace de a dezarhiva mai multe tipuri de arhive(.rar, .zip, .tar.gz, .tar.bz2). Dezarhivarea se poate face pentru toate fisierele de un anumit tip(care au o anumita extensie) din directorul directorul curent: *.extensie(.rar, .zip, .tar.gz, .tar.bz2) sau pentru toate subdirectoarele din directorul curent: */*.extensie(.rar, .zip, .tar.gz, .tar.bz2). Rezultatele vor scrise in directorul din care s-a lansat comanda.for i in `ps aux | grep httpd | awk '{print $2}'`; do lsof -n -p $i | grep ESTABLISHED; done;Comanda de mai sus afiseaza toate legaturile stabilite cu procesul apache.tcpdump -nli eth0; tcpdump -nli eth0 src or dst xx.xx.xx.xx; tcpdump -nli eth0 port 80; tcpdump -nli eth0 proto udptcpdump permite vizualizarea pachetelor dintr-o retea. Optiunile cele mai comune(utile) sunt:-n afiseaza adrese IP in format numeric(nu ne trebuie numele dns)-l afiseaza o linie imediat ce este gata(nu mai facem procesari aditionale)-i eth0 reprezinta interfata de retea pe care dorim sa monitorizam pachetelesrc sau dst reprezinta sursa respectiv destinatia pachetelor. Mai sus acestea sunt reprezentate cu xx.xx.xx.xxport 80 urmareste pachete HTTP(de fapt orice este transmis/receptionat pe acest port)proto udp afiseaza doar pachete de tip UDPPutem combina aceste optiuni cu "and" si "not" in functie de cerinte.tr -dc '[:lower:]' < /dev/urandom | head -c 10Comanda de mai sus genereaza un string de zece caractere printabile dupa care il afiseaza la iesirea standard(stdout).^uComanda elimina campurile de parole scrise gresit(acestea de regula nu sunt vizibile).statie_destinatie nc -l 2014 > iesire; statie_sursa nc statie_destinatie 2014 < intrare;Comanda de mai sus lanseaza utilitarul netcat in mod de ascultare pe statia destinatie; tot traficul primit pe portul 2014 este stocat in fisierul iesire. Pe statia sursa netcat citeste un flux de octeti din fisierul intrare dupa care il scrie peste retea statiei destinatie care il va stoca in fisierul iesire situat pe aceasta din urma. Este practic echivalentul uni pipe peste o conexiune TCP.dig rstforums.com mx +shortComanda extrage inregistrarile de tip mai exchange asociate domeniului rstforums.com(adica server-ele de pe care se transmit/receptioneaza email-uri).ldconfig -pComanda de mai sus arata corespondentele intre bibliotecile partajate(shared library mappings) si un executabil stabilite de catre linker.sshfs nume@server:/cale/catre/imagine /cale/catre/punct/de/montareComanda face exact ceea ce face mount insa folosind fisiere de pe doua statii diferite(putem folosi aceiasi statie insa ar fi redundant) peste o conexiune SSH.fuser -k numefisierComanda termina un proces ce mentine un fisier deschis.ps aux | awk '{ print $8 " " $2 " " $11}' | grep -w ZComanda permite gasirea proceselor zombi(acestea sunt procese care si-au indeplinit functia dar inca pastreaza o intrare in tabela proceselor(process table). Cu alte cuvinte nu mai au un handle prin care se pot inchide(acesta este detinut de procesul parinte).rsync -av --progress ./fisier user@host:/cale/Comanda permite transmiterea unui fisier local pe o statie la distanta.scp /cale/catre/fisier.txt user@host:/cale/catre/destinatieComanda de mai sus permite copierea unui fisier local pe o statie la distanta prin SSH. scp -r /cale/catre/director user@host:/cale/catre/destinatieComanda de mai sus permite copierea unui director si al subdirectoarelor local pe o statie la distanta prin SSH. curl -s http://myip.dk/ | egrep -m1 -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'Comanda afiseaza IP-ul extern al statiei curente. 1 Quote
tromfil Posted July 25, 2014 Report Posted July 25, 2014 Pentru dezarhivare cam asta am eu în bashrc, respectiv zshrc. Dezarhiveaz? inclusiv gif-uri. Pachetele necesare le b?ga?i voi.Se folose?te cu:extract FILE### Extract Archives ###extract () { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xjvf $1 ;; *.tar.gz) tar xzvf $1 ;; *.bz2) bzip2 -d $1 ;; *.gz) gunzip $1 ;; *.tar) tar xf $1 ;; *.tbz2) tar xjf $1 ;; *.tgz) tar xzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; *.7z) 7z x $1 ;; *.lzo) lzop -d $1 ;; *.gif) mkdir $1.frames convert -coalesce $1 $1.frames/frame.png ;; *) echo "'$1' cannot be extracted via extract()" ;; esac else echo "'$1' is not a valid file" fi} Quote
gogusan Posted July 26, 2014 Report Posted July 26, 2014 Load Alert - fiecare isi pune limita dupa bunul placlimit=40servername=$( /bin/hostname )TOPFILE=top-`date +%m%d%y`-`date +%H%M`.txtload=$( cat /proc/loadavg | awk -F. '{print $1}' )if [ $load -gt $limit ]; then if [ -e /var/lock/subsys/loadalert ];then exit else /usr/bin/top -n 1 -b > /toplogs/$TOPFILE /bin/cat /toplogs/$TOPFILE| /bin/mail -s "*LOAD: $servername at $load**" muiebasescu@yahoo.com touch /var/lock/subsys/loadalert fielse if [ -e /var/lock/subsys/loadalert ];then rm -f /var/lock/subsys/loadalert fifi Quote
Ganav Posted August 10, 2014 Author Report Posted August 10, 2014 Acesta este al treilea tutorial din serie. alias grep 'gnu grep -i --color=auto'Comanda de mai sus creeaza un alias care afiseaza rezultatele comenzii grep in culori.Ctrl + Alt + sageti Combinatia de mai sus permite schimbarea spatiului de lucru(workspace) pe Debian.last | awk '{ print $1 }' | sort | uniq -c | grep -v wtmpComanda de mai sus afiseaza cati utilizatori sau logat/delogat si de cate ori.mkdir -p o/cale/lungaCrearea mai multor directoare cu o ordine ierarhica predefinita folosind o singura comanda.wget -qO - "http://www.site.com/arhiva.tar.gz" | tar zxvf -Secventa de mai sus permite extragerea unui fisier arhivat fara a-l salva local.sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 /fisier/ipuriComanda de mai sus permite sortarea IP-urilor dintr-un fisier in functie de octeti(IPv4).ldd <nume executabil>Comanda de mai sus afiseaza toate bibliotecile folosite de executabil.ls -al /proc/<PID>/fdSecventa de mai sus afiseaza toti descriptorii de fisieri asociati procesului cu ID-ul PID.find /cale -type d -perm 777 -exec chmod 755 {} \;Comanda de mai sus schimba permisiunile tuturor fisierelor din /cale din 777 in 755.sudo dd if=/dev/mem | cat | stringsComanda de mai sus afiseaza toate string-urile din RAM.alias ip4grep "grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}'"Comanda de mai sus creeaza un alias pentru cautarea de adrese IPv4 intr-un fisier.find . \( -name '*.h' -o -name '*.cpp' \) | xargs grep . | wc -lSecventa de mai sus cauta fisiere de tip .h si .cpp in directorul curent dupa care afiseaza numarul de linii din fiecare fisier.for i in $(seq 1 50) ; do echo Iteration $i ; done Comanda de mai sus itereaza de la 1 la 50, afisand indexul la fiecare iteratie.sed -n '10,20p' <nume_fisier>Comanda de mai sus afiseaza toate liniile intre 10 si 20 din fisier.tar zcvf nume_dir-$(date +%Y%m%d-%H%M).tar.gz nume_dir/Comanda de mai sus creeaza o arhiva cu timestamp a unui director.script <nume_log>Comanda creeaza un log pentru sesiunea curenta din terminal.history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | headComanda afiseaza cele mai des comenzi utilizate. !!:gs/foo/barComanda ruleaza comanda precedenta inlocuind textul foo cu textul bar.echo $0Comanda afiseaza shell-ul curent.i=0; f=$(find . -type f -iregex ".*jpg");c=$(echo $f|sed "s/ /\n/g"| wc -l);for x in $f;do i=$(($i + 1));echo "$x $i of $c"; mogrify -strip $x;doneComanda sterge datele din header-ul EXIF din fisiere .jpeg.mogrify -resize 1024 *.jpgSecventa modifica dimensiunea imaginilor .jpg din directorul curent.watch -n 15 curl -s --connect-timeout 10 http://www.google.com/Comanda de mai sus verfica cand o conexiune la un server web se poate stabili. Verficarea se face din 15 in 15 secunde cu o perioada de asteptare(timeout) de 10 secunde.rename .extensieveche .extensienoua *.extensievecheComanda schimba extensia veche tuturor fisierelor cu o extensie noua din directorul curent Quote
malsploit Posted August 21, 2014 Report Posted August 21, 2014 Poate trebuie cuiva. Se schimba ip-ul din tor la fiecare 3 secunde. #!/bin/shwhile [ 1 ]; do pidof tor | xargs sudo kill -HUP sleep 3done Quote
Ganav Posted August 28, 2014 Author Report Posted August 28, 2014 Acesta este al patrulea tutorial din serie. Un mod efficient de a ramane anonimi atunci cand folosim retele WiFi publice este de a folosi adrese MAC arbitrare. Putem realiza acest lucru fie manual(modificand manual adresa) sau folosind un utilitare precum macchanger. Acesta poate fi descarcat de aici:GNU Project ArchivesRulam programul ca si root in felul urmator(presupunand ca suntem pe ubuntu/debian):sudo macchanger -r <interfata>Unde interfata este interfata de retea pe care dorim sa folosim o adresa arbitrara. Pentru ethernet aceasta este eth0, eth1, ... , ethn unde 'n' este un numar intreg. Pentru wireless este wlan0, wlan1, ... , wlann unde 'n' este un numar intreg.Pentru a schimba adresa manual in felul urmator:ip link show <interfata>Ne uitam dupa un sir de caractere:link/ether 00:11:22:33:44:55Acum rulam urmatoarea comanda pentru a debransa interfata respectiva:ip link set dev <interfata> downAcum putem schimba MAC-ul ruland:ip link set dev <interfata> address XX:XX:XX:XX:XX:XXAcum trebuie sa reactivam interfata:ip link set dev <interfata> up 1 Quote