Przejdź do treści

Bash i terminal

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:

Ta strona używa plików cookies.
Polityka Prywatności    AKCEPTUJĘ