Unit 4: Advanced Bash Scripting & Automation - Practice Quiz

CSC104 — It Fundamentals 50 Questions
0 Correct 0 Wrong 50 Left
0/50

1 In Bash scripting, which of the following is a valid syntax for defining a function named myFunc?

A. func myFunc() { commands }
B. function myFunc { commands; }
C. def myFunc():
D. myFunc = function() { commands; }

2 When writing a multi-function script, how do you define a variable that is only accessible within the function it is declared in?

A. const var_name
B. private var_name
C. local var_name
D. restricted var_name

3 Inside a function, how do you access the first argument passed specifically to that function?

A. $ARG1
B. @{1}
C. $0
D. $1

4 Which command is used to return a numeric exit status from a function to the caller?

A. return
B. back
C. exit
D. echo

5 To enable an interactive menu, which Bash command is commonly used to accept single-character input without requiring the user to press Enter?

A. read -n 1
B. getch
C. input -char
D. read -p

6 Which ANSI escape code sequence is typically used to print text in Red?

A. \033[0;32m
B. \color{red}
C. \033[0;31m
D. \033[0;34m

7 When using ANSI escape codes for colors, what is the code \033[0m used for?

A. Make text bold
B. Clear the screen
C. Reset/Normalize all attributes
D. Set background to black

8 Which control structure is most efficient for handling multiple choices in an interactive menu script?

A. for loop
B. while loop
C. case statement
D. if-else chain

9 What is the primary command used to securely execute a script on a remote server?

A. ssh
B. netcat
C. ftp
D. telnet

10 How can you execute a local script named setup.sh on a remote server user@host without copying the file there first?

A. scp setup.sh user@host && run
B. ssh user@host < setup.sh
C. ssh user@host -s setup.sh
D. ssh user@host exec setup.sh

11 To perform remote execution without entering a password every time, which mechanism should be set up?

A. Telnet plain text
B. Hardcoded password in script
C. Root permission
D. SSH Key-based Authentication

12 Which command-line tool is specifically designed to parse, filter, and map JSON data in the terminal?

A. jq
B. sed
C. grep
D. awk

13 Given the JSON {"status": "active", "id": 50}, which jq filter extracts the value of the status?

A. jq 'status'
B. jq .status
C. jq [status]
D. jq -extract status

14 What does the jq command jq '.' do to raw JSON input?

A. Extracts the first element
B. Pretty-prints/Formats the JSON
C. Minifies the JSON
D. Deletes the JSON

15 Given a JSON array [{"id":1}, {"id":2}], how do you access the first object using jq?

A. jq .[1]
B. jq .first
C. jq .[0]
D. jq .array(0)

16 When interacting with the Cloudflare API via curl, which HTTP header is used for authentication using an API Token?

A. -u user:<TOKEN>
B. -H "X-CF-Key: <TOKEN>"
C. -H "Auth: <TOKEN>"
D. -H "Authorization: Bearer <TOKEN>"

17 Which curl flag is used to send JSON data as the payload (body) of a request?

A. -b or --body
B. -p or --payload
C. -d or --data
D. -j or --json

18 If you need to update a DNS record via Cloudflare API, which HTTP method is appropriate?

A. HEAD
B. DELETE
C. GET
D. PUT

19 In an Apache access log, which command is most suitable for extracting just the IP addresses (usually the first column)?

A. awk '{print $1}'
B. cut -c 1-5
C. grep '$1'
D. sed 'delete all'

20 When summarizing logs, what does the command sequence sort | uniq -c do?

A. Sorts lines and counts the occurrences of each unique line
B. Uniquely sorts characters
C. Sorts lines and removes duplicates
D. Sorts lines and deletes unique lines

21 Which command would you use to filter an access log for only entries resulting in a '404 Not Found' error?

A. cat "404"
B. locate "404"
C. find "404"
D. grep "404"

22 What is the primary function of SSMTP in a scripting context?

A. To send emails from the command line via an external SMTP server
B. To encrypt emails using PGP
C. To receive emails (IMAP server)
D. To act as a full-featured mail server like Exchange

23 Which configuration file typically holds the credentials and server details for SSMTP?

A. /etc/mail/sendmail.cf
B. /etc/ssh/sshd_config
C. /var/www/html/config.php
D. /etc/ssmtp/ssmtp.conf

24 To generate a random password, which system file serves as a source of non-blocking pseudorandom data?

A. /dev/randomness
B. /dev/zero
C. /dev/urandom
D. /dev/null

25 In a password generator script, what does tr -dc 'A-Za-z0-9' do?

A. Deletes all characters except the complement (alphanumeric)
B. Deletes alphanumeric characters
C. Encrypts the input
D. Translates lower case to upper case

26 Which command allows you to cut a stream of characters to a specific length (e.g., take the first 12 characters)?

A. tail -c 12
B. grep -12
C. head -c 12
D. cut -d 12

27 What is the fundamental difference between a pipe | and redirection >?

A. | sends output to a file; > sends output to a command
B. > is used for errors only
C. There is no difference
D. | sends output to another command; > sends output to a file

28 If you use >> instead of > when redirecting output to a file, what happens?

A. The file is overwritten
B. The output is appended to the end of the file
C. The file is deleted
D. The command fails if the file exists

29 How do you redirect Standard Error (stderr) to a file?

A. &>
B. 1>
C. 2>
D. |>

30 In the context of automating WordPress setup, what is the purpose of wget https://wordpress.org/latest.tar.gz?

A. To update the OS
B. To download the WordPress source files
C. To configure the database
D. To install Apache

31 Which command is used to extract the .tar.gz file downloaded for WordPress?

A. tar -xzf latest.tar.gz
B. unzip latest.tar.gz
C. gunzip latest.tar.gz
D. rar x latest.tar.gz

32 In a LAMP stack automation script, which user usually owns the web directory (/var/www/html) for security and write access?

A. admin
B. www-data
C. guest
D. root

33 When automating the database setup for WordPress, which SQL command creates the database?

A. NEW DATABASE wordpress;
B. INIT DATABASE wordpress;
C. CREATE DATABASE wordpress;
D. MAKE DATABASE wordpress;

34 To allow WordPress to connect to the database, which file needs to be created from wp-config-sample.php?

A. config.php
B. wp-config.php
C. wp-settings.php
D. wp-connect.php

35 Which sed command pattern is best for replacing a placeholder like database_name_here in a config file?

A. sed 'delete database_name_here' file
B. sed -i 's/database_name_here/my_db/' file
C. sed -r 'database_name_here -> my_db' file
D. sed -x 'my_db' file

36 What is the result of the logical operation cmd1 && cmd2 in a script?

A. cmd2 runs only if cmd1 fails
B. Both commands run simultaneously
C. cmd1 runs only if cmd2 succeeds
D. cmd2 runs only if cmd1 succeeds

37 When using curl to fetch JSON data, how do you suppress the progress meter output?

A. -s
B. -P
C. -v
D. --verbose

38 In a bash script, what does set -e do?

A. Enables syntax highlighting
B. Enables debugging mode
C. Exports all variables
D. Exits the script immediately if a command exits with a non-zero status

39 Which tool would you use to verify that a variable $JSON contains valid JSON syntax before parsing it?

A. echo "$JSON" | jq .
B. echo "$JSON" | grep json
C. cat "$JSON"
D. validate_json "$JSON"

40 When creating a log summarizer, which awk variable represents the number of fields (columns) in the current line?

A. NR
B. NF
C. $$
D. FS

41 In an interactive menu, how do you create an infinite loop that keeps the menu open until the user chooses to exit?

A. until false; do ... done
B. repeat ... until exit
C. for i in {1..100}; do ... done
D. while true; do ... done

42 How do you securely supply a password to mysql in a script without the prompt interrupting the automation?

A. Type it manually
B. Use telnet
C. It is impossible
D. mysql -u user -pPASSWORD

43 What is the purpose of ssh-copy-id user@host?

A. To copy files securely
B. To copy the SSH daemon to a remote server
C. To duplicate the server ID
D. To copy your public key to the remote server's authorized_keys

44 When using grep, which flag allows you to search using Extended Regular Expressions (like | for OR)?

A. -x
B. -v
C. -i
D. -E

45 In an SSMTP email body, what must usually be the first line to ensure the recipient is displayed correctly in email clients?

A. From: me@example.com
B. Hello World
C. Subject: My Subject
D. To: recipient@example.com

46 Which of the following generates a random 16-character string using openssl?

A. openssl genrsa 16
B. openssl rand -base64 12
C. openssl random 16
D. openssl sha256

47 If you want to debug a script by printing every command before it is executed, how do you run the script?

A. bash -v script.sh
B. bash -d script.sh
C. bash -x script.sh
D. bash -e script.sh

48 When automating the Apache service, which command ensures Apache starts automatically when the server boots?

A. apache2 --init
B. service apache2 run
C. systemctl start apache2
D. systemctl enable apache2

49 Which mathematical operator in a Bash arithmetic expansion $(($a ? $b)) performs the modulo operation?

A. /
B. *
C. %
D. #

50 In a JSON API response, if a key contains a special character (e.g., user-name), how must it be referenced in jq?

A. .user-name
B. ."user-name"
C. Both B and C
D. .['user-name']