one_liners
One-linery
pliki
/etc
-
Ile jest osób w
/etc/passwdo nazwisku Nowak?cat /etc/passwd | awk -F: '{print $5}' | grep -i 'nowak' | wc -l -
Jaki jest najmniejszy numer grupy w systemie
cat /etc/group | awk -F: '{print $3}' | sort -n | head -1 -
Jaki jest największy numer grupy w systemie
cat /etc/group | awk -F: '{print $3}' | sort -nr | head -1 -
Podać ilość użytkowników o UID < 1000
cat /etc/passwd | awk -F: '{if($3 < 1000) print "cokolwiek"}' | wc -l -
Ile jest w systemie grup, które są grupą podstawową dla co najmniej jednego użytkownika?
cat /etc/passwd | awk -F: '{print $4}' | sort | uniq | wc -l -
Ile jest w systemie grup, które nie są grupą podstawową dla co najmniej jednego użytkownika?
echo $((`cat /etc/group | wc -l` - `cat /etc/passwd | awk -F: '{print $4}' | sort -n | uniq | wc -l`)) -
Ile grup w systemie nie jest grupami dodatkowymi dla żadnego użytkownika?
cat /etc/group | awk -F : '{print $4}' | grep ^$ | wc -l -
Numer grupy podstawowej największej liczby użytkowników
cat /etc/passwd | awk -F: '{ print $4 }' | sort -n | uniq -c | sort -nr | head -1 | awk '{ print $2 }' -
Użytkownik o największym UID (wypisać to UID)
cat /etc/passwd | awk -F: '{ print $3 }' | sort -nr | head - -
Użytkownicy, których nazwa składa się z dokładnie 8 znaków.
grep -cE -e '^[^:]{8}:' /etc/passwd -
Zakładając, że w odpowiedniej kolumnie odpowiedniego pliku jest zdefiniowane imię i nazwisko użytkownika, znajdź ile jest osób o nazwisku Kowalski.
cat /etc/passwd | awk -F: '{print $5}' | grep -i kowalski | wc -l -
Podaj liczbę lokalnych użytkowników którzy nie mogą się zalogować (/sbin/nologin jako shell)
cat /etc/passwd | awk -F: '{if($7=="/usr/sbin/nologin") print $7}' | wc -l -
Podaj liczbę grup w systemie
cat /etc/group | awk -F '{print $3}' | wc -l -
Podać grupę o najwyższym numerze, która jest grupą podstawową dla przynajmniej jednego użytkownika
cat /etc/passwd | awk -F '{print $3}' | sort -n | uniq | sort -nr | head -1
inne
-
Podaj nazwę pliku w katalogu domowym o największym rozmiarze
ls -al ~ | grep '^-' | awk '{print $5,$9}' | sort -n | tail -n1 | awk '{print $2}' -
Podaj nazwę pliku w katalogu domowym o największej ilości bloków
ls -als ~ | awk '{print $2,$1,$10}' | grep "^-" | awk '{print $2,$3}' | sort -nr | head -1 | awk '{print $2}' -
Podaj ilość katalogów w podanym katalogu (bez katalogów) których nazwa zaczyna się na s
ls -la $KATALOG | grep '^d' | awk '{print $9}' | grep '^s' | wc -l -
Podaj polecenie, ktorym zmieni się uprawnienia katalogu
katalogzdrwsr-xr-xnadr-xr-xr-tchmod u-ws,o+t katalog # nie próbujcie cwaniakować z octalem, w niektórych implementacjach chmod nie resetuje SUID -
Znajdź plik w swoim katalogu domowym, który był najdawniej modyfikowany.
ls -lt ~ | grep '^\-' | tail -1 | awk '{print $9}' -
Ile katalogów znajduje się w /usr/include?
find /usr/include -type d | wc -l -
Jaki jest inode (iwęzeł) katalogu domowego?
ls -id ~ | awk '{print $1}' -
Ile jest plików w /usr/include, wraz z podkatalogami, które mają w nazwie td i których nazwy kończą się na .h?
find /usr/include -type f -name "*td*.h" | wc -l -
Ile jest plików w /usr/include (bez podkatalogów), których nazwa składa się z 6 liter, zaczyna się na “m” i kończy na “.h”?
find /usr/include/* -prune -name "m???.h" | wc -l -
Ile plików regularnych jest w twoim katalogu domowym (wraz z podkatalogami)?
find ~ -type f | wc -l -
Ile jest plików w /usr/include, bez podkatalogów, które zaczynają się na
sti których nazwy kończą się na.h?find /usr/include -maxdepth 1 -type f | awk -F/ '{print $4}' | grep '^st' | grep '.h$' | wc -l -
Ile jest plików w /usr/include, bez podkatalogów, które mają w nazwie td i których nazwy kończą się na .h?
find /usr/include -type f -maxdepth 1 -name "*td*.h" | wc -l -
Podaj ile jest plików regularnych w katalogu /usr/include (do końca drzewa, czyli bierzmy pod uwagę pliki w podkatalogach), które mają rozmiar większy niż 12000B.
find /usr/include -type f -exec ls -l {} \; | awk '{ if ($5>12000) print $0}' | wc -l -
Znajdź liczbę plików regularnych w /usr/include (bez podkatalogów) które zaczynają sią na m i kończą na .h oraz których rozmiar nie przekracza 12KB.
find /usr/include -maxdepth 1 -type f -name ”m*.h” -execls -l {} \ ; | awk '{if($5<12000) print $9}' | wc -l -
Wypisać rozmiar największego pliku z $HOME (łącznie z podkatalogami i plikami ukrytymi).
find ~ -type f -printf "%s \ n" | sort -nr | head -1 -
Podaj numer i-węzła opisującego /tmp
ls -id /tmp | cut -d" " -f1 -
Podaj numer i-węzła katalogu domowego
ls -id ~ | cut -d" " -f1 -
Podać liczbę plików w /usr/bin o wielkości do 1MB
find /usr/bin -size -1M | wc -l
procesy
-
Pidaj PID procesu zastopowanego, który zużywa najwięcej pamięci wirtualnej
ps -eo s= -o vsz= -o pid= | grep "^[Tt]" | awk '{print $2,$3}' | sort -nr | head -1 | awk '{print $2}' -
Podać nazwę użytkownika, który ma najwięcej procesów z zerowym NICE
ps -eo %n%U | awk '{if($1=="0") print $1 " " $2}' | sort | uniq -c | sort -nr | head -1 | awk '{print $3}' -
Podać ilość procesów, których rodzicem jest proces o numerze 1
ps -eo %P | sort | awk '{if($1=="1") print $1}' | wc -l -
Podać PIDy trzech procesów, które mają najwięcej pamięci wirtualnej
ps -eo %z%p | sort -nr | head -3 | awk '{print $2}' -
Napisać, ile razy od początku root zalogowal się do innych terminali (treść niepewna)
last root | head -n-2 | wc -l -
Ile jest procesów, których ojcem jest proces o PID 1?
ps -el | awk '{print $5}' | grep ^1$ | wc -l -
Znajdź użyszkodnika w systemie, który ma urchomioną największą liczbę procesów
ps aux | tail -n+2 | awk '{print $1}' | sort | uniq -c | sort -nr | head -1 | awk '{print $2}' -
Ile procesów w systemie ma parametr NICE większy od zera?
ps -le | tail -n+2 | awk '{if ($8>0) print $0}' | wc -l -
Ile jest procesów, które posiadają terminal?
ps aux | tail -n+2 | awk '{if ($7!="?") print $0}' | wc -l -
Ile procesów w całym systemie ma ujemną wartość parametru NICE? (W innych latach trafiała się wersja z dodatnią)
ps -eo %n | awk '{if ($1<0) print $1}' | wc -l -
Ile procesów potomnych ma bieżący interpreter poleceo? PID bieżącego interpretera poleceo: echo $$.
ps -le | awk '{print $5}' | grep ^$$$ | wc -l -
Liczba uśpionych procesów
ps -el | tail -n +2 | awk '$2 == "S" { print $2; } ' | wc – l -
PID procesu zajmującego najwięcej pamięci wirtualnej (VSZ)
ps aux | tail -n +2 | awk '{ print $5" "$2 }' | sort -nr | head -1 | awk '{ print $2 }' -
PID procesu zajmującego najwięcej pamięci rezydentnej
ps aux | awk '{print $5 " " $2}' | sort -nr | head -1 | awk '{print $2}' -
PID procesu użytkownika root zajmującego najwięcej pamięci rezydentnej i nie ma terminala
ps aux | awk '{if($1=="root") print $6 " " $7}' | awk '{if($2=="?") print $1}' | sort -nr | head -1 -
Znajdź proces, który zużył najwięcej czasu procesora
ps -le | tail -n+2 | awk '{print $13” ”$14}' | awk -F : '{print 3600*$1+60*$2+$3” ”$4}' | sort -nr | head -n+1 | awk '{print $2}' -
Znajdź proces, który został włączony najwcześniej
ps -eo %x%c | sort | tail -2 | head -1 | awk '{print $2}' -
Ile procesów potomnych ma bieżący terminal (ID bieżącego terminala jest przechowywana w zmiennej systemowej $$) (Ta komenda policzy też procesy uruchomione właśnie w celu liczenia - tj. ‘ps’ i ‘wc’)
ps --ppid=$$ --no -headers | wc – l -
Ile procesów potomnych procesu o PID 1 ma bieżący terminal?
ps T o ppid= | awk '{if($1 == 1) print "cokolwiek"}' | wc -l