bash
Z Wikibooks, biblioteki wolnych podręczników.
(Przekierowano z BASH)
Spis treści |
Sposoby pracy [edytuj]
Ręczne wpisywanie poleceń [edytuj]
W konsoli wpisujemy :
which bash
otrzymujemy odpowiedź gdzie jest program obsługujący wiersz poleceń naszej powłoki :
/bin/bash
Sprawdzamy wersję BASH'a :
/bin/bash --version GNU bash, version 4.2.8(1)-release (x86_64-pc-linux-gnu) Copyright (C) 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
Skrypty [edytuj]
Polecenia możemy
- zapisać do pliku tekstowego zwanego skryptem , np. g
- plik powinien rozpoczynać się od magicznych znaków [1]) :
#!/bin/bash
- nadać mu atrybut wykonywalności :
chmod +x g
- uruchomić plik znajdujący się w aktualnym katalogu :
./g
Tworzenie animowanego gifa [edytuj]
Przykładowy skrypt uruchamiający komendy z biblioteki ImageMagic tworzące z plików pgm animowany gif :
#!/bin/bash # script file for BASH # which bash # save this file as g # chmod +x g # ./g i=0 # for all pgm files in this directory for file in *.pgm ; do # b is name of file without extension b=$(basename $file .pgm) # change file name to integers and count files ((i= i+1)) # convert from pgm to gif and add text ( level ) using ImageMagic convert $file -pointsize 50 -annotate +10+100 $b ${i}.gif echo $file done echo convert all gif files to one animated gif_file convert -delay 50 -loop 1 %d.gif[1-$i] aa${i}.gif # convert -delay 50 -loop 0 %d.gif[1-$i] b${i}.mpg # it needs ffmpeg # ffmpeg2theora %d.gif --framerate 12 --videoquality 9 -o output129.ogv echo b${i} OK # end
Zmiana nazwy plików [edytuj]
Możemy wykorzystać komendy :
- move
- BASH/rename ( wykorzystuje wyrażenia regularne Perla )
- cut
lub skrypt :
#!/bin/bash # script file for BASH # which bash # save this file as r # chmod +x r # ./r # for all pgm files in this directory # for all pgm files in this directory for file in *.pgm ; do # remove first 3 chars from old file name newfile=${file:3} # change name of file mv $file $newfile echo $newfile done echo OK # end
Kopiowanie plików [edytuj]
- tylko pliki z rozszerzeniem c
- z katalogu ~/c
- do katalogu ~/temp
- tak aby zachować podkatalogi
Możemy użyć :
find ~/c -maxdepth 7 -name "*.c" -exec cp {} -R ~/temp \;
ale w katalogu docelowym nie ma podkatalogów
Inna opcja :
cp -R ~/c ~/temp
Kopiuje z podkatalogami ale wszystkie pliki.
Działające polecenia :
- z użyciem find i tar
(cd ~/c ; find -maxdepth 7 -name "*.c" |tar -T - -c) |tar -C ~/temp -x
- z użyciem rsync :
rsync -a --include='*.c' --include='*/' --exclude='*' ~/c/ ~/temp/
Skróty klawiaturowe [edytuj]
| Polecenia BASH'a | Skrót klawiszowy | Opis polecenia |
|---|---|---|
| SIGTSTP | Ctrl-Z | zatrzymuje ( kończy) proces |
| SIGINT | Ctrl-C | zawiesza proces ( pauza) |
Zmienne środowiskowe [edytuj]
Opis w wikipedii [4]
PATH [edytuj]
Wyświetlamy wartość zmiennej PATH:
echo $PATH
Zmieniamy czasowo wartość zmiennej PATH :
PATH="$HOME/.cabal/bin:$PATH"
W celu stałej zmiany wartości zmiennej PATH dla danego użytkownika należy powyższą instrukcję dodać do swojego pliku
~/.profile
lub
~/.bash_profile
lub
~/.bash_login
Edycja pliku jest możliwa po otwarciu go w trybie administratora.
| Klasa użytkowników | plik |
|---|---|
| aktualny | $HOME/.bash_profile |
| wszyscy oprócz su | /etc/profile |
| su (root) | /root/.bash_profile |
System [edytuj]
Informacje o procesorze :
cat /proc/cpuinfo
Zobacz również [edytuj]
- Obrazy i kod BASH użyty do ich tworzenia
- | #!/bin/bash - programowanie w powłoce , kurs autorstwa Tomasza Gawędy
Przypisy [edytuj]
- ↑ Shebang w wikipedii
- ↑ Archiwum grupy pl.comp.os.linux.programowanie : Bash : kopiowanie wybranych plików z podkatalogami
- ↑ [http://ubuntu.pl/forum/viewtopic.php?f=170&t=160739%7Cpoprawne wywołanie rsync w bash w forum ubuntu.pl
- ↑ Zmienna środowiskowa w wikipedii
- ↑ [Troubleshooters.Com and T.C Linux Library Present : Adding a Directory to the Path by Steve Litt]