meni- skripta koja koristi mogucnosti cli aplikacija

meni- skripta koja koristi mogucnosti cli aplikacija

offline
  • Pridružio: 20 Feb 2005
  • Poruke: 4505
  • Gde živiš: planeta Zemlja

Vec neko vreme koristim jednu skriptu koja mi olaksava upotrebu cli aplikacija bez upotrebe grafickih front-endova koji ponekad zahtevaju neke totalno bezveze aplikacije (primer: ConvertIT (stariji) koristi gambas qt). Ona sam ja lepo malo po malo gledao skripte i njihov sadrzaj, procitao par jakooooooooo kratkih tutorijala i poceo da pisem skriptu. Prvenstveno mi je bio cilj da napisem nesto sto ce samo da pokrece aplikacije i to je to. Kasnije sam shvatio da je to bezveze i da mi tako nesto zapravo ne koristi previse ali da iz te ideje mogu da uzmem samo jednu dobru stvar a to su meniji i da u okviru tih menija ubacim komande za raspakivanje arhiva, snimak desktopa (video snimak i screenshoot), prebacivanje velikih u mala slova, pretragu (fajlovi i folderi), provera zauzeca u folderima.... I tako danas imam skriptu (preko 20kb) koju sam pisao od nule (izuzev delova koje sam uzeo iz drugih skripta koji su pomenuti u samoj skripti) Smile

Skripta je osmisljena na sledeci nacin: imate menije koji vas vode kroz opcije i programe. Izaberete neki program tj. akciju i samo date potrebne informacije (ako se vrsi search po sistemu da zadate sta se trazi i sl.) i sacekate rezultate. Skripta najvecim delom koristi cli aplikacije i to:
nano, recordmydesktop, p7zip, du, cat, wodim, mkisofs i sl.
Postoji i poneka graficka aplikacija tipa firefox (na 2 mesta) i gnome-obex-send.


Idea Ova skripta (koja je na Srpskom) moze da
------------------------------------------------------------------------------------
- vidi zauzece u folderima
- vrsi search u potrazi za fajlovima i direktorijumima
- snimi desktop (video snimak i obicnu sliku tj. screenshoot)
- generise password (ovu skriptu sam uzeo iz Advanced Bash scripting guilde-a)
- manipulise cd-rw/dvd-rw uredjajima (kreira iso, reze iso na disk, kopira disk u racunar, mauntuje virtuelni disk)
- raspakuje i kreira 7z, tar, tar.gz, tar.bz2 i zip arhive
- kreira i proverava md5
- salje i prima fajlove preko bluetootha
- manipulise uredjajima za slikanje i snimanje (skida slike i video snimke sa digitalaca i dv uredjaja, snima video sa web camere)
-------------------------------------------------------------------------------------
- skida sajtove koristeci wget
-------------------------------------------------------------------------------------
- edituje sys conf fajlove (tipa xorg, net interfaces i sl.)
-------------------------------------------------------------------------------------
- konvertuje ogg > mp3 (i obrnuto)
- izvlaci zvuk iz video klipova
-------------------------------------------------------------------------------------
- sakupi najosnovniji info o sistemu i isti sacuva u txt fajl
-------------------------------------------------------------------------------------
- restartuje racunar
- ugasi racunar


Kao sto vidite ovo su neke korisne stvarcice ako volite cli aplikacije i sigurno ce nekome da ova skripta posluzi (pogotovo ljudima koji vole Openbox buduci da sam nasao da sam u istom bio vrlo produktivan uz pomoc ove skripte). Nije ovo nista specijalno i sve sto sam ja uradio jeste da sam sakupio sve te komande i stavio ih u jednu skriptu Wink


Arrow Skripta se moze preuzeti sa sledece adrese:
https://www.mycity.rs/must-login.png



Exclamation Neke stvari na koje bi trebalo da obratite paznju pre pokretanja skripte
Skripta za dobar deo svojih akcija koristi par foldera u ~/ koji se moraju naknadno kreirati. Skripta koja sledi ce to odraditi za vas:
#!/bin/sh
mkdir ~/net/
mkdir ~/net/download
mkdir ~/net/download/sajtovi

Ovu skriptu sacuvajte gde god zelite i kao obican korisnik je pokrenite (ili rucno kreirajte ove foldere).
Ova skripta trenutno kreira svega 3 foldera ali bice ih jos par kasnije kada ubacim jos neke mogucnosti.

Aplikacije potrebne za rad ove skripte:
gphoto2
scrot
nano
firefox
recordmydesktop
wodim+ mkisofs
p7zip
bluez, gnome-bluetooth
mencoder i mplayer
dvgrab
wget

Ako sam nesto propustio dodacu naknadno.


Sta trenutno ne radi u skripti
1. informacije o top 10 terminal komandama [ostalo-> Top 10 terminal komandi] - Ovo nece ni proraditi buduci da se u skriptama ne moze pozivati history medjutim trazim nacin da ovo ubacim!
2. uklanjanje razmaka u imenu fajla i ubacivanje crtice(-) umesto istog [Alati-> Uklanjanje razmaka (space) i stavljanje crtice (-) ]
3. Snimanje putem web camere [alati-> preuzimanje slika/video fajlova sa kamere/digitalca]



Sta treba dodatno testirati:
1. download web sajtova [internet-> preuzmi kompletan sajt] - TESTIRANO (status: radi)


Sta je dodato u poslednjoj verziji
1. Opcija za konvertovanje iz mp3 > ogg (o ornuto)
2. Opcija za vadjenje zvukova iz video snimaka
3. Ubacen je zenity gtk dijalog za slanje fajlova putem bluetootha
4. System info sada sadrzi vise informacija



Planirane nove mogucnosti za buducnost
1. Konvertovanje slika jos uvek nije ubaceno
2. Kada budem imao vremena dodacu opciju za mnogo vise upotrebe zenity-ja (za one osobe koje koriste ovu skriptu u gnomu ili slicnim okruzenjima)
3. Dodavanje opcije za podesavanje default web browsera i text editora na pocetku skripte
[/b]

Dopuna: 08 Jan 2009 16:19

Update (8 Januar 2009):
- totalni rewrite skripte. Za svaku akciju se sada koriste funkcije (mnogo laksi nacin). Time sam dobio mogucnost da skriptui poboljsavam do besvesti bez ubacivanja jednog te istog koda 100x, bez "nabudzenih" menija i bez "prljavog koda". Sve je sada mnogo pedantnije Smile
- dodata su detaljnija podesavanja u samoj skripti. Mozete da definisete user-a i korisnicke direktorijume, putanje do aplikacija i sl.
- dodata opcija za split fajlova
- dodata opcija za spajanje fajlova
- dodat info o skripti (tu se nalazi TODO lista)
- dodati checkovi za dir input (ako unesete putanju za direktorijum koja ne postoji skripta ce vas pitati da ponovite putanju)
- dodati checkovi za aplikacije. Sada ako nemate (npr) mencoder vi necete moci da pokrenete akcije koje ukljucuju ovaj program. Lista programa se nalazi u samoj skripti.
- dodata je opcija za backup. Kada vi izaberete da editujete neki fajl u tekst editoru, skripta ce sama da odradi backup u ~/.meni-backup/datum-izmene/ime-fajla. Datum izmene je u formatu DD-MM-YYYY.
- dodata je opcija za brisanje odredjenih fajlova. Sta to znaci? Pa vi treba da izaberete direktorijum u kome zelite da izbrisete (npr) jpeg slike. Vi unesete lepo jpeg kao ekstenziju fajlova koje zelite da brisete a nakon toga ce vam biti prikazani fajlovi koji ce biti izbrisani (ukoliko vi to potvrdite). Mnogo dobra stvar.
- dodata je opcija za prikaz poruke za nedefinisane funkcije (pisace vam nesto tipa: "Ova funkcija nije definisana. Pogledajte Info o skripti za vise informacija).

Ispravljenje funkcije:
- Promena malih u velika slova u imenu fajla
- Uklanjanje razmaka u imenu fajlova
- DOwnload kompletnog sajta sada ima opciju koja vam daje mogucnost da izaberete gde zelite da sacuvate skinuti sajt. Ova opcija je potpuno testirana i zaista radi Smile

Funkcije koje treba da se isprave:
- Opcija za generisanje lozinki (bag: kada jednom izgenerise lozinku skripta ce je zapamtiti ali je nece izbrisati. To znaci da kada ponovo pokrenete opciju za generisanje lozinki vama ce biti prikazana ista lozinka kao i pre)

U planu je dodavanje opcija za:
- prebacivanje file systema iz jednog u drugi (ovo je samo za hdd-ove)
- opcija za formatiranje flash memorija
- opcija za cuvanje video snimaka sa web kamere
- podesavanje stampaca iz terminala (lpadmin)
- slanje fajlova i uspostavljanje konekcije preko bluetooth-a preko terminala
- ripovanje audio cd-a iz terminala (sox za sada zvuci kao naj naj resenje ali moracu da vidim koliko je to dobro (moram naci program koji moze da skida tagove sa neta (CDDB jel?)))
- dodavanje opcije za ubacivanje vodenog ziga (ova opcija ima najnizi prioritet u ovoj listi)
- dodavanje kancelarijskih alata (promena reci u tekstu, promena karaktera, spell check i format prelamanja (fold ce se koristiti za ovo)). Ovo bi se promenjivalo samo na obicne txt fajlove buduci da ako zelite da tako nesto uradite u odt ili doc fajlu vi imate OpenOffice sa tonom opcija za ovako nesto. Ove opcije bih da ubacim posto OpenOffice malo "bedno" ucitava tekstualne fajlove i formatira ih onako kako njemu odgovara.

Ako neko ima ideju za jos neku dobru opciju neka mi javi posto mi se cini da sam uradio sve sto bi obicnom korisniku moglo da zatreba Smile

link za download:
https://www.mycity.rs/must-login.png



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • soxxx 
  • Prijatelj foruma
  • Pridružio: 25 Maj 2005
  • Poruke: 1482
  • Gde živiš: Gracanica, Kosovo

Pogledao sam skriptu nabrzinu, imam predlog za sysinfo() deo, recimo ova dva:
echo -n "Gtk tema:";cat /home/krak/.gtkrc-2.0 | grep 'include'| sed -e 's/ //' | sed -e 's/include//' | sed -e 's/\/usr\/share\/themes//' | sed -e 's/\/home\/$user\/.themes//' | sed -e 's/include//' | sed -e 's/\/gtk-2.0\/gtkrc//' | sed -e 's/\///' | tr -s "\"" " "

echo -n "Font:"; cat /home/krak/.gtkrc-2.0 | grep 'gtk-font-name'| sed -e 's/gtk-font-name*//' | sed -e 's/=//' |sed -e 's/\///' | tr -s "\"" " "

Koliko sam mogao da vidim u jednom .gtkrc-20 fajlu linija koja sadrzi font je otprilike:
Citat:font_name="DejaVu Sans 9"
Umesto sto pozivas sed komandu toliko puta, probaj da uradis sledece:
a) Koristeci sed:
sed -e 's/font_name=\"\(.*\)\"$/\1/' /home/$user/.gtkrc-20
b) Koristeci sed i awk:
sed -n -e '/font_name/p' /home/$user/.gtkrc-20 | awk -F\" '{ print $2 }'
c) Koristeci awk:
awk -F\" '/font_name/ { print $2 }' /home/$user/.gtkrc-20
d) Koristeci grep i cut:
grep "font_name" /home/$user/.gtkrc-20 | cut -d\" -f2
NISTA od ovoga nisam testirao! Smile Ovo pisem sa Windowsa i trenutno nemogu da restartujem sistem, tako da sam mozda napravio neki previd. Samo par ideja da bude citkije. Wink

EDIT: Sad sam probao, sve komande rade. Samo sam hteo da ti napravim izbor, ti izaberi sta tebi odgovara i sta ti je najefikasnije (za tvoju skriptu).



offline
  • Pridružio: 20 Feb 2005
  • Poruke: 4505
  • Gde živiš: planeta Zemlja

awk nikada nisam koristio, u sed se slabo razumem a grep jos nisam dovoljno proucio sto ne treba mnogo da cude ovakve "nebuloze". Znanje mi ovoliko dozvoljava.

Tnx soxx, videcu da ubacim u skriptu Smile (ako neko ima jos predloga neka se javi)

Dopuna: 11 Mar 2009 20:08

Update meni skripte:
- dodat je dvd rip (mencoder)
- dodat je audio disk rip (cdda2wav)
- dodate opcije za konvertovanje iz wav-a u mp3 i ogg (ffmpeg)
- dodata opcija za formatiranje usb uredjaja
- dodate opcije za konvertovanje raster fotografija
- dodate opcije za konvertovanje svg slika u png
- kancelarijski alati su zavrseni (bave se obradom samo txt/plain fajlova). Pod tim podrazumevam:
- zamena slova u tekstu (dj da zamenite sa đ itd.)
- prebacivanje velikih u mala slova i obratno
- brisanje slova (izaberete recimo Đ i on ce da izbrise u tekstu to slovo)
- sortiranje liste fajlova po abecedi/brojevima
- sredjena je opcija za kreiranje mysql baze (nalazi se pod stavkom "Ostalo")
- dodata opcija za graficki odabir wallpapera (koristi zenity gtk dijalog za odabir slike a za postavljanje samog wallpapera se koristi feh)
- za cuvanje audio snimka se sada koristi Mplayer
- help u okviru svake opcije je malo poboljsan (dodati su jos neki primeri)

Skripta sada trazi sledece programe (samo cu ih kopirati direkto iz skripte):
wodimpath="/usr/bin/wodim"
genisoimagepath="/usr/bin/genisoimage"
p7zippath="/usr/bin/7z"
firefoxpath="/usr/bin/firefox"
recordmydesktoppath="/usr/bin/recordmydesktop"
convertpath="/usr/bin/convert"
gphoto2path="/usr/bin/gphoto2"
dvgrabpath="/usr/bin/dvgrab"
mplayerpath="/usr/bin/mplayer"
ffmpegpath="/usr/bin/ffmpeg"
lamepath="/usr/bin/lame"
mencoderpath="/usr/bin/mencoder"
oggencpath="/usr/bin/oggenc"
wgetpath="/usr/bin/wget"
scrotpath="/usr/bin/scrot"
fehpath="/usr/bin/feh"
inkscapepath="/usr/bin/inkscape"
cdda2wav="/usr/bin/cdda2wav"

Ukoliko pokrenete opciju koja zahteva neki program koji vi nemate skripta ce da prekine dalji rad te opcije i vratice vas u meni ponovo. Ovi programi su mali i svi su manje od 35mb (uz napomenu da su samo inkscape, mplayer i firefox ~30MB a mozda i vise)

Sta jos nije uradjeno:
- bluetooth manipulaciju iz terminala (slanje, primanje i ukljucivanje)
- terminal podesavanje stampaca (postoji neka caka za lpadmin ali se ne secam koja)
- mencoder webcam video grab mi fali

Ovo cu srediti kada budem imao vremena. Iovako ja svaki put kada sednem za pc (jako retko u poslednje vreme) ja malo po malo dodam ono sto mi fali. Uglavnom po potrebi ali opet idemo malim koracima unapred Smile

Download:
https://www.mycity.rs/must-login.png

offline
  • Uroš Ilić
  • dr stom.
  • Pridružio: 08 Jul 2006
  • Poruke: 2182
  • Gde živiš: Beograd

Samo da kazem, svaka cast Wizard! Lepo i korisno, samo nastavi kad god te ne mrzi, bice to bas dobro

offline
  • Pridružio: 20 Feb 2005
  • Poruke: 4505
  • Gde živiš: planeta Zemlja

eeee... da koristis samo terminal i svega par aplikacija sa gui-em onda ti ne bi bilo svejedno Twisted Evil

Salu na stranu, na svakom linuxu imas tonu aplikacija koje mogu mnogo toga ali jednostavno ih jakooooo retko ili nikad ne koristimo direktno nego preko nekih programa. Ja oduvek skidam po ~25mb kodeka za ubuntu (jos od verzije 6.06) i pored toga mi pada na pamet da skidam neke programe koji sluze za audio konvertovanje koji su jos po 1 mb iako u tim kodecima ja dobijam gomilu alata za manipulaciju audio fajlovima! Odavno ja pisem ovu skriptu (ideja je potekla od obicnog app launchera za gui aplikacije) i dodajem nove stvari po potrebi. Za sada je skripta dosla do samih limita moje maste i ostalo je jos svega par stvari da odradim (mrzi me iskreno da to ubacim a i nema potrebe trenutno). Ako uzmes u obzir da, recimo, u gnu core utils paketu stize toliko malih a default aplikacija poput password generatora, programa za split fajlova, za vadjenje raznih info-a iz fajlova etc. onda ova skripta ima smisla. nemam ja neko znanje ali kada sam poceo da pisem ovu skriptu imao sam daleko manje znanja tako da meni ovo dodje i vezba Smile
Da ne gnjavim vise Mr. Green

ako neko ima ideju sta bih jos mogao da dodam neka kaze... Mozda i meni treba ali ne mogu da se setim (desava se...).

Ko je trenutno na forumu
 

Ukupno su 738 korisnika na forumu :: 23 registrovanih, 6 sakrivenih i 709 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., Aleksandar Tomić, amaterSRB, amonsrb, Battlehammer, danilopu, Drug pukovnik, hyla, ikan, ILGromovnik, ivan979, LeGrandCharles, Mercury, milan47, nemkea71, Oscar2, ruma, Singidunumac, Skywhaler, stalker, suton, zivojin32, |_MeD_|