Skrypty użytkowników: Różnice pomiędzy wersjami

Z Fedora Wiki
Skocz do: nawigacji, wyszukiwania
m (wikirepo)
m (korekta linku)
 
(Nie pokazano 9 wersji utworzonych przez jednego użytkownika)
Linia 7: Linia 7:
 
==.bashrc==
 
==.bashrc==
 
* nigdy nie ukończony artykuł o pliku [[Użytkownik:Borzole/.bashrc|~/.bashrc]]
 
* nigdy nie ukończony artykuł o pliku [[Użytkownik:Borzole/.bashrc|~/.bashrc]]
 +
 +
==audacious-delete.sh==
 +
Skrypt przenosi do kosza aktualnie odtwarzaną piosenkę i przechodzi do następnej na liście. Najlepiej zrobić do niego aktywator na pulpicie :) Używa jednego okienka zenity do potwierdzenia zgody. {{rama||[[U%C5%BCytkownik:Borzole/audacious-delete.sh|audacious-delete.sh]]}}
 +
 +
==dropbox: indeks zawartości==
 +
Dostępne jest w sieci kilka skryptów pozwalających użytkownikom dropbox utworzyć indeks zawartości folderów publicznych. To kilka z nich:
 +
* [http://dl.dropbox.com/u/533/index.html indexerPY.mac.py] (python)
 +
wystarczy wrzucić go do jakiegoś katalogu np.
 +
~/Dropbox/Public/fedora
 +
i wykonać komendę
 +
chmod +x indexerPY.mac.py
 +
python ./indexerPY.mac.py
 +
* [http://dl.dropbox.com/u/409786/pub/index.html indexer.py] lekko zmodyfikowana wersja "indexerPY.mac.py"
 +
* [http://dl.dropbox.com/u/552/pyndexer/index.html pyndexer.py] (python) jest bogatszy w generowane informacje, ma nawet szyfrowanie zawartości. [http://forums.dropbox.com/topic.php?id=3075 Wątek na forum].
 +
* [http://code.google.com/p/kosciak-misc/wiki/DropboxIndex dropbox-index] (python) [http://dl.dropbox.com/u/69843/dropbox-index/index.html podobny do powyższych].
 +
* [http://borzole.googlecode.com/hg/bin/dropbox-index.sh dropbox-index.sh] (bash + find)
  
 
==fedorachroot==
 
==fedorachroot==
 
Zrobiłem instalację fedory do chroot, jednak wykonałem to w tak niewdzięczny sposób, że wstydził bym się komuś wmawiać, że tak to się robi. Jednak udało się i system działa już bez zarzutów więc jednak można. Dla zainteresowanych [[Użytkownik:Borzole/chroot|instalacja fedory do chroot]] najprostszym możliwym sposobem (chyba).
 
Zrobiłem instalację fedory do chroot, jednak wykonałem to w tak niewdzięczny sposób, że wstydził bym się komuś wmawiać, że tak to się robi. Jednak udało się i system działa już bez zarzutów więc jednak można. Dla zainteresowanych [[Użytkownik:Borzole/chroot|instalacja fedory do chroot]] najprostszym możliwym sposobem (chyba).
  
==manr==
+
==gnome-background.sh==
Taki dosyć prościutki skrypt listujący strony man danej paczki rpm/polecenia. Rozbudowany jest tylko po to by pokazać początkującym jak łatwo zrobić obsługę parametrów, funkcje i menu wyboru (bo sam na początku długo tego szukałem).  
+
Skrypt do zmiany tapety pulpitu GNOME. Tapeta jest losowana z folderu podanego jako parametr, spośród plików png, jpg, svg. {{rama||[[U%C5%BCytkownik:Borzole/gnome-background.sh|gnome-background.sh]]}}
<source lang="bash">
+
#!/bin/bash
+
  
# manr - lista stron man z paczki rpm
+
Najlepiej uruchomić w cron w taki sposób:
# by borzole
+
<pre>crontab -e</pre>
# użycie: manr --help
+
i wypełnić
 +
<pre>
 +
PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
 +
* * * * * gnome-background.sh /home/lucas/tapety >/dev/null 2>&1
 +
</pre>
  
# Nazwa programu
+
==manr==
NAME="${0##*/}"
+
[[Plik:manr.png|thumb|150px|''przykład:'' '''manr cp''']]Taki dosyć prościutki skrypt listujący strony man danej paczki rpm/polecenia. Rozbudowany jest tylko po to by pokazać początkującym jak łatwo zrobić obsługę parametrów, funkcje i menu wyboru (bo sam na początku długo tego szukałem). Skrypt zakłada, że każde polecenie z paczki ma stronę man, więc wyświetla je na liście nawet jak nie ma . Pomoc dostępna po wydaniu polecenia {{pre|manr -h}} lub {{pre|--help}}. Osobiście często używam ;) {{rama||[[U%C5%BCytkownik:Borzole/manr|manr]]}}
# czcionka normalna
+
E="\e[0m"
+
# czcionka bold
+
B="\e[1;38m"
+
# jakaś pomoc
+
function _help(){
+
echo -e "PROGRAM:\n${B}${NAME}${E} - spis stron man wybranej paczki rpm
+
${B}PARAMETRY:${E}
+
${B}<polecenie>${E}
+
po wpisaniu dowolnego polecenia wylistuje wszystkie strony man z paczki RPM
+
${B}-r, --rpm <paczka>${E}
+
po wpisaniu dowolnej paczki RPM wylistuje z niej wszystkie strony man
+
${B}-h, --help${E}
+
wypisuje tę pomoc
+
${B}PRZYKŁADY:${E}
+
${B}${NAME} cp${E}
+
${B}${NAME} fdisk${E}
+
${B}${NAME} -r shadow-utils${E}
+
${B}${NAME} -rpm yum-utils${E}
+
${B}${NAME} --rpm xorg-x11-server-utils${E}
+
${B}${NAME} --rpm xorg-x11-utils${E}
+
${B}${NAME} --rpm xdg-utils${E}
+
 
+
ps. takie molochy jak GNOME, KDE zazwyczaj nie używają już stron man :)"
+
exit 0
+
}
+
# rysuje linię
+
function _linia(){
+
# domyślnie jest "_", ale może rysować linię ze znaku podanego jako parametr
+
znak=${1:-_}
+
for i in {1..80}; do echo -en ${znak}; done ; echo
+
}
+
# gdy parametrem jest polecenie
+
function _cmd(){
+
CMD=$1
+
# z tej paczki poczytamy manuale
+
RPM=`rpm -qf $(which $CMD)`
+
_cli
+
}
+
# gdy parametrem jest paczka rpm
+
function _rpm(){
+
# z tej paczki poczytamy manuale
+
RPM=$1
+
_cli
+
}
+
# funkcja główna wyświetlająca spis stron man
+
function _cli(){
+
clear
+
echo -e "Miłego czytania stron man z paczki ${B} $RPM ${E}"
+
echo -e "Wybierz numer, wyjście: ${B}Ctl+D${E}"
+
_linia \~
+
select p in `rpm -ql $RPM |grep bin/ | awk -F"bin/" '{printf $2 " "}' `; do
+
man $p
+
done
+
# to samo ale wyświetla pełne ścieżki do poleceń
+
# select p in `rpm -ql $RPM |grep bin/ `; do man ${p##*/} ; done
+
}
+
# ------------------------------------------------------------------------------
+
# gdy brak parametrów:
+
if [ $# -eq 0 ]; then _help ; fi
+
# obsługa parametrów
+
if [ $# -gt 0 ]; then
+
case "${1}" in
+
--help | -h )
+
_help
+
exit 0
+
;;
+
--rpm | -r )
+
_rpm $2
+
exit 0
+
;;
+
*)
+
_cmd $1
+
exit 0
+
;;
+
esac
+
fi
+
# kod wyjścia ostatniego polecenia
+
exit $?
+
 
+
</source>
+
 
+
==wikirepo==
+
Najbardziej aktualna wersja tego skryptu jest do pobrania na stronie [[repo]]
+
<source lang="bash">
+
#!/bin/bash
+
 
+
# wikirepo - listuje, ściąga, instaluje paczki RPM prosto z http://wiki.fedora.pl/wiki/repo
+
# by borzole
+
 
+
#parametry
+
BASE=${0}
+
ARGS=${@}
+
URL="http://wiki.fedora.pl/index.php?title=repo&action=raw&ctype=text/css"
+
 
+
TMP=/tmp/wikirepo_raw.src
+
SRC=$HOME/.wikirepo.src
+
 
+
# czcionka: (N)ORMAL i (B)OLD
+
N="\e[0m"
+
B="\e[1;38m"
+
# -------------------------------------------------------------------------------------------------
+
get_links(){
+
curl -s ${URL} > ${TMP}
+
+
# metoda:
+
# - sed: każdą spację zamienić na znak nowej linii ( składnia linków na wiki wymusza tę spację)
+
# - grep: wylapać tylko linie kończące się na ".rpm"
+
# - awk: wyłuskać linie zawierające linki i wyłuskać link http
+
# - sort: posortowanie i usunięcie pustych linii
+
+
# http://
+
cat ${TMP} \
+
| sed -e 's/\ \ */\n/g' \
+
| grep '.rpm$' \
+
| awk -F "http://" '{ print "http://" $2 }' \
+
| sort -u > ${SRC}
+
 
+
# TODO: o ile to kiedyś będzie potrzebne
+
# https://
+
# ftp://
+
}
+
 
+
# -------------------------------------------------------------------------------------------------
+
split_name(){
+
URL=${1}
+
RPM=${URL##*/}
+
APPS=${RPM%.fc*}
+
VER=${RPM##*.fc} ; VER=${VER%.rpm}
+
FC=${VER%%.*}
+
ARCH=${VER##*.}
+
 
+
# to tak na wyrost do robienia sortowania według tych parametrów
+
echo ${RPM} ${APPS} ${FC} ${ARCH}
+
}
+
 
+
split(){
+
cat ${SRC} | xargs -i ${BASE} split_name '{}'
+
}
+
# -------------------------------------------------------------------------------------------------
+
list_all(){
+
${BASE} split | cut -d' ' -f1
+
}
+
 
+
install(){
+
RPM=${1}
+
echo -e ":: RPM = \t$B$RPM$N ::"
+
URL=$(grep ${RPM} ${SRC})
+
 
+
echo -e ":: co chcesz zrobić? ::
+
-ściągnij paczkę (wget)
+
-zainstaluj prosto z linku (rpm)
+
-ściągnij i zainstaluj (yum)
+
-Up (Ctrl+D i ENTER)"
+
 
+
select cmd in wget rpm yum ; do
+
if [ "${cmd}" == "wget" ] ; then
+
wget ${URL}
+
elif [ "${cmd}" == "rpm" ] ; then
+
if [ $(whoami) != "root" ] ; then
+
echo " sorry, tylko root "
+
else
+
rpm -Uvh ${URL}
+
fi
+
elif [ "${cmd}" == "yum" ] ; then
+
if [ $(whoami) != "root" ] ; then
+
echo " sorry, tylko root "
+
else
+
wget ${URL}
+
yum localinstall --nogpgcheck ${RPM}
+
fi
+
fi
+
done
+
}
+
# -------------------------------------------------------------------------------------------------
+
main(){
+
echo -e ":: ściągam aktualne linki :: "
+
${BASE} get_links
+
echo -e ":: ${B}wikirepo${N} :: listuje, ściąga, instaluje paczki RPM prosto z http://wiki.fedora.pl/wiki/repo"
+
echo -e ":: skrypt by ${B}borzole${N}"
+
echo -e ":: quit: Ctrl+D\n\n"
+
+
select rpm in $(${BASE} list_all) ; do
+
${BASE} install $rpm
+
done
+
}
+
# uruchomienie funkcji głównej lub z parametru
+
if [ -n "$1" ] ; then
+
${ARGS}
+
else
+
main
+
fi
+
# wyjście z przekazaniem kodu wyjścia ostatniego polecenia
+
exit $?
+
 
+
</source>
+
  
 
==wgetilla==
 
==wgetilla==
Linia 262: Linia 84:
  
 
if [ "x$EXIT" == "x0" ]; then
 
if [ "x$EXIT" == "x0" ]; then
   $NOTIFY_SEND -i $ICON_OK "Download OK: $*"
+
   $NOTIFY_SEND -i $ICON_OK "Download OK:" "$*"
 
else
 
else
   $NOTIFY_SEND -i $ICON_ERR "Download ERROR: $*"
+
   $NOTIFY_SEND -i $ICON_ERR "Download ERROR:" "$*"
 
fi
 
fi
 
exit $EXIT
 
exit $EXIT
 
</source>
 
</source>
 +
 +
==yum-size-of==
 +
Skrypt {{rama||[[Użytkownik:Borzole/yum-size-of|yum-size-of]]}} pokazuje miejsce zajmowane przez paczkę rpm. Zarówno rozmiar archiwum jak i miejsce zajmowane po instalacji. Korzysta z bazy yum, więc paczka nie musi być zainstalowana w systemie.
 +
:'''Uwaga:''' od Fedora 12 dostępny jest plugin '''yum-plugin-list-data''' umożliwiający m.in. sprawdzenie zajmowanego przez paczkę miejsca.
  
 
==zenity==
 
==zenity==
 
Skrypty z użyciem graficznych okienek zenity znajdują się [[zenity|w artykule o zenity]]
 
Skrypty z użyciem graficznych okienek zenity znajdują się [[zenity|w artykule o zenity]]

Aktualna wersja na dzień 06:58, 12 lip 2010

Spis treści

Tip.png
Proponuję stronkę na skrypty

Jeśli masz skrypt mały lub duży, który mógłby się komuś przydać i nie masz ochoty pisać o nim artykułu na wiki to po prostu wrzuć go tutaj i krótko opisz lub daj link do paczki.

[edytuj].bashrc

  • nigdy nie ukończony artykuł o pliku ~/.bashrc

[edytuj]audacious-delete.sh

Skrypt przenosi do kosza aktualnie odtwarzaną piosenkę i przechodzi do następnej na liście. Najlepiej zrobić do niego aktywator na pulpicie :) Używa jednego okienka zenity do potwierdzenia zgody. audacious-delete.sh

[edytuj]dropbox: indeks zawartości

Dostępne jest w sieci kilka skryptów pozwalających użytkownikom dropbox utworzyć indeks zawartości folderów publicznych. To kilka z nich:

wystarczy wrzucić go do jakiegoś katalogu np.

~/Dropbox/Public/fedora

i wykonać komendę

chmod +x indexerPY.mac.py
python ./indexerPY.mac.py

[edytuj]fedorachroot

Zrobiłem instalację fedory do chroot, jednak wykonałem to w tak niewdzięczny sposób, że wstydził bym się komuś wmawiać, że tak to się robi. Jednak udało się i system działa już bez zarzutów więc jednak można. Dla zainteresowanych instalacja fedory do chroot najprostszym możliwym sposobem (chyba).

[edytuj]gnome-background.sh

Skrypt do zmiany tapety pulpitu GNOME. Tapeta jest losowana z folderu podanego jako parametr, spośród plików png, jpg, svg. gnome-background.sh

Najlepiej uruchomić w cron w taki sposób:

crontab -e

i wypełnić

PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
* * * * * gnome-background.sh /home/lucas/tapety >/dev/null 2>&1

[edytuj]manr

przykład: manr cp
Taki dosyć prościutki skrypt listujący strony man danej paczki rpm/polecenia. Rozbudowany jest tylko po to by pokazać początkującym jak łatwo zrobić obsługę parametrów, funkcje i menu wyboru (bo sam na początku długo tego szukałem). Skrypt zakłada, że każde polecenie z paczki ma stronę man, więc wyświetla je na liście nawet jak nie ma . Pomoc dostępna po wydaniu polecenia manr -h lub --help. Osobiście często używam ;) manr

[edytuj]wgetilla

Michał Bentkowski (mr.ecik) zrobił kiedyś skrypt "wget z powiadomieniem" jednak nie daje rady znaleźć go dzisiaj w google, a skoro był na licencji GPLv2 to pozwolę sobie umieścić tutaj.

#!/bin/bash
 
# wgetilla - wget z powiadomieniem
# równie dobrze to może być prozilla, curl czy aria2
# by Michał Bentkowski (mr.ecik@gmail.com)
# licensed under GPLv2+
# requires: notify-send ( paczka libnotify.rpm )
 
# PRZYKŁAD:
# Jako "download manager" do firefox z wtyczką Flashgot :
# polecenie:
#	/usr/bin/gnome-terminal
# parametry:
# 	-x wgetilla [URL] -P [FOLDER]
# dzięki opcji -P mamy automatyczne sortowanie ściąganych plików
# ICONS: (change if you don't like them ;-))
# PATHS: (change them if it's needed)
#GET=/usr/bin/proz
#GET=/usr/bin/curl
#GET=/usr/bin/aria2c
 
# just run "get" with given parameters
# check whether $DISPLAY exists,
# if not, exit with get's exit code
[ "x$DISPLAY" == "x"# don't notify if "--help" was invoked
"$p" == "--help""x$EXIT" == "x0""Download OK:" "$*""Download ERROR:" "$*"

[edytuj]yum-size-of

Skrypt yum-size-of pokazuje miejsce zajmowane przez paczkę rpm. Zarówno rozmiar archiwum jak i miejsce zajmowane po instalacji. Korzysta z bazy yum, więc paczka nie musi być zainstalowana w systemie.

Uwaga: od Fedora 12 dostępny jest plugin yum-plugin-list-data umożliwiający m.in. sprawdzenie zajmowanego przez paczkę miejsca.

[edytuj]zenity

Skrypty z użyciem graficznych okienek zenity znajdują się w artykule o zenity

Osobiste
Przestrzenie nazw

Warianty
Działania
Wiki
Nawigacja
Inne
Narzędzia