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

Z Fedora Wiki
Skocz do: nawigacji, wyszukiwania
(-preferencje-wersji, + wgetilla, +manr, +info o zenity)
(sort alfabetyczny + skrypt:wikirepo)
Linia 1: Linia 1:
{{Box|Tip|Proponuję stronkę na skrypty|
+
{{spis}}{{Box|Tip|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.
 
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.
 
* krótko o [http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi podświetlaniu składni na wiki]
 
* krótko o [http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi podświetlaniu składni na wiki]
 
}}
 
}}
 
[[Kategoria:Administracja_systemem]]
 
[[Kategoria:Administracja_systemem]]
==zenity==
 
Skrypty z użyciem graficznych okienek zenity znajdują się [[zenity|w artykule o zenity]]
 
==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.
 
<source lang="bash">
 
#!/bin/bash
 
  
# wgetilla - wget z powiadomieniem
+
==.bashrc==
# równie dobrze to może być prozilla, curl czy aria2
+
* nigdy nie ukończony artykuł o pliku [[Użytkownik:Borzole/.bashrc|~/.bashrc]]
# 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
+
  
NOTIFY_SEND=/usr/bin/notify-send
+
==instalacja fedory do chroot==
 
+
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).
# ICONS: (change if you don't like them ;-))
+
ICON_OK=messagebox_info
+
ICON_ERR=messagebox_critical
+
 
+
# PATHS: (change them if it's needed)
+
GET=/usr/bin/wget
+
#GET=/usr/bin/proz
+
#GET=/usr/bin/curl
+
#GET=/usr/bin/aria2c
+
 
+
# just run "get" with given parameters
+
$GET $@
+
EXIT=$?
+
 
+
# check whether $DISPLAY exists,
+
# if not, exit with get's exit code
+
[ "x$DISPLAY" == "x" ] && exit $EXIT
+
 
+
# don't notify if "--help" was invoked
+
for p in $*; do [[ "$p" == "--help" ]] && exit $EXIT; done
+
 
+
if [ "x$EXIT" == "x0" ]; then
+
  $NOTIFY_SEND -i $ICON_OK "Download OK: $*"
+
else
+
  $NOTIFY_SEND -i $ICON_ERR "Download ERROR: $*"
+
fi
+
exit $EXIT
+
</source>
+
  
 
==manr==
 
==manr==
Linia 149: Linia 104:
 
</source>
 
</source>
  
==.bashrc==
+
==wikirepo==
* nigdy nie ukończony artykuł o pliku [[Użytkownik:Borzole/.bashrc|~/.bashrc]]
+
<source lang="bash">
==instalacja fedory do chroot==
+
#!/bin/bash
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).
+
 
 +
# 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==
 +
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.
 +
<source lang="bash">
 +
#!/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
 +
 
 +
NOTIFY_SEND=/usr/bin/notify-send
 +
 
 +
# ICONS: (change if you don't like them ;-))
 +
ICON_OK=messagebox_info
 +
ICON_ERR=messagebox_critical
 +
 
 +
# PATHS: (change them if it's needed)
 +
GET=/usr/bin/wget
 +
#GET=/usr/bin/proz
 +
#GET=/usr/bin/curl
 +
#GET=/usr/bin/aria2c
 +
 
 +
# just run "get" with given parameters
 +
$GET $@
 +
EXIT=$?
 +
 
 +
# check whether $DISPLAY exists,
 +
# if not, exit with get's exit code
 +
[ "x$DISPLAY" == "x" ] && exit $EXIT
 +
 
 +
# don't notify if "--help" was invoked
 +
for p in $*; do [[ "$p" == "--help" ]] && exit $EXIT; done
 +
 
 +
if [ "x$EXIT" == "x0" ]; then
 +
  $NOTIFY_SEND -i $ICON_OK "Download OK: $*"
 +
else
 +
  $NOTIFY_SEND -i $ICON_ERR "Download ERROR: $*"
 +
fi
 +
exit $EXIT
 +
</source>
 +
 
 +
==zenity==
 +
Skrypty z użyciem graficznych okienek zenity znajdują się [[zenity|w artykule o zenity]]

Wersja z 16:32, 23 lis 2009

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.

.bashrc

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

instalacja fedory do chroot

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).

manr

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).

#!/bin/bash
 
# manr - lista stron man z paczki rpm 
# by borzole
# użycie: manr --help
 
# Nazwa programu
"${0##*/}"
# czcionka normalna
"\e[0m" 
# czcionka bold
"\e[1;38m" 
# jakaś pomoc
"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 :)"# rysuje linię
# domyślnie jest "_", ale może rysować linię ze znaku podanego jako parametr
${1:-_}${znak}# gdy parametrem jest polecenie
# z tej paczki poczytamy manuale
# gdy parametrem jest paczka rpm
# z tej paczki poczytamy manuale
# funkcja główna wyświetlająca spis stron man
"Miłego czytania stron man z paczki ${B} $RPM ${E}""Wybierz numer, wyjście: ${B}Ctl+D${E}""bin/" '{printf $2 " "}'# 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:
# -eq 0 ]; then _help ; fi
# obsługa parametrów
# -gt 0 ]; then
"${1}"# kod wyjścia ostatniego polecenia
 

wikirepo

#!/bin/bash
 
# wikirepo - listuje, ściąga, instaluje paczki RPM prosto z http://wiki.fedora.pl/wiki/repo
# by borzole
 
#parametry
${0}${@}"http://wiki.fedora.pl/index.php?title=repo&action=raw&ctype=text/css"# czcionka: (N)ORMAL i (B)OLD
"\e[0m""\e[1;38m" 
# -------------------------------------------------------------------------------------------------
${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://
${TMP}'s/\ \ */\n/g''.rpm$'"http://" '{ print "http://" $2 }'${SRC}
 
	# TODO: o ile to kiedyś będzie potrzebne
		# https://
		# ftp://
}
 
# -------------------------------------------------------------------------------------------------
${1}${URL##*/}${RPM%.fc*}${RPM##*.fc}${VER%.rpm}${VER%%.*}${VER##*.}
 
	# to tak na wyrost do robienia sortowania według tych parametrów
${RPM} ${APPS} ${FC} ${ARCH}${SRC}${BASE}'{}'
}
# -------------------------------------------------------------------------------------------------
${BASE}' '${1}":: RPM = \t$B$RPM$N ::"${RPM} ${SRC}":: co chcesz zrobić? :: 
	-ściągnij paczkę (wget)
	-zainstaluj prosto z linku (rpm)
	-ściągnij i zainstaluj (yum) 
	-Up (Ctrl+D i ENTER)""${cmd}" == "wget"${URL}"${cmd}" == "rpm""root"" sorry, tylko root "${URL}"${cmd}" == "yum""root"" sorry, tylko root "${URL}${RPM}# -------------------------------------------------------------------------------------------------
":: ściągam aktualne linki :: "
	${BASE}":: ${B}wikirepo${N} :: listuje, ściąga, instaluje paczki RPM prosto z http://wiki.fedora.pl/wiki/repo"":: skrypt by ${B}borzole${N}"":: quit: Ctrl+D\n\n"${BASE}${BASE}# uruchomienie funkcji głównej lub z parametru
"$1"${ARGS}# wyjście z przekazaniem kodu wyjścia ostatniego polecenia
 

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: $*"

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