My Commands: Difference between revisions
(→Bash) |
(→Dig) |
||
(43 intermediate revisions by the same user not shown) | |||
Line 12: | Line 12: | ||
Save Packet Captures |
Save Packet Captures |
||
tcpdump -s 0 -i eth0 host 10.1.1.1 -v -w /tmp/packet_capture.cap |
tcpdump -s 0 -i eth0 host 10.1.1.1 -v -w /tmp/packet_capture.cap |
||
Docker Packet Captures |
|||
docker exec -it 428947239426349 tcpdump -N -A 'port 80' -w capture.pcap |
|||
Netstat list Applications along with open port numbers |
Netstat list Applications along with open port numbers |
||
netstat -anp |
netstat -anp 8080 |
||
netstat -an | grep 8080 |
|||
Netstat list Programs and open port |
|||
netstat -lntp |
|||
<pre> |
|||
Active Internet connections (only servers) |
|||
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name |
|||
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 800/rpcbind |
|||
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1522/nginx |
|||
</pre> |
|||
Show active connections/Applications only |
Show active connections/Applications only |
||
Line 21: | Line 35: | ||
netstat -lnt |
netstat -lnt |
||
Ping a Range: |
|||
for i in {131..140}; do ping -c 1 -t 1 10.52.1.$i; done |
|||
Check Public IP by CLI: |
|||
curl ifconfig.io |
|||
= List Files = |
= List Files = |
||
Line 45: | Line 63: | ||
for i in `find . -type f`; do echo $i; cat $i; done | grep terminate |
for i in `find . -type f`; do echo $i; cat $i; done | grep terminate |
||
while true; do this; do that; sleep 2; done |
while true; do this; do that; sleep 2; done |
||
for i in `find $(pwd) -type f -name '*.gz'`; do echo $i; j=$(echo $i | cut -d '.' -f1); echo $j; mkdir $j; tar xvzf $i -C $j; done # create subdir/extract to folder |
|||
Redirect Standard error to null: |
Redirect Standard error to null: |
||
Line 56: | Line 73: | ||
cp some_file.py{,.orig} |
cp some_file.py{,.orig} |
||
= Grep = |
|||
= Extracting Archives = |
|||
Filter comments from a config file |
|||
grep -vE '^#|^;|^$' server.conf |
|||
Filter multiple strings |
|||
pstree | grep -e docker -e ssh |
|||
= Archives = |
|||
Extract "*.gz" file |
Extract "*.gz" file |
||
Line 66: | Line 91: | ||
Extract "*.tar.bz2" file |
Extract "*.tar.bz2" file |
||
tar jxf FILE_NAME.tar.bz2 |
tar jxf FILE_NAME.tar.bz2 |
||
Extract multiple archives into sub directories: |
|||
for i in `find $(pwd) -type f -name '*.gz'`; do echo $i; j=$(echo $i | cut -d '.' -f1); echo $j; mkdir $j; tar xvzf $i -C $j; done |
|||
Extract files from similarly named directories: |
|||
for i in `find . -name 'tech_node*'`; do cd $i; sudo tar xvzf node.tar.gz; cd ..; done |
|||
Creating a Tar file from a directory: |
|||
tar -zcvf /tmp/log.tar.gz /opt/avi/log/* |
|||
Testing Archives without extracting: |
|||
tar tvf logs.tar.gz |
|||
= Generate 100 HTTP requests = |
= Generate 100 HTTP requests = |
||
Line 83: | Line 120: | ||
= Searching Multiple text files = |
= Searching Multiple text files = |
||
for i in log*; do echo $i ; cat $i | egrep -vi "error|not|warning|false" ; done |
for i in log*; do echo $i ; cat $i | egrep -vi "error|not|warning|false" ; done |
||
= Replace a keyword in all files at once = |
|||
find ./ -name \*.tf -exec sed -i "s/cybernetnews/cybernet/g" {} \; |
|||
find ./ -type f -readable -writable -exec sed -i "s/cybernetnews/cybernet/g" {} \; |
|||
= Cisco = |
|||
R1(config-router)#do sh run | section ospf |
|||
R1(config-router)#do sh run | s ospf |
|||
R1(config-router)#do sh run | include ospf |
|||
R1(config-router)#do sh run | i ospf |
|||
= Top Command = |
|||
top E cycle through Memory units - KB,MB,GB |
|||
1 CPU details for each core |
|||
m Memory Graph |
|||
c complete path |
|||
k kill <pid> |
|||
M Sort by memory usage |
|||
P Sort by CPU usage |
|||
R Results in ascending order |
|||
top -o %CPU |
|||
top -o %MEM |
|||
top -b -n 1 > top.txt |
|||
= CPU Limit = |
|||
sudo apt-get install cpulimit |
|||
ps | grep matho-prime # Find PID of process |
|||
sudo cpulimit -b -l 50 -p 16299 # 16299 is PID & 50 is the CPU % |
|||
= Text Editor = |
|||
== Nano Search == |
|||
Cntrl + W |
|||
== vi == |
|||
Cntl + b => One page before |
|||
Cntl + f => One page after |
|||
dd => Cut Line |
|||
<n>dd => Cut n Lines |
|||
yy => Copy Line |
|||
<n>yy => Copy n Lines |
|||
p => Paste |
|||
= File Sharing = |
|||
Check Samba Shares |
|||
sudo apt install smbclient |
|||
smbclient //10.140.196.7/share -U aman |
|||
= HTTP Proxy through SSL Tunnel = |
|||
ssh -L 127.0.0.1:19443:10.52.201.10:443 aman@10.52.1.138 |
|||
Access = https://127.0.0.1:19443 |
|||
Jump Server = aman@10.52.1.138 |
|||
Remote Server = 10.52.201.10:443 |
|||
= Curl = |
|||
* Test Site Reliability: |
|||
for i in {1..999}; do echo -n $i ' '; curl http://google.com -s -w %{http_code} -o /dev/null -m 1; echo ""; sleep 1; done |
|||
for i in {01..999}; do echo -n $i HTTP Code:' '; /usr/bin/time -qf " Real:%e User:%U Sys:%S" curl http://google.com -s -w %{http_code} -o /dev/null -m 1; sleep 1; done |
|||
while true; do curl http://google.com -s -w %{http_code} -o /dev/null -m 1; echo ""; sleep 1; done |
|||
* Testing Response Times: |
|||
while true; do curl -s -w 'Testing Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnectTime:\t\t%{time_connect}\nAppconnect:\t\t%{time_appconnect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://google.com ; sleep 10; done |
|||
* Testing Time taken & Response Code: |
|||
for i in {1..999}; do echo -n $i ; curl -skL -w ' http code: %{http_code}\tTotal Time: %{time_total}\n' -o /dev/null https://google.com ; sleep 1; done |
|||
* Switches: |
|||
curl -I ==> Response Headers only (HEAD) |
|||
curl -v ==> Request & Response Headers |
|||
curl -k ==> No Certificate validation. |
|||
curl -H "user-agent: Mozilla/5.0" ==> custom header |
|||
curl -L ==> Handle URL redirects |
|||
curl -X <method> ==> Custom request method; otherwise defaults to GET; DELETE, POST, PUT, GET; use with '''-d data''' |
|||
curl -d or curl -F ==> POST |
|||
curl -T ==> PUT |
|||
* See just Request & Response Headers: |
|||
curl -vs google.com 2>&1 > /dev/null| sed '/^* /d; /bytes data]$/d; s/> //; s/< //' |
|||
* Do not use Cache(Server or proxies in middle can ignore this): |
|||
curl -H 'Cache-Control: no-cache' http://www.example.com |
|||
* Output specific lines from multiline output: |
|||
curl -skL https://aman.info.tm | awk '/Articles/ &&NR>=178 && NR<= 180' |
|||
curl -skL https://aman.info.tm | awk 'NR>=178 && NR<= 180' | grep Articles |
|||
= Rsync = |
|||
rsync -avz --progress --partial /home/user/Downloads/ pi@192.168.1.35:/media/temp |
|||
rsync -avzP /home/user/Downloads/ pi@192.168.1.35:/media/temp |
|||
= Dig = |
|||
Show just Errors: |
|||
<pre>while true; do var=$(dig @10.1.1.83 example.com); if [[ $var != *"NOERROR"* ]]; then echo $var; fi; done</pre> |
|||
= Multimedia = |
|||
Join Videos: |
|||
mkvmerge -o outfile.mkv infile_01.mp4 + infile_02.mp4 + infile_03.mp4 |
Latest revision as of 01:55, 26 June 2024
Networking
Quick Traceroute
traceroute -n -w 1 -m 10 4.2.2.2
Save Packet Captures
tcpdump -s 0 -i eth0 host 10.1.1.1 -v -w /tmp/packet_capture.cap
Docker Packet Captures
docker exec -it 428947239426349 tcpdump -N -A 'port 80' -w capture.pcap
Netstat list Applications along with open port numbers
netstat -anp 8080 netstat -an | grep 8080
Netstat list Programs and open port
netstat -lntp
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 800/rpcbind tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1522/nginx
Show active connections/Applications only
sudo netstat -tulpn
netstat -lnt
Ping a Range:
for i in {131..140}; do ping -c 1 -t 1 10.52.1.$i; done
Check Public IP by CLI:
curl ifconfig.io
List Files
Sort List by Time
ls -lhtra
Sort List by Size
ls -lhSra
Do not sort; list entries in directory order
ls -U
Bash
Execute cmd in other dir & return back to original dir
(cd /etc && ls -a)
Copy/Move all files from sub directories into current dir
cp ./*/* .
mv ./*/* .
Loop Commands
for i in `find . -type f`; do echo $i; cat $i; done | grep terminate while true; do this; do that; sleep 2; done
Redirect Standard error to null:
find / -name 'geeqierc.xml' 2>/dev/null
Flush Logs without delete
for i in *; do >$i; done
Quickly backup a file:
cp some_file.py{,.orig}
Grep
Filter comments from a config file
grep -vE '^#|^;|^$' server.conf
Filter multiple strings
pstree | grep -e docker -e ssh
Archives
Extract "*.gz" file
gunzip FILE_NAME.gz
Extract "*.tar.gz" file
tar zxf FILE_NAME.tar.gz
Extract "*.tar.bz2" file
tar jxf FILE_NAME.tar.bz2
Extract multiple archives into sub directories:
for i in `find $(pwd) -type f -name '*.gz'`; do echo $i; j=$(echo $i | cut -d '.' -f1); echo $j; mkdir $j; tar xvzf $i -C $j; done
Extract files from similarly named directories:
for i in `find . -name 'tech_node*'`; do cd $i; sudo tar xvzf node.tar.gz; cd ..; done
Creating a Tar file from a directory:
tar -zcvf /tmp/log.tar.gz /opt/avi/log/*
Testing Archives without extracting:
tar tvf logs.tar.gz
Generate 100 HTTP requests
sudo apt-get install parallel seq 100 | parallel --no-notice -j0 --joblog log curl -s http://10.107.88.91/welcome.png/{} ">" {}.txt cut -f 4 log seq 100 | parallel --no-notice -j0 --joblog log curl http://10.107.88.91/welcome.png/{} ">" {}.txt
Finding Old Logs
- Find and Delete more than 30 days old files:
find /tmp/report_ftw -type f -mtime +30 find /tmp/report_ftw -type f -mtime +30 -name "messages.*" -exec rm -f {} \;
- List and Delete gz files older than 30 days:
find /var/log -type f -mtime +30 -name "*.gz" -exec ls {} \; find /var/log -type f -mtime +30 -name "*.gz" -exec rm -f {} \;
Searching Multiple text files
for i in log*; do echo $i ; cat $i | egrep -vi "error|not|warning|false" ; done
Replace a keyword in all files at once
find ./ -name \*.tf -exec sed -i "s/cybernetnews/cybernet/g" {} \; find ./ -type f -readable -writable -exec sed -i "s/cybernetnews/cybernet/g" {} \;
Cisco
R1(config-router)#do sh run | section ospf R1(config-router)#do sh run | s ospf R1(config-router)#do sh run | include ospf R1(config-router)#do sh run | i ospf
Top Command
top E cycle through Memory units - KB,MB,GB 1 CPU details for each core m Memory Graph c complete path k kill <pid> M Sort by memory usage P Sort by CPU usage R Results in ascending order
top -o %CPU top -o %MEM top -b -n 1 > top.txt
CPU Limit
sudo apt-get install cpulimit ps | grep matho-prime # Find PID of process sudo cpulimit -b -l 50 -p 16299 # 16299 is PID & 50 is the CPU %
Text Editor
Nano Search
Cntrl + W
vi
Cntl + b => One page before Cntl + f => One page after dd => Cut Line <n>dd => Cut n Lines yy => Copy Line <n>yy => Copy n Lines p => Paste
File Sharing
Check Samba Shares
sudo apt install smbclient smbclient //10.140.196.7/share -U aman
HTTP Proxy through SSL Tunnel
ssh -L 127.0.0.1:19443:10.52.201.10:443 aman@10.52.1.138
Access = https://127.0.0.1:19443 Jump Server = aman@10.52.1.138 Remote Server = 10.52.201.10:443
Curl
- Test Site Reliability:
for i in {1..999}; do echo -n $i ' '; curl http://google.com -s -w %{http_code} -o /dev/null -m 1; echo ""; sleep 1; done
for i in {01..999}; do echo -n $i HTTP Code:' '; /usr/bin/time -qf " Real:%e User:%U Sys:%S" curl http://google.com -s -w %{http_code} -o /dev/null -m 1; sleep 1; done
while true; do curl http://google.com -s -w %{http_code} -o /dev/null -m 1; echo ""; sleep 1; done
- Testing Response Times:
while true; do curl -s -w 'Testing Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnectTime:\t\t%{time_connect}\nAppconnect:\t\t%{time_appconnect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://google.com ; sleep 10; done
- Testing Time taken & Response Code:
for i in {1..999}; do echo -n $i ; curl -skL -w ' http code: %{http_code}\tTotal Time: %{time_total}\n' -o /dev/null https://google.com ; sleep 1; done
- Switches:
curl -I ==> Response Headers only (HEAD) curl -v ==> Request & Response Headers curl -k ==> No Certificate validation. curl -H "user-agent: Mozilla/5.0" ==> custom header curl -L ==> Handle URL redirects curl -X <method> ==> Custom request method; otherwise defaults to GET; DELETE, POST, PUT, GET; use with -d data curl -d or curl -F ==> POST curl -T ==> PUT
- See just Request & Response Headers:
curl -vs google.com 2>&1 > /dev/null| sed '/^* /d; /bytes data]$/d; s/> //; s/< //'
- Do not use Cache(Server or proxies in middle can ignore this):
curl -H 'Cache-Control: no-cache' http://www.example.com
- Output specific lines from multiline output:
curl -skL https://aman.info.tm | awk '/Articles/ &&NR>=178 && NR<= 180' curl -skL https://aman.info.tm | awk 'NR>=178 && NR<= 180' | grep Articles
Rsync
rsync -avz --progress --partial /home/user/Downloads/ pi@192.168.1.35:/media/temp rsync -avzP /home/user/Downloads/ pi@192.168.1.35:/media/temp
Dig
Show just Errors:
while true; do var=$(dig @10.1.1.83 example.com); if [[ $var != *"NOERROR"* ]]; then echo $var; fi; done
Multimedia
Join Videos:
mkvmerge -o outfile.mkv infile_01.mp4 + infile_02.mp4 + infile_03.mp4