/////////////////////////////////////////////////////////////////////////////////////////////////////// NB : ceci est mon "pense-bête" _personnel_ : j'y mets mes notes au fur et à mesure de ma découverte de Linux (Mandrake principalement, Debian/Knoppix parfois) : vous y trouverez donc des erreurs, des explications incomplètes et des choses que je suis le seul à comprendre. Mais comme certaines explications peuvent être utiles, je laisse ce fichier en ligne. Il n'y a pas (encore) de classement ou de liens : utilisez la fonction recherche de votre "butineur". A utiliser à vos risques et périls :) Jean-Claude Garaud /////////////////////////////////////////////////////////////////////////////////////////////////////// Les mines de renseignements =========================== http://tldp.org/LDP/intro-linux/html/ Introduction to Linux http://tldp.org/LDP/intro-linux/html/chap_04.html Processes http://www.freenix.fr/unix/linux/Guide/ (le guide du rootard) http://www.delafond.org/survielinux/ Guide de survie du débutant sous Linux http://lea-linux.org http://www.funix.org/fr/linux/main-linux.php3?ref=main&page=menu http://www.zebulon.org.uk/ http://christian.caleca.free.fr/index.html http://aplawrence.com http://linux-newbie.sunsite.dk/index.html http://www.unixguide.net/linux/linuxshortcuts.shtml http://www.freeos.com http://www.anfalab.org http://tldp.org http://www.linux-france.org/article/cesar/index.php?page=501 http://astuce.linux.free.fr/ http://troumad.free.fr/Linux/Linux.sxw http://guide.andesi.org http://funix.chez.tiscali.fr/informatique/linux/ http://linux-sottises.net http://www.univ-st-etienne.fr/infsci/linfo/l0/unix/Cours/Html/ UNIX Principes de base http://cyberzoide.developpez.com/unix/ Pense bête pour UNIX Programmation ============= BASH ---- - Bash Guide for Beginners http://www.tldp.org/LDP/Bash-Beginners-Guide/html/index.html - BASH Programming - Introduction HOW-TO http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html - Guide avancé d'écriture des scripts Bash http://www.bsdbooks.net/shells/scripting/fr/ http://abs.traduc.org/abs-3.1-fr/ Advanced Bash Scripting Guide : http://www.tldp.org/LDP/abs/html/ http://personal.riverusers.com/~thegrendel/abs-guide-3.3.tar.bz2 - Linux Shell Scripting Tutorial http://www.freeos.com/guides/lsst/ Quelques trucs ============== Identifier le shell ------------------- echo $SHELL cf. http://unix.about.com/library/weekly/aa092500a.htm La commande ps retourne les processus actifs, et en particulier le shell Connaître la configuration matérielle et logicielle --------------------------------------------------- cf. http://lea-linux.org/admin/exploration_config.html Version de mandrake installée : cat /etc/mandrake-release Version du noyau Linux : uname -sr (cf. man uname) Déterminer le type d'un fichier ------------------------------- file nomfichier Infos sur un fichier (ou répertoire) ------------------------------------ stat nom_fichier (donne en particulier le nombre de "hard links") Récupérer le code de sortie d'une commande (errorlevel) ------------------------------------------------------- Très utile dans les scripts, ce code peut aussi être visualisé directement en ligne de commande grâce à echo $?. Exemple : $ mount | grep /dev/hda1 echo $? 1 => la partition /dev/hda1 n'est pas montée, n'existe pas, est déjà montée ... (voir man mount) $ mount | grep /dev/sda7 /dev/sda9 on /mnt/backup type ext3 (rw) $ echo $? 0 => la partition /dev/sda9 est montée Configuration matérielle ======================== D'après Gnu/linux magazine N°71 Bus PCI ------- $ lspci $ lspci -v $ lspcidrake Bios et hardware ---------------- # dmidecode (à installer) Exemple : chercher les caractéristiques de la carte mère : # dmidecode | less Dans less taper h (pour la doc en ligne) -i (pour des recherches en ignorant la casse) /board (pour trouver la 1° occurence de board) n (pour la suivante) N (pour revenir à la précédante) # lshw # lshw -html Disque dur : ---------- # hdparm -i /dev/hdx Nb : ne fonctionne pas (actuellement 14-4-2005) avec disques SATA ; dans ce cas taper hdparm /dev/sdx qui ne retourne pas des infos vraiment intéressantes SMARTmontools (=smartctl) Processeurs ----------- $ cat /proc/cpuinfo Arrêter le PC ============= cf: http://www.faqts.com/knowledge_base/view.phtml/aid/24476/fid/10 Pour l'arrêter complètement : halt shutdown now shutdown -h now (h = halt) Avec redémarrage : shutdown -r now (r= reboot) ou <CTRL><ALT><DEL> A partir de X Window, d'abord <CTRL><ALT><BACKSPACE> pour quitter X Windows, puis <CTRL><ALT><DEL> shutdown +3 (shutdown dans 3 minutes) shutdown -c supprimer l'arrêt programmé par la commande précédante shutdown -Fr now shutdown -fr now -F = avec fsck au reboot -f = sans fsck au reboot init 5 Fichiers standard ----------------- cf. http://livefirelabs.com/unix_tip_trick_shell_script/june_2003/06092003.htm Un programme UNIX standard ouvre par défaut 3 fichiers Nom Numéro - standard input (stdin) 0 - standard output (stdout) 1 - standard error (stderr) 2 Redirections ------------ cf. http://unix.about.com/library/weekly/aa110600b.htm#stderr Rediriger la sortie d'une commande vers un fichier : cmd > fic Rediriger stderr vers un fichier : cmd 2> fic Rediriger stdin et stderr vers le même fichier : cmd > fic 2>&1 Rediriger stdin et stderr dans 2 fichiers différents : cmd > fic1 2> fic2 Diriger le résultat (stdout) d'une commande simultanément vers l'écran et un fichier : cmd | tee fic Diriger le résultat d'une commande (stdout + stderr) simultanément vers l'écran et un fichier : cmd 2>&1 | tee fic Pour ajouter à un fichier déjà existant, remplacer > par >> Pour tee, l'option d'ajout est -a : cmd | tee -a fic Arborescence (nom des répertoires) ================================== http://www.pathname.com/fhs/2.2/ okki666.free.fr/docmaster/articles/linux025.htm Différence entre bin et sbin : bin=binaires, sbin=binaires système. => pour un utilisateur standard bin peut être dans le PATH, mais sbin n'a aucune raison d'y être. / racine (root) du système de fichiers /bin programmes nécessaires pour démarrer le système en mode mono-utilisateur. /boot /dev device files : points d'entrées vers des périphériques physiques /etc fichiers de configuration /home données propres à chaque utilisateur /lib shared libraries nécessaires aux programmes de démarrage (principalement des programmes placés dans /bin et /sbin). /mnt pour le montage pour les périphériques en mode block (cdrom, floppy ...) /proc infos sur l'état du système et les différents processus /sbin programmes nécessaires au fonctionnement du système Les commandes placées dans /sbin (et dans /bin) ne sont en général pas exécutées par les utilisateurs. /tmp fichiers temporaires /usr usr = Unix System Resources. Données que les utilisateurs peuvent se partager /var fichiers qui sont susceptibles de changer fréquemment : logs, les files d'attentes pour les impressions, etc. Répertoires dans /usr X11R6 système Xwindow X11R6/bin exécutables pour le système Xwindow. X11R6/lib librairies pour les programmes dans /usr/X11R6/bin. X11R6/lib/X11 librairies utiles au démarrage du serveur Xwindow. X11R6/include/X11 fichiers d'entêtes des applications X11. bin programmes utilisables sur le système. bin/X11 liens symboliques (et historiques) vers /usr/X11R6/bin dict dictionnaires utilisés par les vérificateurs orthographiques etc fichiers de configuration qui peuvent être partagés entre plusieurs machines. Vide sur MDK include fichiers entêtes (.h) pour le compilateur C lib librairies utilisées par les programmes des utilisateurs. Sous-répertoires pour les grosses applications Contient aussi des programmes qui ne sont jamais lancés directement X11 lien symbolique vers /usr/X11R6/lib/X11 local ce qui est spécifique à la machine locale local/bin programmes local/lib librairies local/doc documentations man man pages src sources des diverses applications installées sur le système. src/linux sources du noyau. Les répertoires dans /var lock fichiers de verrouillage. Par convention, le nom des fichiers est toujours LCK.<périphérique> log logs du système preserve sauvegardes d'édition de vi. spool contient les files d'attentes d'impressions spool/cron entrées crontab pour l'automatisation des tâches. spool/lpd fichiers en attente d'impression. spool/mail boîtes à lettres (mailbox) et les messages (mails) des utilisateurs. PATH ---- Affichage : echo $PATH Ajout : PATH=$PATH:nouveau_rep Pour que la nouvelle valeur soit utilisée par le shell et les threads : export PATH Ou en une seule commande : export PATH=$PATH:nouveau_rep Quelques touches rapides très pratiques ======================================= http://linux-newbie.sunsite.dk/lnag_commands.html#shortcuts et touches système : http://www.linux-france.org/article/cesar/index.php?page=5035 <Ctrl><+> Zoomer (nombreux browsers, konqueror, firefox ...) <Ctrl><-> 'dé'zoomer <Ctrl><Alt><Esc> lance xkill <Ctrl><Alt><BkSpc> kill le serveur X-windows courant <Ctrl><d> en début de ligne : ferme le terminal courant sinon envoie EOL au processus courant <Ctrl><z> Envoie le processus courant en tâche de fond Sous KDE -------- <Ctrl><Esc> Visualisation avec possibilité de suppresion des processus <Alt><F12> (Bascule) permet d'émuler la souris à l'aide des flèches du clavier <Alt><PrintScreen> Met une image de la fenêtre courante dans le presse-papier <Ctrl><Alt><PrintScreen> " de l'écran " " <Ctrl><Alt><d> (Bascule) fait apparaître/disparaître les fenêtres présentes sur le bureau <Alt><LeftMouseButton> Permet de déplacer une fenêtre dont la barre de titre est inaccessible Raccourci touches rapides <Alt><F2> ----------------------------------- Ouvre une fenêtre pour taper une commande. A partir d'une session utilisateur, pour lancer une commande en root : kdesu commande Ce raccourci manque dans KDE, session root Pour l'installer : Menu : System / Configuration / KDE / Accessibility / Keyboard shortcuts / Modifier Keys et cliquer sur Defaults magic sysrq keys ---------------- Pour arrêter une machine plantée. http://snafu.freedom.org/linux2.2/docs/sysrq.txt (EN) NB : il faut que le noyau ait été compilé avec 'Magic SysRq key' à yes (CONFIG_MAGIC_SYSRQ). <ALT><SysRQ><command key> <command key> : 'r' - Turns off keyboard raw mode and sets it to XLATE. 'k' - Kills all programs on the current virtual console. 'b' - Will immediately reboot the system without syncing or unmounting your disks. 'o' - Will shut your system off via APM (if configured and supported). 's' - Will attempt to sync all mounted filesystems. 'u' - Will attempt to remount all mounted filesystems read-only. 'p' - Will dump the current registers and flags to your console. 't' - Will dump a list of current tasks and their information to your console. 'm' - Will dump current memory info to your console. '0'-'9' - Sets the console log level, controlling which kernel messages will be printed to your console. ('0', for example would make it so that only emergency messages like PANICs or OOPSes would make it to your console.) 'e' - Send a SIGTERM to all processes, except for init. 'i' - Send a SIGKILL to all processes, except for init. 'l' - Send a SIGKILL to all processes, INCLUDING init. (Your system will be non-functional after this.) Utilisation de "info" ===================== <q> quitter <p> previous node <n> next node Menus : se déplacer à l'aide des flèches sur une entrée de menu indiquée par :: <entrée> sélectionne l'entrée de menu <u> up (pour revenir en arrière) ps === $ ps affiche tous les processus lancés par l'utilisateur dans le terminal $ ps -x affiche tous les processus lancés par l'utilisateur $ ps -aux affiche tous les processus lancés par tous les utilisateurs pstree ------ affiche les processus sous forme d'arborescence less ==== less fichier ls -l /etc | less Recherche : /chaine_cherchée Les chaînes trouvées apparaissent en surbrillance Pour passer à la suivante : n précédente : Shift n Pour quitter : q grep, egrep =========== http://www.linux-tutorial.info/modules.php?name=Tutorial&pageid=32 Rechercher une chaîne de caractères dans l'ensemble des fichiers d'un répertoire --------------------------------------------------------------------------------- find répertoire -print | xargs grep chaîne_cherchée => -print | xargs permet de faire affichier en début de ligne le nom du fichier qui contient la châine cherchée Rechercher simultannément plusieurs chaînes -------------------------------------------- Exemple egrep "while|read|for" /repertoire/* Afficher le contenu de tous les fichiers d'un répertoire en évitant les lignes vides et les commentaires ---------------------------------------------------------- egrep -v "^$|^#" /repertoire/* | less -v --invert-match ^ début de ligne $ fin de ligne ^# ligne commençant par # Afficher le nom des fichiers contenant une chaîne grep -l chaîne_cherchée /repertoire/* sed === sed s/"chaîne_cherchée"/"chaîne_de_remplacement"/g fichier_source > fichier_destination s substituer / entre // la chaîne à chercher et la chaîne qui la remplace g répéter la substitution Quelques commandes intéressantes ================================ lspci ----- lspci |less lspci v |less lspci vv |less Affiche toutes les infos concernant le bus PCI et les périphériques qui y sont connectés. tail ---- tail /var/log/syslog affiche les 10 dernières lignes tail -n 30 /var/log/syslog affiche les 30 dernières lignes tail -f /var/log/messages affiche en continu les 10 dernières lignes du fichier lsof ---- En l'absence de toute option, lsof retourne la liste de tous les fichiers ouverts appartenant aux pocessus actifs lsof -i tous les fichiers internet lsof -i :25 tous ceux qui utilisent le port 25 (SMTP) lsof -i |grep imap tous les processus IMAP actifs find ---- http://www.linux-mag.com/2001-04/newbies_01.html http://www.linux-mag.com/2002-09/power_01.html Nb: - AND implicite entre les opérateurs ! - la commande est récursive ; pour limiter la profondeur de recherche : -maxdepth n find / -name fichier.txt localiser fichier.txt à partir de la racine find . -name fichier.txt à partir du répertoire où l'on se trouve find / -name fichier.txt -ls affiche à la manière de ls find / -name fichier.txt 2>/dev/null supprime les messages d'erreur find / -name '*fic*' trouve la chaîne fic dans les noms de fichiers ou répertoires find / -iname '*fic*' ignore la casse find / -size +10000k trouve les fichiers de plus de 10000k (k = kilobytes, c = bytes) find /home -iname '*do*' -type d 2>/dev/null tous les répertoires contenant do dans le nom (ignore la casse) -type d directory f regular f...
musli_com