TERMINAL
Commande parametre(courts: -a,-d,-dahU
etc..;longs:--remove-home etc...)
-Autocompletion d'un commande: Ex: da + (2X)tab : permet de completer une
commande ou d'afficher liste commande commençant par da
* (2X)tab: affiche commande dispo(je pense) , [espace]pour page
suivant,[entrer] pour liste suivant
*historique commande: fleche haut(dernier cmd),fleche bas(recente),history,
ctrl+R:' ' recherche cmd
-Raccourcis Clavier:|-Ctrl+L: effacer console ou ecrire clear
|-Ctrl+D: MSG(EOF) ou exit
|-fleche haut shift + pg Up: remonter MSG
|-..................+pg down: redescendre
Crtl +|-A: _.....
|-E: ....._
|-U: S...._......
|-K: ....._......S
|-W:...._.....
|-Y:.....
Structures de fichiers:|-bin: contient les executables
|-boot:fichier demarrage linux
|-dev: peripheriques
|-etc: [Link]
|-home:repertoire perso
|-lib:.so(bibliotheques)
|-media:amovible
|-mnt:c et d
|-opt:add-ons
|-proc:[Link]
|-root: SU
|-sbin:[Link] du systeme
|-tmp:stock les fichiers des programmes
|-usr: ou s'installe les programmes
|-var: variables logs
Systemes de fichiers:|-pwd :indique ou on est actuellement
.:[Link] |-which: indique ou se trouve une commande: which ls
..:[Link] |-cd :change directory(cd .., cd ../..)
|-du:disk usage(-h(k,Mo,Go,),-a([Link] fi),-s)
|-ls:listes les [Link]
-a:[Link] D caches ,
-F:type element,
-l:liste detailles
Chemin:|-Relatifs:depend du dossier ou on se trouve(/usr/cd games------> /games)
|-Absolue: commence tjrs par la racine (/)
|-cd ~:vers perso
|-Autocompletion: dossier/ cd ga + tab
Manipulation de Fichiers:|-cat:afficher contenu d'un fichier: cat [Link]
|-less: page/page
|-head:debut fichier
|-tail:fin fichier
|-touch:creer un fichier: touch NomFichier ou (fi1 fi2
"fi Trois")poly
|-mkdir:creer un dossier(repertoire): mkdir NomDossier
ou poly ,mkdir -p ex1/ex2/yeah
|-cp: creer une copie: cp Monfichier NomDeLaCopie , cp
Monfichier Dossier/NomDeLaCopie, (-R: pour un dossier)(*.jpg:fichier se
terminant par jpg)(so*:fichier commençant par so)
|-mv: deplacer fichier/dossier: mv Monfichier
Docs,poly,(renommer: mv Monfichier NouveauNom, Docs/NouveauNom)
|-rm: supprimer fichier: rm
Monfichier,poly,(-i:confirmation,-f:forcer suppression,-v:etat,-r:supp dossier
et contenu)
|-rmdir:supprimer dossier vide
Lien:|-Lien Physique: un fichierX va avoir le meme contenu qu'un fichierY qui a
ete pointé(partage meme inode): ln MonContenuDansUnFichier Monlien
|-Lien Symbolique: un fichierX pointe comme un raccourci vers le nom d'un
fichierY: ln -s MonContenu Monlien
*****#Droits d'utilisateur/Droits d'acces:
-sudo su(substitute user do): permet de passer d'un utilisateur simple a
utilisateur root
-adduser:creer un utilisateur: adduser NomUtilisateur
-deluser:supprime un utilisateur, --remove-home: avec son repertoire personnel
-passwd: permet de changer de mot de passe : passwd Nom ,passwd(actuelle)
-chown:changer de proprietaire d'un fichier: chown NouveauProprietaire fichier,
chown vito:MonGroupe fichier, -R:les sous-dossiers aussi
-chgrp:change groupe proprietaire d'un fichier: chgrp MonGroupe fichier
-addgroup: ajoute un groupe: addgroup NomGroupe
-delgroup:.....
-usermod:changer de groupe etc...: usermod -g Groupe1 vito, -l:renommer
groupe,-G:groupe secondaire,-d: changer de homedir,-u:changer son UID
-chmod: Modifier Les Droits d'acces
en mode root ou sudo
r=4
w=2 d rwx rwx rwx
x=1 D/f user grp others
chmod Absolue: chmod Relatifs:
chmod 600 fichier u:user , g:group , o:others , +:ajouter
, -:enlever, =:affecter -R:affecte contenu des dossiers
- rw --- --- Ex1: [Link] - --- --- ---
6 0 0 *chmod g+r,o+r [Link] ------>
[Link] - --- r-- r--
*chmod +r [Link] ---------->
[Link] - r-- r-- r--
*chmod go+r [Link] --------->
[Link] - --- r-- r--
*chmod u=rwx,g=r,o=- [Link] ------>
[Link] - rwx r-- ---
Installation,mis a jour etc...:
en mode root ou sudo
-apt-get update:MAJ
-apt-get install --only-upgrade Monpaquet
-apt-cache search Monpaquet , apt-cache show Monpaquet: recherche un paquet
-apt-get install Monpaquet, poly: installer un paquet
-apt-get remove Monpaquet: desinstaller un paquet ,autoremove:
paquet+dependances
-apt-get upgrade:MAN
******Utilisation du Manuel | repeter n fois
*SYNOPSIS: commande [OPTION]... DIR_ECTORY ...- a remplacer par le nom
appropriee
| | |parametre obligatoire
| parametre pas obligatoire
a taper
*whatis commande: indique directement ce que fait commande
-rechercher un fichier:|-RAPIDE: locate Monfichier :database?_?---sudo
updatedb---locate Monfichier
|
|-APPRONDIE:find
|*find (where[ou chercher] what[quoi chercher] do[faire
quoi apres(par défaut affichage uniquement)])
| Ex: find -name "logo"(sans precision)
| Ex: find /var/log -name "logo"
| Ex: find -size ±10M,K,G: par taille
| Ex: find -name "*.odt" -atime -7: par date
| Ex: find /var/log -name "syslog" -type d ou f : fichier
ou dossier
| Ex: find . -name "*.jpg" -printf "%p-%u\n"
| Ex: find ......... -delete ou -exec .....{} \
|
|
-Controler les Processus et flux de donnes
-grep texte fichier: rechercher texte dans fichier
-grep -i texte fichier: oublier la casse pendant recherche , -n:numero ligne ,
-v: Affiche ligne qui ne contiennent pas le texte chercher(inverser recherche),
-r: ..... repertoire/: on ne sait pas ou se trouve texte
**Metacaracteres**
*:caractere quelconques , ^: debut de ligne( ^vito :debut de ligne doit etre
vito), $: fin de ligne , [...]:caractere entre ces crochets, ?: l'element
optionnel, +: doit etre 1 ou n fois ,|: ou ,( ): groupe d'expression
[...]:tout caracteres parmi ceux enumerer
[^...]: tout sauf enumerer
- sort fichier(triage):| -o [Link] [Link]: ecrie le trie dans
[Link]
| -r:inverse le trie
| -R: aleatoire
| -n: avec des nombres
-wc fichier(nb lignes):| -l: nombres de lignes
| -w: nombres de mots
| -c: nombres d'octets
| -m: nombres de caracteres
-uniq: supprime les doublons(mais sort d'abord) >/dev/null, uniq fichier1
fichier2:copie resulat dans fichier2, -c: nb occurences, -d:lignes en doublons
-cut: couper une partie d'un fichier| Ex: un [Link] contenant Marcel: cut
-c 2-5 [Link] ----> arce
| Ex: .........................Marcel,28
ans,19/20, NDB: cut -d , -f 1 3 [Link]
-Flux de redirection:| >:redirige dans un fichier(en ecrasant contenu): cut -d ,
-f 1 3 [Link] > fichier4
| >>:redirige vers la fin du fichier(sans l'ecraser): cut
-d , -f 1 3 [Link] >> fichier4
| 2>:redirige les erreures dans un fichier: cut -d , -f 1 3
[Link] >> fichier4 2> [Link](2 redirections)
| 2>>:....................mais a la fin
|2>&1: rediride les erreures dans le meme fichier4: cut -d
, -f 1 3 [Link] >> fichier4 2>&1
|
|***************
|<: lire depuis un fichier recoit le contenu du fichier:
cat < [Link]
|<<: lire depuis le clavier :
| sort -n << FIN :donner une instruction directement
puis saisi au clavier et creer le mot d'arret: commande << mot d'arret
| PIPE | : commande 1 | commande 2
-Surveiller l'activité du Systéme|-Systéme Multitache: gerer n programmes
tournant en meme temps
LINUX |-Systéme Multi-Utilisateur:n personnes peuvent
utiliser la meme machine en meme temps(par internet)
|
|***Activite du Systéme**:
| w:qui fait quoi, up 2min:temps demarre,
Average:charge processus, -tload: diagramme des processus(ctrl +c: pour quitter)
|-Lister les Processus:
| -ps -ef:lister tout les processus, ps
-efh:...en arborescence [statique], -u: nous meme
| -top:processus dynamique
|***Arreter/tuer un Processus
|-ctrl+c:processus en cours
|-kill 2510(PID numero a chercher):tue un
processus,killAll nomProcessus
|-halt:arreter pc(root ou sudo)
|-reboot:........redemarrer
|***Executez des Programmes en arriere plan
|&:lancer un programme en arriere plan: cp
fichier.mp4 copie_fichier.mp4 &, nohup: pour detacher de la console: nohup
commande
|ctrl+z:mettre en pause un processus
|bg: le mettre en arriere plan
|jobs: connaitre le processus en arriere plan
|fg:foreground:mettre en premiere plan: fg %2
:s'il ya n processus faut preciser
|screen: Simuler une console: ctrl+d:exit,
utilisation: ctrl +a +commande(lacher vos mains)
|***Executez un programme a une heure differee
|-Personnaliser la date: date "+%H:%M:%S(s)"
|-Modifier date :sudo date 012019
|-at 23:00 ou tommorow ou now -2 weeks ou
26/01/19
| ----> at > commande a executer: touch
[Link]
| Ctrl+D pour quitter
---Archiver et
Compresser----------------------------------------------------------------------
-------------------------
Reduire taille
bzip2 ,gzip : ne peuvent que compresser q'un fichier a la fois contrairement
tar: assembler les fichiers
Sous linux: 1-Reunion des fichiers dans un seul fichier(Archive) avec tar --->
.tar
2-Compresser avec bzip2 ou gzip ---> .[Link] ou .tar.bz2
Archiver : tar -cvf Nom_Archive.tar NomDossier ou fichier1 fichier2 poly
-c: create archive
-v: verbiose
-f: in file
-Voir Contenue : -tf [Link]
-Ajouter un fichier : -rvf [Link] fichierA_Ajouter
--Extra///re de l'archive : -xvf [Link]
Compresser: gzip: gzip [Link] -----> [Link] | Decompresser: gunzip
[Link] ----> [Link]
bzip2: bzip2 [Link] ----> [Link].bz2 | Dcecompresser:
bunzip2 [Link].bz2 ---> [Link]
Archiver+Compresser : tar -zcvf [Link] | tar -zxvf [Link]
tar -jcvf [Link].bz2 | tar -jxvf [Link].bz2
-zcat,-zmore,-zless:visualisent fichier compresser
zip -r [Link] Dossier | unzip [Link] ,-l:voir contenu
unzip e [Link] | l:.....
--------------------------------------------------------------------------------
---------------------------------------
-Connexion a distance securisée avec
SSH:----------------------------------------------------------------------------
-
-Pour communiquer entre eux : 2 ordinateurs doivent utiliser le meme
Protocole(c'est comme une langue)
-Par exemple le -HTTP(HyperText Transfer Protocol):Protocole utilisé sur le
web pour s'echanger des pages web
-FTP(File Transfer Protocol):Protocole de transfere de
fichiers(transparente sur lien téléchargement)
-IMAP(Internet Message Access Protocol): echanges des e-mails
-telnet: -Crée dans les années 80
-D'une machine a l'autre
-Communiquer avec un serveur
- trop Simple: Données transferer en clair sur le reseau pas de
cryptage(Wireshark oup!!!)
--SSH----
Les differents methodes de cryptages
•Le cryptage Symetrique(methode plus simple)
-Une clé pour crypter et decrypter
Ex: clé= VITO
Mais le serveur doit aussi avoir la clé VITO pour le
decryptage
Client (VITO(cryptage)[message secret])----->Message crypté------> Serveur
(VITO(decryptage)[message secret])
•Le cryptage Asymétrique(Algorithme RSA)
-Une clé pour crypter(clé publique):Envoyable en clair puis que c'est pour
crypter
-Une clé pour decrypter(clé privée)
Ex: clé public =PUBLICK ,clé privée =PRIVK
client (PUBLICK(cryptage)[message secret])---->Message crypté ----> Serveur
(PRIVK(decryptage)[message secret]
SSH = Cryptage Symetrique + Asymetrique
1- clé= VITO 2- clé public= PUBLICK et clé privé= PRIVK
3- <-------------------Echange sécurisée avec clé
VITO-------------------------->
Client <------------------Envoi la clé
public(PUBLICK)------------------------------- Serveur(posséde déja clé privé
PRIVK aprés génération)
2- ---------------Crypte clé VITO avec clé PUBLICK et l'Envoi
-------------------> |--------> Serveur peut maintenant Decrypter clé VITO
avec clé privée PRIVK
Se Connecter avec SSH et PuTTY
-Soit louer un serveur dedié déja configurer , avec différent hebergeures Comme
OVH(cher), low cost(Kimsufi,Dedibox)
-------Soit transformer ordinateur en Serveur---------
1- install paquet openssh-server :
2- si demarrage manuel: sudo etc/init.d/ssh stop/start
-Si besoin de Configurer fichier conguration etc/ssh/ssh_config et/ou
etc/ssh/sshd_config et pour appliquer :sudo etc/init.d/ssh reload
-Acceder a votre PC distance:
• se connecter a votre machine depuis un autre linux
ssh login@ip(ip de la machine a acceder) ou localhost([Link]) pour
simuler et logout ou ctrl+D pour deconnexion
• se connecter depuis windows avec PuTTY
-telecharger PuTTy et bim
- alerte reinstallation ou attaque man-in-the-middle
•L'authentification par clé sous linux
-Depuis machine du Client pour générer une paire de clé public/privée
----> ssh-keygen -t (rsa ou dsa) :générer un paire de clé et si vous voulez
passphrase
-Envoyer la clé public au Serveur pour l'ajouter a sa liste des clés
autorisés(authorized keys)
- les clés se trouveront dans ~/.ssh/id_rsa.pub : id_rsa(clé privée)
id_rsa.pub(clé public) know hosts(liste fingerprints identité serveur)
------>ssh-copy-id -i id_rsa.pub login@ip et "-p 14789 login@ip"(pour
changer port)
-et vous connecter comme avant
-l'agent SSH : demande 1 seule fois la passphrase et bim !!
•L'authentification sous windows avec PuTTY
-Avec Puttygen suivre les etapes generer et enregistrer les deux clés
-Envoyer au Serveur en vous connectant puis mettre la mettre dans
.ssh/authorized_keys
-Configurer PuTTY:
1-Window-->Translation et mettr UTF-8
2-Connection-->SSH-->Auth et mettre la clé privée aussi aller dans
Connection-->Data et mettr votre login
3-Accueil puis connecter vous comme avant login ip etc.. et sauvegarder
et open
4-pour ceux du passphrase entré la
5-Pageant puis mettre votre clé privéé
---------Transferer des
fichiers------------------------------------------------------------------------
------------------------------
Navigateur console : lynx, links
-télécharger des fichiers : wget addresse ctrl+C pour arreter telechargement
-c pour reprendre le telechargement
--background mettre en taches de fonds
-copier fichier a distance: - scp fichier_origine(login@ip:Nom_Fichier)
copie_destinataire(login@ip:emplacement): sens inverse possible et -P 145878:
pour changer port
•telechargement de fichiers :
FTP: - Pas sécuriser(non crypter)
- Pour télécharger un fichier depuis un serveur FTP public La connexion
se fait alors en mode anonyme.
- Pour transférer des fichiers vers un serveur FTP privé (et
éventuellement en télécharger aussi)
La connexion se fait donc en mode authentifié
• Connexion a un serveur FTP
----> ftp [Link]
login FTP public :anonymous et password: n'importe quoi
ftp> commande linux
• put: envoi un fichier ver le serveur(pas sur FTP publics)
• get: telecharger fichier depuis serveur
• !ls: commande s'execute sur votre machine pas sur le serveur et ctrl+D
ou bye,quit,exit:deconnexion
•sftp:securiser(cryptage rsa)
----> sftp login@ip
•rsync: synchroniser des fichiers pour une sauvegarde
-Meme ordinateur
---> rsync -arv DossierASauver/ EmplacementDeSauveagarde/
-a: conserve infos sur les fichiers chmod etc..
-r: aussi les sous-dossiers
----> rsync -arv --delete DossierASauver/ EmplacementDeSauveagarde/ :
suppression fichier aussi dans la sauvegarde
----> rsync -arv --delete --backup _supprimes DossierASauver/
EmplacementDeSauveagarde/: sauver les fichiers supprimes en leur donnant suffixe
_supprimes
--backup-dir=/home/bocar/SauvgardeFichierSupprimer
-Sur un autre ordinateur
---> rsync -arv DossierASauver/ login@ip:EmplacementDeSauveagarde/ et -e "ssh
-p 14523": pour un autre port
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--
------Analyser le réseau et filtrer le trafic avec un
parefeu(firewall)---------------------
- chaque ordinateur relié à l'internet est identifié par une adresse IP
IPv4 : [Link] et IPv6 : fe80::209:62fa:fb80:29f2
•Commande Conversion IP <-----> Nom_Hote
host IP -----> Nom_Hote ; et host Nom_Hote ----> IP
•Gérer Nom des hotes personnalisées
-Les associations entre les IP et les noms d'hôte sont faites sur ce que l'on
appelle des serveurs DNS
et il est preferable d'utiliser les serveur DNS car se mettent a jour
regulierement
-Cependant en local ya de mal
---->sudo nano /etc/hosts
• Tout savoir sur le Nom de domaine
--->whois Nom_hote/Domaine/IP
-ifconfig : liste interfaces reseaux
eth0: connexion par cable reseau
lo: boucle local tout le monde l'a
wlan: carte reseau sans fil connexion sans-fil Wi-Fi
•Activer/Désactiver reseau: ifconfig interface(Nom interface) etat(up/down)
-netstat: statistiques réseaux:
---> netstat -i : statistiques des interfaces réseau
---> netstat -uta: lister toutes les connexions ouvertes et netstat -s : résumé
-u : Aff. connexions UDP
-t : ............... TCP
-a : ...............touts
TCP et UDP sont deux protocoles différents pour envoyer des données sur le
réseau.
UDP:est plutôt utilisé dans les jeux en réseau et pour les communications
vocales (avec Skype, par exemple)
TCP: le plus utilisée en générale
-iptables: parefeu de référence
1- root obligatoire
POLICY ACCEPT: tout le parefeu est accepter
---> iptables -L: afficher les regles et iptables -F: reinitialise les regles
-Chain INPUT : correspond aux règles manipulant le trafic entrant ;
-Chain FORWARD : correspond aux règles manipulant la redirection du trafic ;
-Chain OUTPUT : correspond aux règles manipulant le trafic sortant.
-target : ce que fait la règle. Ici c'est ACCEPT, c'est-à-dire que cette ligne
autorise un port et / ou une IP ;
-prot : le protocole utilisé (tcp, udp, icmp). Je rappelle que TCP est celui
auquel on a le plus recourt. ICMP permet à votre ordinateur de répondre aux
requêtes de type « ping » ;
-source : l'IP de source. Pour INPUT, la source est l'ordinateur distant qui se
connecte à vous ;
-destination : l'IP de destination. Pour OUTPUT, c'est l'ordinateur auquel on se
connecte ;
-la dernière colonne : elle indique le port après les deux points « : ». Ce port
est affiché en toutes lettres, mais avec -n vous pouvez obtenir le numéro
correspondant
•Ajouter/Supprimer des régles :
Voici les principales commandes à connaître.
-A chain : ajoute une règle en fin de liste pour la chain indiquée (INPUT ou
OUTPUT, par exemple).
-D chain rulenum : supprime la règle n° rulenum pour la chain indiquée.
-I chain rulenum : insère une règle au milieu de la liste à la position
indiquée par rulenum.
Si vous n'indiquez pas de position rulenum, la règle sera
insérée en premier, tout en haut dans la liste.
-R chain rulenum : remplace la règle n° rulenum dans la chain indiquée.
-L : liste les règles (nous l'avons déjà vu).
-F chain : vide toutes les règles de la chain indiquée. Cela revient à
supprimer toutes les règles une par une pour cette chain.
-P chain regle : modifie la règle par défaut pour la chain. Cela permet de
dire, par exemple, que par défaut tous les ports sont fermés, sauf ceux que l'on
a indiqués dans les règles.
---> iptables -A (chain) -p (protocole) --dport (port) -j (décision)
•Autoriser les pings
-iptables -A INPUT -p icmp -j ACCEPT
Comme je n'ai pas indiqué de section --dport, cette règle s'applique à tous les
ports,
mais pour les pings (icmp) uniquement ! Votre ordinateur répondra alors aux «
pings » pour indiquer qu'il est bien en vie.
•Autoriser les connexions local et déja ouvertes
----> iptables -A INPUT -i lo -j ACCEPT
----> iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
1. La première règle autorise tout le trafic sur l'interface de loopback locale
grâce à -i lo.
Il n'y a pas de risque à autoriser votre ordinateur à communiquer avec
lui-même,
d’autant plus qu’il en a parfois besoin !
2. La seconde règle autorise toutes les connexions qui sont déjà à l'état
ESTABLISHED ou RELATED.
En clair, elle autorise toutes les connexions qui ont été demandées par votre
PC. Là encore, cela permet d'assouplir
le pare-feu et de le rendre fonctionnel pour une utilisation quotidienne.
•Refuser toutes les autres connexions pardéfaut:
Il reste un point essentiel à traiter car, pour l'instant,
ce filtrage ne sert à rien. En effet, nous avons indiqué quelles données nous
autorisions,
mais nous n'avons pas dit que toutes les autres devaient être refusées
-Changez donc la règle par défaut pour DROP
---> iptables -P INPUT DROP
iptables devrait maintenant indiquer que par défaut tout est refusé,
sauf ce qui est indiqué par les lignes dans le tableau
ufw (Uncomplicated Firewall): plus simple;
--------Compiler un Programme depuis les
sources-------------------------------------------------------------------------
-------------------------------------------
-il arrive parfois qu'il soit nécessaire d'installer un programme manuellement
car il n'apparaît pas dans apt-get.
Dans ce cas, il faut récupérer les sources du programme et les compiler
soi-même pour créer un exécutable
1- Trouver un paquet .deb(pour distros débian et derivés) et double clique -->
installation
- le programme alien est capable de convertir un .rpm en .deb au besoin.
1'-Dans le cas contraire
Si même le paquetage .deb n'est pas disponible, il ne reste alors qu'une
solution : récupérer le code source du programme et le compiler soi-même.
On peut ainsi créer un exécutable spécialement optimisé pour sa machine
-La compilation est un procédé qui permet de transformer le code source d'un
programme en
un exécutable que l'on peut utiliser.
•Etape:
1- installer paquet : build-essential
2- telecharger recuperer les codes source du programmes(compresser en .[Link]
puis le decompresser)
3- Executer ./configure pour verification outils pour compilation
-faire attention au erreur
4- compiler avec :
-make
-sudo make install/uninstall: pour installer/desinstaller le programme
compilé
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
---
-Vim: l'editeur
Mode interactif :copier ,coller etc...:réaliser des actions
Mode insertion : "2i" quitter avec "Echap" Ecriture du texte
Mode Commande : ":" puis valider avec "enter" enrégistrer,quitter,option etc...
----------->echap pour le changement de mode UN switch UN
-h,j,k,l:gauche,bas,haut,droite
-O ,$,w debut ,fin ligne et se deplacer de mot en mot
-:w : enregistrer un fichier mais faut révénir au mode interactif
-:q!: forcer fermeture
-:wq : enrégistrer et quitter
-x: pour supprimer un mot , nx: plusieures lettres d'un seul coup
-d: supprimer mot/ ligne : dd: supprimer une ligne (2dd) , dw: supprimer un
mot (2dw) , dO: supprimer du curseur jusqu'au début de la ligne , d$: ....juqu'a
la fin de la ligne
-yy: copier une ligne en mémoire
-p: coller le texte (4p)
-r : remplacer une léttre rs remplace par s, R: pour plusieures caractérés
Rbonjour
-u: annuler dérniére modification ,5u: 5 dérniére modifications Ctrl + R :
répéter un changement(annuler une annulation)
-G:sauter a la ligne numéro X, (L:ligne C:Colonne LC) , sauter a la 7ligne, G:
dérniére ligne, gg: retour a la prémiére ligne
-/:recherche un mot /vito ,s'il ya plusieures vito N , ?:pour dés le départ
:s:rechercher et remplacer
-:s/ancien/nouveau : remplace la première occurrence de la ligne où se trouve
le curseur ;
-:s/ancien/nouveau/g : remplace toutes les occurrences de la ligne où se
trouve le curseur ;
-:#,#s/ancien/nouveau/g : remplace toutes les occurrences dans les lignes n° #
à # du fichier ;
-:%s/ancien/nouveau/g : remplace toutes les occurrences dans tout le fichier.
C'est peut-être ce que vous utiliserez le plus fréquemment.
-:r : inserer un fichier a la position du curseur :r fichier
-:sp : diviser l'ecran horizontalement :sp, :sp fichier : des fichiers
différents, :vsp : verticalement (viewport)
Ctrl + w puis Ctrl + w : navigue de viewport en viewport. Répétez
l'opération plusieurs fois pour accéder au viewport désiré.
Ctrl + w puis j : déplace le curseur pour aller au viewport juste en
dessous. La même chose fonctionne avec les touches h, k et l que l'on utilise
traditionnellement pour se déplacer dans V im.
Ctrl + w puis + : agrandit le viewport actuel.
Ctrl + w puis - : réduit le viewport actuel.
Ctrl + w puis = : égalise à nouveau la taille des viewports.
Ctrl + w puis r : échange la position des viewports. Fonctionne aussi avec
« R » majuscule pour échanger en sens inverse.
Ctrl + w puis q : ferme le viewport actuel.
-:! : lancer des commandes externes :!ls
- Programmation Shell : Plusieures environnements Consoles
-le shell: est un programme qui gére l'invite de commandes
-.bashrc est le fichier de configuration du bash que linux nous fait utiliser
par défaut
-c'est possible d'installer un autre shell : apt-get install ksh et chsh: pour
changer de shell et indiquer l'endroit /bin/bash etc...
• sh : Bourne Shell. L'ancêtre de tous les shells.
• bash : Bourne Again Shell. Une amélioration du Bourne Shell, disponible par
défaut sous Linux et Mac OS X.
• ksh : Korn Shell. Un shell puissant assez présent sur les Unix propriétaires,
mais aussi disponible en version libre, compatible avec bash.
• csh : C Shell. Un shell utilisant une syntaxe proche du langage C.
• tcsh : Tenex C Shell. Amélioration du C Shell.
• zsh : Z Shell. Shell assez récent reprenant les meilleures idées de bash, ksh
et tcsh
-Création d'un script:
1- #!/bin/bash : dire quel shell utilisé et indiquer son emplacement et #! :
sha-bang ,#:indique un commentaires
2- donner le droit d'executer avec chmod +x etc...
3- ./[Link]: pour l'executer
4- Pour le debogage: bash +x [Link]
5-Exécuter sans le ./ : ils sont placer dans des répertoires du PATH qui est
une variable systéme qui
indique ou sont les programmes exécutables sur
l'ordinateur
6-Il suffit donc de placer ou de copier le scripts dans:
- /bin (Root)
- /usr/bin
- /usr/local/bin
• Déclaration d'une variable
Variable='texte' et eviter les espaces entre la variable et le =, faut
les collers
• Affichage
echo $variable , echo 'texte' , pour un autre (') faut faire \' , pour
retour a la ligne -e et '\n'
• les quotes
- Simple quotes (' ') : echo 'la variable est : $Variable' : affiche tel
quel est sans intérprété
- Doubles quotes (" " ): echo "la variable est : $Variable": les doubles
quotes demandent a bash d'analyser le contenu de la variable s'il y a des
symboles spéciaux il les interpréte
- Back-quotes (` `): Variable2=`pwd` ,echo " sa nous affiche $Variable :
Demande a bash d'executer ce qui se trouve a l'intérieur
• Lire une valeur a la saisie:
- read variable : demande a entrer un valeur et le stocke dans variable , ou
read variable1 varaible2 .....
- read -p 'Entrer une valeur:' nom : message prompt(message+saissie)
- -n 5 variable : limiter le nombre de caractéres a 5
- -t 5 variable : limiter le temps autoriser a 5s
- -s variable : ne peut pas afficher le texte saisi
-Bash et les nombres:
- let "a = 10"
•Les Parametres:
- ./[Link] param1 param2 ...|Des variables se creerons
automatiquement pour representer les parametres
|$#:pour le nombre de parametres
|$0:contient le nom du
script(./[Link]) $1: le premier parametre
•Les tableaux:
-Declaration : tableau=('var1' 'var2' '...') et ${ tableau[0]}:afficher
valeur et [*]: afficher tout
•Les Conditions:
if [ test ] |Plusieures test: [ test1 ] ||
ou && [ test2 ]
then echo "cool boy "(ordre a executer) |
else ...... | test case:
elif [ test ] then | case $1 in
elif | "parametre") instruction ;;
....esac
fi
- Pour les chaines : -z $chaine: si chaine vide ,-n $chaine: si chaine non
vide
- Pour les nombres : $n1 - gt $n2 , -gt , -eq , -ne , -lt , -le , -ge
- Pour les fichiers :
-e $nomfichier Vérifie si le fichier existe.
-d $nomfichier Vérifie si le fichier est un répertoire. N'oubliez pas que
sous Linux, tout est considéré comme un fichier, même un répertoire !
-f $nomfichier Vérifie si le fichier est un… fichier. Un vrai fichier cette
fois, pas un dossier.
-L $nomfichier Vérifie si le fichier est un lien symbolique (raccourci).
-r $nomfichier Vérifie si le fichier est lisible (r).
-w $nomfichier Vérifie si le fichier est modifiable (w).
-x $nomfichier Vérifie si le fichier est exécutable (x).
- $fichier1 nt $fichier2 Vérifie si fichier1 est plus récent que fichier2
(newer than).
- $fichier1 ot $fichier2 Vérifie si fichier1 est plus vieux que fichier2
(older than).
•Les boucles
while [ test ] for Variable in 'val1' 'val2' '...' `ls `
ou for i in seq 1 n
do do
do
instruction '.....' instruction
instruction
done done
done