Check These Out
for one line per process:
$ ss -p | cat
for established sockets only:
$ ss -p | grep STA
for just process names:
$ ss -p | cut -f2 -sd\"
or
$ ss -p | grep STA | cut -f2 -d\"
For example we need find fast where located and described keyword COMMIT_EDITMSG in man files. Here example howto solve it by search with command bzgrep in man files. Generally these files in bz compressed format. You can use another keywords to your search. Common syntax is:
bzgrep -lE keyword1 /usr/share/man/man?/optional-keyword-to-refine*
or
bzgrep -lE keyword1 /usr/share/man/man?/*
where optional-keyword-to-refine is optional and may be omitted but used to speedup search
Of course you may combine other options for bzgrep (its based on grep)
It takes over 5 seconds to scan a single port on a single host using nmap
$ time (nmap -p 80 192.168.1.1 &> /dev/null)
real 0m5.109s
user 0m0.102s
sys 0m0.004s
It took netcat about 2.5 minutes to scan port 80 on the class C
$ time (for NUM in {1..255} ; do nc -w 1 -z -v 192.168.1.${NUM} 80 ; done &> /dev/null)
real 2m28.651s
user 0m0.136s
sys 0m0.341s
Using parallel, I am able to scan port 80 on the entire class C in under 2 seconds
$ time (seq 1 255 | parallel -j255 'nc -w 1 -z -v 192.168.1.{} 80' &> /dev/null)
real 0m1.957s
user 0m0.457s
sys 0m0.994s
swap out "80" for your port of interest. Can use port number or named ports e.g. "http"
Converts any number of seconds into days, hours, minutes and seconds.
sec2dhms() {
declare -i SS="$1"
D=$(( SS / 86400 ))
H=$(( SS % 86400 / 3600 ))
M=$(( SS % 3600 / 60 ))
S=$(( SS % 60 ))
[ "$D" -gt 0 ] && echo -n "${D}:"
[ "$H" -gt 0 ] && printf "%02g:" "$H"
printf "%02g:%02g\n" "$M" "$S"
}
Given some images (jpg or other supported formats) in input, you obtain a single PDF file with an image for every page.
Don't do this:
$echo word | command
Using a bash "here strings" and "here documents" look leeter than piping echo into the command. Also prevents subshell execution. Word is also expanded as usual.