Nessuno dei tre metodi si espanderà nella home directory dell'utente. Solo utilizzando "$HOME/photo dir"avrà successo.
Solo il metodo 1 si espanderà "~/" alla home directory dell'utente e quindi aggiungere il nome della directory tra virgolette che include uno spazio.
Solo il metodo 2 si espanderà "~/" alla home directory dell'utente e quindi aggiungere il nome della directory tra virgolette che include uno spazio.
Solo il metodo 3 si espanderà "~/" alla home directory dell'utente e quindi aggiungere il nome della directory tra virgolette che include uno spazio.
D2. Se script.sh viene eseguito nella directory corrente, avrà esito negativo. Perché?
$ 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: impossibile accedere a inesistentfile: Nessun file o directory di questo tipo
Il ciclo for si dividerà sui confini delle parole e Beach photo1.jpg ha uno spazio al suo interno.
Il comando mv avrà esito negativo perché la parentesi graffa è un carattere speciale in Bash e non può essere utilizzata nei nomi dei file.
L'esecuzione di script.sh avrà esito positivo poiché il comando ls crea un elenco di file nella directory corrente e per i cicli attraverso tale elenco rinominando i file con un'estensione .bak.
D3. Per eseguire un comando copy in una subshell, quale sintassi useresti?
( command )
sh command
{ command; }
(( command ))
D4. Usando "awk", quale sarebbe l'output di questa stringa di comando?
D5. Il comando seguente cercherà nel filesystem root i file denominati "finance.db". In questo contesto, quali informazioni vengono inviate a /dev/null?
Mostrerebbe il nome utente, l'UID e la home directory di user1 separati da due punti.
Stamperebbe l'UID, il GID e la home directory di user1 separati da trattini.
Stamperebbe l'UID, il commento e la home directory di user1 separati da trattini.
Mostrerebbe il nome utente, l'UID e la home directory di user1 separati da trattini.
D8. Cosa succede se si utilizza il comando "set -e" in uno script Bash?
Causerà l'uscita di Bash se una funzione o una subshell restituisce un codice di stato diverso da zero.
Causerà l'uscita di Bash se un condizionale restituisce un codice di stato diverso da zero.
Causerà l'uscita di Bash se le assegnazioni locali, dichiarate o typeset restituiscono un codice di stato diverso da zero.
Causerà l'uscita di Bash se un comando, un elenco di comandi, un comando composto o potenzialmente una pipeline restituisce un codice di stato diverso da zero.
D9. Le _ parola chiave mette in pausa lo script per ottenere input dall'input standard.
ottieni
argomento
leggi
ingresso
D10. Se file.sql contiene istruzioni SQL da eseguire, cosa ci sarà in file.txt?
mysql < file.sql > file.txt
una copia del contenuto del file.sql
un errore che indica che si tratta di una sintassi non valida
l'output di errore del comando MySQL
l'output non di errore del comando MySQL
Nota: controlla la domanda qui sotto per una variante.
D11. Quale sarà la differenza tra l'output sullo schermo e il contenuto di out.txt
mysql < file.sql > out.txt
L'output sullo schermo sarà identico a out.txt
Non ci sarà alcun output sullo schermo mentre viene reindirizzato a out.txt.
L'output sullo schermo sarà identico a out.txt più numeri di riga.
Il file out.txt conterrà STDERR e STDOUT andrà allo schermo.
Nota: controlla la domanda sopra per una variante.
D12. In che modo SUID o setuid influisce sui comandi eseguibili?
Quando il comando crea file, questi saranno di proprietà del proprietario del gruppo del comando.
Il bit SUID consente a chiunque di eseguire il comando indipendentemente dalle altre autorizzazioni impostate.
Quando il comando viene eseguito, i suoi privilegi in esecuzione passano al proprietario utente del comando.
Quando il comando viene eseguito, i suoi privilegi in esecuzione vengono elevati al proprietario del gruppo del comando.
D13. Per estrarre il testo dalla prima colonna di file chiamata textfile, quale comando useresti?
cat {$1,textfile}
cat textfile | awk [print $1]
cat textfile | awk '{print $1}'
awk textfile {print $1}
D14. Qual è la scorciatoia da tastiera per richiamare la ricerca della cronologia bash come mostrato di seguito?
(reverse-i-search)`':
Esc + R
Ctrl + H
Ctrl + R
Alt + R
D15. Quale espressione aritmetica darà la risposta più precisa?
var=$( expr 10 / 8 )
(( var= 10 /8 ))
var=$(( 10 / 8 ))
var=$(echo 'scale=2; 10 / 8' | bc)
D16. Qual è il risultato di questo script?
txt=Penguins
[[ $txt =~ [a-z]{8} ]]; echo $?
0, che rappresenta 'true', perché la variabile "txt" contiene otto lettere
0, che rappresenta 'vero', perché tutti amano i pinguini!
1, che rappresenta 'false', perché la variabile "txt" è più lunga di otto caratteri
1, che rappresenta 'false', perché la variabile "txt" non contiene otto lettere minuscole tra a e z
D17. Come cambieresti il prompt della shell Bash come segue?
D19. Se viene richiesto il testo all'input standard, è possibile dire al comando che hai finito di inserire il testo con quale combinazione di tasti?
Ctrl + A (Windows) o Comando + A (Mac)
Ctrl + E (Windows) o Comando + E (Mac)
Ctrl + D (Windows) o Comando + D (Mac)
Ctrl + Z (Windows) o Comando + Z (Mac)
D20. Affinché uno script Bash possa essere eseguito come un comando del sistema operativo, dovrebbe iniziare con una linea shebang. Che aspetto ha?
#!/usr/bin/env bash
~/usr/bin/env bash
'$!/usr/bin/env bash
#/usr/bin/env bash
D21. Quale linea di script Bash probabilmente ha prodotto l'output mostrato di seguito?
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)!"
D22. Supponiamo che la tua attuale directory di lavoro sia la tua home directory. Come è possibile eseguire lo script demo.sh che si trova nella home directory? Trova tre risposte corrette.
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
D23. Come potresti ottenere un elenco di tutti i file .html nel tuo albero?
find . -type html
find . -name *.html
find *.html
find . -name \*.html -print
Il secondo sembra buono, ma espanderà il * se c'è qualche file .html nella directory di lavoro.
D24. Cosa ci sarebbe dentro.txt?
cat < in.txt > out.txt
Output dalla riga di comando. Per impostazione predefinita, STDIN proviene dalla tastiera.
Niente perché non è possibile reindirizzare dal file (in.txt) a un altro file (out.txt). È possibile reindirizzare solo da un comando a un file.
Sarebbe il contenuto di in.txt.
Niente. Il reindirizzamento creerà un nuovo file vuoto ma non ci sarà alcun output dal comando cat per reindirizzare.
D25. Cosa fa questa dichiarazione bash?
(( $a == $b ))
echo $?
Si alterna tra i valori di $a e $b.
Verifica se i valori delle variabili $a e $b sono uguali.
Ritorna $b se è più grande di $a.
Ritorna $a se è più grande di $b.
D26. Cosa usi in una case statement per dire a Bash che hai finito con un test specifico?
; ;
: :
done
$$
D27. Cosa rappresenta l'asterisco in questa dichiarazione?
D37. Quale file consente di salvare le modifiche nell'ambiente shell tra le sessioni?
/etc/bash.conf
~/.profile
/etc/bashprofile
~/profile
D38. Date le autorizzazioni elencate sui dati.txt è possibile che l'utente2 abbia le autorizzazioni di lettura, scrittura ed esecuzione sui dati.txt?
$ ls -l
total 0
-rwx------+ 1 user1 user1 0 Oct 27 10:54 data.txt
No, è chiaro che user2 non dispone di autorizzazioni di lettura, scrittura ed esecuzione.
Sì, il + alla fine della stringa di autorizzazione di 10 cifre indica che è presente un elenco di controllo di accesso. Questo potrebbe eventualmente dare all'utente2 autorizzazioni non visibili da ls -l.
È possibile che SELinux fornisca autorizzazioni di lettura, scrittura ed esecuzione per user2 che non sono visibili con ls -l.
Sì, il + alla fine della stringa di autorizzazione a 10 cifre indica che è presente un set di attributi esteso. Ciò potrebbe concedere all'utente2 le autorizzazioni per leggere, scrivere ed eseguire dati.txt.
D39. Che cosa realizza questo script?
#!/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
Ordina l'array associativo denominato ARRAY e memorizza i risultati in un array indicizzato denominato KEYS. Utilizza quindi questa matrice ordinata per eseguire il ciclo attraverso l'array associativo ARRAY.
Utilizzando uno stile C per il ciclo, esegue il loop attraverso la matrice associativa denominata ARRAY utilizzando le chiavi dell'array associativo e restituisce sia la chiave che i valori per ogni elemento.
Crea una matrice indicizzata della matrice associativa denominata ARRAY. Utilizza quindi uno stile C per il ciclo e l'array indicizzato per eseguire il ciclo tra tutti gli elementi nella matrice associativa, emettendo la chiave e il valore di ciascun elemento della matrice utilizzando il numero di indice.
Crea una matrice associativa denominata ARRAY, che esegue un ciclo in loop utilizzando uno stile C per loop e i numeri di indice di ogni elemento nelle chiavi dell'array associativo, emettendo il valore di ciascun elemento.
D40. Quale file corrisponderebbe al codice qui sotto?
ls Hello[[.vertical-line.]]World
Niente, questo è un file glob non valido.
Hello.vertical-line.World
Hello[[.vertical-line.]]World
Hello|World
D41. Cosa ci sarà in out.txt?
ls nonexistentfile | grep "No such file" > out.txt
Nessun file di questo tipo
ls: impossibile accedere a inesistentfile: Nessun file o directory di questo tipo
Niente, fuori.txt sarà vuoto.
Sarà il contenuto di un file inesistente.
D42. Affinché lo script stampi "È numerico" sullo schermo, cosa dovrebbe inserire l'utente quando richiesto?
#!/bin/bashread -p "Enter text " var
if [[ "$var" =~ "^[0-9]+$" ]];thenecho"Is numeric"elseecho"Is not numeric"fi
Qualsiasi sequenza di caratteri che include un numero intero
L'utente dovrebbe inserire la sequenza di caratteri di ^[0-9]]+$ Solo questo si rivelerà vero e "È numerico" verrà stampato sullo schermo a causa di una sintassi errata. Incapsulando l'espressione regolare tra virgolette doppie, ogni corrispondenza avrà esito negativo tranne la stringa di testo ^[0-9]+$
Uno o più caratteri che includono solo numeri interi
A causa di un errore di sintassi è impossibile ottenere lo script per stampare "È numerico"
La regex non deve essere citata per funzionare correttamente.
D43. Come troveresti l'ultimo comando di copia eseguito nella tua cronologia?
storia | trova cp
storia | grep cp
grep cp storia
cp storia
D44. Per scrivere uno script che scorre i file in una directory, quale dei seguenti elementi è possibile utilizzare?
bash for i in $(ls); do ... done
bash for $(ls); do ... done
bash for i in $ls; do ... done
bash for $ls; do ... done
D45. Quando si esegue un comando e si passa l'output di quel comando a un altro comando, quale carattere consente di concatenare questi comandi insieme?
|
->
#
@
D46. Nello script mostrato di seguito, cos'è saluto?
D57. Il codice sottostante sembra funzionare e restituisce "8 è maggiore di 5". Tuttavia, quale risultato inaspettato ti dirà che non funziona correttamente?
#!/bin/bashvar="8"if [ $var > 5 ]; thenecho"$var is greater than 5"fi
Non ci saranno risultati inaspettati. Questo script funziona così com'è e l'output sarà "8 è maggiore di 5".
Il confronto non sarà in grado di gestire i numeri a virgola mobile, poiché Bash gestisce solo i numeri interi. Quindi questo esempio genererà un messaggio di errore se il valore di $var viene modificato in "8.8".
Ci sarà un file nella directory corrente denominato 5.
La variabile $var non è citata, il che porterà alla divisione delle parole. Questo script avrà esito negativo con un messaggio "operatore unario previsto" se si modifica il valore di
D58. Qual è il risultato di questo script?
Rimuove la directory 'pippo' e i file contenuti al suo interno.
Rimuove tutti i file tranne quelli nella directory corrente.
Rimuove tutti i file nella directory corrente.
Rimuove tutti i file tranne quelli nella directory 'pippo'.
D59. Qual è la verità?
Le regole dei criteri SELinux vengono controllate dopo le regole del dac.
Le regole dei criteri SELinux vengono controllate prima delle regole del DAC
Le regole dei criteri SELinux non vengono mai controllate dopo le regole del DAC.