Ga naar inhoud


Tips & Trucs voor commandoregel !


Aanbevolen berichten

Geplaatst:

@ *,

 

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


  • Reacties 48
  • Aangemaakt
  • Laatste reactie

Beste reacties in dit onderwerp

Beste reacties in dit onderwerp

Geplaatst:

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

  • 2 weken later...
Geplaatst:

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

  • 3 maanden later...
Geplaatst:

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]

  • 4 weken later...
Geplaatst:

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]

  • 1 maand later...
Geplaatst:
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?
;-)
  • 1 maand later...
Geplaatst:

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.

  • 1 jaar later...
Geplaatst:
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 ?
Geplaatst:

$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

  • 3 weken later...
Geplaatst:

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

Geplaatst:

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

Geplaatst:
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="" />
Geplaatst:

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

Geplaatst:
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="" />

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 account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...