MEMO DES COMMANDES EN LIGNE GNU/LINUX ::..


PREAMBULE

Les activités suivantes sont pratiquement toutes traitées depuis un terminal avec le shell. C'est la couche de travail qui se trouve en dessus de noyau de base du GNU/Linux. Nous allons donc travailler en mode console avec le terminal. Ce mode permet un meilleur contrôle de l'exécution des commandes et permet de s'affranchir de la couche graphique qui apporte une distance et un ralentissement sur les opérations répétitives.

Le shell est un fichier exécutable qui a pour mission d'exécuter les ordres lancés depuis la ligne de commande. Il existe plusieurs shell, le plus utilisé sur UNIX est le sh nommé "Bourne Shell", mais il y aussi le bash "Bourne again shell", qui est une amélioration du sh, le csh "C Shell", le Tcsh "Tenex C shell", le ksh "Korn shell" et le zsh "Zero shell" ou "Z shell".
Le bash est un logiciel libre basé sur GUN GPL, importé dans le monde windows avec Cygwin et est par défaut sous MAC OS X.

Le prompt $ indique que vous travailler en mode bash, le % dans un autre shell, le cs par exemple.

Une fois le shell lancé, selon le login, il y a un prompt différent.

    $ indique qu'il s'agit d'un utilisateur normal
    # indique qu'il s'agit de l'administrateur, appelé «root»

Par défaut, le prompt indique aussi le nom de la machine et le chemin, par exemple:
root@URANUS:/home/jp/Documents#

RAPPEL: Pour faire une recherche sur cette page ne pas hésiter de faire un "CRTL - F" et de renseigner le champ de recherche :-)


COMMANDES DE BASE :.

Arrêt du système

Ne pas arrêter votre système sans passer par les commandes suivantes, en étant l'utilisateur root

shutdown -h now arrêt du système
Ctrl Alt Del envoie un shutdown au système
halt arrêt du système

ATTENTION: Éteindre la machine après l'apparition du message :

The System is halted
Power down

shutdown -r now arrêt du système avec reboot
reboot relance le système

Session de l'utilisateur

login pour débuter une nouvelle session
logout ou exit ou Ctrl d pour terminer une session

passwd permet le changement du mot de passe de l'utilisateur par l'utilisateur

sudo commande passe en mode superviseur pour lancer une commande, le mot de passe root est alors demandé.
sudo -s permet de se loguer en root (administrateur) et d'avoir plusieurs activités. Une fois le travail terminé, on quitte avec logout ou exit ...
sudo get-apt install mc permet de passer en mode superviseur pour cette installation de MC. Le mot de passe sera demandé !


jp@URANUS:~$ sudo -s
[sudo] password for jp:
root@URANUS:~# ...
...
root@URANUS:~# logout
jp@URANUS:~$

jp@URANUS:~$ sudo apt-get install mc
[sudo] password for jp:
...

Lancez vos programmes en tâche de fond en ajoutant & après le nom du prg.

Un autre moyen pour passer en mode superviseur, en utilisant l'appel de su


jp@URANUS:~$ su
Mot de passe :
root@URANUS:/home/jp#
...
root@URANUS:/home/jp# exit 

exit ou ctrl D pour revenir en mode user !

Les informations de connexion

who affiche qui est connecté sur le serveur
whoami affiche qui je suis !

finger root, savoir si un utilisateur est connecté.
last donne la liste des derniers log
lastb indique les erreurs de connexion
uptime indique depuis combien de temps la machine est en route.
w résumé des commandes who, finger, uptime ...

Les processus

ps affiche vos processus en cours ainsi que leurs PID (process id)
ps -a affiche tous les processus en cours.

top affiche les processus en fonction de leurs consommations en %CPU
top -d 2 avec ce paramètre, top relance la mesure toutes les deux secondes

kill 123 tue le processus 123(PID) selon ps. (seulement les vôtres)

Les variables

utilisateur="Pierre" défini la variable "utilisateur"
echo $utilisateur affiche le contenu de la variable utilisateur
dir="/home/pierre/pomme" assigne à dir un répertoire
ls -s $dir affiche le contenu du répertoire /home/pierre/pomme
ls -l $HOME affiche votre répertoire par défaut

Les variables du système PATH MAIL HOME PATH UID etc.
echo $PATH affiche les répertoires de recherche pour lancer un prg.
set affiche toutes les variables de votre session

Lancer des commandes (programmes)

commande lance une commande
commande & lance une commande en tâche de fond et redonne la main
cmd1; cmd2; cmd3 lance les commandes, l'une après l'autre
cmd1 && cmd2 lance cmd2 seulement si cmd1 réussi (AND)
cmd1 || cmd2 lance cmd2 seulement si cmd1 échoue (OR)
./hello lance le programme hello qui se trouve dans le répertoire courant

Définition des modes de protection d'un fichier

Lors d'un ls -l 10 caractères apparaissent au début de la ligne. Ils indiquent les droits d'accès du fichier de cette ligne. Une explication simple :


   - rwx rw- r-- définition des droits d'un fichier
   | |   |   +-- pour les autres     r=lecture w=écriture x=exécution -=aucun 
   | |   +------ pour le groupe      
   | +---------- pour l'utilisateur 
   +------------ type de fichier     d=directorie
   

chmod changement du mode de protection
chmod ug+x xxx donne le droit d'exécution à l'utilisateur et groupe
chmod -R ug+x xxx idem, mais sur toute l'arborescence fille depuis cet emplacement
chmod o-wx xxx supprime l'écriture et exécution aux autres
u = utilisateur g = groupe o = autres
Seul le propriétaire peut modifier les droits d'accès de ses fichiers ou le superviseur

Le changement des droits peut se faire avec une valeur octal. Chacun des groupes de trois caractères (utilisateur, groupe, autres) peut valoir de 0 à 7

chmod 766 xxx donne au fichier xxx la sécurité -rwxrw-rw-

Lors de la création d'un fichier, par exemple avec vi, les droits sont toujours identiques. Vous pouvez changez ces droits avec la commande chmod sur le fichier terminé.
Vous pouvez aussi utiliser la commande umask. Cette commande est un filtre qui sera placé pour votre session et chaque nouveau fichier aura les droits souhaités. Exemple :
umask affiche le filtre installé
umask 37 positionne le filtre avec 37 (en octal) exemple:


	normal      - rwx rw- r--
	umask 37    - --- -xx xxx
	resultat    - rwx r-- ---	
	

Une fois vos nouveaux fichiers créés, rien ne vous empêche de remettre une autre valeur de filtre avec umask pour continuer vos travaux.

Expressions régulières ou expressions rationnelles ou motifs

Voici un sujet vaste et complexe. Je préfère vous renvoyer aux différentes références sur le WEB qui en parlerons nettement mieux que moi.

Quand à moi, je vais me contenter de présenter ce sujet sous ses deux aspects. En premier, à présenter les métas caractères, qui eux vous permettrons de créer vos expressions régulières et enfin l'expression régulière va permettre de faire des recherches approfondies ou des travaux avec certains outils, tel que sed, awk, grep ainsi que des langages comme perl, php etc.

On retrouve ainsi les caractères spéciaux appelés les métas caractères:

    . n'importe quel caractère, excepté newline
    * une chaîne de caractères quelconque
    ? un caractère quelconque
    ^ début de chaîne. Ce n'est pas un véritable caractère
    $ fin de chaîne. Même remarque
    | alternative (à placer entre parenthèses)
    () groupement et mémorisation
    [] classe de caractères
    \ dé-spécialise le caractère suivant

Voici quelques exemples avec l'utilisation simple d'expressions régulières :

    grep [W-Z] PATIENTS, recherche tous les noms qui contiennent au moins un W, X, Y ou Z dans le fichier PATIENTS
    sed -e "/\"/ s///g ; /;/ s// /g" %1.txt > taxes.txt, pour remplacement de ( ";" ) par ( ) un espace ...
    grep JEAN-[L|P] FICHIER ; recherche tous les noms composés JEAN-P... ou JEAN-L...
  [début]


LES FICHIERS :.

EDITION DE FICHIERS

Nous allons passer sur quelques éditeurs courants du monde GNU/Linux. Ils sont utilisés en mode console et il est important d'en connaître au moins un pour modifier des scriptes ou pour programmer ou corriger des scripts depuis la console.

Pour créer un fichier vide simplement on peur alors utiliser la commande "touch abcd.md", ce fichier prend la date et l'heure de l'instant de sa création.

L'éditeur de texte vi

vi création d'un nouveau fichier texte
vi xxx.txt lance l'éditeur vi et ouvre le fichier xxx.txt
Dès le lancement de vi, nous nous trouvons en mode commandes.
La commande ESC ESC ramène toujours en mode commandes.

En mode commandes de vi
i ou "insert" passe en mode édition
a ou "insert après" passe en mode édition après le curseur
dd efface la ligne où se trouve le curseur
+ passe à la ligne suivante
- passe à la ligne précédente
Page Down passe à la page suivante
Page Up passe à la page précédente
esc quit le mode édition
4yy depuis le curseur copie 4 lignes dans le tampon
p colle le tampon à la position du curseur
/abc recherche la chaîne de caractères abc
f nom donne ou renomme le travail courant avec "nom"
r fichier ajoute après la ligne courante le "fichier"
e nom édite le fichier "nom"

En mode édition sur la dernière ligne
: passe en mode commande sur la ligne du bas.
:h appel du texte d'aide
:q quitte le texte d'aide
:w enregistre le fichier
:x quitte et enregistre s'il y a des modifications
:q quitte l'éditeur vi
:wq quitte et sauvegarde les modifications
:q! quitte sans sauver les modifications
HOME passe au début de la ligne
END passe à la fin de la ligne
ESC quitte le mode édition et passe en mode commandes
U undo, annulation de la dernière commande

On trouve aussi l'éditeur VIM qui est une évolution de VI. Son nom signifie VI IMproved ou vi amélioré :) On peut lancer dans le terminal la commande "vimtutor fr" pour avoir un tutoriel en français de vim. Mais le problème est qu'il est prévu pour le clavier Français... donc quelques problèmes de touches !!!

L'éditeur de texte joe

Un éditeur de texte simple, plus convivial que vi. En haut de la page, donne les coordonnées du curseur.
joe xxx.for ouvre le fichier xxx.for ou le crée pour édition

Liste des commandes :


 Help Screen              turn off with ^KH    more help with ESC . (^[.)
  CURSOR            GO TO             BLOCK       DELETE     MISC           EXIT
  ^B left ^F right  ^U  prev. screen  ^KB begin   ^D char.   ^KJ reformat   ^KX save
  ^P up   ^N down   ^V  next screen   ^KK end     ^Y line    ^KA center     ^C  abort
  ^Z previous word  ^A  beg. of line  ^KM move    ^W >word   ^T  options    ^KZ shell
  ^X next word      ^E  end of line   ^KC copy    ^O word<   ^R  refresh    FILE
  SEARCH            ^KU top of file   ^KW file    ^J >line   SPELL          ^KE edit
  ^KF find text     ^KV end of file   ^KY delete  ^_ undo    ^[N word       ^KR insert
  ^L  find next     ^KL to line No.   ^K/ filter  ^^ redo    ^[L file       ^KD save
    I    xxx.for                              Row 30   Col 2   10:11  Ctrl-K H for help

Avec la commande ^T l'accès aux options permet de modifier quelques paramètres

L'éditeur de texte nano

Un éditeur de texte simple, mais un peu plus convivial que joe, mais reste un éditeur sympa.
nano xxx.txt ouvre le fichier xxx.txt ou le crée pour édition

Il donne en bas de page la liste des commandes et permet aussi la correction de l'orthographe si vous avez installé "speel". Un autre avantage est qu'il apparaît en français ... Il est rapide, prend peu de place et est efficace. Je l'utilise volontiers pour mes programmations depuis la console (fortran pour l'astronomie)

                     [ ligne 1/2 (50%), col. 1/33 (3%), car. 0/33 (0%) ]
^G Aide        ^O Écrire      ^R Lire fich.  ^Y Page préc.  ^K Couper      ^C Pos. cur.
^X Quitter     ^J Justifier   ^W Chercher    ^V Page suiv.  ^U Coller      ^T Orthograp.

Il existe aussi des éditeurs plus évolués tel que "Kate" ou "Visual Studio Code"

[début]

Caractères génériques utilisés pour les recherches

* remplace un ou plusieurs caractères
? remplace un seul caractère
ls -lR /*.i?? recherche depuis la racine et sous répertoires les fichiers se terminant par .i et deux caractères.
[...] remplace un caractère avec un choix de caractères énumérés entre les crochets
find / -name test[es] recherche depuis la racine les fichiers qui se s'appellent "teste" ou "tests"

Travail avec les fichiers

cp xxx /bin copie le fichier xxx dans le répertoire /bin
cp xxx xxx.old copie le fichier sous le non xxx.old
cp xxx.* /home/jpp copie tous les fichiers xxx dans /home/jpp
cp aa bb cc /home/bin copie aa bb cc vers /home/bin

mv xxx /bin déplace le fichier xxx dans /bin
mv xxx yyy /bin déplace les fichiers xxx et yyy dans /bin
mv xxx yyy renomme le fichier xxx en yyy.

rm xxx efface le fichier xxx
rm -i xxx efface le fichier xxx, mais pause la question si oui ou non
rm -r xxx efface un répertoire même non vide et ces sous-répertoires !!! Très dangereux !!!

ln crée un lien physique
ln xxx yyy permet de donner plusieurs noms au même fichier, xxx = yyy
ln xxx yyy /home/pierre donne un autre nom et place yyy chez pierre
Les deux fichiers sont visibles, mais un seul existe vraiment

ln -scrée un lien symbolique
ln -s xxx yyy permet de donner plusieurs noms au même fichier, xxx = yyy
ln -s xxx yyy /home/pierre donne un autre nom et place yyy chez pierre
Les deux fichiers sont visibles, mais un seul existe vraiment
ls -l affiche dans le répertoire le fichier avec sa correspondance, exemple xxx -> yyy

touch xxx met la date et l'heure actuelle au fichier xxx
touch xxx si ce fichier n'égsiste pas, crée un fichier vide en lui donnant la date et l'heure actuelle
touch xyz crée le fichier, s'il n'existe pas.
Cette commande est idempotente, donc ne retourne pas une erreur si utilisée plusieurs fois! :)
Exemple dans le terminal :


~/Bureau$ touch abc
~/Bureau$ echo $?
0
~/Bureau$ touch abc
~/Bureau$ touch abc
~/Bureau$ echo $?
0
  

nl xxx.c affiche le fichier xxx.c en donnant un numéro par ligne

which ll recherche une commande connue par le PATH et affiche son emplacement. On peut rechercher plusieurs noms de commande en une fois.

wc xxx affiche le nbr de lignes, mots et caractères du fichier xxx
wc -l xxx.txt affiche seulement le nombre de lignes du fichier
wc * affiche la même chose sur tous les fichiers du répertoire

cat xxx affiche le contenu du fichier xxx
tac xxx affiche le contenu du fichier xxx depuis la dernière ligne !
cat xxx | less affiche le contenu du fichier xxx avec arrêt par page
cat xxx yyy affiche le contenu des fichiers xxx et yyy
cat www xxx yyy > zzz envoie le contenu de www, xxx et yyy dans zzz
cat > text tout ce que vous taperez maintenant sera dans text
Crtl d pour terminer la saisie et fermer le fichier texte

tr conversion ou suppression de caractères dans un fichier. Exemple :
cat fich | tr [A-Z] [a-z] > fich2 change le contenu de fich en majuscule et le dépose dans fich2 en minuscule.
cat fich.txt | tr ";" " " > fich2.txt, change tous les ; en espace.
tr [A-Z] [a-z] < fich > fich2 deuxième possibilité

od -x fich affiche le contenu du fichier fich en hexa.
od -o fich affiche le contenu du fichier fich en octal.

more affiche les données par page écran
more fichier.txt
cat ficher.txt | more

less amélioration de "more", par page écran, utilisation de Page Up et Page down, Q pour quitter
less fichier.txt
cat fichier.txt | less

head *.txt affiche les 10 premières lignes du fichier xxx
head -n4 fichier.csv affiche les quatre premières lignes de "fichier.csv"
tail *.dat affiche les 10 dernières lignes du fichier xxx
tail -n 20 *.f95 affiche les 20 dernières lignes des fichiers *.f95

Recherche de commandes déjà exécutée

Recherche de fichiers

Voici une puissante commande de recherche de fichiers.

find . -name mot recherche les fichiers qui se nomment mot, depuis le répertoire courant et ses sous répertoires.
find / -name temp recherche les fichiers temp sur tout le disque.
find / -cmin -30 trouve les fichiers modifiés dans les 30 dernières minutes.
find /home/test -name *.f95 recherche et affiche tous les fichier avec pour extension f95 depuis /home/test et en dessous ...
find $HOME -name essai.c -exec cat {} \; recherche le fichier essai.c et affiche son contenu.

N'oubliez pas de consulter man find

Recherche dans les fichiers

grep est un utilitaire de recherche d'une chaîne de caractères dans un ou plusieurs fichiers texte.
grep texte xxx affiche la ou les lignes qui contiennent le mot texte dans le fichier xxx

sort -t: +0 xxx trie le fichier xxx sur le 1er champs et affiche

cut -d: -f1,3 xxx extrait de xxx les champs 1 et 3 séparateur :

uniq xxx filtre les doublons dans le fichier xxx

split xxx -23 fich coupe le fichier xxx toute les 23 ème lignes

le résultat se trouvera dans plusieurs fichiers: fichaa, fichab, fichac...

diff fich1 fich2 compare et affiche les différences entre les deux fichiers

diff fich1 fich2 | grep '^>' | cut -b 3- recherche les différences sur les deux fichiers et affiches celles sur fich2

awk ou gawk sont des utilitaires très puissants pour extraire et traiter les données de vos bases de données.

[début]

Conversion de fichier iso-8859-1 en utf-8

Il arrive fréquemment qu'un fichier texte n'est pas dans le bon format. Il vient du monde de Windows et est au format iso-8859-1. Pour qu'il soit complètement lisible, il faut alors le convertir en utf-8

Voici comment pratiquer en utilisant l'utilitaire iconv

Pour commencer, voici le contenu du début du fichier


jp@NEPTUNE:~/Progra/astro$ head -3 brillantes.txt
Androm▒de Alpha Alph▒raz 2.1 0h08 29▒04'
Androm▒de Beta Mirach 2 1h09 35▒36'
Androm▒de Gamma Almak 2.3 2h03 42▒19'
jp@NEPTUNE:~/Progra/astro$

Voici le travail de conversion


jp@NEPTUNE:~/Progra/astro$ iconv -f iso-8859-1  -t utf-8  brillantes.txt
Andromède Alpha Alphéraz 2.1 0h08 29°04'
Andromède Beta Mirach 2 1h09 35°36'
Andromède Gamma Almak 2.3 2h03 42°19'
Aigle Alpha Altair 0.7 19h50 8°51'
...

On peut utiliser une redirection, par exemple, pour placer le résultat dans un nouveau fichier.


jp@NEPTUNE:~/Progra/astro$ iconv -f iso-8859-1  -t UTF-8  brillantes.txt > brillantes
jp@NEPTUNE:~/Progra/astro$

[début]

Re-direction des sorties

> re-dirige le résultat d'une action dans un fichier
>> re-dirige le résultat d'une action à la suite d'un fichier existant
< l'entrée standard n'est plus le terminal, mais un fichier
| Le pipe (tuyau), connecte la sortie d'un programme en entrée sur un autre

Quelques exemples :
cat xx.txt > xx.old re-dirige le contenu de xx.txt dans xx.old
dir a* b* > xx.dir re-dirige le listing des fichiers a* et b* dans xx.dir
dir *.txt >> xx re-dirige le listing dans la suite du fichier xx.dir, soit une concaténation des deux fichiers
vi xxx < yyy le fichier de commande yyy envoie à vi les instructions de correction du fichier xxx
ls -l | more re-dirige le résultat de ls dans le programme more pour un affiche par page
grep Berne marine.db | sort +0 recherche les lignes avec le mot Berne dans le fichier marine.db, trie ces lignes sur le champs 0 (le premier) et affiche sur l'écran (sortie par défaut)

[début]

Compression des fichiers

compress xxx compresse le fichier xxx, il devient xxx.Z
uncompress xxx décompresse le fichier xxx
zcat xxx affiche le contenu du fichier compressé xxx.Z

tar programme de sauvegarde des fichiers et répertoires.
tar cvf /mnt/floppy/xx.tar /usr/bin sauve dans xx.tar /usr/bin
tar tvf /mnt/floppy/xx.tar Affiche le contenu de xx.tar
tar xvf /mnt/floppy/xx.tar /usr/bin extrait le répertoire

tar zcvf /mnt/floppy/xx.tar.gz (ou.tgz) archive et comprime avec gzip
tar zxvf .... extraction d'une archive avec gzip

tar zxvf xxx extraction du fichier xxx.tar.gz

zip xxx * utilise zip pour comprimer tous les fichiers du rép courant
unzip xxx dé-zip le fichier xxx

[début]


LES REPERTOIRES :.

Afficher le contenu des répertoires

dir affiche en ligne les noms des fichiers
ls affiche les fichiers du répertoire courant
ls /bin affiche les fichiers du répertoire /bin
ls .. affiche les fichiers du répertoire précédant
ls -l affiche le détail des fichiers
ls -a affiche les fichiers cachés, qui commencent par un .
ls -s |more affiche le détail des fichiers avec arrêt par page
ls -l --color affiche le détail avec les noms en couleurs
ls -1 affiche un fichier par ligne. Seulement le nom.
ls -R progra affiche le contenu du répertoire 'progra' ainsi que ses sous-répertoires
ls -S affiche le contenu du répertoire par ordre décroissant de la taille
ls --help donne la liste des commandes

Se déplacer dans les répertoires

cd retour à votre répertoire par défaut
cd .. retour au répertoire supérieur
cd /bin/xx saute au répertoire /bin/xx, position absolue
cd images passe dans le répertoire immédiatement inférieur, images

Créer, effacer, déplacer des répertoires

mkdir xxx création du répertoire xxx dans le répertoire courant
mkdir xxx yyy xyz création de trois répertoires en même temps

rmdir xxx supprime un répertoire s'il est vide ...
ou rm -r xxx efface un répertoire même non vide et ces sous-répertoires !!! Très dangereux !!!

mvdir xxx /tmp déplace le répertoire xxx dans /tmp

Renommer un répertoire

mv xx/ yyy/ la commande mv permet aussi de renomer un répertoire. C'est simple est efficace

Afficher la structure des répertoires

Il est souvent intéressant de visualiser l'organisation de la machine. Cette commande permet donc cette vision et la compréhension de la structure et de l'emplacement des fichiers .

tree affiche l'arborescence des fichiers
tree --help affiche les commandes disponibles
tree -d /etc affiche seulement le nom de répertoire et sous répertoires, sans les fichiers.
tree -L 2 / affiche seulement deux niveaux de l'arborescence depuis la racine.

[début]


LES DISQUES :.

Afficher la structure ou organisation des disques

df, cette commande donne la taille des disques montés sur le système. L'information est peu lisible car les valeurs sont en octets ...

Exemple:


jp@NEPTUNE:~$ df
Sys. de fichiers  1K-blocs   Utilisé Disponible Uti% Monté sur
/dev/sda1        716948904 138554156  541975780  21% /
udev               2054852         4    2054848   1% /dev
tmpfs               824868      1148     823720   1% /run
none                  5120         0       5120   0% /run/lock
none               2062164        76    2062088   1% /run/shm
/dev/sdc1        312568828  79197840  233370988  26% /media/HP Personal Media Drive_
jp@NEPTUNE:~$

En ajoutant un -h, on a un affichage plus compréhensible par les humains ...


jp@NEPTUNE:~$ df -h
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/sda1          684G    133G  517G  21% /
udev               2.0G    4.0K  2.0G   1% /dev
tmpfs              806M    1.2M  805M   1% /run
none               5.0M       0  5.0M   0% /run/lock
none               2.0G     76K  2.0G   1% /run/shm
/dev/sdc1          299G     76G  223G  26% /media/HP Personal Media Drive_
jp@NEPTUNE:~$ 

Merci de consulter le manuel pour plus d'information sur les commandes "df"

sudo fdisk -l, cette commande donne la liste des tables de partitions du système


jp@raspberrypi ~ $ sudo fdisk -l

Disk /dev/mmcblk0: 32.0 GB, 32026656768 bytes
4 heads, 16 sectors/track, 977376 cylinders, total 62552064 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00014d34

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            8192     1867775      929792    6  FAT16
/dev/mmcblk0p2         1867776    62552063    30342144   83  Linux
jp@raspberrypi ~ $ 

[début]


IMPRESSIONS :.

cat xxx.txt affiche le contenu du fichier sur la console
cat --indent=5 report.txt affiche le fichier avec une mise en page décalée de 5 caractères depuis la gauche
cat xxx.txt | lpr permet de re-diriger sur l'imprimer un fichier avec une numérotation et date sure les pages.

pr pagine le fichier et met une entête avec date, no de fichier et no de page
pr xxx.txt traite le fichier indiqué au format indiqué ci-dessus
pr xxx.txt | lpr avec départ sur l'imprimante courante
pr --length=58 test.txt envoie l'impression avec une longueur de page de 58 lignes.
pr -l 55 xxx.txt | lpr formate la sortie avec 55 lignes et imprime
lpr xxx.txt & cette impression se fait en tâche de fond et le système vous rend la main.

pr --indent=5 trigo.f95 |lpr envoie le fichier à l'imprimante et le format avec 5 espace à gauche

Exemple:


$ pr --indent=5 trigo.f95 | lpr

     2010-04-21 22:56                    trigo.f95                     Page 1

     +--------------------------------------------------------------------
     !  PROGRAMME DE TEST D'UNE FONCTION ET DU SINUS
     !
     !  Fortran 95, format libre
     !
     !  Jean-Pierre Perroud ,  avril 2010
     +--------------------------------------------------------------------

     function sinus(valeur)

       ! definition des variables et constantes
       implict none 
       real*8 :: valeur
       real*8, parameter :: pi  = 3.1415926535897932384626433832
       real*8, parameter :: deg = 180.0
       
       sinus = sin(valeur*(pi/deg))   ! calcul et assignation

     end function
     
     !--------------------------------------------------------------------
     program trigo
     ...
     ...
     

lp test.txt envoie le fichier sur l'imprimante courante
lpr test.txt envoie le fichier sur l'imprimante courante
lpq permet de consulter la situation de la file d'attente des travaux en cours
lprm envoie la suppression
lprm 85 supprime le job 85 (liste des jobs donnés par la commande ci-dessus lpq)

Exemples:


 # lp text.txt
 # l'identifiant de la requête est HP-LaserJet-P1005-18 (1 fichier(s))

 # lpq
   HP-LaserJet-P1005 est prêt
   aucune entrée

 # lprm
   lprm: No active jobs on HP-LaserJet-P1005!

lpc met la console en mode commande pour piloter une imprimante et lui envoyer des commandes.
lpc status all donne le statut des imprimantes


 # lpc status all
 HP-LaserJet-P1005:
        l'imprimante correspond au périphérique « smb », débit -1
        la mise en file d’attente est activée
        l’'impression est activée
        aucune entrée
        daemon présent
 Photosmart-c5200:
        l'imprimante correspond au périphérique « smb », débit -1
        la mise en file d’attente est activée
        l'impression est activée
        aucune entrée
        daemon présent
#


[début]


VOS SCRIPTS :.

Si vous n'avez pas encore de répertoire /home/votrenom/bin, construisez le maintenant. Vous pouvez créer des fichiers scripts que vous déposerez dedans.

Au lieu d'écrire toujours la commande ls -l, vous pouvez la mettre dans un fichier qui pourrait s'appeler plus simplement l. Pour cela, utilisez l'éditeur vi. (Consultez la chapitre "Quelques utilitaires")

	
	remarque : entre crochets, les touches à presser
	
	vi l[return]		pour lancer l'éditeur vi et créer le fichier l
	[i]			passage en mode insert
	#!/bin/bash[return]	shebang + le chemin, /bin/bash si vous travaillez avec le bash
	ls -l --color $1	écriture des instructions
	[esc]			passage en mode commande
	:w[return]		sauvegarde du tampon dans le fichier l
	:q[return]		on quitte l'éditeur vi
				    ou plus simplement
	:x[return]		sauve et quitte en une seule opération	
		
	ouf on est sorti ...
	

Explications:

$1 indique que vous pouvez passer un paramètre à votre commande
l exécution du fichier, identique à ls -l --color
l /bin identique, mais avec passage d'une consigne

Il est bien clair que vous pouvez passer d'autres consignes en ajoutant à votre script $2 $3 etc... ou simplement $* qui regarde toutes les consignes
Changez les attributs du fichier l, pour qu'il devienne un fichier exécutable, avec la commande chmod +x l

Voici un lien pour aller plus loin avec de la programmation avec le shell.

Testez votre script maintenant :-)
Lancer avec ./l ou ./l xx
Etonnant non ! Mais je préfère pour ce cas là faire un alias avec la commande : alias l='ls -l'

[début]


QUELQUES UTILITAIRES :.

Midnight Commander

Voilà un programme bien pratique pour se retrouver dans les méandres des répertoires et des fichiers sur vos disques LINUX. Les amateurs du Dos retrouverons avec joie les caractéristiques du Norton Commander.

mc lance le Midnight Commander
mc -c force le Midnight Commander en mode couleur, c'est mieux ...

Divers

set | less affiche le setting de votre login
du disk usage - affiche l'espace occupé par l'utilisateur
du -a
du -s

df disk free - affiche l'espace libre du disque dur

clear efface le contenu de l'écran
ou
ctrl l idem

pwd affiche le nom du répertoire courant

file * affiche le type des fichiers du répertoire courant

alt F1 .... alt F6 passage sur l'un des six terminaux virtuels.

history cette commande affiche jusqu'à plus des 500 dernières commandes en lignes saisies.
history 25 cette commande affiche les 25 dernières commandes en ligne
!15 permet de répéter la commande 15 de la liste
history -c cette commande efface le contenu de l'historique.

bc lancement de la calculatrice

cal affiche le calendrier du mois courant
cal 1999 affiche le calendrier de l'année 1999
cal 1 1999 affiche calendrier du mois de janvier 1999
cal -y affiche toute l'année en cours
cal -j affiche le numéro du jour (calendrier Julien)

at vous permet de lancer des programmes à une date et une heure souhaitée un message par e-mail vous est envoyé en fin de tache

sleep 60; dir bloque le terminal et lance la commande dir dans 60 secondes

date affiche la date et l'heure

basic lancer l'interpréteur Basic

banner -w80 | lpr imprime une banderole de 80 caractères de large. Le programme vous demande "Message : " et vous introduisez votre texte.

Le correcteur d'orthographe

ispell correcteur d'orthographe
ispell fichier.txt correction du fichier fichier.txt

Pour disposer du dictionnaire français, vous pouvez le récupérer
sur le site ftp.lip6.fr/pub/ispell/francais

Après une décompression du fichier: tar zxfv francais-IREQ-x.x.tar.gz

Lancer buildhash fiançais.dico francais.aff francais.hash
Placer les fichiers francais.dico .aff et .hash dans /usr/lib/ispell

Vous contrôler vos textes avec ispell -d français montexte.txt

[début]


TRUCS ET ASTUCES :.

TAB la touche TAB permet de compléter une longue commande déjà tapée
Exemple:
cat freqradio.txt | less
Vous pouvez taper ensuite :
cat fre[TAB] et la ligne s'écrit automatiquement

Ctrl-R absd permet de retrouver la commande avec le texte abcd dedans

Pour mettre un peu de couleur sur votre terminal utilisez la commande setterm avec -foreground xxx -background xxx xxx étant une couleur (red, green, blue, grey etc). -store sauvegarde cette info pour la session

setterm -foreground black -background red -store
setterm -background blue -store

setterm -blank 5 sauveur d'écran après 5 minutes
Si votre écran peut avoir son alimentation coupée par programmation:
setterm -powerdown 10 alimentation de l'écran désactivée
setterm -powersave on activer la fonction

Simplifier vous la vie avec la commande alias et sécuriser vos commandes
alias ls="ls -l" après vous aurez automatiquement ls - l en tapant ls
alias mc="mc -c" permet de lancer le midnight commander en couleur avec la commande mc
alias rm="rm -i" pour eviter d'effacer un répertoire sans confirmation
Pour rendre votre alias permanent, il faut editer avec vi ou joe, le fichier '.bashrc'
Il se trouve dans le répertoire "home/votre_nom/.bashrc", il faut simplement ajouter votre définition !

Ces définitions peuvent être placées dans votre fichier de configuration .bash_profile pour qu'a chacun de vos login ces paramètres soient présents.

alias tout seul vous affiche les alias enregistré.
unalias mc permet de supprimer votre alias

[début]

Nom de la machine

Pour attribuer un nom à votre système, en étant superviseur, configurez les fichiers suivant.

etc/sysconfig/network mettez:
HOSTNAME=nommachine.ch

etc/hosts modifiez la ligne comme ci-dessous:
127.0.0.1 nommachine nommachine.ch

[début]


AIDE ET INFORMATIONS :.

help résumé sur la syntaxe des principales commandes
vi --help donne comment utiliser le programme vi

info mode informations sur les programmes de base (hypertexte)

La commande man demande le manuel d'une commande. Exemples :
man cp demande le manuel sur la commande copy
man ls demande le manuel de la commande ls
man ls 7 less demande le manuel de la commande ls et permet de naviguer en avant ou en arrière

Si vous utilisez l'option --help d'une commande, vous aurez le help en français, c'est plus agréable. Si le texte est trop grand pour la page, ajouter | less
ls --help | less

Dans le répertoire /usr/doc/HOWTO/translations/fr vous trouverez des solutions à vos problèmes... ;-)

[début]


MS-DOS :.

En principe le programme mtools est installé sur votre LINUX. Essayez la commande mtools et vous obtiendrez le résumé des commandes supportées.

Exemples:
mdir

[début]


INTERNET ET RESEAU :.

lynx browser Web en mode texte, avec édition en pressant sur e
lynx xxx.html ouverture et visualisation du fichier xxx.html

telnet interface utilisateur pour communiquer avec un hôte distant
ftp utile pour le transfert de fichiers sur une machine distante

ifconfig affiche la configuration ip de la machine
ping xxx.xxx.xxx.xxx permet de tester qu'un hôte est en ligne et qu'il répond via son IP
ping nomDNS permet de tester qu'un hôte est en ligne et qu'il répond via son nom DNS
ping --help pour de l'aide
route commande TCP/IP permettant de modifier les tables de routage
net
netstat -r ou -t ou -s affiche l'état du réseau, regarder le help
arp commande TCP/IP, affiche, ajoute ou supprime une info à la table arp
findsmb donne des informations sur les machines du réseau local

consulter le mode d'emploi avec man. Exemple: man ftp

[début]


SUPERVISION :.

Gestion des utilisateurs

Le superviseur du système se logue avec le nom root. Il est franchement déconseillé de travailler avec ce compte (sauf pour l'administration du système). Créez-vous un compte utilisateur et travailler avec celui-ci ou plus simplement rester avec votre compte et utiliser les commandes "sudo" devant.

Depuis ce compte, vous pouvez toujours vous mettre en mode superviseur en lançant depuis la console su puis renseigner le mot de passe ou en ajoutant "sudo" devant votre commande, le mote de passe vous sera demandé à la première commande.

Ajout d'un nouvel utilisateur en mode console :

sudo useradd xxx création d'un utilisateur xxx
sudo passwd xxx donner un mot de passe à l'utilisateur xxx
chown xxx /home/xxx donne la propriété au répertoire /home/xxx à xxx
chown xxx.xxx * attribue le nom xxx pour le propriétaire et le groupe pour l'ensemble des fichiers du répertoire courant
chown -R xxx.xxx rep attribue le nom xxx pour le propriétaire et le groupe pour le répertoire et fichier ainsi que les sous rep courant

La commande "adduser" est plus complète en faisant le travail en une fois pour le nom, le mot de passe, les commentaires, la création du répertoire etc ...
Elle se base sur le fichier /etc/skel/.bashrc que l'on peut adapter !


jpi@raspberrypi:/home $ sudo adduser leenu 
Ajout de l'utilisateur « leenu » ...
Ajout du nouveau groupe « leenu » (1002) ...
Ajout du nouvel utilisateur « leenu » (1002) avec le groupe « leenu » ...
Création du répertoire personnel « /home/leenu »...
Copie des fichiers depuis « /etc/skel »...
Entrez le nouveau mot de passe UNIX : 
Retapez le nouveau mot de passe UNIX : 
passwd: password updated successfully
Changing the user information for leenu
Enter the new value, or press ENTER for the default
	Full Name   []: Leenu Perroud
	Room Number []: 
	Work Phone  []: 
	Home Phone  []: +41 21 xxx xx xx
	Other       []: 
Cette information est-elle correcte ? [O/n]O
jpi@raspberrypi:/home $ l

Vous pouvez vérifier votre travail avec la commande cat, tail ou less ... par exemple :

cat /etc/passwd
less /etc/passwd
ou pour afficher les 4 dernières lignes du fichier passwd avec :

 
jpi@raspberrypi:~ $ tail -n 4 /etc/passwd
lightdm:x:109:113:Light Display Manager:/var/lib/lightdm:/bin/false
epmd:x:110:115::/var/run/epmd:/bin/false
jpi:x:1001:1001:Jean-Pierre Perroud,,+41 79 21x xx xx, xxx:/home/jpi:/bin/bash
leenu:x:1002:1002:Leenu Perroud:/home/leenu:/bin/bash
jpi@raspberrypi:~ $ l

On retrouve sur chacune des lignes le format suivant
utilisateur:Anciennement le mot de passe:uuid:guid:commentaire:home:shell
Ce qui donne dans la pratique :
user:x:100x:100x:Commentaires, xx, xx:/home/user:le shell

[début]

Gestion des lecteurs CD-ROM et disquette

Montage d'un "device" sur un point de montage de vos répertoires

Lecteurs de disquettes:
mount -t msdos /dev/fd0 /mnt/floppy pour les disquettes msdos
mount -t ext2 /dev/fd0 /mnt/floppy pour des disquettes Linux
umount /mnt/floppy désactive le point de montage du floppy

Lecteurs CD-ROM:
mount /dev/cdrom /mnt/cdrom le lecteur cdrom sur /mnt/cdrom
umount /mnt/cdrom

Remarque: avant de changer le cd ou la disquette, il faut défaire le point de montage et ensuite vous pouvez extraire le support, cd ou disquette. Aucun utilisateur ne doit se trouver sur un répertoire du cd, sinon vous aurez le message "busy"

[début]

Gestion et contrôle du système

free affiche un tableau sur l'utilisation de le mémoire
top affiche les statistiques du système en temps réel

[début]


Mini distributions :.

Super génial les minis distributions, pour récupérer les fichiers d'un PC pourri...
Faire une démonstration et étudier le fonctionnement de GNU/Linux. Préparer un routeur, un par-feux etc.
Tout cela sans une installation sur votre machine, juste un boot sur un cd, dvd ou une clé USB ...
Ces distributions tournent avec peu de mémoire, soit dès 4, 8, 12 Mb et avec des 486, on utilise les vieux PCs.

Linux sur un CD ou un clé USB

Live CD, c'est le nom de ces distributions. Pas d'installation sur votre machine, simplement un "boot" sur le CD-ROM ou la clé USB.
Ne pas oublier de régler dans le BIOS pour faire un démarrage sur le lecteur DVD ou sur le port USB!

Ubuntu est une distribution GNU/Linux qui réunit stabilité et convivialité.
KNOPPIX sur un CD env. 650 Mb, tout simplement génial, pas de problème.
FLONIX env. 64Mb sur KEY USB ou CD-ROM (Super si votre PC accepte le démarrage sur USB!)
SLAX, un autre live CD, sympa et qui fonctionne bien en texte + lancement du GUI

Linux sous Windows

Une solution très intéressante pour faire cohabiter Linux avec Windows, et d'installer le magnifique logiciel Cygwin.

[début]


Pour terminer :.

C'est magique de travailler avec GNU/Linux. Une solution intéressante et très puissante. Vous pouvez transformer votre ancien PC en une machine plus performante, évitant ainsi le gaspillage ! Bien des machines poussives donneront enfin ou à nouveau le meilleur d'elles même, par exemple votre ancien pc portable. Lui enlever Windows et installer une suite Linux, va lui redonner une nouvelle vie.
L'installation est facile avec le boot depuis un live CD ou clé USB par exemple, puis installation sur le disque dur (proposition avec Ubuntu)