Istnieją takie komendy w Linuksie, które zaoszczędzają masę pracy, zabezpieczają nas i aplikacje przed popełnieniem błędów lub po prostu wykonują za nas 99% żmudnej pracy. Prezentuję kilka z nich, bez których nie wyobrażam sobie codziennej pracy.
- Dopisanie linii tekstu na początek pliku
sed -i '1s/^/+:USER:ALL\n/' test
Polecam przy dodawaniu wpisów do /etc/security/access.conf, gdy na końcu mamy -ALL:ALL
- Zamiana wielkich liter, na małe litery
tr [A-Z] [a-z]
Przydatne gdy potrzebujemy zunifikować jakiś tekst, czy zawartość zmiennych.
- Wyświetlanie wybranej kolumny ze spisu oddzielonego wybranym znakiem
awk -F',' '{print $1}' test.csv
Użyteczne przy wyświetlaniu danych z plików CSV
- Wyświetlanie pasujących danych w kolumnie z wybranej kolumny ze spisu oddzielonego wybranym znakiem
awk -F' ' '$2~/udp/ {print $7}'
Pożyteczne przy wyświetlaniu wielu linii reguł firewalla, w tym przykładzie wyświetlona przez iptables tablica nat pokaże jakie numery portów UDP są przekierowane
- Zmiana wartości w wielu plikach jednocześnie
sed -i 's/192\.168\.10\.10/10.10.10.10/g' /opt/apache/conf/httpd.conf /etc/ssh/sshd_config
Bezcenne, gdy chcemy zmienić masowo zawartości plików, na przykład, gdy zmieniamy adres IP serwera, a nasłuchujemy na sztywno zdeklarowanym adresie.
- Wyświetlanie wpisów zaczynających się od wyrazu1 a kończącego na wyrazie2
sed -n '/<title>/,/<\/title>/p' nazwapliku
Przyspiesza pracę przy analizie html-a oraz wielu konfiguracji
- Wypisanie zajętości danych przez katalogi w określonym katalogu
find / -mindepth 1 -maxdepth 1 -type d -exec du -sh {} \;
Wygodne, gdy chcemy przeanalizować, który katalog w drzewie plików zajmuje nam dużo miejsca. Często wykorzystywane już po wykonaniu komendy df, gdzie df może nam odpowiedzieć, że na przykład wolumen /var/log zajmuje nam już 99% swojej przestrzeni, a chcemy wiedzieć, co musimy zarchiwizować.
- Wyświetlenie zawartości pliku bez wybranych linii
grep -vE "^#|^$" /etc/ssh/sshd_config
Powyższy przykład wyświetli nam plik konfiguracyjny bez komentarzy i pustych linii, znakomicie ułatwia czytanie konfiguracji.
- Użycie tcp oraz udp z katalogu /dev
echo > /dev/tcp/192.168.1.1/443
Bardzo proste sprawdzenie, czy coś nasłuchuje na tym adresie IP i porcie
- Zamontowanie pliku iso do katalogu
mount -o loop,ro /sciezka/do/pliku.iso /sciezka/do/zamontowania
Polecam, gdy posiada się kopie dysków wykonane przez dd lub chce się obejrzeć zawartość obrazu płyty
- Który zestaw instalacyjny w repozytorium RHEL/CentOS/Fedora dostarczy szukanej aplikacji
yum whatprovides */gcc
yum provides */gcc
Przyspieszy poszukiwanie odpowiedniej paczki rpm
- Wykonywanie komend na zdalnym systemie i otrzymywanie wyników na lokalnym komputerze
echo 'free -t' | ssh user@router2
Aby było to użyteczne w praktyce, trzeba mieć wymienione klucze, wtedy można wykonać jedną komendę na wielu serwerach
- Wyekstrahowanie zawartości pliku rpm bez jego instalacji
rpm2cpio plik.rpm | cpio -idmv
Czasem możemy nie mieć uprawnień lub chęci instalowania jakiegoś narzędzia, wiele z nich można uruchomić, stąd przydatność powyższego rozwiązania
- Skopiowanie na serwer SSH swojego klucza publicznego
ssh-copy-id -i /home/uzytkownik/.ssh/klucz.pub uzytkownikzdalny@maszynazdalna
Zdecydowanie usprawnia proces kopiowania kluczy na serwery