Nieuws:

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

Auteur Topic: Terminal commands automatisch uitvoeren  (gelezen 3430 keer)

Offline Tidob

  • Lid
Terminal commands automatisch uitvoeren
« Gepost op: 2011/05/27, 20:14:41 »
Hoi,

Ik wist niet zeker of ik dit hier moest vragen, of in een ander subforum. Het gaat in ieder geval voor een deel over programmeren. Ik gebruik Ubuntu namelijk om software te ontwikkelen in C++, waarbij ik dus regelmatig moet compileren. Hiervoor gebruik ik G++, via simpele commando's in de terminal. Maar, hier zit een onhandigheid aan. Iedere keer als ik de terminal opstart, moet allerlei commando's intypen om in de juiste map te komen e.d. Ik bedacht me dat het vast wel mogelijk moet zijn om een soort executable te maken, die de terminal commando's uitvoert als je dat bestand uitvoert. Bijvoorbeeld een bestand met de volgende code:
cd /media/Data/CPP/Projecten
mkdir NieuwProject
cd NieuwProject
of iets dergelijks. Als je dit bestand uitvoert, komt de terminal tevoorschijn, wordt er een directory gemaakt, en staat de terminal al automatisch in de juiste directory.

Heeft iemand enig idee hoe ik dit kan doen? Ik heb al wat gezocht en natuurlijk ook zelf dingen uitgeprobeerd, maar dat leidde alleen maar tot errors.

Alvast bedankt,

Tidob

Re: Terminal commands automatisch uitvoeren
« Reactie #1 Gepost op: 2011/05/27, 20:50:07 »
Ik gebruik geany als IDE, daar kan je bovenaan gewoon op de build knop klikken.
http://leerubuntu.org (ubuntu zonder moeilijke woorden)
VoidWarranties (Hackerspace) Antwerpen
Microsoft isn't evil, they just make really crappy operating systems. - Linus Torvalds

Offline Ron

  • Forumteam
    • r0n
    • Over Tholen
Re: Terminal commands automatisch uitvoeren
« Reactie #2 Gepost op: 2011/05/27, 20:52:45 »
Je kunt dit saven als een tekst file, b.v. met de extentie .sh
je kunt het dan starten met het commando sh naam.sh
Ook is het mogelijk om b.v. alle files te openen met sh, dan wordt de regel korter.
Automatisch gaat het, wanneer je het toevoegt aan Systeem > Voorkeuren > Opstarttoepassingen

of begrijp ik je verkeerd ?
Openstandaard Evangelist, OpenSource Promotor, OpenData voorstander.
Xubuntu gebruiker en voorstander
Er is ook nog een andere hobby.

Re: Terminal commands automatisch uitvoeren
« Reactie #3 Gepost op: 2011/05/27, 21:30:00 »
Als je meerdere commando's hebt kun je ze idd het best in een script zetten. Dat script maak je dan uitvoerbaar en vervolgens kun je in het bestand .baschrc een alias toevoegen voor dat script.

stel dat het script heet: mijnscript.sh
dan maak je het uitvoerbaar door via de terminal: chmod +x mijnscript.sh in te voeren

vervolgens open je het bestand .bashrc (staat in je /home/user) en voeg je onderaan (of waar je wil) een regel toe:
alias nieuwcommando="mapwaarmijnscriptjestaat/mijnscript.sh"
wanneer je nu nieuwcommando intypt dan wordt mijnscript.sh uitgevoerd. Het voordeel hiervan is dat de alias overal in de terminal werkt en je niet het pad eerst hoeft op te geven.

Re: Terminal commands automatisch uitvoeren
« Reactie #4 Gepost op: 2011/05/27, 22:34:57 »
daarvoor zijn bash functies veel handiger meestal. Kun je dat script weglaten en de inhoud er van in een functie gooien, die je in ~/.bashrc zet.

myfunction() { cd /media/Data/CPP/Projecten ; mkdir NieuwProject ;cd NieuwProject }
kun je ook mooi met positionele parameters werken

myfunction() { cd /media/Data/CPP/Projecten ; mkdir $1 ;cd $1 }
aanroepen met
myfunction NieuwProject
URD - http://www.urdland.com - Usenet Resource Downloader

Offline Tidob

  • Lid
Re: Terminal commands automatisch uitvoeren
« Reactie #5 Gepost op: 2011/05/27, 23:03:04 »
Allemaal bedankt voor de antwoorden!! Dus daarvoor dienen die .sh bestanden. Ik denk dat ik gavinspearhead's manier ga gebruiken, maar voor de andere 2 oplossingen zal ik vast nog wel een toepassing vinden. :P


Ik gebruik geany als IDE, daar kan je bovenaan gewoon op de build knop klikken.
Ik gebruik zelf het liefst g++ en gedit, het is lekker simpel en je hebt toch veel vrijheid, maar dat is natuurlijk allemaal een kwestie van smaak.

Re: Terminal commands automatisch uitvoeren
« Reactie #6 Gepost op: 2011/05/28, 00:25:01 »
.sh zijn shell scripts inderdaad, maat feitelijk maakt het niet uit hoe je ze gebruikt. Als de eerste twee karakters van een bestand #! zijn gebruik ie de rest van de regel om te bepalen waarmee het uitgevoerd wordt (en uiteraard de executable flag is gezet chmod a+x foo.sh). Dus #!/bin/sh is een shell script, #!/bin/perl is een perl script etc. Het kan eigenlijk elke executable zijn. En bash shell scripts zijn programmeertalen op zich.

Qua editor zijn er uiteraard maar twee relevante in unixen, vi en emacs (en diverse varianten ervan). :D  Meestal gebruik ik vim of gvim



URD - http://www.urdland.com - Usenet Resource Downloader

Offline vanadium

  • Lid
Re: Terminal commands automatisch uitvoeren
« Reactie #7 Gepost op: 2011/05/28, 09:55:02 »
Scriptjes zijn inderdaad de manier om een opeenvolging van commando's te optimalizeren (vb compileren, dan linken, enz).

Wat jij nu vraagt, is echter het automatisch aanmaken van een directory voor een nieuw programmeerproject.

In dat geval zou ik al eerder mijn nieuwe projectdirectory gewoon met bestandsbeheer aanmaken en erin gaan. Wat je dan enkel mist, is een gemakkelijke manier om ook een terminal te openen in die directory. Hiervoor kan je de extensie "nautilus-terminal" installeren via Ubuntu softwarecenter. Eens je in je projectdirectory bent, rechts-klik je en kiest "Open in terminal". Een terminal wordt nu geopend met als actieve directory de directory waar je in nautilus was.

Offline laudaka

  • Lid
Re: Terminal commands automatisch uitvoeren
« Reactie #8 Gepost op: 2011/06/18, 00:11:06 »
Hoi Vanadium,
...Wat je dan enkel mist, is een gemakkelijke manier om ook een terminal te openen in die directory. Hiervoor kan je de extensie "nautilus-terminal" installeren via Ubuntu softwarecenter. Eens je in je projectdirectory bent, rechts-klik je en kiest "Open in terminal". Een terminal wordt nu geopend met als actieve directory de directory waar je in nautilus was.
Hier heb ik echt lang naar gezocht een tijd geleden maar ik kon het niet vinden. Dank je wel, echt handig dat het wel kan als je die extensie installeert. De extensie zit trouwens niet in het pakket "nautilus-terminal" maar "nautilus-open-terminal", ik zeg het maar voor de liefhebbers die het vanaf de command line met apt-get willen installeren. (Zoals ik dus ;) )In het Ubuntu Softwarecentrum of Synaptic Pakketbeheer vind je het wel gewoon met de trefwoorden nautilus terminal.

Dank je wel voor de tip Vanadium!

Veel plezier met vrije en open source software,
Paulus/laudaka

P.S. Ik heb nog gekeken of er andere extensies waren voor Nautilus en sommige van de andere pakketten die beginnen met "nautilus-" zijn ook extensies voor Nautilus. In aptitude vind je ze het makkelijkst, in Synaptic lukt het ook met wat meer zoeken.