Aucune des trois méthodes ne s’étendra au répertoire de base de l’utilisateur. Utilisation uniquement "$HOME/photo dir"sera couronné de succès.
Seule la méthode 1 se développera "~/" au répertoire de base de l’utilisateur, puis ajoutez le nom du répertoire entre guillemets qui inclut un espace.
Seule la méthode 2 se développera "~/" au répertoire de base de l’utilisateur, puis ajoutez le nom du répertoire entre guillemets qui inclut un espace.
Seule la méthode 3 se développera "~/" au répertoire de base de l’utilisateur, puis ajoutez le nom du répertoire entre guillemets qui inclut un espace.
Q2. Si script.sh est exécuté dans le répertoire actif, il échouera. Pourquoi?
$ ls -1
Beach photo1.jpg
Photo1.jpg
Photo2.jpg
Script.sh
$ cat script.sh
for i in $(ls *.jpg); do mv $i${i}.bak
done
ls: impossible d’accéder au fichier inexistant: Aucun fichier ou répertoire de ce type
La boucle for se divisera sur les limites des mots et Beach photo1.jpg a un espace dedans.
La commande mv échouera car le crochet bouclé est un caractère spécial dans Bash et ne peut pas être utilisé dans les noms de fichiers.
L’exécution de script.sh réussira car la commande ls crée une liste de fichiers dans le répertoire actif et pour les boucles à travers cette liste en renommant les fichiers avec une extension .bak.
Q3. Pour exécuter une commande de copie dans un sous-shell, quelle syntaxe utiliseriez-vous ?
( command )
sh command
{ command; }
(( command ))
Q4. En utilisant « awk », quelle serait la sortie de cette chaîne de commande ?
Q5. La commande ci-dessous recherchera dans le système de fichiers racine les fichiers nommés « finance.db ». Dans ce contexte, quelles informations sont envoyées à /dev/null ?
Q19. Si vous êtes invité à entrer du texte à l’entrée standard, vous pouvez indiquer à la commande que vous avez terminé de saisir du texte avec quelle combinaison de touches?
Ctrl + A (Windows) ou Commande + A (Mac)
Ctrl + E (Windows) ou Commande + E (Mac)
Ctrl + D (Windows) ou Commande + D (Mac)
Ctrl + Z (Windows) ou Commande + Z (Mac)
Q20. Pour qu’un script Bash soit exécuté comme une commande du système d’exploitation, il doit commencer par une ligne shebang. À quoi cela ressemble-t-il?
#!/usr/bin/env bash
~/usr/bin/env bash
'$!/usr/bin/env bash
#/usr/bin/env bash
Q21. Quelle ligne de script Bash a probablement produit la sortie montrée ci-dessous?
The date is: Sun Mar 24 12:30:06 CST 2019!
echo "The date is: !"
echo "The date is: date!"
echo "The date is: (date)!"
echo "The date is: $(date)!"
Q22. Supposons que votre répertoire de travail actuel soit votre répertoire personnel. Comment pouvez-vous exécuter le script demo.sh qui se trouve dans votre répertoire personnel ? Trouvez trois bonnes réponses.
A. /home/demo.sh
B. ./demo.sh
C. ~/demo.sh
D. bash /home/demo.sh
E. bash demo.sh
B, C, E
A, B, C
C, D, E
B, D, E
Q23. Comment pourriez-vous obtenir une liste de tous les fichiers .html de votre arbre?
find . -type html
find . -name *.html
find *.html
find . -name \*.html -print
Le second semble bien, mais développera le * s’il y a un fichier .html sur votre répertoire de travail.
Q24. Qu’y aurait-il dans l’out.txt?
cat < in.txt > out.txt
Sortie de la ligne de commande. Par défaut, STDIN provient du clavier.
Rien car vous ne pouvez pas rediriger du fichier (in.txt) vers un autre fichier (out.txt). Vous pouvez uniquement rediriger d’une commande vers un fichier.
Ce serait le contenu de in.txt.
Rien. La redirection créera un nouveau fichier vide mais il n’y aura aucune sortie de la commande cat à rediriger.
Q25. Que fait cette déclaration bash ?
(( $a == $b ))
echo $?
Il effectue une boucle entre les valeurs de $a et $b.
Il teste si les valeurs des variables $a et $b sont égaux.
Il renvoie $b s’il est plus grand que $a.
Il renvoie $a s’il est plus grand que $b.
Q26. Qu’utilisez-vous dans une déclaration de cas pour dire à Bash que vous avez terminé avec un test spécifique?
; ;
: :
done
$$
Q27. Que représente l’astérisque dans cette déclaration ?
Q37. Quel fichier vous permet d’enregistrer les modifications apportées à l’environnement shell entre les sessions ?
/etc/bash.conf
~/.profile
/etc/bashprofile
~/profile
Q38. Compte tenu des autorisations répertoriées sur les données.txt est-il possible que l’utilisateur2 puisse avoir des autorisations de lecture, d’écriture et d’exécution sur les données.txt ?
$ ls -l
total 0
-rwx------+ 1 user1 user1 0 Oct 27 10:54 data.txt
Non, il est clair que user2 n’a pas d’autorisations de lecture, d’écriture et d’exécution.
Oui, le + à la fin de la chaîne d’autorisation à 10 chiffres, cela signifie qu’il y a une liste de contrôle d’accès. Cela pourrait éventuellement donner à l’utilisateur2 des autorisations non visibles par ls -l.
Il est possible que SELinux fournisse des autorisations de lecture, d’écriture et d’exécution pour user2 qui ne sont pas visibles avec ls -l.
Oui, le + à la fin de la chaîne d’autorisation à 10 chiffres, cela signifie qu’il existe un jeu d’attributs étendu. Cela pourrait donner à l’utilisateur2 des autorisations pour lire, écrire et exécuter des données.txt.
Q39. Qu’est-ce que ce script accomplit ?
#!/bin/bashdeclare -A ARRAY=([user1]=bob [user2]=ted [user3]=sally)
KEYS=(${!ARRAY[@]})
for (( i=0; $i < ${#ARRAY[@]}; i+=1 ));doecho${KEYS[$i]} - ${ARRAY[${KEYS[$i]}]}done
Il trie le tableau associatif nommé ARRAY et stocke les résultats dans un tableau indexé nommé KEYS. Il utilise ensuite ce tableau trié pour parcourir en boucle le tableau associatif ARRAY.
À l’aide d’une boucle de style C, il effectue une boucle à travers le tableau associatif nommé ARRAY à l’aide des clés du tableau associatif et génère à la fois la clé et les valeurs de chaque élément.
Il crée un tableau indexé du tableau associatif nommé ARRAY. Il utilise ensuite un style C pour boucle et le tableau indexé pour parcourir en boucle tous les éléments du tableau associatif, en sortant la clé et la valeur de chaque élément de tableau à l’aide du numéro d’index.
Il crée un tableau associatif nommé ARRAY, qu’il effectue en boucle à l’aide d’un style C pour boucle et des numéros d’index de chaque élément dans les clés du tableau associatif, en sortant la valeur de chaque élément.
Q40. Quel fichier correspondrait au code ci-dessous?
ls Hello[[.vertical-line.]]World
Rien, il s’agit d’un fichier glob non valide.
Hello.vertical-line.World
Hello[[.vertical-line.]]World
Hello|World
Q41. Qu’y aura-t-il dedans.txt?
ls nonexistentfile | grep "No such file" > out.txt
Aucun fichier de ce type
ls: impossible d’accéder au fichier inexistant: Aucun fichier ou répertoire de ce type
Rien, dehors.txt ne sera vide.
Ce sera le contenu du fichier inexistant.
Q42. Pour que le script imprime « Est numérique » à l’écran, que devrait entrer l’utilisateur lorsqu’il y est invité ?
#!/bin/bashread -p "Enter text " var
if [[ "$var" =~ "^[0-9]+$" ]];thenecho"Is numeric"elseecho"Is not numeric"fi
Toute séquence de caractères qui inclut un entier
L’utilisateur devrait entrer la séquence de caractères de ^[0-9]]+$ Seulement cela s’avérera vrai et « Est numérique » serait imprimé à l’écran en raison d’une syntaxe incorrecte. En encapsulant l’expression régulière entre guillemets doubles, toutes les correspondances échouent, à l’exception de la chaîne de texte ^[0-9]+$
Un ou plusieurs caractères qui n’incluent que des entiers
En raison d’une erreur de syntaxe, il est impossible d’obtenir le script pour imprimer « Est numérique »
Le regex ne doit pas être cité pour fonctionner correctement.
Q43. Comment trouveriez-vous la dernière commande de copie exécutée dans votre historique ?
| d’histoire trouver cp
| historique grep cp
historique grep cp
cp historique
Q44. Pour écrire un script qui parcourt les fichiers d’un répertoire, lequel des éléments suivants pourriez-vous utiliser ?
bash for i in $(ls); do ... done
bash for $(ls); do ... done
bash for i in $ls; do ... done
bash for $ls; do ... done
Q45. Lors de l’exécution d’une commande et de la transmission de la sortie de cette commande à une autre commande, quel caractère vous permet d’enchaîner ces commandes ?
|
->
#
@
Q46. Dans le script ci-dessous, qu’est-ce qui est salutation?
Q57. Le code ci-dessous semble fonctionner et les sorties « 8 est supérieur à 5 ». Cependant, quel résultat inattendu vous dira qu’il ne fonctionne pas correctement?
#!/bin/bashvar="8"if [ $var > 5 ]; thenecho"$var is greater than 5"fi
Il n’y aura pas de résultats inattendus. Ce script fonctionne tel quel et la sortie sera « 8 est supérieur à 5 ».
La comparaison ne pourra pas gérer les nombres à virgule flottante, car Bash ne gère que les entiers. Cet exemple génère donc un message d’erreur si la valeur de $var est remplacée par « 8.8 ».
Il y aura un fichier dans le répertoire actuel nommé 5.
La variable $var n’est pas citée, ce qui entraînera un fractionnement des mots. Ce script échouera avec un message « opérateur unaire attendu » si vous modifiez la valeur de
Q58. Quel est le résultat de ce script ?
Il supprime le répertoire 'foo' et les fichiers qu’il contient.
Il supprime tous les fichiers à l’exception de ceux du répertoire actuel.
Il supprime tous les fichiers du répertoire actif.
Il supprime tous les fichiers sauf ceux du répertoire 'foo'.
Q59. Lequel est vrai?
Les règles de stratégie SELinux sont vérifiées après les règles DAC.
Les règles de stratégie SELinux sont vérifiées avant les règles DAC
Les règles de stratégie SELinux ne sont jamais vérifiées après les règles DAC.