ubuntu-fr

Communauté francophone des utilisateurs d'Ubuntu

Planet Ubuntu-fr - Shell

Fil des billets

jeudi, janvier 21 2010

Gravatar de CreaoneUtiliser bpython au sein de django pour Ubuntu via Creaone

Django logo bugSuite au commentaire de Narbonne sur l'article d'hier "Quelques outils utiles pour django" je livre aujourd'hui la rapide manipulation permettant d'utiliser bpython avec django. Bpython est un terminal python avancé. En temps réel il colore, indente, propose les méthodes liées aux objets courants, via l'introspection. Il contient un historique, et des commandes rapides pour enregistrer et "pastebiner" le contenu du terminal sans le quitter. Bref on gagne du temps.

Attention, l'ensemble des manipulations qui vont suivre peuvent rendre votre système d'exploitation Ubuntu instable. L'utilisation du compte admistrateur (commande sudo...) suscitent des risques pour lequel je décline toute responsabilité.

Installer bpython dans Ubuntu

Il existe trois méthodes, je vous livre ici la plus rapide, la plus simple, et la plus sûr pour votre système:

  • Depuis un terminal, tapez : sudo aptitude install bpython

Utiliser bpython dans django

  • Créer dans votre dossier personnel le fichier ~/.pythonrc et placer dans celui-ci :
try:
  from django.core.management import setup_environ
  import settings
  setup_environ(settings)
  print 'Importation de la configuration django'
  try:
    exec_strs = ["from %s.models import *"%apps for apps in settings.INSTALLED_APPS ]
    for x in exec_strs:
      try:
          exec(x)
      except:
          print 'Echec de l'importation pour %s' %x
    print 'Importation des modèles django'
  except:
    pass
except:
  pass
  • Editer, toujours depuis votre dossier personnel, le fichier /.pythonrc@@
  • Enfin relancer votre terminal (un onglet de guake dans mon cas)

bpython pour django

Via cette manipulation, bpython devient une alternative très intéressante vis à vis du couple "shell_plus + ipython".'' Billet conçu d'après l'article Using python shell ..''

EDIT: Sur IRC , Alexis propose le snippet bpython

mercredi, janvier 20 2010

Gravatar de CreaoneQuelques outils utiles pour django sous Ubuntu - "Debugging" via Creaone

Django logo bugTravaillant désormais depuis plus de neuf mois avec le framework django sur le prochain logiciel Opquast, je me permets, aujourd'hui, de fournir très modestement quelques retours d'expérience. Naturellement, toutes les étapes, les logiciels présentés ci-dessous sont compatibles avec la distribution Ubuntu. Pour MacOsX de simples adaptations semblent suffisantes, enfin pour Windows je vous laisse canoter. Cet article présente l'ensemble des outils me permettant de "débugger", tester plus rapidement du code "django / python". Attention, l'ensemble des manipulations qui vont suivre peuvent rendre votre système d'exploitation Ubuntu instable. L'utilisation du compte admistrateur (commande sudo...) suscitent des risques pour lequel je décline toute responsabilité.

Le terminal python de base

De base, Django fournit un outil, certes basique mais ô combien utile, le "TERMINAL". Ce dernier se lance via la commande python manage.py shell, uniquement si django est installé . Via l'interpréteur intéractif, le shell ou terminal, vous pouvez tout tester, instanciation de classe, concaténation de chaine, boucle for, conditions... Très rapidement on se rend compte qu'il manque : la coloration syntaxique pour s'y retrouver, un historique des commandes précédemment tapées, les bons imports initiaux, l'indentation automatique, la complétion. Bref on est face au bon vieux terminal type MS-DOS (allez, ...en un peu mieux).

Installation ipython

Il manque l'indentation automatique, l'historique, la complétion des objets, la coloration, aucun problème installez ipython via synaptic ou via la bonne vieille commande habituelle sudo aptitude install ipython. Aucune configuration supplémentaire l'interpréteur python est automatiquement "amélioré" tout comme l'interpréteur django, en effet ce dernier repose sur celui de python.

Mise à jour de django shell vers django shell_plus

  1. Télécharger le pack contenant shell_plus à l'adresse django-command-extensions
  2. Dézipper l'archive précédemment récupérés
  3. Via un terminal, tapez la commande sudo python setup.py install (cela fonctionne si django a été installé de la même manière, ou est situé dans /usr/local/lib/python2.6/dist-packages/)

Shell_plus

Au lancement de la commande l'ensemble des modules déclarés dans votre fichier de configuration settings.py sont automatiquement chargés, voir screenshot ci-dessus. On gagne un temps incroyable

Connaître les attributs et les méthodes d'un objet

Cette solution est très simple, mais pour l'instant je n'ai pas trouvé mieux.

  1. Démarrez un terminal django : python manage.py shell_plus
  2. Instancier votre objet : article = Article()
  3. Saisissez article. puis appuyer sur la touche "Tabulation de votre clavier", le terminal liste ainsi l'ensemble des attributs, méthodes disponibles

Shell plus , listing des attributs

Guake : Un terminal toujours sous la main

Enfin pour aller plus loin, je vous renvoie à l'installation de l'excellent terminal guake via sudo apt-get install guake. Guake via le raccourci "F12" est disponible depuis n'importe quel bureau, hautement pratique, surtout si comme moi, vous utilisez plusieurs bureaux.

samedi, octobre 24 2009

Gravatar de RespawnerInterdire l'utilisation d'un shell via SSH via Respawner

À côté ses utilisations les plus communes (shell, transfert de fichiers, etc), SSH est un bon outil qui permet de contrôler l'accès aux branches créées avec Bazaar. C'est couplé avec le Bazaar smart server que je l'utilise afin de savoir qui à le droit ou non de modifier les branches. Pour cela, chaque personne ayant le droit d'écriture doit disposer d'un compte sur la machine serveur. Cependant, il est prudent de limiter l'accès de ses personnes.

En effet, donner un compte utilisateur sur une machine possédant SSH revient généralement à donner l'accès au shell via SSH à cet utilisateur. Dans mon cas, je ne souhaite pas que l'utilisateur puisse avoir accès au shell mais seulement à ce qu'il puisse pusher ses branches via bzr+ssh://. L'idée est de laisser l'utilisateur se connecter puis de le déconnecter tout de suite après. Pour réaliser ceci, on édite alors le fichier /etc/passwd avec les droits d'administrateur. Ne le faites surtout pas si vous ne savez pas sur quoi vous allez tomber, cette manipulation s'avérer dangereuse pour votre système !

Une fois le fichier ouvert, on recherche l'utilisateur qui ne doit pas avoir accès au shell. La ligne doit ressembler à ça :
utilisateur:x:1004:1004:,,,:/home/utilisateur:/bin/bash

Ici on voit que le terminal de l'utilisateur est de type bash. On change alors la valeur /bin/bash (ou autre si elle est différente) par /bin/true. On obtient alors ceci :
utilisateur:x:1004:1004:,,,:/home/utilisateur:/bin/true

Lors de sa tentative de connexion, l'utilisateur aura droit à une déconnexion automatique.
utilisateur@localhost:~$ ssh utilisateur@domaine.tld
Last login: Sat Oct 24 14:05:26 2009 from ....
Connection to domaine.tld closed.


Bien entendu, les commandes utilisant bzr+ssh:// continueront à fonctionner.

vendredi, juillet 3 2009

Gravatar de u-classroomScripting Shell (2/2) : dans le vif du sujet via U-classroom

Après avoir abordé certaines notions essentielles au scripting shell jeudi dernier, U-Classroom vous propose une session dédiée au scripting shell en soi Vendredi 10 juillet à 19h30. Après avoir pratiqué sur quelques exemples durant la session, vous pourrez écrire vos premiers scripts comme des grands !

La session se déroulera comme d'habitude sur IRC, sur le canal #u-classroom du réseau Freenode.

Pour vous remettre les idées en place, les logs et cours sont disponibles en ligne :

À vendredi !

samedi, juin 27 2009

Gravatar de u-classroomProchaine session : scripting shell (1/2) via U-classroom

Nouvelle date pour la session de scripting shell (première partie) : Jeudi 2 juillet à 19H30 (heure de Paris). Cette session posera les bases nécessaires pour aborder sereinement le scripting en tant que tel. La seconde session aura probablement lieu la semaine suivante, mais la date sera confirmée plus tard.

Si les premières sessions "Survivre dans son TTY" sont un peu loin dans votre mémoire, les logs des sessions 1 et 2 sont en lignes, ainsi qu'un cours mis en forme sur notre wiki.

Les sessions se passeront comme d'habitude sur notre canal IRC #u-classroom sur le réseau freenode.

À bientôt.

dimanche, juin 21 2009

Gravatar de u-classroomScripting Shell : simplifiez vous la vie via U-classroom

U-Classroom continue sa série de cours sur le thème "Survivre dans son TTY" en abordant le scripting Shell dans les 2 prochaines sessions.

Une première session se déroulera le mercredi 24 juin à 19h30 (heure de Paris). Elle n'abordera pas le scripting en soi, mais les nombreuses notions qui vous permettront d'écrire vos premiers scripts en moins de temps qu'il n'en faut pour le dire.

La seconde session abordera le scripting lui même, et ça se passera le mercredi 1er juillet à 19h30.

Si les premières sessions "Survivre dans son TTY" sont un peu loin dans votre mémoire, les logs des sessions 1 et 2 sont en lignes, ainsi qu'un cours mis en forme sur notre wiki.

Les sessions se passeront comme d'habitude sur notre canal IRC #u-classroom sur le réseau freenode.

À mercredi !

lundi, mai 4 2009

Gravatar de u-classroomProchaine session : Survivre dans son TTY #5 via U-classroom

Pour le cours de cette semaine, nous continuons avec la série Survivre dans son TTY. Une session qui abordera un outil fort pratique pour tous CLI user qui se respecte : GNU screen. C'est un cours qui sera un peu plus long que les précédents mais qui se destine toujours à toutes personnes, débutant compris bien sûr. Si vous ne connaissez pas, GNU screen est un "Multiplexeur d'écran avec une émulation de terminal VT100/ANSI" (merci apt-cache show pour la définition) : en d'autres termes, il permet d'avoir plusieurs terminaux dans un seul et de jouer avec eux. Je présenterai aussi brièvement en début (ou en fin ?) de cours deux autres outils du même genre à savoir dtach et dvtm.

Nous vous attendons donc le Jeudi 07 mai à 19H30 Heure de Paris (@770 07.05.2009 SIT) sur le canal #u-classroom du réseau Freenode (#u-classroom@irc.freenode.net) (et bien sûr n'oubliez pas que si vous n'êtes pas très copain avec IRC ,vous pouvez retrouver une petite introducion à IRC afin de nous rejoindre facilement).

  • Intitulé du cours : Survivre dans son TTY #5 : GNU Screen and friends
  • Niveau : Pour débutant
  • Date : Jeudi 07 mai 2009
  • Heure UTC : 17H30
  • Heure de Paris : 19H30
  • Heure de Québec : 13H30
  • SIT : @770 (07.05.2009)
dimanche, avril 19 2009

Gravatar de u-classroomProchaine session : Survivre dans son TTY #4 via U-classroom

Cette semaine u-classroom.net va vous présenter une session éclair sur une base de l'apprentissage sous gnu/linux et Unix de façon générale : Trouver de l'aide avec MAN/INFO. En tant que débutant, on peut souvent être un peu perdu dans toutes ces documentations, nous essayerons d'y voir un peu plus clair ensemble. Bien que ce cours s'inscrive dans le thème maintenant récurant de Survivre dans son TTY, les GUI users débutants pourront y trouver un intérêt, car évidemment les pages de manuels sont disponibles en dehors du terminal/TTY.

Nous vous attendons donc le Jeudi 23 avril à 19H00 Heure de Paris (@750 23.04.2009 SIT) sur le canal #u-classroom du réseau Freenode (#u-classroom@irc.freenode.net) (et bien sûr n'oubliez pas que si vous n'êtes pas très copain avec IRC ,vous pouvez retrouver une petite introducion à IRC afin de nous rejoindre facilement).

  • Intitulé du cours : Survivre dans son TTY #4 : Trouver de l'aide avec MAN/INFO sous Unix
  • Niveau : Pour débutant
  • Date : Jeudi 23 avril 2009
  • Heure UTC : 17H00
  • Heure de Paris : 19H00
  • Heure de Québec : 13H00
  • SIT : @750 (23.04.2009)
samedi, avril 18 2009

Gravatar de MotarionBASH – Rajouter la date dans l’historique des commandes via Motarion

Après avoir eu un serveur de piraté j’ai pu voir les commande qu’avait passé le pirate, sans pouvoir savoir exactement quand il les avait utilisées (Il n’avait pas nettoyé l’historique). J’ai donc cherché sur Internet une solution sans trouver grand chose pour Bash.

Cette modification est totalement anodine pour le système et ne peut entraîner de perte de donnée.

Après avoir acheter un livre sur Bash j’ai trouvé mon bonheur. Il faut absolument avoir la version 3.0 ou plus de bash. Ubuntu Dapper Drake et les version suivante intègre d’office une version supérieur à la 3.0.

motarion@cyber-workstation:~$ bash --version
GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.

Pour activer la date dans l’historique il suffit de lancer la commande suivante:

export HISTTIMEFORMAT="%Y/%m/%d @ %T "

Voici le résultat:

  456  2009/04/18 @ 13:58:32 ping free.fr
  457  2009/04/18 @ 13:58:35 ls
  458  2009/04/18 @ 13:58:48 spas
  459  2009/04/18 @ 13:58:55 history

Attention: cette modification n’est pas persistente et si vous fermez le SHELL actuel la modification sera perdue!

Pour rendre cette modification persistente il y a deux solutions:

  • Modifier le fichier .bashrc de chaque utilisateur
  • Modifier la configuration Globale de Bash

    I – Pour la première solution, il faut savoir que les nouveaux utilisateur ne profiteront pas de la modification. Si vous êtes le seul à vous connecter dans ce cas c’est la solution la plus simple. Lancez l’éditeur de texte que vous préférez puis copier la ligne suivante en fin de fichier:

    export HISTTIMEFORMAT="%Y/%m/%d @ %T "

    Édition du fichier:

    nano .bashrc

    II – La seconde solution permet de l’activer pour tout le système, même pour les nouveaux utilisateurs:

    sudo nano /etc/bash.bashrc

    Puis copiez en fin de fichier la commande suivante:

    HISTTIMEFORMAT="%Y/%m/%d @ %T "

    Vous pourrez alors constater que la modification est active pour tous les nouveaux Shell que vous ouvrirez.

    PS: Cette astuce fonctionne aussi sur Debian depuis la version Etch bien que le chemin de configuration de bash puisse changer.

    PR: wait… I: wait… L: wait… LD: wait… I: wait… wait… Rank: wait… Traffic: wait… Price: wait… C: wait…
    lundi, avril 13 2009

    Gravatar de u-classroomProchaine session : Survivre dans son TTY #3 via U-classroom

    Bonjour à tous. Cette semaine legreffier nous a préparé un cours qui va en intéresser plus d'un. En effet pour cette troisième session sur le thème Survivre dans son TTY, il sera question sur u-classroom de ZSH (Z Shell), le fameux shell que beaucoup préfèrent à bash pour ses nombreuses fonctions avancées et ses inovations. Ce cours est pour tous niveaux, cependant, vous devez savoir vous servir d'un terminal un minimum (si vous n'êtes pas à l'aise, vous pouvez retrouver une initiation au terminal ici).

    Toute l'équipe d'u-classroom vous convie donc autour de legreffier pour ce cours qui aura lieu le Vendredi 17 avril 2009 à 20H30 Heure de Paris (@812 17.04.2009 SIT) sur le canal #u-classroom du réseau Freenode (#u-classroom@irc.freenode.net) (si vous n'êtes pas familier avec irc, vous pouvez vous référer à notre introduction).

    • Intitulé du cours : Survivre dans son TTY #3 : ZSH (Z Shell) le shell unix
    • Niveau : Pour débutant
    • Date : Vendredi 17 avril 2009
    • Heure UTC : 18H30
    • Heure de Paris : 20H30
    • Heure de Québec : 14H30
    • SIT : @812 (17.04.2009)