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.
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 :-)
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
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 !
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 ...
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)
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
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
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.
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:
Voici quelques exemples avec l'utilisation simple d'expressions régulières :
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.
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.
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 !!!
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
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"
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
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
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]
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-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)
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]
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
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
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
mv xx/ yyy/ la commande mv permet aussi de renomer un répertoire. C'est simple est efficace
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]
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]
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]
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]
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 ...
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.
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]
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]
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]
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]
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]
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]
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]
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]
free affiche un tableau sur l'utilisation de le mémoire
top affiche les statistiques du système en temps réel
[début]
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.
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!
[début]
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)