Przydatne skrypty

Wyłącznie system! Wątpliwości dotyczące aplikacji proszę umieszczać niżej, w odpowiednich forach.
Xerces
Piegowaty Guziec
Piegowaty Guziec
Posty: 3
Rejestracja: 11 sty 2006, 15:53
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Fluxbox

Odp: Przydatne skrypty

Post autor: Xerces »

Znalaziony w sieci - może być pomocny przy diagnozowaniu ewentualnych problemów z kartą dźwiękową. Skrypt korzysta m.in. z sysv-rc-conf - trzeba zainstalować.

Kod: Zaznacz cały

#!/bin/bash
echo
# time and user
date=$(date)
echo "Today is $date"
me=$(whoami)
echo "Sound tested by $me"
echo
echo
echo "== Identifying System =="
uname -s -r -v -p -o
cat /proc/cpuinfo | grep -i "model name"
cat /proc/cpuinfo | grep -i "cpu mhz"
cat /proc/meminfo | grep -i memtotal
cat /proc/meminfo | grep -i swaptotal

echo
echo "== Information about a mixer device =="
amixer info
echo
echo "== Checking dsp devices =="
ls -l /dev | egrep -i dsp\|sound

echo
echo "== Checking mixer devices =="
ls -l /dev | egrep -i dsp\|mixer

echo
echo "== Checking Driver =="
 
if test -f /sbin/lspci
then /sbin/lspci -v | egrep -i "(audio|multimedia|host bridge)"

elif test -f /usr/bin/lspci
then /usr/bin/lspci -v | egrep -i "(audio|multimedia|host bridge)"

else 
echo "==> Test not available on this system !"

fi

echo
echo "== ALSA version =="
cat /proc/asound/version
echo
echo "== Checking Actual Driver in Use (/etc/modprobe.d/sound) kernel 2.6 =="
if test -f /etc/modprobe.d/sound; then
     cat /etc/modprobe.d/sound
else
     echo "==> Test not available on this system !"
fi

echo
echo "== Checking Cross Platform Audio Output Library (/etc/libao.conf) =="
if test -f /etc/libao.conf; then
	cat /etc/libao.conf | grep -E -v "^#| ^$"
else
	echo "==> /etc/libao.conf not available !"
fi
echo
echo "== Checking ALSA configure files =="
if test -f /etc/asound.conf; then
 echo "/etc/asound.conf ====> exist"
fi
if test -f $HOME/.asoundrc; then
  echo -e "$HOME/.asoundrc ====> exist"
fi
if test -f $HOME/.asoundrc.asoundconf; then
 echo -e "$HOME/.asoundrc.asoundconf ====> exist"
fi
echo
echo "== Checking esd config (/etc/esound/esd.conf) =="
if test -f /etc/esound/esd.conf; then
  echo "-----------------------------------------------------"
  cat /etc/esound/esd.conf | grep -E -v "^#| ^$"
  echo "-----------------------------------------------------"
fi
if test -d /dev/snd; then
     echo
     echo "== Checking alsa /dev/snd =="
     ls --color=none /dev/snd
fi

echo
echo "== Checking if Module Loaded =="
/sbin/lsmod | egrep -i snd\|sound\|audio\|game

echo
 if test -x /usr/sbin/sysv-rc-conf; then
     echo "== Checking in what level alsasound service is configured to run =="
       if test -x /etc/init.d/alsasound; then
          /usr/sbin/sysv-rc-conf --list alsasound
       else
          echo "Init script alsasound not exist !"
       fi   

     echo
     echo "== Checking in what level alsa-utils service is configured to run =="
       if test -x /etc/init.d/alsa-utils; then
          /usr/sbin/sysv-rc-conf --list alsa-utils
       else
          echo "Init script alsa-utils not exist !"
       fi   
else
     echo "==> Test for run levels not available on this system !"
fi

echo
echo "== Checking if Sound Volume muted =="
if test -x /usr/bin/aumix; then
     aumix -q
else
     echo "==> Test not available on this system !"
fi

echo
echo "== Checking artsd setup =="
ps -A -f | grep -i artsd | grep -v grep
echo
echo "== Checking esd setup =="
ps -A -f | grep -i esd | grep -v grep

echo
echo "== Checking which program uses the sound card or cdrom =="
echo "                (no output is okay)"
if test -x /sbin/fuser; then
     /sbin/fuser -v /dev/dsp
     /sbin/fuser -v /dev/cdrom
else
     /bin/fuser -v /dev/dsp
     /bin/fuser -v /dev/cdrom
fi

echo
echo "== Test wav file . . . . . please wait =="

if test -f /usr/share/sounds/startup.wav 
 then 
 /usr/bin/play /usr/share/sounds/startup.wav > /dev/null

else
  echo "==> Test not available on this system !"

fi

# Interactive part 
echo -n "Did you hear the soundfile Yes/No ?:"
read answer

# the user did not enter anything:
while [ -z "$answer" ]; do
echo "You did not tell me Yes or No !!!"
echo -n "Did you hear the soundfile Yes/No ?:"
read answer
done

echo "You typed:  $answer   Thanks !" 

sleep 2

echo
echo "== End of Checks  ==" 
echo
Awatar użytkownika
urbinek
Sędziwy Jeż
Sędziwy Jeż
Posty: 44
Rejestracja: 03 wrz 2007, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Kontakt:

Odp: Przydatne skrypty

Post autor: urbinek »

stan konta orange(przeczytać komentarz zamieszczony w piku)
http://urbinek.ovh.org/skrypty/stan_konta.php.tar.gz

uruchamiany cronem co 5 min...

Kod: Zaznacz cały

#!/bin/bash
touch ~/cookie.txt
touch ~/stan_konta.txt
php ~/skrypty/stan_konta_orange/stan_konta.php
rm ~/cookie.txt
mv -f ~/stan_konta.txt ~/skrypty/stan_konta_orange/stan_konta.txt
#killall php # mozna odkomentować gdyby były problemy z ilościa daemonów php
exit 0
i w conky linijeczka

Kod: Zaznacz cały

${texeci 30 cat ~/skrypty/stan_konta_orange/stan_konta.txt}
ciasteczko =D
Awatar użytkownika
mateusz16
Sędziwy Jeż
Sędziwy Jeż
Posty: 70
Rejestracja: 04 wrz 2007, 19:44
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: KDE Plasma
Architektura: x86
Kontakt:

Odp: Przydatne skrypty

Post autor: mateusz16 »

skrypt do wysuzkiwania intruzow w sieci lokalnej:P
pierwszy
potrzebne pakiety zenity i nbtscan :D

Kod: Zaznacz cały

#!/bin/bash
if [ -e ~/.list ]; then
nbtscan 192.168.2.1-10 > .list
else
touch ~/.list
nbtscan 192.168.2.1-10 > .list
fi

if [ -e ~/.ile ]; then
wc -l ~/.list > ~/.ile
else
touch ~/.ile
wc -l ~/.list > ~/.ile
fi
wynik="$[$(cat ~/.ile | cut -c1)-4]"
cat ~/.list | tail -n$wynik | cut -d" " -f1-7
2 czesc

Kod: Zaznacz cały

#!/bin/bash
if [ -e ~/.intruz ] ; then
scan > ~/.intruz
else
touch ~/.intruz
scan > ~/.intruz
fi
if [ "$(inter | cut -c2-6)" != "ASMAX" ]; then
sleep 3600
netusers
else
if [ "$(wc -l ~/.intruz | cut -c1)" -gt "2" ]; then
zenity --title "Intruz" --info --text "Wykryto intruza w twojej sieci lokalnej"
fi
        if [ "$(cat ~/.intruz | cut -c1)" = "2" ]; then
                if [ "$(cat ~/.intruz | grep 192.168.2.7)" = "0" ]; then
                zenity --title "Intruz" --info --text "Wykryto intruza w twojej sieci lokalnej"
                fi
                fi

                if [ "$(wc -l ~/.intruz | cut -c1)" = "2" ]; then
                        if [ "$(cat ~/.intruz | grep XXX-ECF00AD4F14)" = "0" ]; then
                        zenity --title "Intruz" --info --text "Wykryto intruza w twojej sieci loka$
                        fi
                        fi

fi
echo "ok"
sleep 300
netusers
niekorzy moga powiedziec ze wystarczy szyfrowanie wep ale mi sie nudzilo to takie cos zrobilem :P
Awatar użytkownika
ubuproblem
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 169
Rejestracja: 30 lip 2007, 23:26
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME

Odp: Przydatne skrypty

Post autor: ubuproblem »

Mała baza repozytoriów -- Repo.
* Przypisze repozytoria i klucze GPG
* Zrobi kopię zapasową repozytoriów
* Automatyczny odświerzacz repozytoriów (powiązanie z synapticiem)
* Gui
* Wsparcie dla Ubuntu 7.04 7.10 i 8.04 (tylko eksperymentalnie)

Narazie tylko dla Gnome. Jak się komuś przyda to zrobię jeszcze dla KDE.

>>Binarka<<
>>TarBall<<

To oczywiście dopiero alfa nie testowana przez nikogo oprócz mnie, nie wysyłana nigdzie indziej jak tutaj.
Jak jakieś błędy będą to proszę tutaj albo na gg (mam w profilu).

Jeśli chcemy narazie użyć na kde to doinstalowujemy zenity i synaptic.

Najprościej jest użyć binarki, wystarczy nadać jej prawo do uruchamiania i uruchomić dwuklikiem.
Jeśli zaś oprócz testowania chcemy przejrzeć kod, ściągamy wówczas tarbala.

Mogę też napisać obsługę dla innych systemów niż Ubuntu, w których jest apt, tylko do tego potrzebne będą informacje od użytkowników.
Elf
Piegowaty Guziec
Piegowaty Guziec
Posty: 3
Rejestracja: 30 paź 2007, 14:05
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: Xfce

Odp: Przydatne skrypty

Post autor: Elf »

Konwertowanie kodowania plików tekstowych z windowsowego do UTF8. Przydaje się zaraz po przenosinach, a także do plików przesyłanych przez windziarzy co o UTF nie słyszeli ;)

Kod: Zaznacz cały

#!/bin/bash
if [ $# -gt 0 ] ; then
	iconv -f CP1250 -t UTF-8 --output=/tmp/$1 $1
	cp $1 $1~
	mv /tmp/$1 $1
else
	echo "Konwersja kodowania pliku tekstowego z CP1250 (Windows) na UTF-8"
	echo "użycie: $0 nazwapliku"
fi
Awatar użytkownika
Dwimenor
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1260
Rejestracja: 18 mar 2008, 16:14
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Architektura: x86_64

Odp: Przydatne skrypty

Post autor: Dwimenor »

Dwa wpisy z mojego ~/.bashrc. Dosyć często tego używam.

Szybka aktualizacja systemu. (Update notiffera mam wyłączonego...nie trawię). Trywialne, ale bez notiffera poręczne.

Kod: Zaznacz cały

update () {
sudo apt-get update;
sudo apt-get upgrade;
sudo apt-get clean;
}

Szybkie rozpakowanie archiwum rar. Wymaga pakietu unrar

Kod: Zaznacz cały

rar.wypakuj () {
unrar x ${1} -kb
}
Poniższe zdanie jest fałszywe.
Powyższe zdanie jest prawdziwe.
Awatar użytkownika
Sycu
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 15 wrz 2005, 18:16
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: GNOME
Architektura: x86_64
Lokalizacja: Wrocław
Kontakt:

Odp: Przydatne skrypty

Post autor: Sycu »

Skrypt podpisuje wszystkie repozytoria, dzięki czemu apt nie wywala już błędów GPG. Może komuś się przyda:

Kod: Zaznacz cały

#!/bin/bash

# Autor: Patryk 'Sycu' Syc
# sycugpz@gmail.com
# http://sycu.ovh.org/

echo 'Pobieranie listy niepodpisanych repozytoriow...'
sudo apt-get update > result.txt 2>&1
cat result.txt | grep NO_PUBKEY > key_errors.txt
awk '{ print $19 }' key_errors.txt > keys.txt
echo 'Pobieranie kluczy...'
gpg --keyserver "hkp://subkeys.pgp.net" --recv-keys `cat keys.txt` > /dev/null 2>&1
echo 'Dodawanie kluczy...'
sudo apt-key add .gnupg/pubring.gpg > /dev/null
echo 'Usuwanie plikow tymczasowych...'
rm result.txt
rm key_errors.txt
rm keys.txt
echo 'Zakonczono.'
Awatar użytkownika
NoName_1990
Sędziwy Jeż
Sędziwy Jeż
Posty: 59
Rejestracja: 28 lut 2007, 18:01
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86

Odp: Przydatne skrypty

Post autor: NoName_1990 »

mateusz16 pisze:skrypt do wysuzkiwania intruzow w sieci lokalnej
No to ja znalazłem (nie ja jestem autorem :P) coś podobnego: http://www.ex-parrot.com/~pete/upside-down-ternet.html
W wielkim skrócie: skrypt ma utrudnić nieautoryzowane korzystanie z dostępu do internetu z naszego wifi. (nie wiem, jak to dokładnie działa, mam neostrade xD). Efekty na tej stronie wyglądają przepięknie xD
Awatar użytkownika
qbsiu
Piegowaty Guziec
Piegowaty Guziec
Posty: 14
Rejestracja: 22 sie 2006, 10:06
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: Przydatne skrypty

Post autor: qbsiu »

Pobierałem dużo płytek... Do których była dodawana suma kontronla md5. Napisałem prosty skrypcik, żeby nie sprawdzać za każdą razą czy suma się zgadza.......

Kod: Zaznacz cały

#!/bin/bash
aaa=`md5sum $1 | awk '{print $1}'`
if [ "$aaa" == "$2" ]
then
echo "suma sie zgadza"
else
echo "suma sie nie zgadza"
fi
sposób użycia:

Kod: Zaznacz cały

[qbsiu][Desktop] ./skrypt ubuntu-8.04-desktop-i386.iso 8895167a794c5d8dedcc312fc62f1f1f
suma sie zgadza
Z polskiego na nasze :-)

Kod: Zaznacz cały

./program /lokalizacja/do/jakiegos/pliku kod_sumy
Awatar użytkownika
ubuproblem
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 169
Rejestracja: 30 lip 2007, 23:26
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME

Odp: Przydatne skrypty

Post autor: ubuproblem »

Minutnik w gnome :P

Kod: Zaznacz cały

#!/bin/bash
function czas
{
	sleep $ileczasu
	zenity --info --name "Czas upłynął!!!" --text "Minął czas odliczania przez minutnik!!!"
}

ileminut=$(zenity --scale --text "Ile minut chcesz odliczyć?")
if [ "$?" = "1" ]
then
	exit 0
else
	ileczasu=$[$ileminut*60]
	czas
fi
Awatar użytkownika
NoName_1990
Sędziwy Jeż
Sędziwy Jeż
Posty: 59
Rejestracja: 28 lut 2007, 18:01
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86

Odp: Przydatne skrypty

Post autor: NoName_1990 »

skrypt do wypakowywania wszystkiego xD

Kod: Zaznacz cały

#!/bin/bash
if [ -f "$1" ] ; then
     case "$1" in
        *.tar.bz2) tar xjf $1 ;;
        *.tar.gz) tar xzf $1 ;;
        *.bz2) bunzip2 $1 ;;
        *.rar) unrar x $1 ;;
        *.gz) gunzip $1 ;;
        *.tar) tar xf $1 ;;
        *.tbz2) tar xjf $1 ;;
        *.tgz) tar xzf $1 ;;
        *.zip) unzip $1 ;;
        *.Z) uncompress $1 ;;
        *.7z) 7z x $1 ;;
        *) echo "'$1' nie może zostać rozpakowany" ;;
      esac
else
      echo "'$1' nie jest poprawnym plikiem"
fi
Awatar użytkownika
Ventrue
Piegowaty Guziec
Piegowaty Guziec
Posty: 25
Rejestracja: 12 cze 2005, 10:23
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Kontakt:

Odp: Przydatne skrypty

Post autor: Ventrue »

A oto mój drugi tutejszy skrypt, Wrzuta Downloader:
Do uruchomienia wymagany kdialog, wget.

Kod: Zaznacz cały

#!/bin/bash


###################################################################
### Wrzuta Downloader by Grzegorz "Ventrue" Woźniak             ###
###  GG: 1730301, JID:   ventrue@jabster.pl                     ###
###                                                             ###
###                                                             ###
### sob, 17 maj 2008, 17:44:59 CEST   2008                      ### 
### Skrypt może mało elegancko napisany, ale działa i ściąga    ### 
### pliki :-)                                                   ###
### GREETS: azhag - za regexpy, forum dug.net.pl,               ###
### debian.linux.pl, Niszczyciel Światów                        ###
###                                                             ###
###   TODO:                                                     ###
###   - Jakiś progressbar by się przydał                        ###
###   - Zmiana kdialog na coś innego - propozycje?              ###
###   - Jakaś konwersja plików filmowych po ściągnięciu?        ###
###                   ...                                       ###
###   URUCHAMIANIE:                                             ###
###       chmod +x wrzuta-downloader                            ###
###      a potem ./wrzuta-downloader                            ###
###     Wymagany: kdialog, wget                                 ###
###################################################################


################################################################ Konfiguracja
#Komunikaty
MESG_CHOOSE_FILETYPE="Wybierz typ pliku:" 
MESG_ENTER_FILENAME="Wprowadź adres pliku do ściągnięcia"
MESG_PROG_NAME="Wrzuta downloader"
MESG_DOWNLOADING="Za chwilę rozpocznie się pobieranie pliku. Po ściągnięciu ujrzysz stosowny komunikat."
MESG_OK="Plik $filename pobrany prawidłowo!"
AUDIO_FILES="Pliki multimedialne"
VIDEO_FILES="Pliki Flash Video"
FILETYPE1="Audio"
FILETYPE2="Video"

#Generowanie plików potrzebnych do działania :) :
LOGFILE="/tmp/wd-wget-log.$$"
ADDRESS="/tmp/wd-address.$$"
#Koniec konfiguracji
################################################################## Skrypt

function downloading
{
kdialog --title "$MESG_PROG_NAME" --msgbox "$MESG_DOWNLOADING"
wget -o $LOGFILE "$nowyadres" -O "$filename"
}

function removing
{
rm -rf $LOCK
rm -rf $LOGFILE
rm -rf $ADDRESS
}

function title
{
remote=`kdialog --title "$MESG_PROG_NAME" --inputbox "$MESG_ENTER_FILENAME"` 
}

function allok
{
kdialog --title "$MESG_PROG_NAME" --msgbox "$MESG_OK"
}
typ=`kdialog --title "$MESG_PROG_NAME" --combobox "$MESG_CHOOSE_FILETYPE" "$FILETYPE1" "$FILETYPE2"`
if [ "$typ" = "Audio" ]; then
title
#echo "1" > $LOCK
echo "$remote" > $ADDRESS
if [ -z $remote ]; then
exit
fi
nowyadres=`cat $ADDRESS | sed -r "s:http\://(.*).wrzuta.pl/audio/(.*)/(.*):http\://www.wrzuta.pl/aud/file/\2/1:g"`
filename=`kdialog --getsavefilename :label1 "*.mp3 *.wav |$AUDIO_FILES"`
if [ -z $filename ]; then
exit
else
downloading
allok
removing
fi

elif [ "$typ" = "Video" ]; then
title

echo "$remote" > $ADDRESS
nowyadres=`cat $ADDRESS | sed -r "s:http\://(.*).wrzuta.pl/film/(.*)/(.*):http\://www.wrzuta.pl/vid/file/\2/1:g"`

filename=`kdialog --getsavefilename :label1 "*.flv |Flash Video"`
if [ -z $filename ]; then
exit

else
downloading
allok
removing
fi
fi
The Linux philosophy is 'Laugh in the face of danger'. Oops. Wrong One. 'Do it yourself'. Yes, that's it.
Linus Torvalds
Awatar użytkownika
youlleck
Sędziwy Jeż
Sędziwy Jeż
Posty: 62
Rejestracja: 01 lut 2008, 00:19
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Openbox
Architektura: x86_64
Kontakt:

Odp: Przydatne skrypty

Post autor: youlleck »

Skrypt do conky'ego wypisujacy aktualnie grany kawalek w MOCpie

Kod: Zaznacz cały

#!/bin/bash
#mocpinfo.sh
q=`mocp --info | grep Artist:`
q=${q#Artist:\ }
w=`mocp --info | grep SongTitle:`
w=${w#SongTitle:\ }
e=`mocp --info | grep AvgBitrate:`
e=${e#AvgBitrate:\ }
if [ "$e" != "" ]; then
echo "MOCP playing:"
echo $q
echo $w
echo $e 
fi
oraz skrypt, ktorym mozna otworzyc pierwsza pozycje z pliku .pls (uzywam do odpalania radyj netowych)

Kod: Zaznacz cały

#!/bin/bash
#playit
adres=`cat "$1" | grep File1`
mocp --playit "${adres#File1=}"
i jeszcze jeden, ktory zaczyna rippowac radio z pliku .pls przy uzyciu streamrippera

Kod: Zaznacz cały

#!/bin/bash
#ripit
adres=`cat "$1" | grep File1`
streamripper "${adres#File1=}"
czasami zdarza sie, ze z obszernej playlisty na randomie poleci jakis kawalek ktory przyprawia mnie o mdlosci. w tym celu mam skrypt delcrap ktory wywala aktualnie grany utwor w mocpie i przechodzi do nastepnego:

Kod: Zaznacz cały

#!/bin/bash
#delcrap
z=`mocp --info | grep File:`
z=${z#File:\ }
mocp --next
sleep 1
rm -v "$z"
btw: dlaczego temat o skryptach jest w offtopie a nie w dziale software albo programowanie? :|
Problem rozwiazany? Dodaj [SOLVED] do tytulu watku!

Best4Linux.NET - sprawdz czy twoj sprzet zadziala pod Linuksem!
outslider
Sędziwy Jeż
Sędziwy Jeż
Posty: 68
Rejestracja: 03 lis 2007, 23:14
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Przelogowywanie Lin - Win i vice versa

Post autor: outslider »

Wśród użytkowników linuksa często bywają osoby posiadające również Windows. Czasem zachodzi potrzeba przelogowania się z jednego systemu na drugi, ale trzeba siedzieć przed kompem i "polować" na pojawiające się menu Gruba, by wybrać sobie właściwą opcję, zamiast np. iść zrobić kawę:D Toteż napisałem zestaw 4 skryptów - 2 bashowe i 2 w batchu automatyzujące całą procedurę. Rzecz sprowadza się do podmienienia menu Gruba i wykonania "reboot". A teraz do rzeczy.

Ja używałem Windows XP Prof. oraz Kubuntu 7.10. Oba zainstalowane na wirtualnej maszynie VirtualBox (na rzeczywistym kompie nie mam Windowsa).

--Do zrobienia na Windowsie:
1. Po pierwsze do pełnej automatyzacji - łącznie z przelogowaniem Win->Lin potrzebny jest sterownik umożliwiający dostęp spod Windowsa do partycji Linuksa, u mnie są to partycje Ext3. Przykładowy sterownik znajdziemy tu:

http://www.fs-driver.org/index.html

Należy go zainstalować pod Windows. Jak - dojdziecie sami.
Partycję systemową Linuksa zamontowałem jako G:, jeśli zamontujesz ją pod inną nazwą - zmień też wpisy w skryptach batch.

--Do zrobienia na Linuksie:
2. Wchodzimy do katalogu /boot/grub/ i robimy trzy kopie pliku menu.lst (wszystkie w tymże katalogu) o nazwach:
menu_lin.lst
menu_win.lst
menu_n.lst

3. Zmieniamy zawartości plików menu_lin.lst oraz menu_win.lst w sposób następujący:

plik oryginalny

Kod: Zaznacz cały

# menu.lst - See: grub(8), info grub, update-grub(8)
#            grub-install(8), grub-floppy(8),
#            grub-md5-crypt, /usr/share/doc/grub
#            and /usr/share/doc/grub-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.
# WARNING: If you are using dmraid do not use 'savedefault' or your
# array will desync and will not let you boot your system.
default		0

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout		10
####  RESZTA PLIKU DLA NAS JEST NIEISTOTNA, NIE TYKAMY JEJ####
Zależnie od numerów poszczególnych systemów (u mnie Linux ma nr 0, Windows zaś 4) zmieniamy cyfrę po słowie "default", a więc , u mnie, w pliku menu_win.lst:

Kod: Zaznacz cały

default		4
w pliku menu_lin.lst zostaje:

Kod: Zaznacz cały

default		0
W obydwu możemy też zmienić wpis:

Kod: Zaznacz cały

timeout		10
na

Kod: Zaznacz cały

timeout		0
co przyspieszy logowanie o 10 sekund, ale poważnie utrudni wejście do Gruba, jak coś się nie uda:D
4. Tworzymy katalog ~/.reboot_to_OS (ta lokalizacja występuje w skryptach, jeśli ją zmienisz - przerób skrypty).
5. W utworzonym katalogu umieszczamy skrypty (ich nazwy są istotne - skrypty odwołują się do siebie):

reboot_to_win.sh

Kod: Zaznacz cały

#!/bin/bash


if [ "$1" != "-k" ]
 then
  konsole --nomenubar --notabbar --noframe --noscrollbar --vt_sz 40x5 -T "Boot recover" -e ~/.reboot_to_OS/reboot_to_win.sh -k
 else 
  echo " ......................................"
  echo "      Przelogowanie na Windows XP      "
  echo "      Podaj haslo polecenia SUDO.      "
  echo "   (Aby anulowac - zamknij to okno)    "
  echo " ......................................"

  sudo -k
  sudo cp /boot/grub/menu_win.lst /boot/grub/menu.lst
  sudo echo "0" > ~/.reboot_to_OS/normal_boot.txt
  sudo reboot
fi
exit 
oraz recover_reboot.sh

Kod: Zaznacz cały

#!/bin/bash

testboot=`head -c 1 ~/.reboot_to_OS/normal_boot.txt`
if [ "$testboot" = "1" ];
 then
  exit
fi

if [ "$1" != "-k" ]
 then
  konsole --nomenubar --notabbar --noframe --noscrollbar --vt_sz 40x5 -T "Boot recover" -e ~/.reboot_to_OS/recover_reboot.sh -k
 else 
  echo " ......................................"
  echo "   Przywracanie normalnego menu Gruba  "
  echo "       Podaj haslo polecenia SUDO.     "
  echo "    (Aby anulowac - zamknij to okno)   "
  echo " ......................................"

  sudo -k
  sudo cp /boot/grub/menu_n.lst /boot/grub/menu.lst
  sudo echo "1" > ~/.reboot_to_OS/normal_boot.txt
fi
exit 
Oba skrypty czynimy wykonywalnymi.

--Do zrobienia na Windowsie
6. Tu już możemy zrobić skrypty gdzie bądź:) A skrypty piszemy dwa:
reboot_to_lin.bat

Kod: Zaznacz cały

@echo off

echo.
echo      ....................................  
echo      :     Przelogowuje na Linuksa      :  
echo      : (Aby anulowac - zamknij to okno) :  
echo      ....................................  
echo.
pause

copy /Y G:\boot\grub\menu_lin.lst G:\boot\grub\menu.lst

echo 0 > G:\home\paulus\.reboot_to_OS\normal_boot.txt

shutdown -r -t 0
recover_reboot.bat

Kod: Zaznacz cały

@echo off
for /f "usebackq" %%i in ("G:\home\paulus\.reboot_to_OS\normal_boot.txt") do (set boot=%%i)


if %boot%==1 exit

echo.
echo      ....................................  
echo      :    Przywracanie menu Gruba       :  
echo      : (Aby anulowac - zamknij to okno) :  
echo      ....................................  
echo.
pause

copy /Y G:\boot\grub\menu_n.lst G:\boot\grub\menu.lst

echo 1 > G:\home\paulus\.reboot_to_OS\normal_boot.txt
7. Jak tym działać?
-Jeśli aktualnie jesteśmy w Linuksie kliknięcie na skrypt reboot_to_win.sh spowoduje otwarcie okna konsoli z informacją o przelogowaniu i prośbą o podanie hasła sudo

-Jeśli jesteśmy na Windowsie analogicznie otworzy się cmd i zapyta o potwierdzenie. Tu jednak nie musimy podawać hasła, wystarczy dowolny klawisz.

-Pliki recover_reboot.* służą przywróceniu normalnego menu Gruba po restarcie

8. Umilanie sobie życia
-Pliki recover_reboot.sh i recover_reboot.bat możemy umieścić w autostartach obu systemów, w Windows jest to gdzieś w %SystemDrive%\Documents and Settings\All Users\Autostart (czy jakoś tak) zaś w KDE w ~/.kde/Autostart (w GNOME - nie pamiętam;p)

-Plik reboot_to_win.sh możemy sobie podlinkować na pulpit, czy zrobić skrót, ikonkę, czy co sobie tam kto chce

9. Parę słów wyjaśnienia

-Jak łatwo zauważyć skrypty *.sh wykorzystują program Konsole do otwarcia ostrzeżenia (właściwie wywołane raz uruchamiają same siebie w konsoli), jeśli nie masz Konsole zastąp odpowiednie wywołania własnym emulatorem terminala.

-Skrypty spod Lina i Windy komunikują się poprzez plik ~/.reboot_to_OS/normal_boot wpisując doń wartosć 1, gdy menu gruba jest zwyczajne i 0, gdy zmienione. Dzięki temu recover_reboot.* wie, czy ma cokolwiek robić. Jeśli znajdzie wartość 1 - wyłącza się.

10. Może by z tego zrobić jakieś HOW_TO?
Awatar użytkownika
DaFim
Piegowaty Guziec
Piegowaty Guziec
Posty: 1
Rejestracja: 09 lis 2007, 11:00
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME

kompresja rar + dzielenie na części + zabezpieczenie hasłem

Post autor: DaFim »

przydaje się gdy chcemy wysłać coś specyficznego przez gmail'a lub inna pocztę ;)

Skrypt został rozbudowany i trochę zmodyfikowany z wcześniejszego skryptu użytkownika: Rupek

Kod: Zaznacz cały

#!/bin/bash
#Autor: DaFim
rodzaj=`zenity --list --title "Kompresja" --text "Wybierz co chcesz skompresować" --radiolist --column "" --column "Dostępne opcje:" FALSE "plik" FALSE "folder"`

	if [ "$rodzaj" = folder ] ; then
            wej=`zenity --file-selection --title="Wybierz folder do podzielenia" --directory`

	    if [ "$?" = 1 ] ; then
		exit 
	    fi
	else 
            wej=`zenity --file-selection --title="Wybierz plik do podzielenia"`

	    if [ "$?" = 1 ] ; then
		exit 
	    fi
	fi

wyj=`zenity --file-selection --save --title="Podaj nazwę oraz wybierz miejsce zapisu." --filename "$wej"`

	if [ "$?" = 1 ] ; then
		exit 
	fi

rozmiar=`zenity --entry --title "Wybierz rozmiar podzielonych części" --text "Podaj rozmiar części i jednostkę np 9m. 
(0=brak dzielenia, 1k=1kb, 1m=1mb)" --width "400" --entry-text "0"` 
	if [ "$rozmiar" = "" ] ; then
		exit 
	fi

kompresja=`zenity --list --title "Wybór bitrate" --text "Wybierz metodę kompresji:

	m0 - kompresja I stopnia (najsłabsza)
	m1 - kompresja II stopnia
	m2 - kompresja III stopnia
	m3 - kompresja IV stopnia
	m4 - kompresja V stopnia
	m5 - kompresja VI stopnia (najmocniejsza)" --radiolist --column "" --column "Dostępne metody kompresji" --height "400" FALSE "m0" FALSE "m1" FALSE "m2" FALSE "m3" FALSE "m4" FALSE "m5"`

	if [ "$?" = 1 ] ; then
	exit 
	fi

haslo=`zenity --entry --title "Podaj hasło" --text "Podaj hasło lub pozostaw puste" --width=400 --entry-text ""` 
	if [ "$haslo" = "" ] ; then
	rar a -ep1 "-v$rozmiar" "-$kompresja" "$wyj.rar" "$wej"
        else
        rar a -ep1 "-p$haslo" "-hp$haslo" "-v$rozmiar" "-$kompresja" "$wyj.rar" "$wej"
	fi
zenity --info --text="Kompresja zakończona"
Wszelkie poprawki, uwagi proszę zgłaszać na PW.
Linuksa używam od 1,5 miesiąca i jakoś zaczynam ogarniać :craz: terminal rules :razz:
Pozdrawiam 8-)
Awatar użytkownika
youlleck
Sędziwy Jeż
Sędziwy Jeż
Posty: 62
Rejestracja: 01 lut 2008, 00:19
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Openbox
Architektura: x86_64
Kontakt:

Odp: Przydatne skrypty

Post autor: youlleck »

jeszcze jeden skrypcik, nie mojego autorstwa, znaleziony gdzies w sieci ale niezwykle przydatny ;) dzieki niemu mozna double-clickiem w nautilusie otwierac pliki graficzne w IrfanView :)

Kod: Zaznacz cały

#!/bin/sh
IRFANVIEW="C:\\Program Files\Irfanview\i_view32.exe"
ROOT_DRIVE="Z:\\"
for arg
do
	wine "$IRFANVIEW" "${ROOT_DRIVE}$(echo "$arg" | sed 's/\//\\/g')"
done
Problem rozwiazany? Dodaj [SOLVED] do tytulu watku!

Best4Linux.NET - sprawdz czy twoj sprzet zadziala pod Linuksem!
Awatar użytkownika
ubuproblem
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 169
Rejestracja: 30 lip 2007, 23:26
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME

Odp: Przydatne skrypty

Post autor: ubuproblem »

Ja kiedyś pisałem skrypcik do dodawania ikon w idesku (bawiłem się małymi WM'ami)
Skrypt nie jest bardzo dopracowany, ale potrafi robić ikonki i je układać (przynajmniej jeden rządek poprawnie układa :P) Są też inne bajerki, które nieco automatyzują flux'a i inne takie WM'y. Po więcej informacji należy uruchomić z argumentem --help

Kod: Zaznacz cały

#!/bin/bash
#
# Skrypt doda automatycznie ikony do aplikacji Idesk. 
# 
#

# Sprawdzanie zależności programu.

if [ $USER == root ]
then
	echo "Nie uruchamiaj tego jako root!"
	exit 0
fi

cd ~
if [ -e /usr/bin/idesk ]
then
	echo -n
else
	echo "Praca programu nie może być kontynuowana, ponieważ program idesk nie został zainstalowany."
	exit 0
fi

if [ -e ~/.idesktop ]
then
	echo -n
else
	mkdir ~/.idesktop
fi


# Funkcja przechodzenia do folderu .idesktop; Jest wielokrotnie wykorzystywana w programie
function spr
{
gdzie=$(pwd | grep .idesktop)
case $gdzie
in
*.idesktop)
	echo -n
	jes=t
	;;
*)
	if [ "$jes" = "t" ]
	then
		echo -n	
	else
		cd .idesktop
	fi
esac
}


# Wyświelta tekst pomocy

function pomoc
{
echo "Adder - Zarządza ikonami na pulpicie programu IDesk."
echo
echo "Użycie: adder [parametr]"
echo "Dostępne parametry:"
echo "adder (bez parametru)		Doda ikony do pulpitu"
echo "-h; --help			Wyświetli ten tekst pomocy"
echo "-rl				Przeładuje IDesk"
echo "-rm				Usunie wybraną aplikację"
echo "-rd				Usunie domyślną ikonę z pulpitu"
echo "-ra				Usunie wszystkie ikony z pulpitu"
echo "-od				Przesunie miejsce tworzonych ikon o 1 miejsce do góry."
}

if [ "$1" = "--help" ]
then
	pomoc
	exit
fi

if [ "$1" = "-h" ]
then
	pomoc
	exit
fi
 
if [ "$1" = "--git" ]
then
	gtkrc=`cat ~/.gtkrc-2.0`
	cat ~/.gtkrc-2.0 > tmm
	case "$gtkrc" in
	*gtk-icon-theme*)
		cat tmm | grep -v "gtk-icon-theme" > ~/.gtkrc-2.0
		je=ah
		;;
	*)
		if [ "$je" = "ah" ]
		then
			echo -n
		else
			cat tmm > ~/.gtkrc-2.0
		fi
		;;
	esac
	echo -n "Wprowadź nazwę zestawu: "
	read git
	echo "gtk-icon-theme-name = \"$git\" #Wygenerowane przez Adder" >> ~/.gtkrc-2.0
	rm tmm
	exit 0
fi
 

# Ta opcja cofnie o jedno miejsce na pulpicie tworzone ikony

if [ "$1" = "-od" ]
then
	spr
	ile=$(cat ost.tmp)
	tyle=$[$ile-90]
	echo $tyle > ost.tmp
	exit 0
fi 

# Ta opcja usunie wszystkie ikony z pulpitu

if [ "$1" = "-ra" ]
then
	spr
	echo -n "Czy na pewno chcesz usunąc wszystkie aktywatory (t/n)"
	read df
	if [ "$df" = "t" ]
	then
		rm *
		exit 0
	else
		echo "Przerwano"
		exit 0
	fi
fi

# Ta opcja usunie domyślną ikonę z pulpitu

if [ "$1" = "-rd" ]
then
	spr
	if [ -e default.lnk ]
	then
		rm default.lnk
		exit 0
	else
		echo "Nie ma już standardowo tworzonego pliku na pulpicie."
	exit 0
	fi
fi

# Ta opcja usunie dowolną ikonę

if [ "$1" = "-rm" ]
then
	spr
	echo -n "Wpisz nazwę aplikacji do usunięcia: "
	read forrm
	rmf=$(echo -n "$forrm.lnk")
	if [ -e $rmf ]
	then
		rm $rmf
		exit 0
	else
		echo "Nie mogłem znaleźć aktywatora $rmf"
		exit 0
	fi
fi

# Ta opcja przeładuje IDesk

if [ "$1" = "-rl" ]
then
	killall -9 idesk
	idesk &
else
	echo -n
fi

# Ta funkcja dodaje ikony (standardowo uruchamiana, bez żadnych parametrów)

function e
{
spr
if [ -e ilew.tmp ]
then
	ilew=$(cat ilew.tmp)
else
	echo "Ile ikon ma być stawiane w jednym rzędzie? (w liczbach)"
	echo -n "> "
	read ilew
	echo $ilew > ilew.tmp
fi
echo "Jaka aplikacja? (np. firefox): "
read apl
echo "Nazwa ikony na pulpicie:"
read nazwa2
nazwa=`echo -n $apl`.lnk
touch $nazwa
echo "table Icon" >> $nazwa
echo "  Caption: $nazwa2" >> $nazwa
if [ -e /usr/games/$apl ]
then
	echo "  Command: $apl" >> $nazwa
fi

if [ -e /usr/bin/$apl ]
then
	echo "  Command: $apl" >> $nazwa
else
	echo "Podaj polecenie aplikacji"
	echo -n "> "
	read polecenie
	echo "  Command: $polecenie" >> $nazwa
fi
piendzi="/usr/share/pixmaps/$apl`echo -n '.png'`"
#"
if [ -e $piendzi ]
then
	echo "  Icon: /usr/share/pixmaps/$apl.png" >> $nazwa
else
	echo -n
fi
ikspeem="/usr/share/pixmaps/$apl`echo -n '.xpm'`"
if [ -e $ikspeem ]
then
	echo "  Icon: /usr/share/pixmaps/$apl.xpm" >> $nazwa
else
	echo "Wpisz ścieżkę do ikony"
	echo -n "> "
	read ikona
	if [ -e $ikona ]
	then
		echo "  Icon: $ikona" >> $nazwa
	else
		echo "Podana ścieżka do ikony nie istnieje."
		e
	fi
fi
if [ -e ost.tmp ]
then
	if [ -e n.tmp ]
	then
		echo -n
		rm n.tmp
	else
		o=$(cat ost.tmp)
		ost=$[$o+90]
	fi
else
	ost=30
fi
echo $ost > ost.tmp

if [ -e ileik.tmp ]
then
	ileik=$(cat ileik.tmp)
	ilete=$[$ileik+1]
	echo $ilete > ileik.tmp
else
	echo 1 > ileik.tmp
fi
if [ -e odst.tmp ]
then
	echo -n
else
	echo 40 > odst.tmp
fi
ileik=$(cat ileik.tmp)

odst=$(cat odst.tmp)
echo "Width: 48
  Height: 48
  X: $odst
  Y: $ost
  end" >> $nazwa
if [ "$ileik" = "$ilew" ]
then
	odst=$(cat odst.tmp)
	odst1=$[$odst+100]
	echo $odst1 > odst.tmp
	ost=30
	echo $ost > ost.tmp
	touch n.tmp
	ileik=0
	echo $ileik > ileik.tmp
fi
killall -9 idesk
idesk &
echo "Czy chcesz dodać następną ikonę? (t/n) "
echo -n "> "
read czydod
if [ "$czydod" = "t" ]
then
	e
else
	exit 0
fi
}
e
#--------------------------------------------------------------------------#
Polecam też przegląd kodu, bo dawałem jeszcze inne opcje niż są w --help.
Z tego co pamiętam, to
./adder --git
pozwoli na ustawienie domyślnego stylu ikon w programach Gnome (thunar itp.)
Awatar użytkownika
darkmanek
Sędziwy Jeż
Sędziwy Jeż
Posty: 30
Rejestracja: 16 lis 2007, 17:10
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Warszawa

Odp: Przydatne skrypty

Post autor: darkmanek »

@Sycu:
W skrypcie do przypisywania kluczy repo jest

Kod: Zaznacz cały

sudo apt-key add .gnupg/pubring.gpg > /dev/null
a powinno byś chyba

Kod: Zaznacz cały

sudo apt-key add /home/nazwa_usera/.gnupg/pubring.gpg
ps. po tej zmianie u mnie wszystko działa, a wcześniej Pobierało klucze, ale nie dodawało ;)
Pozdrawiam

Edit: A tak w ogóle, to ten temat nie powinien być w offtopie, jak już ktoś zauważył.
Rozwiazany temat -> dodaj [solved] w zaawansowanej edycji pierwszego postu.
Człowiek mądrzeje z wiekiem. Zwykle jest to wieko od trumny ;)
Awatar użytkownika
karmelek
Przyjaciel
Przyjaciel
Posty: 883
Rejestracja: 10 lut 2007, 17:45
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Przydatne skrypty

Post autor: karmelek »

darkmanek - można i tak, ale skrypt wykonujesz z katalogu domowego usera, wiec ta dluższa wersja nie jest konieczna
Wszystkich moderatorów Bóg po śmierci zabiera do nieba, żeby ci dwadzieścia cztery godziny na dobę moderowali modlitwy do niego.
http://karmelek.wordpress.com
inny OS=debian lenny
PietroZ
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 184
Rejestracja: 23 lis 2006, 14:56
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Unity
Architektura: x86_64

Odp: Przydatne skrypty

Post autor: PietroZ »

Bardzo prosty skrypcik, który uruchamiając PlayOnLinux wyłącza Compiz-Fusion, a po wyłączeniu programu uruchamia z powrotem:

Kod: Zaznacz cały

#!/bin/bash
metacity --replace &
playonlinux
compiz --replace -c emerald
Zapisujemy jako np. /home/nazwa_użytkownika/.playonlinux.sh
Zmieniamy wpis skrótu PlayOnLinux w menu z

Kod: Zaznacz cały

playonlinux
na

Kod: Zaznacz cały

sh '/home/nazwa_użytkownika/.playonlinux.sh'
dzięki takiemu rozwiązaniu możemy grać z pełną wydajnością :razz:
Dell E6410 | i5-560M | 4GB DDR3 | Intel GMA | M5S 256GB SSD | Broadcom BCM43224
Linux user #483062 | Ubuntu user #24405
garhuy.blogspot.com | www.ubueasy.xorg.pl
ODPOWIEDZ

Wróć do „Instalacja, aktualizacja i konfiguracja Ubuntu”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 43 gości