Bases de Linux et de la ligne de commande
Apprenez avec des QCM l'organisation des répertoires et les chemins sous Linux, les liens physiques et symboliques, les caractères génériques, les permissions avec chmod et umask, sudo et setuid, les redirections et les pipes, grep et les expressions régulières, sort, uniq, cut, sed, awk et find, les signaux et le contrôle des tâches, le code de retour avec && et ||, les guillemets, les arguments, les conditions et les boucles des scripts shell, PATH et les variables d'environnement, la gestion des paquets, systemd, cron, df et du, l'authentification par clé publique de SSH, tar, et les opérations de base de Git.
Bases de Linux et de la ligne de commande : points clés
La plupart des serveurs et des clouds fonctionnent sous Linux, et les outils EDA de synthèse logique, de simulation de circuits, etc. s'utilisent eux aussi normalement sur des serveurs Linux. Le travail quotidien y consiste à taper des commandes dans un shell plutôt qu'à cliquer sur des boutons : examiner des fichiers, filtrer des journaux, laisser tourner de longs traitements après s'être déconnecté.
Ce thème couvre l'organisation des répertoires, les chemins absolus et relatifs, les fichiers cachés, les liens physiques et symboliques, les caractères génériques, les permissions rwx et leur notation octale, l'umask, le droit d'exécution sur les répertoires, ainsi que sudo et setuid. Il traite ensuite des redirections et des pipes, de grep et des expressions régulières, des comptages avec sort et uniq, de tail -f, cut, sed, awk et find, de kill et des signaux, de Ctrl+Z avec bg et fg, de nohup, du code de retour avec && et ||, des guillemets et du développement des variables, des arguments, des conditions et des boucles des scripts, de PATH et d'export, et vérifie enfin la gestion des paquets, systemctl, cron, df et du, les clés SSH, tar, ainsi que add, commit et push dans Git avec .gitignore. Le comportement des commandes suit bash et les commandes GNU (coreutils, grep, sed, findutils, tar), et les sorties données dans les questions ont été vérifiées en exécutant réellement les commandes sous Linux. Le fonctionnement des processus et de la mémoire virtuelle est traité dans « Système d'exploitation et matériel », les numéros de port et le DNS dans « Bases des réseaux informatiques », les principes du contrôle d'accès dans « Bases de la sécurité de l'information », et les fusions dans Git ainsi que les méthodes de développement dans « Développement logiciel et gestion de projet ».
Toutes les questions sur Bases de Linux et de la ligne de commande (40)
- Quelle association entre des répertoires standard de Linux et ce que l'on y place est correcte ?
- Quelle description du répertoire /proc de Linux est correcte ?
- Le répertoire /home/alice/data existe, et le répertoire courant est /home/alice/work. Quel répertoire s'affiche si l'on exécute « cd ../data », puis « pwd » ?
- Dans le répertoire personnel, « ls » n'affiche que notes.txt, alors que « ls -a » affiche « . », « .. », « .bashrc » et « notes.txt ». Quelle explication de ce résultat est correcte ?
- Si l'on exécute dans l'ordre les commandes ci-dessus, quel est le résultat des deux dernières commandes cat ?
- Un répertoire contient six fichiers : a1.txt, a2.txt, a10.txt, b1.txt, c1.txt et a1.csv. Combien de fichiers s'affichent si l'on exécute « ls [ab]?.txt » dans ce répertoire ?
- Après l'exécution de « chmod 754 run.sh » sur le fichier run.sh, quelle notation des droits s'affiche au début de la ligne produite par « ls -l run.sh » ?
- touch crée un nouveau fichier à partir de 666, et mkdir un nouveau répertoire à partir de 777, en retirant les bits de l'umask. Quelle combinaison de droits est correcte lorsqu'un nouveau fichier et un nouveau répertoire sont créés dans un shell dont l'umask vaut 027 ?
- Le répertoire d a les droits rwx--x--x (711), et le fichier f.txt qu'il contient a rw-r--r-- (644). Un utilisateur qui n'est ni le propriétaire ni le superutilisateur exécute « ls d » et « cat d/f.txt ». Quel est le résultat ?
- Quelle description de la commande sudo de Linux est correcte ?
- Sur de nombreux systèmes Linux, « ls -l /usr/bin/passwd » affiche « -rwsr-xr-x 1 root root ... ». Quelle est la signification du « s » placé à la position de l'exécution du propriétaire ?
- Si l'on exécute dans l'ordre les commandes ci-dessus, quel contenu affiche le dernier cat ?
- Comme ci-dessus, dans un répertoire où a.txt existe et nofile n'existe pas, on exécute la dernière commande. Quel est le résultat ?
- Dans la session ci-dessus, quelle valeur affiche la dernière commande ?
- Dans la session ci-dessus, quelles lignes affiche le dernier grep ?
- Les choix sont donnés sans les espaces en début de ligne. Dans la session ci-dessus, quelle ligne affiche le dernier enchaînement de commandes ?
- On veut afficher en continu à l'écran les lignes ajoutées par la suite au fichier journal du serveur /var/log/app.log, au fur et à mesure de leur ajout. Quelle commande convient ?
- Quelle est la sortie de la commande ci-dessus, qui extrait des colonnes d'une ligne dont les champs sont séparés par des virgules ?
- Quelle est la sortie de la commande sed ci-dessus, qui remplace des caractères ?
- Dans la session ci-dessus, qu'affiche le dernier awk ?
- Quelle description des fichiers trouvés en exécutant « find /data -name "*.log" -mtime +7 -size +100M » avec le find de GNU est correcte ?
- Pour arrêter un processus qui ne répond plus, il est conseillé d'utiliser d'abord « kill <ID du processus> », et de n'utiliser « kill -9 <ID du processus> » que si cela ne suffit pas à le terminer. Quelle en est la raison ?
- Pendant qu'un long ./sim.sh s'exécute dans un terminal, on veut utiliser d'autres commandes dans le même terminal. Que se passe-t-il si l'on appuie sur Ctrl+Z, puis qu'on exécute bg ?
- Sur un serveur auquel on s'est connecté par SSH, on a lancé un long traitement avec « ./run.sh & », puis, en fermant la connexion, le traitement s'est arrêté lui aussi. Quelle est la manière la plus appropriée de le lancer pour qu'il continue après la fermeture de la connexion ?
- Si l'on exécute les deux lignes ci-dessus dans un shell, quels caractères s'affichent ?
- Si l'on exécute dans l'ordre les commandes ci-dessus, quelle est la sortie des deux commandes echo ?
- Comme ci-dessus, on exécute le script s.sh avec des arguments. Quelle est la sortie ?
- Dans un script shell, dans quel cas la condition du if ci-dessus est-elle vraie ?
- Quels fichiers se trouvent dans le répertoire après la session ci-dessus ?
- Le script exécutable run.sh, situé dans le répertoire courant, donne « command not found » quand on le lance en tapant « run.sh », mais s'exécute quand on tape « ./run.sh ». Quelle en est la raison ?
- Si l'on exécute dans l'ordre les commandes ci-dessus, quelle est la combinaison des sorties des deux commandes bash -c ?
- Quelle est la fonction principale d'un système de gestion de paquets de Linux (apt sur les systèmes dérivés de Debian, dnf sur les systèmes dérivés de Red Hat, etc.) ?
- Sur un système Linux qui utilise systemd, quelle est la différence entre « systemctl start license.service » et « systemctl enable license.service » pour le service license.service ?
- La ligne « 30 2 * * 1 /home/alice/backup.sh » a été enregistrée dans cron. Quand backup.sh est-il exécuté ?
- Un serveur Linux avertit que l'espace disque libre devient insuffisant. Quelle est la bonne combinaison d'une commande qui vérifie l'espace utilisé et l'espace libre de chaque système de fichiers, et d'une commande qui totalise l'espace occupé par les fichiers d'un répertoire ?
- On a créé avec ssh-keygen, sur son propre PC, une paire de clés pour l'authentification par clé publique, et on veut se connecter au serveur server1 avec ssh sans mot de passe. Quelle est la bonne façon de placer les clés ?
- Que se passe-t-il quand on exécute « tar -czf proj.tar.gz proj/ » ?
- Après avoir modifié main.c, un fichier géré avec Git, on a seulement exécuté « git commit -m "fix" » : « no changes added to commit » s'est affiché et rien n'a été validé. Quelle en est la raison ?
- On a exécuté git commit dans Git, mais le commit n'apparaît pas encore dans le dépôt GitHub partagé par l'équipe. Quelle en est la raison ?
- Dans un projet géré avec Git, on a écrit « build/ » dans le fichier .gitignore, mais les modifications de build/out.log, qui avait été validé auparavant, continuent d'apparaître dans git status. Quelle en est la raison ?
Autres thèmes de Systèmes informatiques
- Arithmétique des ordinateurs IEEE 754, virgule fixe, erreur d'arrondi
- Probabilités, statistiques et files d'attente Dénombrement, lois de probabilité, estimation et tests, M/M/1
- ISA et assembleur RISC-V, modes d'adressage, conventions d'appel
- Compilateurs Analyse syntaxique, SSA, optimisation, registres
- Éditeurs de liens, chargeurs et exécutables ELF, symboles, relocalisation, liaison dynamique
- Système d'exploitation et matériel Interruptions, appels système, défauts de page
- Hiérarchie mémoire Cache, remplacement, trois types de défauts
- Multicœur et synchronisation MESI, instructions atomiques, barrières mémoire
- Programmation GPU Warps, mémoire partagée, coalescence, occupation
- Pile matérielle et logicielle de l'IA Inférence/entraînement, quantification, roofline
- Bases de l'apprentissage automatique Types d'apprentissage, métriques et réseaux de neurones
- Systèmes embarqués et firmware GPIO, UART/SPI/I2C, RTOS
- HDL et vérification Verilog, latches, machines à états, testbenches
- Interfaces d'E/S et bus PCIe, USB, SerDes, CXL
- Bases des réseaux informatiques TCP/IP, sous-réseaux, DNS, TLS
- Bases des technologies web HTTP, cookies, REST, CORS, cache
- Bases des communications sans fil Modulation, OFDM, MIMO et circuits RF
- Bases de la sécurité de l'information Cryptographie, authentification, attaques web
- Bases des bases de données SQL, normalisation, transactions
- Structures de données et algorithmes Complexité, recherche, tris, graphes
- Bases de la programmation (trace de pseudo-code) Pseudo-code, trace, tableaux et récursion
- Bases de la programmation en C Pointeurs, mémoire, comportement indéfini
- Développement logiciel et gestion de projet Processus, tests, délais et coûts
- Bases de la stratégie d'entreprise et de la comptabilité Comptabilité, seuil de rentabilité, stratégie, marketing
- Gestion des services et audit des systèmes d'information SLA, incidents et problèmes, audit et contrôle interne
- Architecture des systèmes et fiabilité Redondance, RAID, sauvegardes et cloud
- Analyse des performances Loi d'Amdahl, CPI, goulots d'étranglement
- Sécurité matérielle Canaux auxiliaires, secure boot, TEE, PUF
- Gestion de l'énergie DVFS, power gating, états de veille