Bash i terminal
- EN: This page is not translated to English.
Podstawowe informacje
GNU Bash (Bourne Again SHell): interpreter języka poleceń – powłoka (shell) systemu GNU/Linux. The GNU Bash Reference Manual, v. 4.3 http://www.gnu.org.
Jest domyślną powłoką systemu GNU/Linux – jego CLI (Command Line Interface), umożliwia pracę interaktywną (wprowadzanie poleceń), a także wsadową (wykonywanie skryptów).
Inne powłoki: sh, csh, tcsh, ksh, zsh.
$ program [opcje] [argumenty]
Intrukcję zazwyczaj dostępne są po wpisaniu polecenia program --help
lub man program
.
W celu uruchomienia terminala można użyć skrótu klawiszowego Ctrl+Alt+T
.
Lista plików i katalogów
ls
– listuje zawartość bieżącego katalogu roboczego,
ls path
– listuje zawartość ścieżki path
Wybrane opcje:
-l permissions, owner, group, size, last-modified date and filename
-a lists all files in the given directory
-d shows information about a symbolic link or directory
-t sort the list of files by modification time.
-h print sizes in human readable format.
-r revers sorting order
Poruszanie się w systemie plików
Zmiana katalogu roboczego:
cd path_to_directory
cd test/
cd /icm/home/kdmszk01/test
Przejście do katalogu “wyżej” w hierarchii systemu plików:
cd ../
Przejście do katalogu domowego:
cd $HOME
or
cd ~/
Katalogi (foldery)
W systemach POSIX-owych wszystko jest plikiem!
mkdir directory – utwórz pusty katalog
rmdir directory – usuń pusty katalog
mkdir -p path_to_directory – utwórz pełną ścieżkę (hierarchię katalogów)
rm -r directory – usuń katalog wraz z zawartością
Uprawnienia
Uprawnienia plików/katalogów do:
zapisu – write (w),
odczytu – read (r),
wykonania – execute (x).
Dla:
użytkownika – user(u),
grupy – group (g),
innych – other (o),
wszystkich – all (a).
Format:
- rwx rwx rwx
chmod target action permission
Na przykład:
chmod g+w,o-wx file
rwx r-x r-x → rwx rwx ---
Kopiowanie danych
cp źródło cel
cp path_to_sourcefile path_to_targetfile
Wybrane opcje:
-r kopiuje rekursywnie
-p zachowuje datę modyfikacji, uprawnienia etc.
Na przykład:
cp out1 out_1
cp -rp OUTPUTS /tmp/20191113/
mv - like cp but remove sourcefile
Przydatne skróty
* wszystko w bieżącym katalogu
*.out wszystkie pliki, których nazwa kończy się na .out
a* wszystkie pliki, których nazwa zaczyna się na a
*/* wszystkie pliki znajdujące się w podkatalogach
? zastępuje dowolny symbol
[set] dowolny symbol z podanego zbioru
[!set] dowolny symbol spoza podanego zbioru
Usuń plik:
rm file
rm path_to_file
Wybrane opcje:
-r remove whole directories
-i ask for every deletion to be confirmed.
-f ignores non-existent files and overrides
-d delete an empty directory
Archiwizacja i kompresja
Archiwizacja:
TAR – Tape ARchive (archiwum taśmowe)
Kompresja:
ZI (zip -r źródło cel)
GZIP (gzip źródło.tar)
BZIP (bzip2 źródło.tar)
Przykłady:
tar cvzf źródło.tar.gz cel
tar xvzf archive.tar.gz
unzip archive.zip
Filtr grep
grep string plik – listuje wiersze zawierające wzorzec “string” w pliku
grep ‘Etot’ *.out
Wybrane opcje:
-c – show counts of findens in files
- L – show files without ‘str’
-s – skipp errors
-n – show line number wher ‘str’ was finded
-w – searchinf for whole world
-i – Ignore case distinctions
-r – Read all files under each directory, recursively
Narzędzie find
find – wyszukiwanie plików/katalogów według nazwy:
find path -name file_name
find path -type d -name directory_name
Znajdź i usuń:
find path -type f -name files_name -exec rm -f {} \;
Patrz także:
według użytkownika, uprawnień, daty modyfikacji, rozmiaru etc.
Przekierowanie wejścia/wyjścia
Przekierowanie standardowego wyjścia do pliku (nadpisanie!):
vasp_std > out.log
vasp_std 1> out.log
Przekierowanie standardowego wyjścia do pliku (DOpisanie!)
vasp_std >> out.log
Przekierowanie standardowego wyjścia diagnostycznego do pliku:
vasp_std 2> out.log
Przekierowanie zawartości pliku input do innego pliku:
g18 < input
Potok (pipeline)
Potok – pipeline, symbol: |
przekierowuje standardowe WYjście (stdout) programu na WEjście innego.
Przykład z użyciem narzędzia grep (nieefektywne! ale obrazowe):
$ cat liczby.txt | grep 23
23
245723
$ wc -l liczby.txt (← z przełącznikiem -l zlicza wiersze)
5
$ cat liczby.txt | grep 23 | wc -l
2
Zawartość plików
cat file # listuje zawartość pliku
more file # listuje zawartość z podziałem na strony (down-scrolling)
less file # listuje zawartość z podziałem na strony (up/down-scrolling)
head -n N file # wyświetla pierwszych N wierszy pliku
tail -n N file # wyświetla ostatnich N wierszy pliku
cut -f N -d “s” # wyświetla N-tą kolumnę pliku z separatorem “s”.
Wymaga argumentu w postaci nazwy pliku lub danych z potoku.
Edycja plików: vim
Popularnym edytorem plików textowych jest vim
.
Podstawowe polecenia
:w nazwa – zapis do pliku,
:wq – zapis i wyjście,
:q! – wyjście (ignoruj zmiany),
i – tryb edycji,
[ESC] – opuść tryb edycji,
u – cofnij,
<Ctrl-R> – powtórz,
/wzorzec – szukaj wzorca (n/N),
:!polecenie – polec. powłoki,
dd – usuń bieżący wiersz,
D – usuń stąd do końca wiersza,
:%s/raz/dwa/g – znajdź i zastąp (raz→dwa),
:s/raz/dwa/g – znajdź i zastąp w bieżącym
wierszu,
:s/raz/dwa/gc – znajdź i zastąp (potwierdź),
v – zaznacz (nawigacja kursorami),
y – skopiuj zaznaczenie,
d – wytnij zaznaczenie,
p – wklej skopiowane.
Aby utworzyć/zmodyfikować plik tekstowy należy użyć polecenia:
vim moj_plik.txt
MC: Midnight Commander
GNU Midnight Commander is a directory browser/file manager for
Unix-like operating systems.
Program uruchamia się poprzez polecenie mc
.
Dodatkowe instrukcje
Liczne materiały dostępne są w internecie, m.in. na: