====== Différences ======
Cette page vous affiche les différences entre la révision choisie et la version actuelle de la page.
cours:activite1:linux_initiation_au_shell [2013/10/03 11:59] r.doiteau |
cours:activite1:linux_initiation_au_shell [2019/05/11 14:35] (Version actuelle) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Commandes de base ====== | + | === Commandes de base === |
<fc #008000>La fonction "mkdir NOM_DU_DOSSIER" permet de créer un dossier.</fc> | <fc #008000>La fonction "mkdir NOM_DU_DOSSIER" permet de créer un dossier.</fc> | ||
Ligne 19: | Ligne 19: | ||
<fc #008000>La fonction "su NOM_DE_L'UTILISATEUR" permet de se connecter en tant que cet utilisateur.</fc> | <fc #008000>La fonction "su NOM_DE_L'UTILISATEUR" permet de se connecter en tant que cet utilisateur.</fc> | ||
- | ===== 1 : fonction cal ===== | + | === 1 : fonction cal === |
**cal COMMAND:** | **cal COMMAND:** | ||
Ligne 69: | Ligne 69: | ||
Ici, la commande «cal» affiche le calendrier des mois d’avril, mai et juin de l’année 2008. | Ici, la commande «cal» affiche le calendrier des mois d’avril, mai et juin de l’année 2008. | ||
- | ===== 2 : fonction date ===== | + | === 2 : fonction date === |
**date COMMAND :** | **date COMMAND :** | ||
Ligne 150: | Ligne 150: | ||
mercredi | mercredi | ||
- | ===== 3 : fonction echo ===== | + | ===3 : fonction echo ===== |
**syntaxe :** | **syntaxe :** | ||
Ligne 165: | Ligne 165: | ||
+%r heure en format 24-heure identique à %H:%M | +%r heure en format 24-heure identique à %H:%M | ||
- | ===== 4 : fonction ls ===== | + | === 4 : fonction ls ===== |
**syntaxe** | **syntaxe** | ||
Ligne 173: | Ligne 173: | ||
-i, --inode affiche le numéro d'index de chaque fichier | -i, --inode affiche le numéro d'index de chaque fichier | ||
+ | |||
+ | === 5 : fonction touch ===== | ||
+ | |||
+ | permet de créer un fichier | ||
+ | |||
+ | ex: touch toto.txt | ||
+ | |||
+ | |||
+ | === 6 : fonction cat ===== | ||
+ | |||
+ | concatène et affiche le fichier | ||
+ | |||
+ | ex : cat toto.txt | ||
+ | Salut | ||
+ | | ||
+ | ou cat > toto.txt permet #l'edition de celui-ci | ||
+ | cat toto.txt toto2.txt > #toto3.txt concaténe toto et toto2 vers toto3 | ||
+ | |||
+ | |||
+ | === 7 : fonction grep ===== | ||
+ | |||
+ | recherche des fichiers | ||
+ | |||
+ | ex : recherche des fichiers dans les processus en cours, bash étant le mot recherché | ||
+ | |||
+ | ps | grep bash | ||
+ | |||
+ | ex : recherche dans le dossier /etc/services, le mot "hhtp" en indiquant le nom des lignes | ||
+ | |||
+ | grep -w http /etc/services | ||
+ | |||
+ | ex : <fc #FF0000>ne pas</fc> recherché dans le dossier /etc/services, le mot "hhtp" en indiquant le nom des lignes | ||
+ | |||
+ | grep -v http /etc/services | ||
+ | | ||
+ | ex : recherche et compte dans le dossier /etc/passwd, le mot "sbin" en indiquant le nom des lignes | ||
+ | |||
+ | grep -w -c sbin /etc/passwd | ||
+ | | ||
+ | ex : recherche une chaîne de caractère "tux" dans le dossier /etc | ||
+ | |||
+ | grep -l -R tux /etc/ | ||
+ | |||
+ | ex : recherche sans respecter la casse | ||
+ | | ||
+ | grep -i iana /etc/services | ||
+ | |||
+ | === 8 : fonction cut ===== | ||
+ | |||
+ | supprime une partie de chaque ligne du fichier, | ||
+ | |||
+ | <note warning>Attention il faut préciser les délimiteurs : par -d ":" si le délimiteurs est :</note> | ||
+ | |||
+ | ex : cut -f1,3 -d":" /etc/group | ||
+ | |||
+ | |||
+ | === 9 : fonction sort ===== | ||
+ | |||
+ | tri les lignes | ||
+ | |||
+ | ex : sort /etc/passwd | ||
+ | |||
+ | - n permet de trier du plus grand au plus petir | ||
+ | -t : -(position inf) +(position sup) permet de trier a partir d'un position prédéfinie | ||
+ | |||
+ | === 10 : fonction head et tail ===== | ||
+ | |||
+ | affiche le début ou la fin de chaque fichier | ||
+ | |||
+ | ex : -n5 affiche les 5 premières ligne du fichier | ||
+ | |||
+ | head -n5 /etc/passwd | ||
+ | |||
+ | -n+(position) : permet de sélectionner un ligne pur afficher à partir de la niéme | ||
+ | |||
+ | |||
+ | | ||
+ | | ||
+ | ======Pratique TP 2====== | ||
+ | |||
+ | |||
+ | ===1. Créez un fichier contenant la date du jour. Ajoutez à la fin de ce fichier le contenu du répertoire courant.=== | ||
+ | |||
+ | Créer un fichier: touch NOM_DU_FICHIER (date.txt). Ajouter la date: date > date.txt | ||
+ | |||
+ | ===2. Choississez un fichier existant et listez ses caractéristiques avec l’option l.=== | ||
+ | |||
+ | Lister les caractéristiques d'un fichier: ls -l NOM_DU_FICHIER. | ||
+ | |||
+ | ===3. Recommencez l’opération avec un nom de fichier n’existant pas.=== | ||
+ | |||
+ | Cf 2 | ||
+ | |||
+ | ===4. Effectuez les mêmes opérations que ci-dessus, mais en sauvegardant les résultats dans respectivement out-normal et out-err.=== | ||
+ | |||
+ | (| = pipe) | ||
+ | Lister et sauvegarder: ls -l NOM_DU_FICHIER > NOM_DU_FICHIER_SAUVEGARDE | ls -l NOM_DU_FICHIER_NON_EXISTANT >& NOM_DU_FICHIER_SAUVEGARDE_ERR | ||
+ | |||
+ | ===5. Listez les caractéristiques d’un second fichier existant avec l’option l, et en ajoutant ce résultat au fichier out-normal.=== | ||
+ | |||
+ | Ajout de données à un fichier: ls -l NOM_DU_FICHIER >> NOM_DU_FICHIER_SAUVEGARDE | ||
+ | |||
+ | ===6. Listez deux fichiers, l’un connu, l’autre inconnu et récupérer, en une seule commande, les informations dans les fichiers out-normal et out-err.=== | ||
+ | |||
+ | ls -l NOM_DE_FICHIER >NOM_DU_FICHIER_SAUVEGARDE|ls -l NOM_DU_FICHIER_NON_EXISTANT >& NOM_DU_FICHIER_SAUVEGARDE_ERR | ||
+ | |||
+ | |||
+ | ===7. Idem mais dans un même fichier out.=== | ||
+ | |||
+ | ls -l NOM_DE_FICHIER>NOM_DU_FICHIER_SAUVEGARDE|ls -l NOM_DU_FICHIER_NON_EXISTANT &> NOM_DU_FICHIER_SAUVEGARDE | ||
+ | |||
+ | ===8. Idem mais en utilisant le périphérique null (/dev/null) pour ne pas afficher les messages d’erreur.=== | ||
+ | |||
+ | ls -l NOM_DE_FICHIER>NOM_DU_FICHIER_SAUVEGARDE|ls -l NOM_DU_FICHIER_NON_EXISTANT &> /dev/null | ||
+ | |||
+ | ===9. Lancez un shell, puis la commande tty pour récupérer le nom du terminal.=== | ||
+ | |||
+ | Ouvrir un nouveau shell: maj+ctrl+n | ||
+ | |||
+ | ===10. Exécutez quelques commandes dans une fenêtre et afficher le résultat dans la seconde et éventuellement la sortie erreur dans une troisième.=== | ||
+ | |||
+ | Afficher le résultat des commandes dans l'autre shell: ls -l > /dev/pts/1 | ||
+ | |||
+ | ===11. La commande ps permet d’obtenir des informations sur la liste des processus actifs sur la machine. En combinant cette commande, à l’aide d’un pipe, avec la commande appropriée, affichez le nombre de processus actifs.=== | ||
+ | |||
+ | ps --no-header | wc -l | ||
+ | |||
+ | ===12. La commande sort permet de trier ce qui lui est communique sur l’entrée standard. Affichez par ordre de taille tous vos fichiers et vos répertoires.=== | ||
+ | |||
+ | ls -l| sort -k5 -g | ||
+ | |||
+ | ===13. Écrire une suite de commandes reliées par des pipes qui compte le nombre de lignes d’un fichier qui contiennent toto.=== | ||
+ | |||
+ | cat NOM_DU_FICHIER |wc -l NOM_DU_FICHIER | ||
+ | |||
+ | ===14. Chaque ligne du fichier /etc/passwd donne des informations relatives à un utilisateur du système, et contient plusieurs champs séparés par le caractère:(deux points). Affichez tous les champs de ce fichier, depuis le nom d’utilisateur jusqu’`a son UID (ie. les 4 premiers champs).=== | ||
+ | |||
+ | cut -f1,2,3,4 -d":" /etc/passwd | ||
+ | |||
+ | ===15. Recherchez dans ce même fichier la ligne contenant votre nom d’utilisateur.=== | ||
+ | |||
+ | grep NOM_D'UTILISATEUR /etc/passwd | ||
+ | |||
+ | ===16. En utilisant les commandes date et cut, affichez le mois courant.=== | ||
+ | |||
+ | date | cut -f3 -d" " | ||
+ | |||
+ | ===17. Affichez le nombre d’utilisateurs connectés sur votre poste (Voir la commande who).=== | ||
+ | |||
+ | who -u | cut -f1 -d" "| sort -k1 -u| wc -l | ||
+ | affiche le nombre d'utilisateur | prend la première colonne | tri par nom et enlève les doublons | Compte les lignes. | ||
+ | |||
+ | ===18. A l’aide des commandes head et tail, affichez la portion d’un fichier comprise entre les lignes 5 à 9.=== | ||
+ | |||
+ | cat /etc/passwd | head -n9 | tail -n5 | ||
+ | |||
+ | ===19. Comment utiliser la commande cat pour écrire du texte dans un fichier?=== | ||
+ | |||
+ | cat > toto.txt | ||
+ | |||
+ | ======Pratique TP 3====== | ||
+ | |||
+ | === Créer un processus en arrière plan === | ||
+ | xclock& | ||
+ | |||
+ | === Tuer un processus === | ||
+ | kill 4427 #le numéro de processus apparaît lors du lancement de celui-ci | ||
+ | |||
+ | === Retrouver un numéro de processus pour le tuer === | ||
+ | |||
+ | ps | ||
+ | 3735 pts/1 00:00:00 bash | ||
+ | 4422 pts/1 00:00:00 xclock | ||
+ | 5101 pts/1 00:00:00 ps | ||
+ | | ||
+ | kill -9 4422 #le -9 kill tous les process en rapport avec celui-ci | ||
+ | |||
+ | === Afficher la valeur d'une variable === | ||
+ | echo $HOME # $ donne la valeur de la variable et non le nom de la variable | ||
+ | |||
+ | |||
+ | === Afficher les variables d'environnement du shell === | ||
+ | export | ||
+ | === Attribuer une variable === | ||
+ | VAR="toto" #attribue la variable | ||
+ | export VAR #export la variable | ||
+ | echo $VAR #affiche la variable | ||
+ | |||
+ | === Attribuer une variable pour l’exécuter simplement=== | ||
+ | |||
+ | PATH=/home/r.doiteau/script/:$PATH #attribution de la variable | ||
+ | export #vérification | ||
+ | |||
+ | declare -x PATH="/home/r.doiteau/script/:/usr/local/bin:/usr/bin:/bin:/usr//games:/usr/games" | ||
+ | |||
+ | script.sh #exécution | ||
+ | |||
+ | === Enregistrement permanent des alias=== | ||
+ | Éditer les alias dans le fichier .bashrc présent à la racine de root | ||