~ |
katalog domowy |
. |
obecny katalog |
.. |
katalog wyżej |
mam -f |
przeszukuje nazwy stron pomocy |
whatis |
przeszukuje nazwy stron pomocy |
mam -k |
przeszukuje streszczenia stron pomocy |
apropos |
przeszukuje streszczenia stron pomocy |
finger gach |
podaje informacje o użytkowniku serwera o nazwisku gach |
finger Grzegorz |
podaje informacje o wszystkich użytkownikach serwera o imieniu Grzegorz |
w |
wyświetla zalogowanych użytkowników |
cd <katalog> |
przechodzi do katalogu |
cp <plik> <gdzie> |
kopiuje plik |
mv <plik> <gdzie> |
przenosi plik/zmienia nazwę |
touch <plik> |
tworzymy plik |
rm <plik> |
usuwa plik |
rm -r <katalog> |
usuwa katalog |
rm -i <plik> |
usuwa pytając o chronione |
rm -f <plik> |
usuwa nie pytając o chronione |
rmdir <katalog> |
usuwa pusty katalog |
mkdir <katalog> |
tworzy katalog |
mkdir -p /kat1/kat2/kat3/ |
tworzy ciąg katalogów |
whereis -m cat |
wyświetla ścieżkę do pliku, gdzie jest manual do komendy cat |
whereis -b <nazwa> |
wyświetla ścieżkę do binarnego pliku o tej nazwie |
whereis -s <nazwa> |
wyświetla ścieżkę do źródła o tej nazwie |
whereis -u <nazwa> |
wyświetla ścieżkę do „dziwnego” pliku o tej nazwie |
which <komenda> |
wyświetla ścieżkę do pliku, który się wykona po wpisaniu komendy |
which -a <komenda> |
wyświetla ścieżki do wszystkich wersji tego pliku |
ls <katalog> |
wyświetla zawartość katalogu |
ls -i <plik> |
wyświetla numer inode pliku |
ls -l <katalog> |
wyświetla jako listę |
ls -h <katalog> |
wyświetla w ludzkich jednostkach |
ls -a <katalog> |
wyświetla wszystkie pliki (też ukryte) |
ls -t <katalog> |
wyświetla wg czasu modyfikacji |
ls -R <katalog> |
wyświetla drzewo katalogów |
ls -g <katalog> |
wyświetla tak, jak ls -l tylko nie wyświetli użytkownika |
ls -o <katalog> |
wyświetla tak, jak ls -l tylko nie wyświetli grupy |
tar xzf <plik> |
archiwum rozpakuj |
tar czf <nazwa.tar.gz> <p1, p2,...> |
archiwum utwórz |
tar -tvf <plik> |
archiwum tylko wyświetl zawartość |
less <plik> |
wyświetla pliki |
links <strona> |
przeglądarka internetowa |
Ctrl+Alt+F1 |
włączanie konsoli (od F1 do F6) |
Ctrl+Alt+F7 |
włączanie trybu graficznego |
logowanie się na fatcata |
|
pine |
do obsługi poczty |
write <login> <tekst> |
wyświetlanie u kogoś |
<komenda> > <plik> |
zapisuje wynik komendy do pliku |
<komenda> >> <plik> |
dopisuje wynik komendy do pliku |
<komenda> &> <plik> |
błędy też zapisuje do pliku |
<komenda1> | <komenda2> |
przekazanie wyniku kom1 do kom2 |
mail <adres> -s <tytuł> < <plik> |
wysyłamy maila z zawartością pliku |
cat <plik> |
wyświetlanie pliku |
cat > <plik> Enter <piszemy> Ctrl+d |
tworzymy plik i do niego piszemy |
tac <plik> |
wyświetlanie pliku od tyłu |
head <plik> |
wyświetlanie pierwszych 10 linii pliku |
head -n16 <plik> |
wyświetlanie pierwszych 16 linii pliku |
head -n-15 <plik> |
wyświetlanie wszystkie linie poza 15 ostatnimi |
tail <plik> |
wyświetlanie ostatnich 10 linii pliku |
tail -n12 <plik> |
wyświetlanie ostatnich 12 linii pliku |
tail -n+3 <plik> |
wyświetlanie linie od 3 do ostatniej |
column -t -s '','' <plik> |
wyświetlanie pliku w kolumnach, tam, gdzie był przecinek, następna kolumna |
paste <plik1> <plik2> |
wyświetlanie plików obok siebie |
join -1 3 -2 4 <plik1> <plik2> |
łączy pliki wg 3 kolumny pliku1 i 4 kolumny pliku2 [najpierw posortować trzeba] |
tr ''abc'' ''ABC'' <plik> |
zamienia znak po znaku (a->A, b->B, c->C) |
sort <plik> |
sortuje plik |
sort -r <plik> |
sortuje w odwrotnej kolejności |
sort -f <plik> |
sortuje nie zwracając uwagi na wielkość liter |
sort -k3,2 <plik> |
sortuje najpierw wg 3 kolumny, potem 2 |
sort -t ''-'' <plik> |
sortuje, kolumny oddzielone były - |
uniq <plik> |
wyświetla linie unikalne i jedną kopię powtarzających się |
uniq -u <plik> |
wyświetla tylko unikalne linie |
uniq -d <plik> |
wyświetla tylko linii, które się powtarzają |
uniq -c <plik> |
wyświetla jak uniq, ale przed każdą linią ile razy się powtarza |
uniq -i <plik> |
wyświetla jak uniq, ale nie zwraca uwagi na wielkość liter |
comm <plik1> <plik2> |
wyświetla to, co tylko w 1 | to, co w obu | to co tyko w 2 |
comm -13 <plik1> <plik2> |
wyświetla bez 1 i 3 kolumny (czyli tylko to, co w obu) |
cmp <plik1> <plik2> |
porównuje pliki i wskazuje czym się różnią |
sdiff <plik1> <plik2> |
wyświetla pliki obok siebie pokazując różnice |
sdiff -s <plik1> <plik2> |
nie wyświetla tych samych linii |
sdiff -i<plik1> <plik2> |
wyświetla nie zwracając uwagi na wielkość liter |
diff <plik1> <plik2> <plik3> |
porównuje 3 pliki |
file <plik> |
wyświetla nazwę pliku i typ |
file -stat <plik> |
wyświetla też info o pliku |
file -b <plik> |
wyświetla tylko typ pliku |
wc <plik> |
wyświetla liczbę linii słów znaków |
wc -l <plik> |
wyświetla tylko liczbę linii |
wc -w <plik> |
wyświetla tylko liczbę słów |
wc -c <plik> |
wyświetla tylko liczbę znaków |
quota |
wyświetla miejsce na dysku |
quota -s |
wyświetla w ludzkich jednostkach |
du *.txt |
wyświetla ile zajmuje każdy z plików txt w obecnym katalogu |
du -h <plik> |
wyświetla w ludzkich jednostkach |
du -s <katalog> |
wyświetla ile zajmuje cały katalog |
free |
wyświetla info o pamięci |
df |
wyświetla ile jest wolnej przestrzeni dyskowej |
uname -a |
wyświetla na jakim systemie jesteśmy |
cut -c2-8 <plik> |
wyświetla znaki od 2 do 8 z każdej linijki |
cut -f1,3 <plik> |
wyświetla kolumnę 1 i 3 |
cut -f1 -d ''*'' <plik> |
wyświetla kolumnę 1, kolumny były oddzielone * |
cut -f1 --complement <plik> |
wyświetla dopełnienie (w tym przyp. wszystkie kolumny poza 1) |
id |
wyświetla numer użytkownika i jego grup wraz z nazwami |
id -u |
wyświetla numer użytkownika |
id -g |
wyświetla numer grupy użytkownika |
id -G |
wyświetla numery grup użytkownika |
grep ''ko*t” <plik> |
wyświetla linie, w których jest wzorzec (zapisany przy użyciu wyrażeń regularnych) |
grep -v <wzorzec> <plik> |
wyświetla linie, w których brak wzorca |
grep -i <wzorzec> <plik> |
wyświetla nie zwracając uwagi na wielkość znaków |
grep -o <wzorzec> <plik> |
wyświetla tylko wzorzec |
grep -w <wzorzec> <plik> |
wyświetla linie, w których jest wzorzec jako osobne słowo |
grep -l <wzorzec> <plik> |
wyświetla zamiast tego, co normalnie tylko nazwy plików, w których znaleziono wzorzec |
grep -r <wzorzec> <katalog> |
wyświetla linie, w których jest wzorzec, przeszukując rekurencyjnie katalog |
grep -n <wzorzec> <plik> |
wyświetla linie, w których jest wzorzec poprzedzając je numerem linii |
grep -c <wzorzec> <plik> |
wyświetla zamiast tego, co normalnie tylko ilość pasujących linii |
find <gdzie> -name <nazwa> |
wyświetla ścieżkę do pliku o danej nazwie |
find <gdzie> -iname <nazwa> |
wyświetla ścieżkę do pliku o danej nazwie, nie zwracając uwagi na wielkość liter |
find <gdzie> -newer <plik1> |
wyświetla ścieżkę do pliku, który jest nowszy od plik1 |
find <gdzie> -type <typ> |
wyświetla ścieżkę do pliku, który jest danego typu |
find <gdzie> -atime 10 |
wyświetla ścieżkę do pliku, który został otworzony 10 dni temu |
find <gdzie> -maxdepth 3 |
wyświetla ścieżkę do pliku, szukając do 3 katalogów wgłąb |
find <gdzie> -size 1M |
wyświetla ścieżkę do pliku, którego wielkość = 1M |
find <gdzie> -size +1M |
wyświetla ścieżkę do pliku, którego wielkość > 1M |
find <gdzie> -size -1M |
wyświetla ścieżkę do pliku, którego wielkość < 1M |
find <gdzie> -user <login> |
wyświetla ścieżkę do pliku, który został stworzony przez danego użytkownika |
find ~ -name a.txt -or -size 1M |
wyświetla ścieżkę do pliku, który jest w katalogu domowym i ma wielkość 1M lub nazwę a.txt |
sed '2d' <plik> |
usuwa 2 linię z pliku |
sed '2,$d' <plik> |
usuwa linie od 2 do końca |
sed '2,4!d' <plik> |
usuwa linie inne niż 2-4 |
sed '^/Bat/d' <plik> |
usuwa linie zaczynające się od słowa Bat |
sed '3,/Kot/d' <plik> |
usuwa linie od 3 do słowa Kot |
sed 's/kot/koty' <plik> |
zamień pierwsze wystąpienie słowa kot na koty |
sed 's/kot/mysz/2g' <plik> |
zamień wszystkie począwszy od 2 wystąpienia słowa kot na słowo mysz |
sed '2,5s/kot/mysz/g' <plik> |
zamień wystąpienia słowa kot na słowo mysz tylko w liniach 2-5 |
sed 's/[0-9]/(&)/g' <plik> |
zamieni wszystkie wystąpienia cyfry na tą cyfrę w nawiasach |
sed 's/\(.*\)\( mysz \)\(.*\)/\2\3\1/g' <plik> |
zamieni kolejnością człony (mysz będzie pierwsza, potem to, co było po myszy następnie to, co było przed myszą |
sed -e 's/A/a/g' -e 's/B/b/g' <plik> |
zamieni A na a oraz B na b |
Prawa dostępu: -rwxr---w- 1 - plik d katalog 2-4 użytkownika 5-7 grupa 8-10 pozostali |
- rwx r-- -w- u g o
r odczyt =2^2=4 w zapis =2^1=2 x wykonywanie =2^0=1
|
chmod ug+rx <plik> |
użytkownikowi i grupie nadaliśmy prawa odczytu i wykonywania pliku, reszta bez zmian |
chmod o=w <plik> |
pozostałym nadaję wyłącznie prawo zapisu |
chmod 641 <plik> |
użytkownikowi nadaję prawa odczytu i zapisu (6=2+4), grupie prawo odczytu, pozostałym prawo wykonywania |
Wyrażenia regularne: |
|
* |
dowolna liczba powtórzeń znaku poprzedzającego |
? |
0-1 powtórzeń znaku poprz. |
\+ |
minimum 1 powtórzenie znaku poprz. |
\{x,y\} |
występowanie znaku poprz. od x do y razy (włącznie) |
\{x\} |
występowanie znaku poprz. dokładnie x razy |
\{,y\} |
występowanie znaku poprz. max. 3 razy |
. |
dowolny znak |
| |
OR (lub) |
[abc] |
jeden znak z abc |
[^abc] |
jeden znak ze wszystkiego, poza abc |
^ |
początek wiersza |
$ |
koniec wiersza |
\<znak> |
usuwa „specjalność” znaku |
\< |
odpowiednik ^ ale na słowach |
\<kot |
wszystkie wyrazy zaczynające się od kot (kot, kotek, itp.) |
\> |
odpowiednik $, ale na słowach |
\b |
początek/koniec wyrazu (inny sposób) |
\s |
biały znak |
|
|
./nazwa.sh parametr1 parametr2 ... |
by wykonać skrypt |
#!/bin/bash |
pierwsza linia każdego skryptu |
# |
po tym można napisać komentarz |
$0 |
zmienna predefiniowana: nazwa skryptu |
$1 |
zmienna predefiniowana: pierwszy parametr |
$# |
zmienna predefiniowana: ile jest parametrów |
$HOME |
zmienna predefiniowana: ścieżka do katalodu domowego |
$PWD |
zmienna predefiniowana: ścieżka do katalogu obecnego |
$USER |
zmienna predefiniowana: nazwa obecnego użytkownika |
pritnv |
wyświetla wszystkie predefiniowane zmienne |
a=2 |
przypisujemy wartość 2 zmiennej a (nie trzeba jej tworzyć) |
$a lub ${a} |
odwołujemy się do zmiennej a |
b[2]=4 |
drugiemu el. tablicy przypisujemy 4 |
${b[3]} |
odwołujemy się do 3 el. tablicy (nawiasy konieczne) |
read a |
wczyta z klawiatury i zapisze do zmiennej a |
echo <tekst> |
pisanie na ekranie |
'echo ls $HOME' |
' ' zmienne traktuje jak zwykły tekst. Wyświetli na ekranie: echo ls $HOME |
''echo ls $HOME'' |
'' '' korzysta ze zmiennych, ale nie z fukcji. Wyświetli na ekranie: echo ls /home/studa2/login |
`echo ls $HOME` |
` ` (to koło ~) korzysta z funkcji. Wyświetli na ekranie: <wynik komendy ls - pliki znajdujące się w katalogu domowym> |
a=2 a=$a+1 echo $a |
Wyświetli na ekranie: 2+1 zamiast 3, bo nie jesteśmy w trybie matematycznym! |
((a=a+1)) lub ((a=$a+1)) lub a=$((a+1)) |
tryb matematyczny - wynik dobry |
echo ''2.1+3.4” | bc |
kalkulator, ważne: kropka, nie przecinek |
echo ''7/2'' | bc -l |
bez flagi -l wynik to 3, a z flagą jest 3.5 |
if+[+warunek+] then <co gdy spełniony warunek> else <co gdy nie spełniony> fi |
pętla if (+ to oczywiście spacje) -eq równe -nq nierówne -lt < -le <= -gt > -ge >= Przykład użycia: if [ ''$a'' -lt 10 ] |
if [ -d kat1 ] |
jeśli istnieje katalog o nazwie kat1 to prawda |
if [ -f plik1 ] |
jeśli istnieje plik o nazwie plik1 to prawda |
if [ -r plik1 ] if [ -w plik1 ] if [ -x plik1 ] |
sprawdza prawa dostępu: jeśli r=odczytywalny, w=zapisywalny, x=wykonywalny to prawda |
if ((a>5)) |
gdy nie chcemy używać flag tylko intuicyjnych znaków. Dopuszczalne znaki: == != < > <= >= |
if [ ''kot'' = ''$a'' ] |
porównywanie ciągów znaków (tylko jedno =) |
if [ -n ''$a'' ] |
zwraca prawdę gdy ciąg znaków nie jest pusty |
if [ -z ''$a'' ] |
zwraca prawdę gdy ciąg znaków jest pusty |
for ((i=0;i<=10;i++)) do <instrukcje> done |
for z trybem matematycznym |
for i in pie dru trze |
for, w którym zmienna będzie przyjmowała po kolei wartości pier, dru, trze Przykłady: for i in `ls` i przyjmie po kolei nazwy, które zwróci komenda ls for i in *.txt i będzie przyjmowało po kolei nazwy wszystkich plików txt w danym folderze |
awk '{print $1, $3}' nazwa.txt |
drukuje pierwszą i trzecią kolumnę pliku |
awk 'NR!=2{print $1}' nazwa.txt |
drukuje pierwszą kolumnę, pomijając 2 wiersz |
awk '{print $0}' nazwa.txt |
drukuje cały plik |
awk -F'','' '{print $1}' nazw.txt |
drukuje 1 kolumnę, info, że kolumny są oddzielone przecinkiem |
awk '{print $1, $2}' OFS="*" nazw.txt |
drukuje 1 i 2 kolumnę, będą one po wydruku oddzielone * |
x=3 awk -v val=$x '{print $0+val}' nazwa.txt |
drukuje cały tekst, dodając do każdego wiersza nasze ustalone x |
awk '/wzór/{print $2}' nazwa.txt |
drukuje 2 kolumnę gdy gdziekolwiek w danym wierszu jest wzór |
awk '$1 ~ /wzór/{print $2}' nazwa.txt |
drukuje 2 kolumnę gdy w 1 kolumnie danego wiersza jest wzór |
awk '$1 == "kot" {print $2}' nazwa.txt |
drukuje 2 kolumnę gdy w 1 kolumnie danego wiersza jest dokładnie słowo kot (a nie np. koty) |
awk '!/wzór/{print $2}' nazwa.txt |
drukuje 2 kolumnę gdy wiersz nie zawiera wzoru |
awk '$2>500' nazwa.txt |
drukuje cały wiersz, jeśli w 2 kolumnie jest liczba > 500 |
awk '{x+=$2}END{print x}' nazwa.txt |
drukuje sumę liczb znajdujących się w 2 kolumnie |
awk '$1=="kot"{x+=$3;}END{print x}' nazwa.txt |
drukuje sumę kolumn 3 z tych wierszy, które w 1 kolumnie mają słowo kot |
awk -F, '{print > $1".txt"}' nazwa.txt |
dzieli plik na taką ilość plików ile jest różnych słów w kolumnie 1, nazywając je odpowiednio (tzn. gdy w kol. 1 są słowa kot mysz kot to stworzy 2 pliki kot.txt i mysz.txt) |