Zie ook de pagina
Scripts voer je uit in de terminal
In de terminal is een programma actief : de shell
standaard is dat bash : Bourne Again SHell : /bin/sh
Ik gebruik zelf de kornshell, te installeren hiervoor is pdksh : /bin/ksh
Er zijn er nog veel meer. Kijk maar eens met
clear; ls -l /bin | grep sh
En dit dan ? Op zoek naar shells in /usr/bin, en dan alles wat eindigt ($) op sh
clear; ls -l /usr/bin | grep 'sh$'
Ik werd uitgedaagd om kennis te nemen van zsh. Nog niet gedaan.
Zie de runlevel scripts in de directory's /etc/rcx.d, waarbij x een letter of cijfer is.
Scripts beginnen vooraan op de eerste regel met
#!/bin/sh
# Hier begint elk BASH script mee
#!/bin/ksh
# Hier begint elk Korn shell script mee
# de kornshell kan wat BASH kan, en nog meer. Installeren : pdksh (Public Domain Korn Shell)
Een # vooraan : dit is kommentaar, deze regel bevat alleen tekst, geen commando's
Hiermee kun je uitstekend je scripts van kommentaar voorzien.
Het is zeer aan te raden om je script te beginnen met in gewone taal het doel van het script, en verder het stappenplan van alle daarna toe te voegen en uit te vinden commando's enzovoort.
Je kunt daarvoor ook heel bij de hand de functie function gebruiken. Je hoeft dan de ### niet meer te typen. Voorbeeld hieronder tussen de hekjes regels
########################################################
function script_uitleg {
clear
cat << EOF
********************************************************************************
mijnscript-1.0.sh : Dit is mijn script
Hier kan ik mijn specificaties opschrijven
of een handleiding die op het scherm moet komen
********************************************************************************
EOF
########################################################
# haal hieronder het # weg, als bovenstaande script_uitleg tekst
# op het scherm moet komen
# script_uitleg
Maak wat directory 's om je script werk te bewaren
Bijvoorbeeld :
mkdir /home/jijzelf bin
Hierin komen de scripts die je blijvend denkt te gaan gebruiken.
Maak hier je scripts met een naam zoals scriptproberen-1.0.sh
wat afgekeurd wordt haal je hier weer uit.
/home/jijzelf/bin wordt vastgelegd in de variabele PATH. Uitleg volgt.
Als /home/jijzelf/bin onderdeel is van PATH, dan wordt elk script in deze directory gevonden in elke directory waar ook op deze pc.
Bouw een directory op met daarin tekstfiletjes met de door jou te verzamelen kennis
Kies iets wat voor jou werkt. Beredeneer top down, en zorg dat de directory en bestandsnamen de lading dekken.
Bijvoorbeeld
mkdir -p /home/jijzelf/linux/handboek
mkdir -p /home/jijzelf/linux/scripts
Maak in /home/jijzelf/linux/handboek bestandjes zoals find.sh
Hierin verzamel je de door jouw opgedane kennis van het find commando
En zo ga je door : iets slims gevonden : opslaan in deze altijd groeiende kennis bibliotheek
Na verloop van tijd wordt dit je eigen goudmijn mbt scripts en terminal gebruik
Werken met scripts in /home/jijzelf/bin
Maak een symbolische link van de complete script naam naar de gewenste commando naam
ln -s scriptproberen-1.0.sh scriptproberen
je kunt het script nu aanroepen met : scriptproberen in plaats van met scriptproberen-1.0.sh
maak je eennieuwe versie scriptproberen-1.1.sh
delete dan de symbolische link met
rm scriptproberen
en maak een nieuwe
ln -s scriptproberen-1.1.sh scriptproberen
Gebruik hiervoor een platte tekst editor, zoals de Teksteditor gedit, die standaard in Linux Mint zit
De inhoud is dan :
#!/bin/sh
# Bestandsnaam = linuxproberen.sh
echo "Dit is linuxproberen.sh"
sleep 3
clear
pwd
whoami
date
cal
sleep 5
clear
echo "Het is wel weer mooi geweest zo"
Open je terminal, zoek het scriptje op, en voer het uit.
Hoe ?
linuxproberen.sh
werkt dat ?
sh linuxproberen.sh
werkt dat ?
type in chmod 755 linuxproberen.sh
en nu
linuxproberen.sh
Doet ie het of doet ie het niet ?
Type in :
cd
pwd
linuxproberen.sh
werkt dat ?
echo PATH = $PATH
cat ~/.profile
################################################################################
Nog verwerken in deze pagina
scriptmaken.txt
script uitvoeren door het bestand te dubbelklikken met bijvoorbeel konqueror
hoe moet dat ?
stel dat je een aantal commandos achter elkaar wilt uitvoeren op de commandline
en morgen ook weer
en volgende week
jaar na jaar...
zet die commandos dat onder elkaar in een tekstbestandje.
geef het ding een naam bijvoorbeeld mijnscript.sh
helemaal vooraan bovenaan links moet (MOET) staan :
#!/bin/sh
hierna volgen je commando´s, bijvoorbeeld (bij wijze van onschuldige testkaas) :
clear
echo mijnscript.sh
ls -l
pwd
date
sleep 1
uname -a
echo het is klaar
date
sla m op.
geef m de juiste rechten (uitvoerbaar/ executable) met bijvoorbeeld
chmod 755 mijnscript.sh
ls -l m*sh
-rwxr-xr-x 1 hans dehekker 200 mei 19 21:34 mijnscript.sh
uitvoeren van af de commandline ?
$ mijnscript.sh
als je het nog niet in orde hebt, probeer dan
$ . mijnscript.sh
of
$ . ./mijnscript.sh
werkt het, maar je wilt af van de sh op het eind,
dan rename je je filetje. Zie je niet meer dat het een script is.
alhoewel ?
wataboot :
$ file *
dus : maak een symbolische link :
ln -s mijnscript.sh mijnscript
je hebt nu een commando gemaakt : mijnscript
type het in en druk op enter, en daaaar gaaat ze
en als je mijnscript dubbelklikt vanuit de bestandenbladeraar ...
Die zoek ik ff uit ...
Dit komt in de buurt :
http://ccm.net/faq/3348-execute-a-script-at-startup-and-shutdown-on-ubuntu