Gast Geplaatst: 10 april 2005 Geplaatst: 10 april 2005 @ *, Citaat: Dus wil ik hierbij de alias functie van de shells introduceren: En mocht je een commando hebben ge-aliast naar iets anders en wil je toch het oorspronkelijke commando gebruiken, zet er dan een '\' (back slash) voor. De Unix shell gaat dan gewoon (via de PATH environment variabele) op zoek naar het oorspronkelijke commando en voert deze uit. Voorbeeld: Stel je hebt 'ls' ge-aliast naar 'ls -CF' en je wilt "gewoon" het ls-commando uitvoeren zoals'ie oorspronkelijk werkt, dan gebruik je: [color:"red"]\[/color]ls Je hoeft in dit geval niet eerst een 'unalias ls' te doen. groetjes, spaigel
Gast Geplaatst: 17 april 2005 Geplaatst: 17 april 2005 Shell Scripts (basis) ! Een shellscript is een verzameling shell commando's in een (uitvoerbaar gemaakt) tekstbestand. U maakt het aan met een editor bvb.'Vi'...de eerste regel van het script geeft weer met welk soort script je te maken hebt...en waar je shell de executable kan vinden. Dit wordt ook wel de shebang genoemd. Een bash-script (de bourne again shell) begint met: [color:"red"]#!/bin/sh[/color] Een python-script met: [color:"red"]#!/usr/bin/python[/color] Een perl script begint alvast met: [color:"red"]#!/usr/bin/perl[/color] Eens je een script geschreven hebt, moet je het uitvoerbaar maken dit doe je met: [color:"red"]chmod +x scriptnaam[/color] Je script aanroepen om te gebruiken doe je dan met: [color:"red"]./scriptnaam[/color] [color:"red"]./ scriptnaam & [/color](door een [color:"red"]&[/color] achter het commando te plaatsen)zal het op de achtergrond uitgevoerd worden...dit geldt trouwens voor alle commando's. Commentaar in shell-programma's bijschrijven kan achter het #-teken en geldt tot het einde van de regel. Alles achter een hash [color:"red"] #[/color] wordt niet uitgevoerd(één uitzondering de eerste shebang regel) niet meegeteld. Stap voor stap voorbeeld voor een bash-script: 1-Open een terminal en typ[color:"red"] vi[/color] 2-Je klikt op [color:"red"]i [/color] van insert 3-Dan schrijf je:[color:"green"] #!/bin/sh # hier achter mag je commentaar neerzetten als je wil echo Hallo Sat4all vrienden [/color] 4-Je klikt nu op [color:"red"] Esc-toets [/color] 5-Je typt nu [color:"red"]:wq!sat1[/color] [Enter] 6-Je bent terug in je terminal en hier typ je: [color:"red"] chmod +x sat1[/color] [Enter] 7- [color:"red"]./sat1 [/color] intikken volstaat nu, om 't net aangemaakt bash-scriptje op te roepen. Stap voor stap voorbeeld voor een perl-script: 1-Open een terminal en typ[color:"red"] vi[/color] 2-Je klikt op [color:"red"]i [/color] van insert 3-Dan schrijf je:[color:"green"] #!/usr/bin/perl print "Hallo Sat4all vrienden\n"; [/color] 4-Je klikt nu op [color:"red"] Esc-toets [/color] 5-Je typt nu [color:"red"]:wq!sat2[/color][Enter] 6-Je bent terug in je terminal en hier typ je: [color:"red"] chmod +x sat2[/color] [Enter] 7- [color:"red"]./sat2 [/color] intikken volstaat nu, om 't net aangemaakt perl-scriptje op te roepen. Stap voor stap voorbeeld voor een python-script: 1-Open een terminal en typ[color:"red"] vi[/color] 2-Je klikt op [color:"red"]i [/color] van insert 3-Dan schrijf je:[color:"green"] #!/usr/bin/python print "Hallo Sat4all vrienden" [/color] 4-Je klikt nu op [color:"red"] Esc-toets [/color] 5-Je typt nu [color:"red"]:wq!sat3[/color][Enter] 6-Je bent terug in je terminal en hier typ je: [color:"red"] chmod +x sat3[/color] [Enter] 7- [color:"red"]./sat3 [/color] intikken volstaat nu, om 't net aangemaakt python-scriptje op te roepen. Dit zijn natuurlijk eenvoudige voorbeelden van een scriptje die gewoon de tekst"Hallo Sat4all vrienden" op je terminal zet bij 't aanroepen. Deze drie scriptjes met naam sat1,sat2 en sat3 kan je terugvinden in de 'home map' van de gebruiker...buiten dat de naam verschillend is zal je ook merken dat de verschillende scripts een eigen symbool meekrijgen. BJ
Gast Geplaatst: 1 mei 2005 Geplaatst: 1 mei 2005 Shell Scripts (gevorderden)...encrypteren van je shellscript ! Een extra laagje veiligheid aan je script toevoegen door middel van het programma shc. Het programma shc compileert en encrypteert je script, waardoor de inhoud aan nieuwsgierige blikken onttrokken wordt. Je kan het programma downloaden via onderstaande url en installeren met "make" en "make install". Probeer het eens uit op een scriptje: shc -f netlogin.sh Het programma maakt nu (tenminste als er een C compiler geïnstalleerd is op je systeem) twee bestanden aan: netlogin.sh.x.c en netlogin.sh.x ...dit laatste is het geëncrypteerde programma. Het bestand netlogin.sh.x.c kan je verwijderen.Indien je het scrypt later nog wil aanpassen, kan je netlogin.sh backuppen. Voor meer opties bekijk de manpage. Zo kan je ook bijvoorbeeld instellen dat het script na een bepaalde datum ophoudt met werken enz... Downloaden Manpage BJ
Gast Geplaatst: 8 augustus 2005 Geplaatst: 8 augustus 2005 Eénvoudige backupscript ! #!/bin/bash # opties if [ "$1" = "-i" ]; then TYPE=inc fi # instellingen NAME=john BACKUPDIR=/home/john/afbeeldingen STORAGEDIR=/home/john TIMESTAMP=`date +%F` #procedure if [ "$TYPE" = "inc" ]; then FILENAME=$STORAGEDIR/$NAME-$TIMESTAMP-inc.tar.gz tar cfz $FILENAME -N $BACKUPDIR/.lastbackup $BACKUPDIR touch $BACKUPDIR/.lastbackup else touch $BACKUPDIR/.lastbackup FILENAME=$STORAGEDIR/$NAME-$TIMESTAMP-full.tar.gz tar cfz $FILENAME $BACKUPDIR fi [color:"blue"]#hier en daar moet je 't script zelf wat aanpassen aan jouw noden [/color] [color:"red"]BJ [/color]
Gast Geplaatst: 4 september 2005 Geplaatst: 4 september 2005 Hier nog een script voor full & incremental backup: #!/bin/bash # # DATA="/home /root /var/www" CONFIG="/etc /var/named" LOGS="/var/log" LIST="/tmp/backlist_$$.txt" BACKUPDIR="/backups" # set $(date) # if test "$1" = "Sun" ; then # weekly a full backup of all data and config. settings: # tar cfz "$BACKUPDIR/data/data_full_$6-$2-$3.tgz" $DATA rm -f $BACKUPDIR/data/data_diff* # tar cfz "$BACKUPDIR/config/config_full_$6-$2-$3.tgz" $CONFIG rm -f $BACKUPDIR/config/config_diff* # tar cfz "$BACKUPDIR/logs/logs_full_$6-$2-$3.tgz" $LOGS rm -f $BACKUPDIR/logs/logs_diff* else # incremental backup: # find $DATA -depth -type f \( -ctime -1 -o -mtime -1 \) -print > $LIST tar cfzT "$BACKUPDIR/data/data_diff_$6-$2-$3.tgz" "$LIST" rm -f "$LIST" # find $CONFIG -depth -type f \( -ctime -1 -o -mtime -1 \) -print > $LIST tar cfzT "$BACKUPDIR/config/config_diff_$6-$2-$3.tgz" "$LIST" rm -f "$LIST" # find $LOGS -depth -type f \( -ctime -1 -o -mtime -1 \) -print > $LIST tar cfzT "$BACKUPDIR/logs/logs_diff_$6-$2-$3.tgz" "$LIST" rm -f "$LIST" fi [color:"blue"]# hier geldt ook dat het script her en der aangepast moet worden naar eigen keus[/color]
Gast Geplaatst: 4 september 2005 Geplaatst: 4 september 2005 Op de volgende link is een script te vinden voor backuppen van MySQL database's: link naar backupscript
Gast Geplaatst: 7 oktober 2005 Geplaatst: 7 oktober 2005 Citaat: Het programma shc compileert en encrypteert je script, waardoor de inhoud aan nieuwsgierige blikken onttrokken wordt. ...en... Citaat: Zo kan je ook bijvoorbeeld instellen dat het script na een bepaalde datum ophoudt met werken enz... ...en zo begint het allemaal al weer heel erg op windows te lijken, niet waar? ;-)
Gast Geplaatst: 20 november 2005 Geplaatst: 20 november 2005 for i in 07 BC 00 DB 1D 16 XX XX XX XX;do printf "%d " 0x$i;done; echo ""; Op bovenstaande manier converteer ik key's van Hex naar Decimaal, omdat ik sleutels alleen kan invoeren als ze hexadecimaal zijn.
dark-angel-djin Geplaatst: 19 april 2007 Geplaatst: 19 april 2007 Citaat: Eénvoudige backupscript ! #!/bin/bash # opties if [ "$1" = "-i" ]; then fi # instellingen NAME=john BACKUPDIR=/home/john/afbeeldingen STORAGEDIR=/home/john TIMESTAMP=`date +%F` #procedure if [ "$TYPE" = "inc" ]; then FILENAME=$STORAGEDIR/$NAME-$TIMESTAMP-inc.tar.gz tar cfz $FILENAME -N $BACKUPDIR/.lastbackup $BACKUPDIR touch $BACKUPDIR/.lastbackup else touch $BACKUPDIR/.lastbackup FILENAME=$STORAGEDIR/$NAME-$TIMESTAMP-full.tar.gz tar cfz $FILENAME $BACKUPDIR fi [color:"blue"]#hier en daar moet je 't script zelf wat aanpassen aan jouw noden [/color] [color:"red"]BJ [/color] heel mooie zou graag willen shell scripts maken maar ken er BIJNA niks van hoe te beginnen en alle comandos's leren ?if [ "$1" = "-i" ]; then hier vb "$1" = "-i" waar moet ik zien wat $1 en waar moet ik zien wat i is of moet aanmaken den dat $1 naam of dergelijke is en -i geboorte datum duss laat die aleen naam zien en laat de geboorte datum weg ALS IK ZELF IETS WIL SHRUIJVEN DUSS ? of heb ik het helemaal verkeerd ?
Big fellow Geplaatst: 19 april 2007 Geplaatst: 19 april 2007 $1 is het eerste argument op de command line, en "-i" is dus een mogelijk argument <img src="/forums/images/graemlins/wink.gif" alt="" /> . Er zijn online aardig wat tutorials te vinden over shell scripting. Zoek maar eens op "bash shell scripts" op google en je zal er wel een aantal vinden... Big fellow “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
lite Geplaatst: 4 mei 2007 Geplaatst: 4 mei 2007 hier nog een paar handige commando's: met de kernel loop module kan je ISO-bestanden (bijvoorbeeld een kopie van een film/installatie-CD etc) als schijf benaderen zonder ze eerst op CD of DVD te hoeven branden. 1) maak een directory aan waaraan je de ISO wil koppelen: sudo mkdir /media/mijniso (als superuser, in dit voorbeeld sudo voor bijvoorbeeld debian/ubuntu) 2) roep de loop module aan: sudo modprobe loop 3) ISO-bestand mounten op de directory die je gemaakt hebt: sudo mount bestandsnaam.iso /media/mijniso/ -t iso9660 -o loop bestandsnaam.iso is de naam van je ISO-bestand, deze zal nu benaderbaar zijn als schijf via je desktop. 4) om de mount weer ongedaan te maken typ je: sudo umount /media/mijniso And now for something completely similar
lite Geplaatst: 4 mei 2007 Geplaatst: 4 mei 2007 als je meerdere schermen (of bijvoorbeeld een tv) hebt aangesloten op je pc, kan je met het commando DISPLAY bepalen op welk scherm een programma wordt geopend: DISPLAY=":0.1" geeft aan dat je van de primaire video-adapter (0) het tweede aangesloten scherm wil gebruiken (1). zet dit voor het programma dat je wil starten: DISPLAY=":0.1" mplayer Spirited_Away.iso in dit geval wordt het programma mplayer op het tweede scherm opgestart om een film te bekijken. And now for something completely similar
CescoAiel Geplaatst: 4 mei 2007 Geplaatst: 4 mei 2007 Citaat: - Verplaatsen van bestanden: mv <bron> <doel> : Dus hetzelfde als DOS alleen schrijf je "mv" in plaats van "move" .. Ook hier werkt de "~" om te refereren aan je home directory. Misschien heb ik er overheen gelezen, maar "mv" kan ook gebruikt worden om bestanden te hernoemen: Code: mv zooi.txt meuk.txt En je bestand zooi.txt heet ineens meuk.txt <img src="/forums/images/graemlins/xyxthumbs.gif" alt="" />
Big fellow Geplaatst: 5 mei 2007 Geplaatst: 5 mei 2007 Is dit niet logisch als je het bestand in dezelfde directory "verplaatst" met een andere naam als doel? In DOS kan je ook "move zooi.txt meuk.txt" gebruiken..... Maar het is goed dat je het opmerkt voor de lezer die hier naar zoekt <img src="/forums/images/graemlins/wink.gif" alt="" /> . Big fellow “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
CescoAiel Geplaatst: 5 mei 2007 Geplaatst: 5 mei 2007 Citaat: Is dit niet logisch als je het bestand in dezelfde directory "verplaatst" met een andere naam als doel? In DOS kan je ook "move zooi.txt meuk.txt" gebruiken..... Maar het is goed dat je het opmerkt voor de lezer die hier naar zoekt <img src="/forums/images/graemlins/wink.gif" alt="" /> . Big fellow Zeker wel, maar voor Windows gebruikers is het vaak niet zo logisch... Je moest eens weten hoevaak ik al beginnende (windows-naar-)linux overstappers ik al heb moeten uitleggen waarom er geen "ren" commando is! <img src="/forums/images/graemlins/wink.gif" alt="" />
Aanbevolen berichten
Maak een account aan of log in om te reageren
Je moet een lid zijn om een reactie te kunnen achterlaten
Account aanmaken
Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!
Registreer een nieuwe accountInloggen
Heb je reeds een account? Log hier in.
Nu inloggen