Wiki

Reso-nance numérique | Arts et cultures libres

Outils du site


Panneau latéral

logiciels:linux:2.priseenmain
**************************
* Prise en main de Linux *
**************************
Après avoir compris comment un système Linux était organisé, il faut maîtriser deux choses essentiels, la commande "man", nécessaire à votre survie et l'utilisation du terminal. Ainsi, on peut se débrouiller sans tout connaître.
 
************************************
* Commandes pour afficher une aide *
************************************
man : affiche les pages du manuel de la commande
apropos : donne une brève description de la commande
info : n'est pas installer sur PureDyne
 
**********************
* Utilisation de man *
**********************
Ca ne prend pas trop longtemps, il faut au moins lire une fois la description de la commande "man" :
$ man man
 
On peut voir que man est organisé en plusieurs rubriques.
$ man -k signal : recherche du mot dans les pages man
$ man -f signal : pages de manuel avec signal. Le chiffre entre parenthèse correspond à une des rubriques.
 
Une fois dans man, quelques commandes sont utiles :
"h" : help, affiche les commandes de man
"q" : quitter
"return" : voir la page suivante
"espace" : circuler dans la page
"SHIFT"+"/" : trouver une chaine de caractère (un motif). Après avoir entrer le texte à rechercher, appuyer sur entrée.
"n" : pour naviguer vers le motif trouvé suivante
"p" : pour naviguer vers le motif trouvé précédente
"t" : début
 
***************************
* Utilisation du terminal *
***************************
touche "TAB" : complétion des mots. Très utile !
 
echo $TERM : quel est le terminal utilisé
echo $SHELL : quel est le programme shell utilisé.
 
C est la touche "Ctl"
^ est la touche "Ctl" aussi
M est la touche Méta, la touche "Alt"
 
C-l : nettoyer le terminal
C-a : pour aller au début de la ligne
C-e : pour aller à la fin
M-f : se déplacer de mot en mot
M-b : meme chose mais en arrière
C-f : lettre par lettre
C-b : meme chose mais en arrière
C-u : effacer toute la ligne
M-u : met en capital le mot suivant
C-k : effacer tout ce qui est derrière le curseur
 
Flèches
-------
gauche et droite pour bouger le curseur dans la ligne de commande.
haut et bas pour sélectionner les commandes précédentes
 
Historique des commandes
------------------------
history : Affiche les dernières commandes que vous avez lancer et leur numéros. Vous pouvez alors utiliser copier et coller.
!! : rappeler la dernière commande. Par exemple, 
sudo !! : lancer la dernière une commande avec les droits du superutilisateur sudo.
!103 : rappeler une commande par son numéro
!cat : rappeler la dernière commande avec le début d'une chaîne de caractères
^more^less : substitution sur la dernière commande
more !* : lancer une autre commande avec les mêmes arguments
 
Copier coller
-------------
- Sélection avec la souris pour copier, appuyer sur la molette pour coller.
- Ou bien Ctl-Insert et Shift-Insert
- Ou bien Ctl-Shift-C et Ctl-Shift-V (ne marche pas dans PureDyne)
 
**************************************
* Commandes de base sur les fichiers *
**************************************
pwd (print working directory) : on est dans quel répertoire ?
 
cd (change directory) : se déplacer dans le répertoire
cd : tout seul, nous fait aller dans notre répertoire utilisateur.
cd .. : aller dans le répertoire parent.
cd ~ : la même chose. le caractère tilde "~", est un alias pour désigner le répertoire utilisateur.
"cd /home/jerome/Test" est la même chose que "cd ~/Test"
 
ls
ls -a : affiche tout "." (dossier courant), ".." (dossier parent), .bashrc, etc...
ls -F : ajoute / aux dossiers
ls -l : format long, trier par nom
ls -d : directory
ls -R Rep : récursivité
ls -r : ordre inverse
ls -c : trier selon date de modification
ls -s : affiche la taille de chaque fichier, en blocs trie selon le MODE plutôt que le nom :
	aucun -U,
	extension -X
	taille -S
	date -t
	version -v
ls -S : trier selon taille
ls -h : human pour afficher la taille
ls -Shl
ls -FSsh | grep -Ev '*/' : affichage uniquement des fichiers classés par taille
ls -FSsh | grep -Ev '*/' | grep -Ev '^4,0K'
ls -FSsh | grep -Ev '^4,0K'
 
cp source destination
cp -rf ~/Test/*.jpg /media/cleusb/images/ : copier tous les fichiers se terminant par .jpg
 
file * | grep -Ev 'directory'
file -b *
file -N *
 
touch : modifier l'horodatage d'un fichier
touch sur un fichier existant = rien, sinon il le crée
touch -t 2001010000 f4 : fichier avec la date 1er janvier 2020 à 00h00min
 
chmod : modifier les droits 
a (all), u (user), g (group), o (other)
+ (ajouter des droits) ou bien "-" (en enlever)
r,w,x,t
chmod -R a+rwx ./Test : donne des droits de lecture (r), écriture (w) et d'exécution (x) à tout le monde (a) sur l'ensemble du répertoire ./Test, ainsi qu'à tous ses sous-répertoires (-R pour récursivité).
 
chown : changer les droits du propriétaire
 
rm : supprimer un fichier
rm test.txt
rm -rf : supprimer un répertoire (-r pour la récursivité et -f pour forcer la suppression même si le dossier n'est pas vide)
rm -rf ~/Bureau/Test/* : supprime tous les fichiers du répertoire ./Test
 
mv : renommer un fichier ou un répertoire
 
ln -s : créations de liens symboliques
ln -s f8 f4 : déclarer f4 comme lien symbolique sur f8
ln -s source destination
 
wc : compter les mots, caractères, lignes dans un fichier
wc -c : bytes
wc -w : word
wc -l : ligne
 
cat
cat -n essai : affiche aussi les numéros des lignes
head essai : 10 premières lignes
tail essai : 10 dernières lignes
head -n 25 essai : 25 lignes
head -v essai essai1 essai2 : tous les fichiers, v = verbose
tail -f tmp.txt --follow[={nom|descripteur}]
afficher les dernières données ajoutées au fur et à  mesure  que  le  fichier  s’accroît
 
diff -c essai1 essai2 : différences entre deux fichiers
 
cat README | pager : pour afficher un fichier trop long.
more ou less ou pager
commandes : ' ', 'b', 'f', '/motif', 'n', 'v', '^l', '=', '!', ':n', ':p'
 
dirname Rep/R1/f9.text => Rep/R1/
basename ./Shell/tmp.txt => tmp.txt
basename ./Shell/tmp.txt .txt => tmp
 
du  Shell*
du -s Shell*
du -sh <rep> -s: rend la somme des tailles de tous les fichiers dans le répertoire donné.
 
df -h Affiche les informations d’espace disque pour tous les systèmes de fichiers disponibles sur le système.
 
find : trouver un nom de fichier
find /usr/share -name "*bash*"
find . -exec grep -l "ligne" {} \; : quels sont les fichiers qui ont "ligne" dedans
find /usr/include -print -exec grep 'scanf' {} \; quels sont les fichiers de /usr/include qui contiennent le mot scanf
 
(~) % find /usr/lib/pd -name "*ascii*" : trouver tous les fichiers (pour Pure Data ici), qui ont "ascii" dans leur noms.
/usr/lib/pd/extra/pidip/pdp_ascii-help.pd
/usr/lib/pd/extra/gridflow/doc/flow_classes/ascii_to_f-help.pd
/usr/lib/pd/extra/gridflow/doc/flow_classes/ascii-help.pd
/usr/lib/pd/extra/gridflow/abstractions/ascii_to_f.pd
/usr/lib/pd/extra/gridflow/abstractions/ascii.pd
/usr/lib/pd/extra/unauthorized/blm/ascii_people.blm
/usr/lib/pd/extra/iemlib/prepend_ascii-help.pd
 
grep --help. Trouver un motif dans un fichier. Affiche les lignes contenues dans des fichiers qui répondent au pattern.
grep -w : que le mot en début ou fin
grep -v : inverse la sélection
grep -i : insensible à la casse
grep -n : affiche le numéro de ligne
grep -c : affiche juste le nombre de lignes de la sélection
grep -l : que les noms de fichiers
grep -e : on protège le fichier commençant par '-' par exemple
grep -E : expressions régulières étendues
grep -o : affiche que l'expression filtrée
 
 
locate : recherche à partir d'une base de donnée
locate lst | grep sty
 
sort -k3 -n -u notes : on trie le champ 3 qui correspond aux notes en ordre décroissant numérique. On élimine les doublons
sort -k1,1
sort -t '.' -k3 : séparateur
 
dd : convertir et copier un fichier
dd if=/dev/zero of=zeros bs=10M count=1 : créer un fichier zeros de 10Mo contenant que des 0 (/dev/zero)
 
unzip pix_mano-src.zip : décompresser un .zip
gzip
tar xvf archive.tgz : Extraire tous les fichiers d’une archive
tar zcvf archive.tgz archive : Compressez
 
*************
* CARACTERES SPECIAUX *
*************
Chaque processus a : 
- une entrée standard (numéro 0)
- une sortie stanard (numéro 1)
- une sortie d'erreur (numéro 2)
 
> : redirection de la sortie standard
< : redirection de l'entrée standard
>>
| : pipe
 
history > ~/Bureau/history.txt
echo "bonjour" > test.txt : vide et ajoute "bonjour" dans le fichier "test.txt" 
echo "c'est moi" >> test.txt : ajoute "c'est moi" à la fin du fichier.
ls /nosuchplace 2> /tmp/errors : permet de ne pas afficher la sortie d'erreur "2>" dans le terminal mais dans un fichier.
 
***************
* Utilisateur *
***************
sudo su
who
whoami
groups
id
chmod
chown
adduser
addgroup
 
**************
* Programmes *
**************
which pdextended : connaître le chemin du programme
which ls
 
Compression/Décompression
-------------------------
 
tar zxvf qc-usb-X.XX.tar.gz
 
Texte
-----
mousepad fichier.txt
gedit fichier.txt
nano .asoundrc : éditeur de texte dans le terminal. Les commandes sont commentés lorsqu'on le lance. 
 
Image
-----
risoletto xxx/P1040636.JPG 
eog P1.jpg
 
PDF
---
evince paperduino.pdf 
 
*************************
* Gestion des processus *
*************************
“Tout dans Unix est fichier Tout dans Unix qui n'est pas un fichier est un processus”
- Instance d'un programme en cours d'exécution
- Plusieurs instances d'un même programme peuvent s'exécuter en même temps
- Données associées aux processus: ouvrir un fichier, mémoire allouée, pile, id processus, parent, priorité, état...
 
man ps
ps --help
ps uxw
ps uxww : coupe à la ligne quand la ligne dépasse l'écran. 2 lignes = 2 "w". w = wide
ps ax : a : tous les processus de tous les utilisateurs / x : sans terminal de contrôle
 
TACHES
------
Linux = multi tâches
top : afficher les tâches
top -s 1.0 :affichage toutes les secondes ou top -d (delay)
h : help
u : user
z : color
x : highlight sort field
n : nombre de processus
< ou > : changer de champ pour le tri
R : normal ou reverse sort
k : kill  with signal : 9
 
ps ux | grep jr
PID: (Process ID) Identifiant du processus
VSZ: (Virtual SiZe)Taille virtuelle du processus (code + données + pile)
RSS: (ReSident Size) Nombre de Ko occupés en mémoire
TTY: (TeleTYpe) Terminal
STAT: Statut: R (Runnable: exécutable), S (Sleep: endormi), W (paging: en cours de pagination), Z (Zombie)...
 
JOB-CONTROL
-----------
Plusieurs processus à faire tourner dans un même terminal.
Ensemble des services offerts pour lancer plusieurs processus, suspendre ou arrêter l'activité de certains, les passer en avant ou arrière plan.
Il ne peut y avoir qu'un processus en avant, auquel est connecté l'entrée du terminal. lancer à partir du shell vim et vim&
 
jobs
jobs -l
 
man gcc
C-z => en arrière plan = suspendre
bg 2 : mettre en arrière plan
fg 1 : mettre en avant plan
 
jobs
kill %numerojobs
xkill : en mode graphique
 
SIGNAUX
-------
communication entre processus
liste des signaux : man 7 signal
kill -l
-9 = SIGKILL
kill -s SIGTSTP 10725
kill -20 10725
C-z = signal SIGTSTP au processus courant
 
 
ps aux | grep pd : afficher tous les processus qui ont "pd" dans leur nom
kill -9 1814 : envoi du signal 9 (KILL) au processus dont l'identifiant (PID) est 1814
killall pd
xkill : tuer un processus avec la souris
 
 
***************************
* Installer des logiciels *
***************************
 
**************
*** Méthodes *
**************
De préférences, utiliser le système de paquets automatique.
Si le logiciel ne peut être téléchargé et installé via ce système, alors on peut télécharger un dossier compressé ou un paquet .deb.
 
Pour les fichiers compressés, les décompresser et lire le fichier README.
En général, il faut exécuter ces trois commandes :
./configure
make
make install
 
Pour les paquets .deb téléchargés manuellement, écrire cette commande devrait suffire :
dpkg -i monpaquet.deb
 
*************
*** Paquets *
*************
Soit utiliser "aptitude" en ligne de commande, soit utiliser le programme graphique "Synaptic".
clic droit sur Bureau > Applications > Système > Gestionnaire de paquets Synaptic
 
Avant tout, faire une mise à jour avec "update" et "upgrade":
> aptitude update
> aptitude upgrade
 
Le système de paquets fonctionne grâce à des liens sur Internet, des ordinateurs qui ont tous les paquets de notre distribution Linux. Ce sont des sources de dépôts ou des "repisitory" en anglais.
Le fichier /etc/apt/sources.list recense tous ces liens spéciaux.
Une façon de l'éditer graphiquement est possible avec synaptic.
Des fois il est utile de rajouter une source de dépôt via ce procédé, car on ne peut trouver le logiciel que l'on veut.
 
 
**************
*** Chercher *
**************
> aptitude search
 
Premier caractère
p : the most common states are p, meaning that no trace of the package exists on the system, 
c : meaning that the package was deleted but its configuration files remain on the system, 
i : meaning that the package is installed, and 
v : meaning that the package is virtual.
 
Second caractère
The second character indicates the stored action (if any; otherwise a blank space is displayed) to be performed on the package, with the most common actions being i, meaning that the package will be
installed, d, meaning that the package will be deleted, and p,
meaning that the package and its configuration files will be
removed. If the third character is A, the package was automatically
installed.
 
***************
*** Installer *
***************
sudo aptitude install audacity seq24 qjackctl
 
 
***************************************************
* SCRIPT ENLEVER LES ACCENTS DES NOMS DE FICHIERS * 
***************************************************
 
Fichier "accents.sh"
#!/bin/bash
export TEMP=`mktemp`
find . > $TEMP
while read i; do mv "$i" "$(echo $i | sed 'y/àâçéèêëîïôöùüÂÀÇÉÈÊËÎÏÔÖÙÜ/aaceeeeiioouuAACEEEEIIOOUU/')"; done < $TEMP
rm $TEMP
 
$ sh ./accents.sh : exécuter le script
 
 
**********************************************
* Informations système en ligne de commandes *
**********************************************
    * apropos - Brèves définitions via un mot clé
    * cat /proc/cpuinfo - Informations sur le(s) processeur(s).
    * cat /proc/version - Informations sur la version du noyau Linux.
    * df - Connaître l'occupation des disque.
    * dmesg - Afficher les messages du noyau.
    * free - Afficher l'utilisation mémoire.
    * lsmod - Lister les modules du noyau chargés.
    * lspci - Lister les bus PCI.
    * mount - Afficher les périphériques montés.
    * printenv - Afficher les variables d'environnement.
    * ps - Connaître les processus actifs.
    * top - Afficher l'activité du système en continu.
    * uname - Connaître le type du système.
    * uptime - Depuis quand votre machine tourne ?
    * vmstat - Avoir des stats sur la mémoire virtuelle.
    * who & w - Connaître les utilisateurs logués.
 
apropos - Brèves définitions via un mot clé
 
Cette commande affiche une brève définition des commandes en rapport avec un mot clef. Cherchons les commandes linux:
 
 $ apropos linux
 
cat /proc/cpuinfo - Informations sur le(s) processeur(s)
 
Pour connaître les informations sur son ou ses processeur(s). Le vendeur, la taille du cache, la fréquence en GHz ou MHz, les drapeux (flags) utilisés lors de la compilation d'un noyau personnalisé, par exemple:
 
 $ cat /proc/cpuinfo
 
cat /proc/version - Informations sur la version du noyau Linux
 
Pour connaître la version de son noyau Linux, son nom, la version du compilateur utilisé:
 
 $ cat /proc/version
 
df - Connaître l'occupation des disque
 
La commande df permet de connaître l'utilisation de l'espace disponible sur partitions montées du système. Lancée avec l'option -h ou --human-readable, la commande affiche les informations avec une lecture plus compréhensible:
 
 $ df
 ou:
 $ df -h
 
dmesg - Afficher les messages du noyau
 
Afficher les messages des commande du noyau Linux. Tout les message depuis le dernier démarrage ou redémarrage sont visible, en fonction de la taille du tampon:
 
 $ dmesg
 
Pour effacer le tampon il faut être root:
 
 # dmesg -c
 
free - Afficher l'utilisation mémoire
 
Afficher l'utilisation en kilo-octect de la mémoire vive (RAM) ainsi que de la mémoire d'échange swap:
 
 $ free
 
Afficher l'utilisation en mega-octect:
 
 $ free -m
 
Afficher l'utilisation en mega-octect toutes les 10 secondes:
 
 $ free -m -s 10
 
Pour stopper la commande il suffit de faire Ctrl c.
lsmod - Lister les modules du noyau chargés
 
Affiche la liste des modules du noyau actuellement chargé. La commande lsmod est le résultat du répértoire /proc/modules:
 
 $ lsmod
 
lspci - Lister les bus PCI
 
Permet de connaître des informations sur les bus PCI du système et les périphériques PCI qui y sont rattachés:
 
 $ lspci
 
mount - Afficher les périphériques montés
 
La commande mount permet d'afficher la liste des périphériques montés en ce référant au fichier /etc/mtab. Cette commande fait aussi partie des commandes d'administration, elle est utilisée pour monter des media tel que des disques dur ou clés usb. Par exemple la commande # mount -a montera tous les systèmes de fichiers définis dans /etc/fstab.
 
 $ mount
 
printenv - Afficher les variables d'environnement
 
La commande printenv permet d'afficher les variables d'environnement de l'utilisateur:
 
 $ printenv
 
ps - Connaître les processus actifs
 
La commande ps permet de connaître les processus actifs à un moment donné et d'afficher le PID identifiant un processus. Chaque processus est identifié dans le système par un nombre unique. Cette commande indique à quel port de terminal est associé le processus, l'état dans lequel se trouve le processus, et indique depuis combien de temps le processus utilise les ressources du microprocesseur. Pour avoir quelques informations:
 
 $ ps
 
Pour afficher tous les processus:
 
 $ ps -A
 plus d'infos avec:
 $ ps aux
 
IL y a beaucoup de possibilités avec ps, pour les connaîtres:
 
 $ man ps
 
pstree - Processus en arborescence
 
La commande pstree permet d'afficher les processus sous forme d'arborescence afin de voir leurs inter-dépendances:
 
 $ pstree
 
top - Afficher l'activité du système en continu
 
Afficher des informations en continu sur l'activité du système. Cette commade permet de suivre les ressources que les processus utilisent (quantité de RAM, pourcentage de CPU, la durée de ce processus depuis son demarrage):
 
 $ top
 
Pour quitter, appuyer sur la touche q:
uname - Connaître le type du système
 
Cette commande permet de savoir le type du système. En utilisant l'option -a on obtient plus d'informations, dont la version du noyau, le nom de machine (hostname), plus l'heure et la date:
 
 $ uname
 ou:
 $ uname -a
 
uptime - Depuis quand votre machine tourne ?
 
Afficher le temps depuis lequel le système n'a pas redémarré:
 
 $ uptime
 
vmstat - Avoir des stats sur la mémoire virtuelle
 
Afficher les statistiques sur la mémoire virtuelle:
 
 $ vmstat
 
Pour afficher les tables de la mémoire virtuelle:
 
 $ vmstat -s
 
Pour afficher les tables du disque:
 
 $ vmstat -D
 
who & w - Connaître les utilisateurs logués
 
Les commande who et w perment de connaître quels utilisateurs sont logués sur le système et ce qu'ils font:
 
 $ who
 ou:
 $ w
/home/resonancg/www/wiki/data/pages/logiciels/linux/2.priseenmain.txt · Dernière modification: 2015/03/08 00:11 de resonance