Napisał: Patryk Krawaczyński
28/01/2014 w CmdLineFu
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
Napisał: Patryk Krawaczyński
08/01/2014 w CmdLineFu
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
Napisał: Patryk Krawaczyński
17/12/2013 w CmdLineFu
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
Napisał: Patryk Krawaczyński
26/01/2013 w CmdLineFu
Wszystkie polecenia oraz ich komunikaty wyjściowe zostaną zapisane do pliku srv_session.txt
:
ssh login@server.com | tee -a srv_session.txt
Napisał: Patryk Krawaczyński
05/12/2012 w CmdLineFu
Szybkie sprawdzenie zewnętrznego adresu IP hosta za pomocą polecenia curl
:
curl ifconfig.me/ip
Reverse DNS:
curl ifconfig.me/host
Napisał: Patryk Krawaczyński
13/10/2012 w CmdLineFu
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
Napisał: Patryk Krawaczyński
08/10/2012 w CmdLineFu
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 {} \;
Napisał: Patryk Krawaczyński
06/09/2012 w CmdLineFu
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 "" }'
Napisał: Patryk Krawaczyński
04/09/2012 w CmdLineFu
Graficzne drzewko dla podkatalogów za pomocą sed:
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
Napisał: Patryk Krawaczyński
10/06/2012 w CmdLineFu
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'
Ostatni komentarz :