poniedziałek, 17 grudnia 2018

Globbing

Globbing

? zastępuje jeden znak
*zastępuje wszystkie znaki, ciągi znaków
! nie zawiera [!Ff]
[0-5] zakres
[Ff]  oznacza F lub f [Ff]
[[:alpha:]] oznacza nazwy tekstowe
[[:digit:]]  oznacza nazwy liczbowe 0 do 9
[[:upper:]] duże litery
[[:lower:]] małe litery
[[:space:]] spacje , taby , nowe linie
[[:graph:]] znaki graficzne w tym spacja
[[:print:]] znaki drukowalne w tym spacja
[[:punct:]] znaki interpunkcyjne?


Lista do  późniejszych przykładów
[dziadekw@localhost globing]$ ll
razem 0

-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 hEL
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 host.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 jakiś_plik_05
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 Jerzy_Urban.doc
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 kocioł
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 kocioł_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 kot
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 kot_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 kot_02
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 kot_03
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 koza
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 koza_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 łagieniki
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 łasica
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 łasica_07
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 most.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 mosty.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 myszka_miki
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 Pies_04
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 pinica
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 PLUTON
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 SIARKA
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 Tur
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 Tur_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 turban
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 turban_02
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 URAN

[dziadekw@localhost globing]$


? zastępuje jeden dowolny znak, można go użyć wielokrotnie by zastąpić wiele znaków
ls -l ????.txt «  wszystkie 4 znakowe pliki z rozszerzeniem .txt
  
[dziadekw@localhost globing]$ ll ????.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 host.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 most.txt

[dziadekw@localhost globing]$


ls -l Jerzy??????.doc  « wszystkie 11 znakowe pliki zaczynające się od Jerzy z rozszeżeniem  .doc

[dziadekw@localhost globing]$ ll Jerzy??????.doc
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 Jerzy_Urban.doc
[dziadekw@localhost globing]$
 

ls -l host.??? « wszystkie pliki o nazwie host i dowolnym 3 literowym rozszerzeniu

[dziadekw@localhost globing]$ ls -l host.???
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 host.txt
[dziadekw@localhost globing]$


* zastępuje wszystkie znaki.
Załóżmy, że chcemy wyszukać wszystkie pliki z rozszerzeniem .txt niezależnie od nazwy
 ls -l *.txt

[dziadekw@localhost globing]$  ls -l *.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 host.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 most.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 mosty.txt

[dziadekw@localhost globing]$
 


Załóżmy, że znamy początek nazwy pliku długość nazwy jest nie znana
ls -l k*

[dziadekw@localhost globing]$ ls -l k*
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 kocioł
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 kocioł_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 kot
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 kot_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 kot_02
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 kot_03
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 koza
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 koza_01

[dziadekw@localhost globing]$
 

Wiemy że nazwa zawiera m oraz . nie wiemy co jest po kropce

ls -l m*.*

[dziadekw@localhost globing]$ ls -l m*.*
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 most.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 mosty.txt

[dziadekw@localhost globing]$



[] zakres znaków 
ls -l *[0-3] znajdzie wszystkie pliki zawierające 0 lub 3

[dziadekw@localhost globing]$ ls -l *[0-3]
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 kocioł_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 kot_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 kot_02
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 kot_03
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 koza_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 Tur_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 turban_02

[dziadekw@localhost globing]$

 

ls -l [a-zA-Z0-9]  znajdzie wszystkie pliki zawierające zakres liter A do Z oraz a do z jak również liczby 0 do 9

! znak negacji

ll [!mkpPJtsuUTS]* spowoduje wykluczenie z listy plików których pierwsza litera nazwy to mkpPJtsuUTS

[dziadekw@localhost globing]$ ll [!mkpPJtsuUTS]*
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 hEL
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 host.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 jakiś_plik_05
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 łagieniki
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 łasica
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 łasica_07

[dziadekw@localhost globing]$ ll [!mkpPJtsuUTS]*



każda [] to kolejna litera w w wyrazie  więc można np zrobić tak
[!mkpPJtsuUTS][!a]

dziadekw@localhost globing]$ ll [!mkpPJtsuUTS][!a]*
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 hEL
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 host.txt

[dziadekw@localhost globing]$ 


Po dodaniu do naszego filtra !a w drugiej ramce pozbyliśmy się z pierwotnej listy nazw których pierwsza litera to  mkpPJtsuUTS druga to a.

Jako 3 litere dorzućmy s
[dziadekw@localhost globing]$ ll [!mkpPJtsuUTS][!a][!s]*
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 hEL
[dziadekw@localhost globing]$ 

[dziadekw@localhost globbing]$ ll [[:alpha:]]*
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 hEL
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 host.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 jakiś_plik_05
… … …   … … … …    … … …   … … …   … … …   … … …
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 kot
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 kot_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 kot_02
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 kot_03
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 koza
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 koza_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 łagieniki
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 łasica
-rw-rw-r--. 1 dziaiadekw 0 12-17 15:31 turban_02
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 URAN

[dziadekw@localhost globbing]$

łączenia
 
[[:digit:]]f[:upper:]]*


Powrót do bloga

poniedziałek, 10 grudnia 2018

pytanka i odpowiedzonka rhcsa rhcse

rhcsa
http://www.devopsage.com/redhat-certified-system-administrator-7-rhcsa-questions-with-solution/

rhce
http://www.devopsage.com/redhat-certified-engineer-7-rhce-questions-with-solution/

sobota, 8 grudnia 2018

find updatedb locate

Mamy dwa szukadła
findlocate
Wszelkie linuxowe szukadła są wrażliwe na wielkość liter.
  • PLIK
  • Plik
  • PliK
Wypunktowane powyżej nazwy to dla systemu trzy różne pliki
Jako że find jest standardowym szukadłem wbudowanym w każdy linux / unix zaczniemy od niego.


Tworzenie, przenoszenie lub zmiana nazw, kopiowanie i usuwanie pliów (touch, mv, cp, rm)

touch

touch plik  « tworzy plik (w folderze w którym wydano komendę touch)
touch plik1 plik2 plik3 « tworzy plik1 plik2 plik3 (w folderze w którym wydano komendę touch)

Za pomocą touch  można tworzyć pliki w dowolnym miejscu systemu i z dowolnego miejsca w systemie (o ile mamy odpowiednie uprawnienia).
Zasada ta tyczy się każdej komendy bash

Obecnie znajdujemy się w
[dziadekw@localhost ~]$ pwd
/home/dziadekw
[dziadekw@localhost ~]$ 


Jego zawartość to 

[dziadekw@localhost ~]$ ls
Dokumenty  Obrazy  pliki2   Publiczny  Szablony Muzyka     pliki   Pobrane  Pulpit     Wideo
[dziadekw@localhost ~]$  


Foldery / katalogi pliki i pliki2 są puste utwórżmy więc w nich następujące pliki,
W folderze pliki { plik1, plik2, plik3}, natomiast w pliki2 {zmien_nazwe, usun_mnie, znajdz_mnie}

[dziadekw@localhost ~]$ touch pliki/plik1 pliki/plik2 pliki2/zmien_nazwe pliki2/usun_mnie pliki2/znajdz_mnie
[dziadekw@localhost ~]$


Wyświetlmy sobie teraz zawartość obydwu folderów na raz

 [dziadekw@localhost ~]$ ll pliki2 pliki
pliki:
razem 0
-rw-rw-r--. 1 dziadekw dziadekw 0 12-08 00:34 plik1
-rw-rw-r--. 1 dziadekw dziadekw 0 12-08 00:34 plik2

pliki2:
razem 0
-rw-rw-r--. 1 dziadekw dziadekw 0 12-08 00:34 usun_mnie
-rw-rw-r--. 1 dziadekw dziadekw 0 12-08 00:34 zmien_nazwe
-rw-rw-r--. 1 dziadekw dziadekw 0 12-08 00:34 znajdz_mnie

[dziadekw@localhost ~]$
 


zmiana nazwy / przeniesienie pliku katalogu

Za obydwie te czynności odpowiada komenda mv
przed wydaniem komendy

[dziadekw@localhost pliki2]$ ls
usun_mnie  zmien_nazwe  znajdz_mnie
[dziadekw@localhost pliki2]$ 


mv zmien_nazwe psy « zmieni nazwę pliku z zmien_nazwę na psy
cp zmien_nazwe psy « zmieni nazwę pliku z zmien_nazwę na psy


[dziadekw@localhost pliki2]$ mv zmien_nazwe psy
[dziadekw@localhost pliki2]$ ls
psy  usun_mnie  znajdz_mnie
[dziadekw@localhost pliki2]$ 


ale
 mv psy ~/pliki « przeniesie plik psy do /home/dziadekw/pliki
mv psy ~/pliki « skopiuje plik psy do /home/dziadekw/pliki
~ oznacza katalog domowy obecnie zalogowanego użytkownika w tym wypadku dziadekw

sprawdźmy
  
[dziadekw@localhost pliki2]$ mv psy ~/pliki
[dziadekw@localhost pliki2]$ ls
usun_mnie  znajdz_mnie
[dziadekw@localhost pliki2]$ 


zobaczmy więc co znajduje się w /home/dziadekw/pliki

[dziadekw@localhost pliki2]$ ls /home/dziadekw/pliki
plik1  plik2  psy
[dziadekw@localhost pliki2]$ 


Przy okazji z folderu  /home/dziadekw/plik2 został z listowany katalog /home/dziadekw/pliki ponieważ komenda ls została wydana ze ścieżką wskazującą na ten katalog

cp
cp jest komendą kopiującą pliki z miejsca a do miejsca b.
Krótko mówiąc tworzy kopie danego pliku / folderu w wskazanej nowej lokalizacji  
 

 rm Komenda trwale usuwa plik lub folder. Trwale znaczy trwale nie ma przebacz, jeżeli użyłeś rm wskazane dane odeszły niebyt w zasadzie bez powrotnie.

Jedna uwaga, nie można od tak sobie przenieść, skopiować czy usunąć niepustego folderu  do tego potrzebna jest opcja rekursywności -R (cp -R mv -R rm -R)
Najbardziej ekstremalna opcja to -Rf. W przypadku cp oznacza nadpisuj dane w miejscu docelowym do skutku. Generalnie wymuś wykonanie komendy bez względu na wszystko.



 



czwartek, 6 grudnia 2018

System pomocy MAN HELP INFOPAGES

W linuxie mamy aż trzy systemy pomocy
  1. man
  2. infopages
  3. help
Strony man są tradycyjnym sposobem dystrybucji dokumentacji o programach w systemie UNIX.Termin "man" jest skrótem od "strony podręcznika", ponieważ odpowiadają one stronom drukowanego podręcznika;
strony podręcznika są podzielone na "sekcje"(1 dla poleceń, 2 dla wywołań systemowych itd.) odpowiadają sekcjom w pełnym podręczniku UNIX.


Na początku lat 90. projekt GNU zdecydował, że system dokumentacji "man"  jest przestarzały i napisał polecenie info, aby go zastąpić: informacje mają podstawowe funkcje hiperłącza i prostszy język znaczników (w porównaniu do systemu "troff" używanego do strony man). Ponadto, GNU opowiada się przeciwko używaniu stron man w ogóle i twierdzi, że złożone systemy oprogramowania powinny mieć kompletną i obszerną dokumentację, a nie tylko zestaw krótkich stron podręcznika.


help to polecenie bash. Wykorzystuje wewnętrzne struktury basha do przechowywania i pobierania informacji o poleceniach basha.



man korzysta ze składni vim 
infopages ze składni emacks 

można  przedukiwać pliki pomocy z pomocą makr tych programów

Jeżeli do jakiejś komendy nie ma strony man lub info z pewnością zadziała --help
np ls --help

wtorek, 4 grudnia 2018

ls cd pwd tab i ~ « tylda

ls listuje pliki / katalogi
ls -a podaje wszystkie pliki i katalogi nawet te z (.) na początku, czyli ukryte

@localhost ~]$ ls -a
 .                                     nauka
 ..                                    .nv
 abc123                                .nvidia-settings-rc
 .adobe                                Obrazy
 .aegisub                              OBRAZY
 .atom                                 OBRAZY.zip

 .audacity-data


ls -l podaje wszystkie pliki i katalogi w wersji długiej
kolejno 
  • ilośc plików i podfolderów w danym folderze 
  • prawa dostępu do pliku katalogu w formacie rwx (gdzie pierwsza kolumna d oznacza folder  natomiast - oznacza plik l to link)
    drwxr-xr-x «« katalog   -rw-r--r--  «« plik
  •  kolumna z cyfrą (oznacza ilość dowiązań twardych do pliku, folderu) folder ma minimum 2 dowiązania do siebie i folder wyżej
  • właściciel 
  • grupa
  • wielkość w bitach 
  • data utworzenia
  • godzina utworzenia
  • nazwa pliku / folderu
adminzs1@adminzs1-Lenovo-B71-80:~$ ls -l
razem 84
drwxr-xr-x 5 adminzs1 adminzs1  4096 lis 14 11:11  Dokumenty
-rw-rw-r-- 1 adminzs1 adminzs1 52224 lis 14 12:34 'KLAUZULA INFORMACYJNA monitoring.doc'

adminzs1@adminzs1-Lenovo-B71-80:~$

ls -lah poda long list + pliki ukryte z wieklościami plików w kb MB i GB opcja R poda zawartość katalogi i jego podkatalogów

pwd podaje katlog w którym się znajdujemy
adminzs1@adminzs1-Lenovo-B71-80:~$ pwd
/home/adminzs1
adminzs1@adminzs1-Lenovo-B71-80:~$

cd zmienia katalog
adminzs1@adminzs1-Lenovo-B71-80:~$ pwd
/home/adminzs1
adminzs1@adminzs1-Lenovo-B71-80:~$ cd /etc

przeniesie nas do  /etc

cd ~przenosi do katalogu użytkownika z każdego miejsca w systemie
cd - przenosi do poprzedniego katalogu roboczego np. jeśli w tej chwili jesteśmy w /home  a poprzednio byliśmy np w /usr/bin komenda cd - przeniesie nas do /usr/bin
cd /home/"katalog ze spacja"
cd ~/"katalog ze spacja"







[[[['