Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: bash scriptje  (gelezen 1347 keer)

bash scriptje
« Gepost op: 2017/02/28, 17:18:47 »
Vorige week heb ik Xubuntu 16.04 geinstalleerd ter vervanging van Xubuntu 14.04.

In 14.04 werkte een scriptje dat ik gebruikte om o.a. de prullenbak en de map Downloads te legen  altijd prima. In 16.04 worden de prullenbak en Downloads echter niet meer geleegt na het runnen van dat scriptje.
In 14.04 gebruikte ik daarvoor de volgende regels :

## Empty Trash
rm -rf ~/.local/share/Trash/*

## Empty Downloads
rm -r -f ./Downloads/*

Werken deze niet meer in 16.04 en zo ja, weet iemand dan hoe ik deze regels moet aanpassen, zodat het wel weer werkt?

Thx!

Een boek doet het altijd...

Offline Power

  • Lid
    • Poweredby
Re: bash scriptje
« Reactie #1 Gepost op: 2017/02/28, 17:35:34 »
Dit zou toch moeten werken, bij mij werkt dit wel Ubuntu 16.04

rm -rf ~/.local/share/Trash/*
groetjes
Roland
« Laatst bewerkt op: 2017/02/28, 17:37:56 door Power »
Gepensioneerd piloot ( Tunis Air )

Re: bash scriptje
« Reactie #2 Gepost op: 2017/02/28, 18:03:43 »
Vorige week heb ik Xubuntu 16.04 geinstalleerd ter vervanging van Xubuntu 14.04.

In 14.04 werkte een scriptje dat ik gebruikte om o.a. de prullenbak en de map Downloads te legen  altijd prima. In 16.04 worden de prullenbak en Downloads echter niet meer geleegt na het runnen van dat scriptje.
In 14.04 gebruikte ik daarvoor de volgende regels :

## Empty Trash
rm -rf ~/.local/share/Trash/*

## Empty Downloads
rm -r -f ./Downloads/*

Werken deze niet meer in 16.04 en zo ja, weet iemand dan hoe ik deze regels moet aanpassen, zodat het wel weer werkt?

Thx!

- de inhoud van de bashfile is correct!
- Waar staat die bashfile?
- heeft deze bashfile de juiste rechten om uit te voeren? (als hij de eerste maal op je systeem gezet wordt is dat niet het geval)
- zijn er boodschappen/meldingen te zien?

groeten van Michael
Mint Cinnamon fan  Mint cinnamon-21.2   (vorige linux: LMDE-5 / Mint cinnamon-20+19+18+17 / Ubuntu-16+14+12)

Re: bash scriptje
« Reactie #3 Gepost op: 2017/02/28, 18:23:32 »
Nee geen meldingen. Nada. Het gekke is dat de rest van het script wel correct wordt uitgevoerd Hoewel ik nu ook begin te twijfelen aan het laatste (sudo apt-get clean) Wat moeilijker te checken geloof ik. Tenminste dat controleer ik nooit. Dat de bin en downloads niet geleegd worden viel direct op. Hieronder even het hele script :

#!/bin/bash

## Run the update command
sudo apt-get update && sudo apt-get -y upgrade

## Start Firefox
firejail firefox &

## Start Diodon
diodon

## Empty Trash
rm -rf ~/.local/share/Trash/*

## Empty Downloads
rm -r -f ./Downloads/*

## Empty apt-get cache
sudo apt-get clean

fi

Ik weet maar heel weinig van scripts dus was al trots dat ik 'het ding' onder 14.04 aan de praat had gekregen  =D.
Vreemd he dat het ledigen nu niet lukt?

Een boek doet het altijd...

Offline Power

  • Lid
    • Poweredby
Re: bash scriptje
« Reactie #4 Gepost op: 2017/02/28, 23:20:42 »
@kfboerne

Heeft u deze bash files in uw home directory geplaatst ? U gebruikt het sudo command op uw laatste regel verwijder dit eens of plaats dit,

#give permissions to the file
sudo chmod 700 /etc/sudoers.d/useradm
## Empty apt-get cache
sudo apt-get clean


user ALL=(ALL)NOPASSWD:ALL

#return the right permissions to the file
sudo chmod 440 /etc/sudoers.d/useradm
Gepensioneerd piloot ( Tunis Air )

Offline peer

  • Lid
Re: bash scriptje
« Reactie #5 Gepost op: 2017/03/01, 07:40:08 »
"## Empty Trash
rm -rf ~/.local/share/Trash/*"
Dit commando moet volgens mij goed werken

"## Empty Downloads
rm -r -f ./Downloads/*"
Hier verwijs je naar een verborgen directory die in dezelfde directory staat als het script. Dat lijkt mij niet goed.
De Downloads directory is een normale directory de in je home directory staat. Dan zou dit moeten werken:
rm -rf ~/Downloads      (de punt moet dus een tilde zijn)

Re: bash scriptje
« Reactie #6 Gepost op: 2017/03/01, 09:10:30 »

- Waar staat die bashfile?
- heeft deze bashfile de juiste rechten om uit te voeren? (als hij de eerste maal op je systeem gezet wordt is dat niet het geval)
- zijn er boodschappen/meldingen te zien?

groeten van Michael

Je beantwoordt deze vragen niet.

Dat is hetzelfde als: "Ik krijg mijn deur niet open"
En als er gevraagd wordt: "waar is de sleutel?"
Dan antwoord je niet...
Mint Cinnamon fan  Mint cinnamon-21.2   (vorige linux: LMDE-5 / Mint cinnamon-20+19+18+17 / Ubuntu-16+14+12)

Re: bash scriptje
« Reactie #7 Gepost op: 2017/03/01, 09:52:35 »
Bedankt voor de reacties!

Michael, je hebt helemaal gelijk  =D. (Ik moet wel lachen om je vergelijking met die deur. Schitterend...). De antwoorden dan :

bashfile locatie : /usr/local/bin
dit zijn de rechten : owner = root / access = read and write / group = root / acces + others = read and write / 'allow this file to run as a program' is aangevinkt
boodschappen of meldingen te zien = nee

Waar ik zelf nog aan dacht. De bash file heb ik gekopieerd uit 14.04 en geplakt in 16.04. Zou het daar nog mee te maken kunnen hebben?
Een boek doet het altijd...

Re: bash scriptje
« Reactie #8 Gepost op: 2017/03/01, 10:32:53 »
Bedankt voor de reacties!

Michael, je hebt helemaal gelijk  =D. (Ik moet wel lachen om je vergelijking met die deur. Schitterend...). De antwoorden dan :

bashfile locatie : /usr/local/bin
dit zijn de rechten : owner = root / access = read and write / group = root / acces + others = read and write / 'allow this file to run as a program' is aangevinkt
boodschappen of meldingen te zien = nee

Waar ik zelf nog aan dacht. De bash file heb ik gekopieerd uit 14.04 en geplakt in 16.04. Zou het daar nog mee te maken kunnen hebben?

Doe het volgende:
- in je home map: maak een map bin (dit is de plaats voor eigen bashfiles en tests)
- plaats daar eens je bashfile
- maak deze bashfile uitvoerbaar in de terminal met command:
sudo chmod 755 naambashfile- breng wijzigingen aan in je bashfile: maak voor elke actie een opvallende melding op het scherm, zodat je weet dat je programmaatje daar passeert, als volgt:
Citaat
#!/bin/bash

echo "****************************** Run the update command"
sudo apt-get update && sudo apt-get -y upgrade

echo "****************************** Start Firefox"
firejail firefox &

echo "****************************** Start Diodon"
diodon

echo "****************************** Empty Trash"
rm -rf ~/.local/share/Trash/*

echo "****************************** Empty Downloads"
rm -r -f ~/Downloads/*

echo "****************************** Empty apt-get cache"
sudo apt-get clean

echo "****************************** END"

Merk op: in het command voor het verwijderen in Downloads stond een foutje
Vervolgens:
- HERSTART
- test het in de terminal, en kijk goed uit naar alles wat op het scherm passeert
- als alles werkt zet je voor elke echo een # dan komen de boodschappen niet meer.

groeten van Michael
Mint Cinnamon fan  Mint cinnamon-21.2   (vorige linux: LMDE-5 / Mint cinnamon-20+19+18+17 / Ubuntu-16+14+12)

Re: bash scriptje
« Reactie #9 Gepost op: 2017/03/01, 10:35:14 »
Zowaar, ik heb zelf de oorzaak en oplossing al gevonden :

De inhoud van de bash file was :

#!/bin/bash

## Run the update command
sudo apt-get update && sudo apt-get -y upgrade

## Start Firefox
firejail firefox &

## Start Diodon
diodon

## Empty Trash
rm -rf ~/.local/share/Trash/*

## Empty Downloads
rm -r -f ./Downloads/*

## Empty apt-get cache
sudo apt-get clean

fi

Indien ik

## Start Diodon
diodon

verplaats om als laatste uitgevoerd te worden, dan werkt het script naar behoren. Zo dus :

#!/bin/bash

## Run the update command
sudo apt-get update && sudo apt-get -y upgrade

## Start Firefox
firejail firefox &

## Empty Trash
rm -rf ~/.local/share/Trash/*

## Empty Downloads
rm -r -f ./Downloads/*

## Empty apt-get cache
sudo apt-get clean

## Start Diodon
diodon

fi

Fijn, maar dan resten mij toch de volgende vragen :

Waarom werkte het 'oude' script wel in 14.04 en niet in 16.04?
Blijkbaar is de volgorde in een bash script van belang?  Zoals ik al eerder schreef weet ik maar bitter weinig van bash scripts, maar ik dacht dat dat niet uitmaakte.

(@Michael : Je bent me net voor. Op het moment dat ik deze reactie plaatste, had jij alweer een reactie geplaatst. Wat zijn we snel he op dit forum? Heb nog niet eens de tijd gehad om je reactie te lezen ;-))
« Laatst bewerkt op: 2017/03/01, 10:37:01 door kfboerne »
Een boek doet het altijd...

Re: bash scriptje
« Reactie #10 Gepost op: 2017/03/01, 11:01:45 »
daag,

maak je geen zorgen over het feit dat er iets in een voorgaande release werkte en nu niet meer.
In elke release van software worden regels veranderd, daarom dat sommige software die vroeger werkte, nu niet meer werkt.
Er zijn zelfs verschillen als je een Ubuntu 16.04.1 of een 16.04.2 ISO installeert

Zoals reeds eens gezegd:

- als je een nieuwe linux wilt proberen, doe dat op een testbak, of een vrije partitie.
- ondertussen kunnen je normale activiteiten op je werkende release gewoon doorgaan en zit je niet zonder computer.
- na de basisinstallatie: voorkeur instellingen doen => je systeem is nu al klaar met de standaard
- dan 1 voor 1 extra programma's installeren + testen
- Als er iets fout gaat weet je precies waar en dan zoek je naar het waarom en een oplossing
Vind je een oplossing, zoveel te beter, is er (nog) geen oplossing, dan kan je dat programma beter verwijderen en een alternatief zoeken.
- Loop je eens totaal vast, dan weet je wellicht waardoor het kwam, en is er ook geen been aan gebroken: je herbegint
- als je zin hebt kan je zelfs een installatie-bashfile aanmaken die alle extra's installeert, afgaande op je ondervinding bij de nieuwe installatie.

groeten van Michael
Mint Cinnamon fan  Mint cinnamon-21.2   (vorige linux: LMDE-5 / Mint cinnamon-20+19+18+17 / Ubuntu-16+14+12)

Re: bash scriptje
« Reactie #11 Gepost op: 2017/03/01, 11:42:48 »
Michael, alweer bedankt!

Het is dat ik eigenlijk een beetje door toeval en uitproberen achter de oorzaak kwam. Was dat niet gebeurd dan had ik/hadden we ons suf kunnen zoeken. Ik snap dat er wijzigingen in iedere release plaatsvinden, maar bashscript-technisch is dit toch een redelijk belangrijk iets me dunkt? Enfin, het werkt nu weer...

Waar ik wel erg geinteresseerd in ben is jouw melding omtrent een installatie-bashfile aanmaken die alle extra's installeert. Begrijp ik het goed dat ik dus een bashscript kan maken dat allerhande door mij gewenste acties automatisch uitvoert nadat ik een schone installatie heb gedaan? Dat maakt alles wel zeer makkelijk. Alleen ben ik een bashscript-dummie dus dat wordt een zware kluif. De basis snap ik inmiddels een beetje en ik neem altijd mijn simpele bashscriptje zoals in dit topic vermeld als een soort 'sjabloon'.
Heb verder de nodige video's op youtube bestudeerd en andere bronnen geraadpleegd, maar het kost mij veel moeite om bashscripting te snappen (Ben een pure alfa met veel beta-interesse zal ik maar zeggen ;). Talen zijn geen probleem, maar alles waarbij ik  zeg maar 'wiskundig' moet gaan  nadenken zorgt voor ernstig gepiep en gekraak in de bovenkamer =D). Ik zie soms bashscripts voorbijkomen waarbij ik denk : "ok, dit komt in de buurt van raket-technologie".
Dus als je nog goede tips, websites, documentatie etc. weet om bash-scripting op een eenvoudige manier een beetje meer onder de knie te krijgen, dan zijn die van harte welkom ... Uiteraard heb ik op internet al wel het nodige geraadpleegd, maar vaak merk ik dat degene die uitlegt, moeite heeft om zich te verplaatsen in de gedachtengang van de bashscript-dummie.
Een boek doet het altijd...

Offline Ron

  • Forumteam
    • r0n
    • Over Tholen
Re: bash scriptje
« Reactie #12 Gepost op: 2017/03/01, 12:50:37 »
Waar ik wel erg geinteresseerd in ben is jouw melding omtrent een installatie-bashfile aanmaken die alle extra's installeert.
Dat is redelijk simpel:sudo apt update   
sudo apt upgrade                         
sudo apt purge -y prog1 prog2 prog3
sudo apt install -y prog4 prog5 prog6
sudo apt autoremove                             
sudo apt clean     
                                 
Zo ongeveer doe ik het, hierna pas ik nog een paar dingen aan met een teksteditter, zoals /etc/fstab en /etc/default/grub.

Mocht iemand een fout en/of een aanvulling zien, dan ............
Openstandaard Evangelist, OpenSource Promotor, OpenData voorstander.
Xubuntu gebruiker en voorstander
Er is ook nog een andere hobby.

Re: bash scriptje
« Reactie #13 Gepost op: 2017/03/01, 15:28:35 »
Begrijp ik het goed dat ik dus een bashscript kan maken dat allerhande door mij gewenste acties automatisch uitvoert nadat ik een schone installatie heb gedaan? Dat maakt alles wel zeer makkelijk. Alleen ben ik een bashscript-dummie dus dat wordt een zware kluif.
Nix zware kluif, dat is de eenvoud zelve! Ik heb zelf een tekstbestandje gemaakt met de volgende inhoud:

sudo apt-get install joe geany geeqie xubuntu-restricted-extras unetbootin synaptic radiotray gkrellm xsane pcmanfm openssh-server xfwm4-themes shutter gdesklets verbiste-gnome gimp-plugin-registry gimp-lensfun screenruler gkrellmoon gkrelltop pwgen gnote dcraw geany-plugin-lipsum gcolor2
Na een nieuwe installatie installeert dit scriptje alles wat ik in eerste instantie nodig heb.

Overigens zie ik dat je je eigen script afsluit met 'fi'. Dat is volgens mij niet goed. Fi staat in Bash voor de afronding van een if-blok (if dit, dan dat, zo niet, dan niets of wat anders).

Offline Power

  • Lid
    • Poweredby
Re: bash scriptje
« Reactie #14 Gepost op: 2017/03/01, 15:51:17 »
@ Paul Matthijsse
Dit heb je zeer goed opgemerkt eindigen met fi is als je met een if – then werkt zoals dit voorbeeld.
if [ ! -x /usr/bin/power ]
then echo "power is not installed, perform this?(y/n)"
    read ops
    case $ops in
     y) if apt-get install power -y --force-yes
           then echo "power installed"
        else echo "unable to install the power. you are using sudo?" ; exit
        fi ;;
     n) echo "not possible usage apt-fast" ; exit ;;
    esac
fi
groetjes
Roland
Gepensioneerd piloot ( Tunis Air )

Offline Power

  • Lid
    • Poweredby
Re: bash scriptje
« Reactie #15 Gepost op: 2017/03/01, 15:56:33 »
Voor de techneuten die al een tijd met Linux aan de slag zijn, staat er op mijn website een interessante toolbox .

http://www.poweredby.be/Unix%20Toolbox.html

groetjes
Roland
Gepensioneerd piloot ( Tunis Air )

Re: bash scriptje
« Reactie #16 Gepost op: 2017/03/01, 17:50:44 »
Ik heb geen benul of het afsluiten met 'fi' goed of fout is. Ik heb het ooit ergens van een website gehaald en mijn scriptje werkte. Was ik heel blij mee. Ik gok dat het ´finish' betekent.  Voor wat betreft het door Roland geschetste ben ik al weg :o. Abacajeweetwel...... Ben een bashscript-dummie zoals ik al schreef. Wil best leren, maar ik ben bang dat ik een klein beetje basis mis =D
Sommigen vinden 'substantivierte Adjektive' in de Duitse grammatica moeilijk. Vind ik zo vreemd ;).  Makkie toch... Valt alleen een beetje buiten het bestek van dit topic ...... en de rest van de website.

Een boek doet het altijd...

Re: bash scriptje
« Reactie #17 Gepost op: 2017/03/01, 18:20:49 »
sudo apt-get install joe geany geeqie xubuntu-restricted-extras unetbootin synaptic radiotray gkrellm xsane pcmanfm openssh-server xfwm4-themes shutter gdesklets verbiste-gnome gimp-plugin-registry gimp-lensfun screenruler gkrellmoon gkrelltop pwgen gnote dcraw geany-plugin-lipsum gcolor2
Na een nieuwe installatie installeert dit scriptje alles wat ik in eerste instantie nodig heb.

Dit is alleszins een prachtig vb.: nononsense right to the point and short.
Je kan het desnoods zelfs kopiëren en in de terminal plakken en je bent vertrokken.

Persoonlijk geef ik de voorkeur aan een bashfile met meldingen zodat je alles veel beter kan volgen op het scherm, zie een vb. in bijlage.

Elk zijn eigen meug...

groeten van Michael
Mint Cinnamon fan  Mint cinnamon-21.2   (vorige linux: LMDE-5 / Mint cinnamon-20+19+18+17 / Ubuntu-16+14+12)

Re: bash scriptje
« Reactie #18 Gepost op: 2017/03/01, 19:03:29 »
Via de terminal installeren van al die apps lukte me gelukkig ook al. Alleen het maken van zo'n bashfile gaat me (nog) niet zo makkelijk af. Ik heb dat destijds geloof ik in de terminal via NANO gedaan. Enfin, ook hier zal ongetwijfeld gelden dat oefening kunst baart.

Maar als ik dan merk dat een script niet meer werkt, omdat er blijkbaar enkele regels 'plotseling´ op de verkeerde plaats staan, terwijl het script onder een vorig OS wel werkte, dan ontgaat mij de logica daar even van.

In elk geval is het probleem waarvoor ik dit topic opende opgelost. Verder veel oefenen met bashscript dus  :)

Allen bedankt!
Een boek doet het altijd...