One-linery

pliki

/etc

  1. Ile jest osób w /etc/passwd o nazwisku Nowak?

     cat /etc/passwd | awk -F: '{print $5}' | grep -i 'nowak' | wc -l
    
  2. Jaki jest najmniejszy numer grupy w systemie

     cat /etc/group | awk -F: '{print $3}' | sort -n | head -1
    
  3. Jaki jest największy numer grupy w systemie

     cat /etc/group | awk -F: '{print $3}' | sort -nr | head -1
    
  4. Podać ilość użytkowników o UID < 1000

     cat /etc/passwd | awk -F: '{if($3 < 1000) print "cokolwiek"}' | wc -l
    
  5. 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
    
  6. 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`))
    
  7. Ile grup w systemie nie jest grupami dodatkowymi dla żadnego użytkownika?

     cat /etc/group | awk -F : '{print $4}' | grep ^$ | wc -l
    
  8. 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 }'
    
  9. Użytkownik o największym UID (wypisać to UID)

     cat /etc/passwd | awk -F: '{ print $3 }' | sort -nr | head -
    
  10. Użytkownicy, których nazwa składa się z dokładnie 8 znaków.

     grep -cE -e '^[^:]{8}:' /etc/passwd
    
  11. 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
    
  12. 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
    
  13. Podaj liczbę grup w systemie

     cat /etc/group | awk -F '{print $3}' | wc -l
    
  14. 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

  1. Podaj nazwę pliku w katalogu domowym o największym rozmiarze

    ls -al ~ | grep '^-' | awk '{print $5,$9}' | sort -n | tail -n1 | awk '{print $2}'
    
  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}'
    
  3. 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
    
  4. Podaj polecenie, ktorym zmieni się uprawnienia katalogu katalog z drwsr-xr-x na dr-xr-xr-t

     chmod u-ws,o+t katalog # nie próbujcie cwaniakować z octalem, w niektórych implementacjach chmod nie resetuje SUID
    
  5. Znajdź plik w swoim katalogu domowym, który był najdawniej modyfikowany.

     ls -lt ~ | grep '^\-' | tail -1 | awk '{print $9}'
    
  6. Ile katalogów znajduje się w /usr/include?

     find /usr/include -type d | wc -l
    
  7. Jaki jest inode (iwęzeł) katalogu domowego?

     ls -id ~ | awk '{print $1}'
    
  8. 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
    
  9. 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
    
  10. Ile plików regularnych jest w twoim katalogu domowym (wraz z podkatalogami)?

     find ~ -type f | wc -l
    
  11. Ile jest plików w /usr/include, bez podkatalogów, które zaczynają się na st i 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
    
  12. 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
    
  13. 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
    
  14. 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
    
  15. Wypisać rozmiar największego pliku z $HOME (łącznie z podkatalogami i plikami ukrytymi).

     find ~ -type f -printf "%s \ n" | sort -nr | head -1
    
  16. Podaj numer i-węzła opisującego /tmp

     ls -id /tmp | cut -d" " -f1
    
  17. Podaj numer i-węzła katalogu domowego

     ls -id ~ | cut -d" " -f1
    
  18. Podać liczbę plików w /usr/bin o wielkości do 1MB

     find /usr/bin -size -1M | wc -l
    

procesy

  1. 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}'
    
  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}'
    
  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
    
  4. Podać PIDy trzech procesów, które mają najwięcej pamięci wirtualnej

     ps -eo %z%p | sort -nr | head -3 | awk '{print $2}'
    
  5. Napisać, ile razy od początku root zalogowal się do innych terminali (treść niepewna)

     last root | head -n-2 | wc -l
    
  6. Ile jest procesów, których ojcem jest proces o PID 1?

     ps -el | awk '{print $5}' | grep ^1$ | wc -l
    
  7. 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}'
    
  8. 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
    
  9. Ile jest procesów, które posiadają terminal?

     ps aux | tail -n+2 | awk '{if ($7!="?") print $0}' | wc -l
    
  10. 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
    
  11. Ile procesów potomnych ma bieżący interpreter poleceo? PID bieżącego interpretera poleceo: echo $$.

     ps -le | awk '{print $5}' | grep ^$$$ | wc -l
    
  12. Liczba uśpionych procesów

     ps -el | tail -n +2 | awk '$2 == "S" { print $2; } ' | wc – l
    
  13. 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 }'
    
  14. PID procesu zajmującego najwięcej pamięci rezydentnej

     ps aux | awk '{print $5 " " $2}' | sort -nr | head -1 | awk '{print $2}'
    
  15. 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
    
  16. 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}'
    
  17. Znajdź proces, który został włączony najwcześniej

     ps -eo %x%c | sort | tail -2 | head -1 | awk '{print $2}'
    
  18. 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
    
  19. Ile procesów potomnych procesu o PID 1 ma bieżący terminal?

     ps T o ppid= | awk '{if($1 == 1) print "cokolwiek"}' | wc -l