NFsec Logo

Automatyczne poprawianie literówek w nazwach katalogów

28/01/2014 w CmdLineFu Możliwość komentowania Automatyczne poprawianie literówek w nazwach katalogów została wyłączona

W powłoce bash istnieje możliwość poprawiania drobnych literówek nazw katalogów. Jest to szczególnie przydatna funkcja przy szybkim, ale czasami niedokładnym pisaniu na klawiaturze:

# cd /etc/mall
-bash: cd: /etc/mall: No such file or directory
# shopt -s cdspell
# cd /etc/mall
# pwd
/etc/mail

Polecenie shopt -s cdspell możemy dodać do pliku .bash_profile, aby funkcja ta zawsze była włączona przy otwieraniu nowej powłoki.

Więcej informacji: man bash

Zdefiniowane katalogów do przeszukiwania w ścieżce polecenia “cd”

08/01/2014 w CmdLineFu Możliwość komentowania Zdefiniowane katalogów do przeszukiwania w ścieżce polecenia “cd” została wyłączona

J

eśli wykonujemy bardzo często polecenie “cd” do konkretnych katalogów podrzędnych – możemy zdefiniować ich katalogi nadrzędne – w ścieżce przeszukiwania przez polecenie change directory. Załóżmy, że bardzo często korzystamy z katalogów /etc oraz $HOME – dodając poniższy wpis do pliku ~.bash_profile:

export CDPATH=.:~:/etc

Spowodujemy, że przy następnym zalogowaniu do powłoki bash będąc np. w katalogu /usr/local/bin i wydając polecenie cd desktop – jeśli taki katalog istnieje w ścieżce $HOME lub /etc – zostaniemy do niego przerzuceni bez konieczności zmiany przez pełną ścieżkę np. cd /home/agresor/desktop.

Więcej infromacji: man bash

Przyśpieszanie polecenia: grep

17/12/2013 w CmdLineFu 1 komentarz.

C

iekawy trick zaprezentowany przez Brendan’a Gregg’a z firmy Joyent w przemówieniu na konferencji LISA 13 pt. Blazing Performance with Flame Graphs. Wyniki testu mogą zależeć od wielkości testowanego pliku i rodzaju szukanej fazy:

# export | grep LANG
declare -x LANG="pl_PL.UTF-8"
# du -h access.log.1
436M	access.log.1
# time grep -i 500 access.log.1 > /dev/null
real	0m38.765s
user	0m31.506s
sys	0m0.420s
# echo 3 > /proc/sys/vm/drop_caches
# time LANG=C grep -i 500 access.log.1 > /dev/null
real	0m21.762s
user	0m0.636s
sys	0m0.268s

Więcej informacji: Make grep 50x faster

Nagrywanie sesji SSH do pliku

26/01/2013 w CmdLineFu Możliwość komentowania Nagrywanie sesji SSH do pliku została wyłączona

Wszystkie polecenia oraz ich komunikaty wyjściowe zostaną zapisane do pliku srv_session.txt:

ssh login@server.com | tee -a srv_session.txt

Szybkie sprawdzenie zewnętrznego adresu IP i hosta

05/12/2012 w CmdLineFu Możliwość komentowania Szybkie sprawdzenie zewnętrznego adresu IP i hosta została wyłączona

Szybkie sprawdzenie zewnętrznego adresu IP hosta za pomocą polecenia curl:

curl ifconfig.me/ip

Reverse DNS:

curl ifconfig.me/host

Wykrywanie adresu IP o danej ilości odwiedzin na stronie WWW

13/10/2012 w CmdLineFu Możliwość komentowania Wykrywanie adresu IP o danej ilości odwiedzin na stronie WWW została wyłączona

Polecenie wyodrębnia z dziennika serwera WWW adres IP, który więcej niż 500 razy odnotował swoją aktywność:

for ip in `cat access.log | cut -d ' ' -f 1 | sort | uniq`; \
do { count=`grep ^$ip access.log | wc -l`; \
if [[ "$count" -gt "500" ]]; then echo "$count: $ip"; fi }; done

Znajdź wszystkie puste linki w systemie

08/10/2012 w CmdLineFu Możliwość komentowania Znajdź wszystkie puste linki w systemie została wyłączona

Znajdź puste linki w systemie – od katalogu root / – osiem poziomów wgłąb:

find -L / -maxdepth 8 -type l

Znajdź puste linki w systemie oraz wskaż ich docelowe obiekty:

find -L / -maxdepth 8 -type l -exec ls -al {} \;

Graficzna reprezentacja nawiązanych połączeń per host

06/09/2012 w CmdLineFu Możliwość komentowania Graficzna reprezentacja nawiązanych połączeń per host została wyłączona

Polecenie wyświetla ilość (“*”) nawiązanych połączeń per host:

netstat -an | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | awk '{ printf("%s\t%s\t",$2,$1) ; for (i = 0; i < $1; i++) {printf("*")}; print "" }'

Graficzna reprezentacja drzewka podkatalogów

04/09/2012 w CmdLineFu Możliwość komentowania Graficzna reprezentacja drzewka podkatalogów została wyłączona

Graficzne drzewko dla podkatalogów za pomocą sed:

ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'

MySQLdump dla replikacji przesłany na drugi host poprzez SSH

10/06/2012 w CmdLineFu Możliwość komentowania MySQLdump dla replikacji przesłany na drugi host poprzez SSH została wyłączona

MySQLdump z wykluczeniem kilku baz danych, przesyłany z kompresją przez SSH na 2’gi host:

mysql -u root -p$PASS -e 'show databases' | perl -ne 'print unless /\b(?:mysql|information_schema|Database)\b/' | xargs mysqldump -u root -p$PASS --master-data=2 --single-transaction -B | gzip -c | ssh login@2host.com 'cat > ~/mysql.sql.gz'