Ανάπτυξη ιστοτόπου σε περιβάλλον Debian/Εγκατάσταση και διαμόρφωση περιβάλλοντος ανάπτυξης ιστοτόπων στον υπολογιστή μας

Από Βικιβιβλία
Πήδηση στην πλοήγηση Πήδηση στην αναζήτηση

Apache[επεξεργασία]

Ο εξυπηρετητής παγκόσμιου ιστού που θα χρησιμοποιήσουμε είναι ο Apache.Είναι ελεύθερο λογισμικό και από τους ποιό δημοφιλής εν έτη 2007.

Εγκατάσταση[επεξεργασία]

Η εγκατάσταση είναι απλή εφόσον έχουμε ρυθμίσει σωστά τις αρχειοθήκες του συστήματος πακέτων του debian. Το πακέτο είναι το Nuvola mimetypes deb.png apache2 και μπορούμε το εγκαταστήσουμε είτε με το synaptic είτε με aptitude,apt-get.


Αρχεία διαμόρφωσης[επεξεργασία]

Ο apache μπορεί να διαμορφωθεί μέσω directives (οδηγιών) που τοποθετούμε σε ένα απλό αρχείο κειμένου ,το γνωστό και σαν αρχείο διαμόρφωσης που συνήθως καλείται httpd.conf και είναι στο φάκελο /etc/apache2/ . Στην εγκατάσταση όμως στο debian το εν λόγω αρχείο υπάρχει (για λόγους συμβατότητας) αλλά είναι κενό και το πραγματικό αρχεί είναι το /etc/apache2/apache2.conf το οποίο περιέχει και εντολή συμπερίληψης του httpd.conf στο οποίο μπορούμε δηλαδη επίσης να προσθέτουμε οδηγίες διαμόρφωσης. Αυτή είναι μια ιδιαιτερότητα του πακέτου debian του apache και δεν αναφέρεται στην επίσημη τεκμηρίωση του .

Από τον apache2 και έπειτε δεν υπάρχει η οδηγία Port που να καθορίζει τις θύρες στις οποίες ακούει ο διακομιστής αλλά υπάρχει το ξεχωριστό αρχείο διαμόρφωσης θυρών με το όνομα ports.conf και το οποίο περιέχει την οδηγία Listen. Αλλαγές στο κύρίως αρχείο διαμόρφωσης γίνονται ενεργές μόνο όταν ξεκινάμε ή ξαναξεκινάμε τον apache.

Συνίσταται οι επιπλεόν ρυθμίσεις των διαχειριστών να γίνονται σε αρχεία στον κατάλογο conf.d , του οποίου τα αρχεία συμπεριλαμβάνονται από το apache2.conf .

Ακολουθεί μια λίστα με τις οδηγίες διαμόρφωσης που μας φαίνονται για την αρχή ποιό σημαντικές ή ποιό χρήσιμες.

  • ServerRoot Ο κατάλογος όπου βρίσκοντσι τα αρχεία ημερολογίου, αρχεία διαμόρφωσης και

καταγραφής λαθών

 ServerRoot "/etc/apache"


  • AccessFileName Το όνομα του αρχείου που θα αναζητήσει ο εξυπηρετητής σε κάθε

κατάλογο ενός αρχείου που εξυπηρετεί και το οποίο καθορίζει επιπλέον διάφορες παραμέτρους λειτουργίας του apache. Το προκαθορισμένο όνομα φαίνεται παρακάτωctives.

AccessFileName .htaccess


Αρχεία ημερολογίου[επεξεργασία]

/var/log/apache2/error.log

Αρθρώματα apache[επεξεργασία]

Ένα από τα μεγαλύτερα πλεονεκτήματα του apache είναι η αρθρωτή του αρχιτεκτονική που επιτρέπει εύκολα την προσθαφαίρεση λειτουργικότητας.

Και στον τρόπο ενεργοποίησης αρθρωμάτων αποκλίνει από το στάνταρντ το debian. Υπάρχουν δύο μη-στανταρ κατάλογοι

  • /etc/apache2/mods-enabled
  • /etc/apache2/mods-available

Όποτε εγκαθιστάς ένα άρθρωμα του apache από ένα πακέτο debian θα δημιουργηθούν ένα ή δύο αρχεία στον κατάλογο mods-available. Το αρχείο modulename.load περιέχει την οδηγία Load που το φορτώνει στον εξυπηρετητή του παγκόσμιου ιστού και ο το προαιρετικό αρχείο modulename.conf περιέχει επιπλέον οδηγίες διαμόρφωσης απαραίτητες για τη λειτουργία του αρθρώματος.

Όμως η εγκατάσταση του αρθρώματος δεν συναιπάγεται και το ότι θα είναι διαθέσιμο στον διακομιστή. Για ενεργοποιηθεί πρέπει να χρησιμοποιήσεις την εντολή a2enmod:

a2enmod module

Η εντολή a2enmod θα δημιουργήσει συμβολικούς συνδέσμους στον κατάλογο mods-enabled δείχνοντας στα αντίστοιχα αρχεία modulename.load και modulename.conf (αν υπάρχει) . Προκειμένου να αναγκάσεις τον εξυπηρετητή Αpache να ξαναδιαβάσει το αρχείο διαμόρφωσης και να φορτώσει το άρθρωμα πρέπει να του στείλουμε το σήμα reload .

/etc/init.d/apache2 reload


Παρόμοια για να απενεργοποιήσεις ένα άρθρωμα :

a2dismod module
/etc/init.d/apache2 reload

Μπορείς βέβαια να χειριστείς μονό σου τους συμβολικούς συνδέσμους αλλά είναι καλύτερο να χρησιμοποιήσεις τα παρεχόμενα σενάρια.

Εικονικοί διακομιστές[επεξεργασία]

Γενικά[επεξεργασία]

Ένας εικονικός διακομιστής (virtual host) είναι απλά ένας ιστότοπος που εξυπηρετείται από τον apache του υπολογιστή σας. Μπορούμε δηλαδή πχ δυό url www.a.com , www.b.org να είναι ιστότοποι στον ίδιο υπολογιστή.

Οι εικονικοί εξυπηρετητές μπορεί να είναι βασισμένοι σε IP (που σημαίνει ότι αντιστοιχεί διαφορετική IP διεύθυνση στον καθένα) ή βασισμένη σε όνομα (διαφορετικά ονόματα σε μια IP διεύθυνση ). Εμείς θα χρησιμοποιήσουμε εικονικούς εξυπηρητητές βασισμένους σε όνομα Δες σχετικά

Οι εικονικοί διακομιστές διαχειρίζονται όπως τα αρθρώματα. Κάθε ιστότοπος έχει το δικό του αρχείο διαμόρφωσης που περιέχει όλες τις οδηγίες Apache που το αφορούν μόνο αυτό. Αυτά τα αρχεία ή συμβολικοί σύνδεσμοι σε αυτά πρέπει να τοποθετηθούν στον κατάλογο sites-available. Δεν υπάρχουν κανόνες για την ονομασία αυτών των αρχείων αλλά μια καλή πρακτική θα ήταν να έχουν το όνομα το domain name που εξυπηρετούν.


Για να ενεργοποιήσεις έναν εικονικό διακομιστή χρησιμοποιείς την εντολή a2ensite , που λειτουργεί παρόμοια με την a2enmod. Και υπάρχει και η αντίστοιχη a2dissite που απενεργοποιεί έναν εικονικό διακομιστή. H εντολή a2ensite τοπθετεί συνδέσμους στον κατάλογο /etc/apache2/sites-enabled προς τα αρχεία που υπάρχουν στον κατάλογο sites-available. Στον κατάλογο sites-enabled ψάχνει και ο apache όταν ξεκινάει για να διαβάσει με αλφαβητική σειρά τα αρχεία που έχουν συνδέσμους εκεί και να φορτώσει(ενεργοποιήσει) τους αντίστοιχους εικονικούς διακομιστές.

Αυτό το καταφέρνουμε με την παρακάτω οδηγία που υπάρχει στο αρχείο apache2.conf

Include /etc/apache2/sites-enabled

Αρχικά υπάρχει ένας ιστότοπος ενεργοποιημένος , o default του οποίου το αρχείο ρυθμίσεων μπορούμε να δούμε στον κατάλογο sites-available


Έστω λοιπόν ότι θέλουμε να εξυπηρετόυμε δύο ιστοτόπους τους www.alpha.com και www.bita.org. Θα δημιουργήσουμε δύο αρχεία στον κατάλογο sites-available με ονόματα alhpa.com και bita.org


Για να ενεργοποιήσουμε τον εικονικό διακομιστή πρέπει να δώσουμε την εντολή:

 a2ensite  site

Και για να απενεργοποιήσουμε έναν εικονικό διακομιστή :

  a2dissite site

Αρχείο /etc/hosts[επεξεργασία]

Για να είναι προσβάσιμοι οι εικονικοί μας τοπικοί ιστότοποι από τον πλοηγό μας πρέπει να προσθέσουμε και το όνομά τους στο αρχείο /etc/hosts στην γραμμή 127.0.0.1 Έτσι θα μπορούμε να δίνουμε στον πλοηγό την διεύθυνση http://localtestwebsite και να μεταφερόμαστε στον τοπικό μας ιστότοπο.

Ρύθμιση εικονικών διακομιστών[επεξεργασία]

Η σημαντική οδηγία είναι η NameVirtualHost που μας επιτρέπει να καθορίσουμε την διεύθυνση IP (και αν θέλουμε και θύρα) πίσω από την οποία θα είναι οι εικονικοί μας εξυπηρετητές. Το συντακτικό είναι:

NameVirtualHost address[:port]

Αν χρησιμοποιήσουμε παράμετρο * τότε οποιαδήποτε και αν είναι η διεύθυνση IP μας θα μπορούμε να έχουμε συνδεδεμένους σ'αυτήν τους εικονικούς μας ιστοτόπους. Αυτό είναι προφανως χρήσιμο στην περίπτωση που θα έχουμε δυναμικό ip και οι εικονικοί μας διακομιστές θα είναι κάθε φορά συνδεδεμένοι σε διαφορετικό ip.

Η παράμετρος της οδηγίας Virtual host πρέπει να είναι ίδια με αυτήν της οδηγίας NameVirtualHost.

Παράδειγμα ρύθμισης για php εικονικούς διακομιστές[επεξεργασία]

Εδώ τα πράγματα είναι απλά και έχει δουλέψει το απλό αρχείο alpha.com (στον /etc/apache2/sites-available)

<VirtualHost *>
    ServerName alpha.com
    DocumentRoot /var/www/alpha
</VirtualHost>

Παράδειγμα ρυθμίσης για ruby on rails εικονικούς διακομιστές[επεξεργασία]

Το παρακάτω αρχείο ρυθμίσεων προτείνεται στον ιστότοπου του ruby on rails

NameVirtualHost *:80
<VirtualHost *>
   ServerName bita.org
   DocumentRoot /var/www/html/appOne/public/
   <Directory /var/www/html/appOne/public/>
       Options ExecCGI FollowSymLinks
       AllowOverride all
       Allow from all
       Order allow,deny
   </Directory>
</VirtualHost>


Για λόγους όμως που δεν κατανοήσαμε ακόμα (έχει σχέση με την οδηγία AllowOverride) με τις παραπάνω ρυθμίσεις δεν είναι προσβάσιμος ο ιστότοπος και φαίνεται να δουλεύουν οι παρακάτω ρυθμίσεις που πήραμα από το default αρχείο.

NameVirtualHost *:80
<VirtualHost *>
   ServerName bita.org
   DocumentRoot /var/www/html/appOne/public/
   <Directory /var/www/html/appOne/public/>
               Options Indexes FollowSymLinks MultiViews
               AllowOverride None
               Order allow,deny
               allow from all
   </Directory> 
</VirtualHost>

Αιτία για την παραπάνω μη αναμενόμενη συμπεριφορά πρέπει να είναι το μη ενεργοποιημένο άρθρωμα του apache rewrite.

Οπότε μια πρώτη λύση είναι να δώσουμε τις εντολές

# cd /etc/apache2/mods-available
# a2enmode rewrite
# /etc/init.d/apache2 reload

Και πάλι υπάρχει πρόβλημα. Μελετάω τα .htaccess αρχεία τα οποία περιέχουν οδηγίες ανα-κατάλογο προς τον διακομιστή.

Ρύθμιση δυναμικού domain name και εγκατάσταση ddns πελάτη[επεξεργασία]

Αποκτώντας domain name[επεξεργασία]

Για να μπορούμε να πειραματιζόμαστε και να μαθαίνουμε καλύτερα θεωρώ ότι κατά την ανάπτυξη ενός ιστοτόπου πρέπει να είναι προσβάσιμος ο ιστότοπος στο διαδίκτυο. Αν είμαστε εντελώς αρχάριου θα αρκούσαν οι δοκιμές τοπικά αλλά το καλύτερο θα ήταν το πρώτο ιδιαίτερα για τους σκοπούς του οδηγού αυτού.

Χρειαζόμαστε λοιπόν ένα domain name(όνομα υπολογιστή εξυπηρετητή στο διαδίκτυο) το οποιό μπορούμε να το δίνουμε σε πιθανούς επισκέπτες σαν μέρος του (ομοιόμορφου εντοπιστή πόρου) με το οποίο θα μπορούν να επισκέπτονται τον ιστότοπό μας επισκέπτες.

Πριν όμως αποκτήσουμε domain name πρέπει ο υπολογιστής μας να έχει μια διεύθυνση IP. Αγοράζωντας μια σύνδρομή adsl στις μέρες μας 2007 ο υπολογιστής σου γίνεται κομμάτι του διαδικτύου και αποκτά διεύθυνση αλλά υπάρχουν δύο τρόποι να γίνει αυτό . Η επιλογες μας είναι δύο. Μπορούμε να αποκτήσουμε σύνδεση στο διαδίκτυο με στατικό IP αλλά θα μας κοστίσει μηνιαία 10 ευρώ περισσότερο και κρίνω ότι αν δεν υπάρχει η πρόθεση να διατηρούμε εν-λειτουργία 24/7/365 έναν εξυπηρετητή ανοιχτό (κάτι που συνεπάγεται περισσότερο κόπο και χρήμα) θα ήταν οικονομικότερο αρχικά να αποκτήσει κάποιος με δυναμική διεύθυνση διαδικτύου (dynamic ΙP) που είναι η δεύτερη μας επιλογή. Επιπρόσθετα (αν και δεν έχω εμπειρία σε θέματα ασφαλείας) ίσως είναι ασφαλέστερο να έχουμε δυναμική IP για πειραματισμούς.

Το επόμενο βήμα είναι να κατοχυρώσουμε ένα domain name αφού δεν θα θέλαμε να διαφημίζουμε τον ιστότοπο 145.32.56.197 ! Αυτό ίσως μας κόστίσει κάτι παραπάνω. Εφόσον όμως έχουμε επιλέξει dynamic IP και μιλάμε για πειραματική ανάπτυξη είναι και πάλι οικονιμικότερο να επιλέξουμε δωρέαν domain name από μια υπηρεσία dynamic dns.


Η υπηρεσία Dynamic DNS (DDNS) επιτρέπει να αλλάζουν σε πραγματικό χρόνο τα δεδομένα ενός ονόματος περιοχής (βασικά η αντιστοιχία domain name--IP διεύθυνσης) που βρίσκονται σε έναν εξυπηρετητή ονομάτων . Αυτό σημαίνει πρακτικά ότι αν αλλάξει η δυναμική IP μας και ενημερωθεί ο server ddns όπου κατωχυρώσαμε το domain name μας τότε θα αλλάξουν πολύ γρήγορα και τα αντίστοιχα δεδομένα στους άλλους βασικούς εξυπηρετητές ονοματων. Και αυτή η τελευταία ενέργεια θα έχει σαν αποτέλεσμα το domain name μας να αντιστοιχηθεί στο νεο IP μας.(καλό θα ήταν να προστεθεί σχήμα, όχι και πολύ τετριμμένη διαδικασία)


του ddns server ο οποίος θα τρέχει τοπικά στον υπολογιστή μας στο παρασκήνιο σαν υπηρεσία και ανα τακτά χρονικά διαστήματα θα ελέγχει την ip που μας αναθέτει ο παροχέας μας και εφόσον έχει αλλάξει τότε θα επικοινωνεί με τον ddns εξυπηρετητή και θα τον ενημερώνει , και αυτός με τη σειρά του προκαλέσει την γρήγορη αλλαγή της σχετικής καταχώρισης στους dns διακομιστές ώστε να συνεχίσει να είναι προσβάσιμος ο ιστότοπός μας από τους επισκέπτες που γνωρίζουν μόνο το domain name. Ακολουθεί μια λίστα με εξυπηρετητές της υπηρεσίας δυναμιού dns που υποστηρίζονται από τον πελάτη ddclient που παρέχεται από το ομώνυμο πακέτο και μπορείται να τον εγκαταστήσετε από το synaptic.

Για τα παραδείγματα χρησιμοποίησα τον DynDNS.com έναν από τους πρώτους ddns servers που προσέφεραν και προσφέρουν δωρεάν την υπηρεσίας παροχής ddns σαν προσφορά γνωριμίας σε δυνητικά μελλοντικούς πελάτες.(συνήθως το δωρέαν πρέπει να το φοβάσαι ,ιδιαίτερα στο διαδίκτυο , αλλά στην περίπτωση αυτή είναι προφανές το κίνητρο , να εξοικιωθείς με μια νέα τεχνολογία ώστε να κατανοήσεις τα παραπάνω ωφέλη από τις επιπλέον υπηρεσίες που παρέχει επι πληρωμή , οπότε για ενδυκνειται η χρήση για πειραματισμούς και ερασιτεχνικούς ιστότόπους).

Εγκατάσταση ρύθμιση και έλεγχος ddns update client[επεξεργασία]

Αν έχουμε δυναμική IP διεύθυνση (που είναι και το σύνηθες στα πακέτα που παρέχουν οι ελληνικοί ISP) και έχουμε καταχωρίσει κάποιο(α) domain name(s) σε έναν server(εξυπηρετητή/διακομιστή) που παρέχει υπηρεσία δυναμικού DNS τότε χρειαζόμαστε και ένα πελάτη ενημέρωσης

Ένας πελάτης ενημέρωσης ddns εξυπηρετητή είναι ο ddclient και περιέχεται στο ομώνυμο πακέτο που μπορούμε να κατεβάσουμε μέσω synaptic ή apt-get. Κατά την εγκατάσταση θα μας ζητηθεί να δώσουμε βασικές πληροφορίες ,όπως τα domain names που έχουμε κατοχυρώσει στον ddns server (τον dyndns στην περίπτωσή μας) και στοιχεία του λογαριασμού μας στον server αυτών ώστε να μπορεί ο πελάτης να συνδέεται .


Στο παράδειγμά μας το αρχείο ρύμθισης θα φαίνονταν ως εξής: /etc/ddclient.conf

# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf
pid=/var/run/ddclient.pid
protocol=dyndns2
use=if, if=dyndns2
server=members.dyndns.org
login=chomwitt
password='synapsis'
alha.webhop.org,beta.dontexist.com


Το δεύτερο που πρέπει να μας αποσχολήσει είναι πως ξεκινάμε τον πελάτη και πως μπορούμε να διαπιστώνουμε ότι εκτελείται και αν κάνει σωστά τις ενημερώσεις στον ddns εξυπηρετητή.

Mετά την εγκατάσταση θα δούμε με htop ή με την εντολή:

# pgrep ddclient

ότι ξεκίνησε στο παρασκήνιο ο πελάτης. Ας υποθέσουμε ότι έχει ρυθμιστεί και για ξεκιναει αυτόματα με κάθε εκκίνηση του υπολογιστή. Αλλιώς πρέπει να χρησιμοποιήσουμε το πρόγραμμα hkconfig .

# chkconfig ddclient on


Ας δούμε πως μπορούμε να επαληθεύσουμε να δουλεύει καλά.

Στην περίπτωση μου δεν δούλευε ο πελάτης αφού μέσα από το λογαριασμό μου στο dyndns.com δεν έβλεπα να αλλάζουν οι ρυθμίσεις. Η πρώτη μου προσέγγιση είναι αν αλλάξω το αρχείο ρυθμίσεων και κατόπιν να ξαναξεκκινήσω τον πελάτη.

Χρήσιμες είναι οι Οδηγίες ddclient που παρέχει ο dyndns ιστότοπος. Στη σελίδα αυτή υπάρχει και ένα ακόμα ποιό χρήσιμο σύνδεσμος προς ένα εργαλείο που δημιουργεί ένα αρχείο ddclient.conf για χρήση με τους dyndns ddns διακομιστές.

Αν έχουμε ένα διορθωμένο αρχείο ρυθμίσεων που θέλουμε να ελένξουμε τότε πρέπει να ξαναξεκινήσουμε τον πελάτη για να ενεργοποιηθούν οι νέες μας ή οι διορθωμένες μας ρυθμίσεις. Αύτο το πετυχαίνουμε με χρηση συνδυασμών των παρακάτω εντολών:

#ddclient start
#ddclient stop
#ddclient restart

Με το προτεινόμενο από το dyndns.com αρχείο και κάνωντας επανεκκίνηση ελέγξαμε τον λογαριασμό μας στον dyndns.com και φαίνεται να δουλεύει.

Προβλήματα και τί να προσέξετε[επεξεργασία]

Το πρόγραμμα ddclient μπορεί να εκτελεστεί μόνο από τον root.

Αν δεν είναι προσβάσιμοι οι ιστότοποί σας ελένξτε

  1. Την ip διεύθυνση που έχετε αυτή την στιγμή.
  2. Ελέγξτε στον λογαριασμό σας στον ddns εξυπηρετητή σας για το άν έχουν ενημερωθεί

τα domain names σας με τη νέα σας ip.

  1. Αν τα παραπάνω είναι οκ δοκιμάστε και μια επανεκκίνηση του apache
/etc/init.d/apache2 restart
  1. Ελέγξτε αν κάνατε πρόσφατα κάποια αλλαγή σε αρχεία ρυθμίσεων.


Εγκατάσταση διαμόρφωση επεξεργαστή κειμένου[επεξεργασία]

Σαν πρώτη μας επιλογή χρησιμοποιούμε τον emacs.

Διαμόρφωση χρωμάτων. Υποστήριξη ελληνικών. Ενσωμάτωση τρόπων λειτουργίας (modes) για τις γλώσσες που θα χρησιμοποιούμε.

Υπάρχουν τα πακέτα , τα οποία μπορείται να κατεβάσατε με synaptic.

  • php-elisp //υποστήριξη php στον emacs
  • ruby-elisp //υποστήριξη ruby στον emacs
  • html-helper-mode //υποστήριξη html στον emacs

Υπάρχει πιθανότητα να φορτώσουμε στον emacs αρχεία ISO 8859-7 ενώ ο emacs να χρησιμοποιεί την κωδικοποίηση που έχουμε καθορίσει στο locale, el.GR.UTF8. Σε αυτή την περίπτωση δεν θα εμφανίζονται σωστά τα ελληνικά και πρέπει είτε να αλλάξουμε locale και να ξαναξεκινήσουμε τον emacs είτε μέσα από τον emacs να αλλάξουμε την τρέχουσα κωδικοποίηση που χρησιμοποιεί είτε για το αρχείο είτε για τη σύνοδο.

Πως μπορούμε να αλλάξουμε το προκαθορισμένο locale με το οποίο ξεκινάει ο emacs αν θέλουμε ένα διαφορετικό από αυτό που χρησιμοποιείται καθολικά στο σύστημά μας;

Options -> Mule -> Set coding system -> For saving this buffer Στην echo γραμμή δώστε utf-8 [enter]

Δείτε και την εξής χρήσιμη ιστοδελίδα: emacs InternationalSetup

Αυτοματοποίηση διαμόρφωσης αρχικού περιβάλλοντος[επεξεργασία]

Κάποιες ενέργειες γίνονται κάθε φορά που ξεκινάτε μια σύνοδο εργασίας για να δουλέψτε στον ιστότοπό σας.

  • Σύνδεση με ftp πελάτη στον διακομιστή που φιλοξενεί τον ιστότοπό σας
  • Σύνδεση με ssh διακομιστή που φιλοξενεί τον ιστότοπό σας
  • Άνοιγμα στον περιηγητή σας του παγκόσμιου ιστού σχετικών σελίδων
  • Ανοιγμα άλλων σχετικών αρχείων (κώδικας,διαγράμματα κτλ).

Το ιδανικό θα ήταν κάθε φορά που συνδέεστε στον υπολογιστή σας και θέλετε να ξεκινήσετε να εργάζεστε στον ιστότοπό σας θα θέλατε με όσο ποιό σύντομα και με λιγότερο κόπο να βρίσκατε ανοιγμένα όλα τα σχετικά παράθυρα και όλες τις σχετικες συνδέσεις χωρίς να χρειαστεί να πληκτρολογείστε κωδικούς εντολές κτλ.

Αυτό μπορεί να γίνει στο debian σε gnome γραφικό περιβάλλον με χρήση εργαλείων όπως devilspie, δυνατότητα bookmarking του yafc, δυνατότητα αυτόματης πιστοποίησης που προσφέρει το ssh , ο session manager του gnome κτλ.