Użytkownik:Borzole/.bashrc
Z Fedora Wiki
Pisałbym raczej o tym co wiąże się z poleceniami "export", "set", "env", "unset", zmiennymi $HOME, $PATH itp
Co po instalacji?
Jeśli przeczytałeś już poradnik to możesz opcjonalnie ustawić kilka drobiazgów na swoim koncie. Ci, którzy dotychczas mieli Ubuntu na pewno będą chcieli ustawić sudo. Powinieneś również skonfigurować usługi systemowe.
Sztuczki, które można dodać do .bashrc aby uprościć sobie życie
+
dotfiles / pliki z kropką / ustawienia użytkownika
Znak zachęty
Możliwe kody
\a - bash będzie wysyłał sygnał dźwiękowy gdy zostanie wyświetlany wiersz poleceń
\d - data
\e - Znak ESC
\h - (hostname) nazwa naszego serwera
\H - Nazwa serwera oraz nazwa domeny
\n - nowa linia
\s - nazwa powłoki
\t - czas (24-godzinny) w formacie godziny:minuty:sekundy
\T - czas (12-godzinny) w formacie godzin:minuty:sekundy
\u - (username) nazwa użytkownika
\v - (version) wersja bash'a
\w - bieżący katalog roboczy
Do użytku mamy także standardowe kody ASCII umożliwiające kolorowanie tekstu, pozycjonowanie na konsoli, zmianę sposobu wyświetlania oraz wiele innych...
Przykładowy kolorowy znak zachęty
Czasem dobrze jest odróżniać na którym jest się koncie po kolorze. Wystarczy wpisać dla użytkownika do pliku /home/użytkownik/.bashrc
PS1='[\[\033[34m\]\u@\h \[\033[32m\]\W\[\033[0m\]]\$ '
otrzymujemy:
[użytkownik@fedora Pulpit]$
dla root'a do pliku /root/.bashrc
PS1='[\[\033[31m\]\u@\h \[\033[33m\]\W\[\033[0m\]]\$ '
otrzymujemy:
[root@fedora Pulpit]$
alias, czyli skrócone nazwy
- yum
Fedora domyślnie nie ma skonfigurowanego sudo. W aliasach dla wersji root'a usuń słówko sudo.
alias yum='sudo yum'
alias yi='sudo yum install'
alias yl='sudo yum localinstall --nogpgcheck'
alias yr='sudo yum -C remove'
alias ys='sudo yum -C search'
alias yc='sudo yum clean all'
alias yu='sudo yum update'
alias yp='package-cleanup --problems'
alias yz='package-cleanup --leaves'
- mc
Zawsze wyświetlaj w jednym panelu bieżący katalog
alias mc='mc $PWD'
Możesz łatwo wyróżnić czy pracujesz na koncie użytkownika czy root
- wersja dla użytkownika
alias mcroot="sudo mc --colors selected=white,red $PWD /root"
- wersja dla root
alias mc="mc --colors selected=white,red $PWD /root"
Ciekawostka, jak zrobić przezroczysty mc.
alias mci="mc --colors directory=,default:executable=,default:link=,default:device=,default:special=,default:normal=,default:selected=white,blue:marked=,default:markselect=,blue:core=,default $PWD"
- Chcesz pokazać komuś coś na swoim komputerze przez sieć? Nie kopiuj i nie ładuj gdzieś tam. Po prostu uruchom "webshare" i bieżący katalog i wszystko poniżej będzie dostępne przez serwer WWW na porcie 8000. Kiedy Twój kumpel już skończy wciśnij Ctrl-C
alias webshare='python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"'
serwer będzie widoczny pod adresem http://localhost:8000/
- kodowanie znaków
alias iso2utf='iconv -f iso-8859-2 -t utf-8' alias utf2iso='iconv -f utf-8 -t iso-8859-2' alias win2utf='iconv -f cp1250 -t utf-8' alias win3utf='recode cp1250..utf-8'
Przydatne funkcje
Zapisanie bieżącej sesji
function zapis(){
# wykonuje zapis sesji terminala
echo -e "Sesja zostanie zapisana do pliku ~/.zapis-sesji-data"
script ~/.zapis-sesji-$(date +%Y.%m.%d-%H.%M.%S.%N)
}
Szybkie rozpakowywanie jednym poleceniem
function rozpakuj() {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xvjf $1 ;;
*.tar.gz) tar xvzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) unrar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xvf $1 ;;
*.tbz2) tar xvjf $1 ;;
*.tgz) tar xvzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*) echo "'$1' nie mogę rozpakować tym poleceniem >extract<" ;;
esac
else
echo "'$1' to nie jest archiwum"
fi
}
Kopiowanie drzewa katalogów bez kopiowania plików
function tree-duplicate(){
# koiuje drzewo katalogow bez plików (w tym bez linków symbolicznych)
# tree-duplicate DrzewoDoSkopiowania MiejsceDocelowe
find $1 -type d -printf "$2/%P\n" | xargs -i mkdir -p '{}'
}
Masowa zmiana rozszerzeń plików w katalogu
rename_ext(){
# use it like:
# $ rename_ext php html
# to rename all .php files to .html in the current directory.
local filename
for filename in *."$1"; do
mv "$filename" "${filename%.*}"."$2"
done
}
