IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Le Shell
        Pourquoi est-il important de maîtriser la ligne de commande sous linux ?
        Comment fonctionne le shell ?
        Comment trouver un fichier ?
        5.1. Les commandes de bases (16)
                Comment exécuter un programme ?
                Comment lister les variables d'environnement ?
                Comment écrire un script shell simple ?
                Comment ajouter des alias ?
                Comment modifier un fichier en mode console ?
                Comment rajouter la coloration syntaxique dans vim ?
                Comment ouvrir une autre console ?
                Connaître le type d'un fichier
                Comment afficher/concaténer des fichiers ?
                Comment connaître le temps d'exécution d'une commande ?
                Quels raccourcis bash pour gérer mes commandes?
                Qui est connecté à cette machine?
                Comment envoyer un message à toutes les personnes connectés?
                Comment enlever les Bips-Bips des consoles?
                Quels sont les raccourcis claviers intéressants en ligne de commande ?
                Comment faire des opérations arithmétiques en shell?
        5.2. Commandes avancées (13)
                Comment connaître les différents processus en cours lancés par un programme ?
                Que signifie le caractère > ou < (redirection) ? Quelle utilité ?
                Que signifie le caractère | (pipe) ? Quelle utilité ?
                Que signifie le sticky bit ?
                Comment filtrer la sortie standard et/ou la sortie d'erreurs ?
                Comment effacer des fichiers selon leur date ?
                Que signifie le caractère & ? A quoi sert-il ?
                Comment passer un processus en background si on a oublié le &?
                Comment dialoguer avec un serveur ftp ?
                Démarrer un programme non-graphique en arrière plan et le rappeller à la volée ?
                Comment récupérer les 10 derniers caractères d'une chaine ?
                Comment faire une boucle sur une indice ?
                Quelle est la différence entre nohup et & ?

rechercher
precedent    sommaire    suivant    telecharger


Pourquoi est-il important de maîtriser la ligne de commande sous linux ?
auteur : Olivier Van Hoof (ovh)
Contrairement à Windows, linux peut être entièrement piloté en ligne de commande, par laquelle on a accès à toute sa puissance et toute sa configuration. L'interface graphique n'est qu'une couche applicative optionnelle, mais non nécessaire pour des serveurs par exemple (qui ne font basiquement que répondre à des requêtes réseau).

Un administrateur système se doit de maîtriser le shell pour diverses raisons :

  • même si certaines distributions ou applications proposent des assistants de configuration graphiques, c'est en modifiant les fichiers de configuration textuels qu'on arrive à paramétrer le plus finement le système
  • le shell et son langage sont très puissants et bien souvent il est très efficace de réaliser quelques scripts simples pour automatiser certains traitements sur des serveurs, ou modifier des configurations de services à la volée
  • par sécurité on évite d'installer tout élément non strictement nécessaire sur un serveur (exemple typique : une interface graphique), et son administration à distance se fera la plupart du temps en ssh, qui est un protocole d'accès sécurisé à la console par le réseau.
  • la maîtrise du shell permet de contrôler le système à 100% (surveillance complète de l'activité de la machine, démarrage et arrêt d'applications, gestion du multitâches, recherches rapides, etc.), et est donc un moyen très efficace d'administrer une machine
Une autre raison est que sous linux toute la configuration est transparente, stockée dans des fichiers textuels lisibles par tous et généralement bien documentés (commentaires). La configuration de pratiquement n'importe quel logiciel peut donc s'effectuer par un simple éditeur de texte, ou à l'aide de scripts où le langage Perl est assez populaire puisqu'il est spécialement dédié au traitement de chaînes de caractères.

Même pour une utilisation de linux en tant que station de travail où des assistants graphiques vous facilitent les tâches courantes (configuration de base, installation de logiciels, etc.), un minimum de notions de shell s'avéreront nécessaires dès que vous devrez vous plonger dans certaines configurations un peu plus complexes comme par exemple la modification des paramètres noyau, ou autres éléments système.


Comment fonctionne le shell ?
auteur : Olivier Van Hoof (ovh)
Le shell est un interpréteur de commande en mode texte (ou console). Il permet de passer des ordres (commandes) au système, et de "dialoguer" avec lui (on parle de shell interactif).
Il est possible de piloter entièrement linux en ligne de commande : démarrer, suspendre et arrêter des programmes, gérer les services (programmes résidents en mémoire), configurer le système (édition de fichiers texte), gérer les tâches planifiées, le multi-tâches, etc.

Une des premières choses à apprendre sous linux est le shell et ses commandes de base, car cela permet d'avoir une totale maîtrise du système.

Techniquement, le shell est une boucle infinie en C qui lit ce que l'utilisateur tape au clavier et réagit :
  • soit il s'agit d'une commande interne du shell qui est exécutée directement (fonction interne, ou builtin)
  • soit il lance un programme externe
  • il doit aussi interpréter les caractères spéciaux (redirection, pipes, etc)

lien : fr Que signifie le caractère > ou < (redirection) ? Quelle utilité ?
lien : fr Que signifie le caractère | (pipe) ? Quelle utilité ?

Comment trouver un fichier ?
auteurs : nyal, Mathk, vosaray
Il existe plusieurs façons de procéder pour trouver un fichier sous Linux. La méthode la plus utilisée est la commande locate :
$ locate nom_du_fichier
Cette commande affichera toutes les occurrences trouvées. Que ce soit une partie du nom d'un répertoire ou d'un fichier. Il se peut donc qu'il y ait beaucoup d'occurrences !
ps : Pour que la commande locate fonctionne, il faut préalablement créer sa base de données utile. Il faut pour cela éxecuter la commande updatedb en tant que root. Cette commande permet également de mettre à jour la base de données (sinon les modifications du système de fichier ne seront pas prises en compte) : il est donc judicieux de l'exécuter régulièrement (via un cron), par exemple.
Une autre méthode est d'utiliser la commande find :
$ find / -name "fichier.txt"
Cette commande affichera tous les fichiers se nommant fichier.txt à partir du répertoire racine.
Il est possible d'utiliser les expressions régulières :
$ find / -name "toto*"
Le résultat sera tous les fichiers et répertoires commençant par toto, suivi de n'importe quelle occurrence.
Pour éviter d'avoir les "permission denied" sur des répertoires :

find / -type f -name "le_fichier_a_chercher" 2>/dev/null 
find est très puissant, et permet aussi d'employer les expressions régulières, comme le montre l'exemple suivant qui permet de trouver tous les fichiers contenant une chaine ou une regexp dans une arborescence :
find <repertoire_depart> -type f -exec grep -H "<chaine_ou_regexp>" {} ;
Lorsqu'il s'agit de gros volumes de fichiers :
find <repertoire_depart> -type f | xargs grep -H "<chaine_ou_regexp>"
Renommer tous les fichiers conenant chaine en chene :
for i in `ls *chaine*` ; do mv $i `echo $i | sed 's/chaine/chene'` ; done
En récursif sur une arborescence :
for i in `find . -type f -name "*chaine*" ; do mv $i `echo $i | sed 's/chaine/chene'` ;done
Il y a même moyen d'effectuer des opérations sur fichier en appelant des scripts externes; par exemple : changer toutes les option=true en option=false dans tous les fichiers *.conf en recursif en gardant une copie de sauvegarde :
find . -type f -name "*.conf" | xargs perl -pi.save -e 's/option\=true/option\=false/'

rechercher
precedent    sommaire    suivant    telecharger

Consultez les autres F.A.Q's


Valid XHTML 1.1!Valid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2005 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.