System Information Displaying Script

LinuxLinuxIntermediate
Practice Now

Introduction

The sysInfo.sh script is designed to display various system information to the user based on their selection. The script provides a menu for the user to choose from and uses switch case to display the output for the selected option. The information displayed includes currently logged users, shell directory, home directory, OS name and version, current working directory, number of users logged in, available shells in the system, hard disk information, CPU information, memory information, file system information, and currently running process.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("`Linux`")) -.-> linux/BasicFileOperationsGroup(["`Basic File Operations`"]) linux(("`Linux`")) -.-> linux/BasicSystemCommandsGroup(["`Basic System Commands`"]) linux(("`Linux`")) -.-> linux/InputandOutputRedirectionGroup(["`Input and Output Redirection`"]) linux(("`Linux`")) -.-> linux/UserandGroupManagementGroup(["`User and Group Management`"]) linux(("`Linux`")) -.-> linux/FileandDirectoryManagementGroup(["`File and Directory Management`"]) linux(("`Linux`")) -.-> linux/SystemInformationandMonitoringGroup(["`System Information and Monitoring`"]) shell(("`Shell`")) -.-> shell/BasicSyntaxandStructureGroup(["`Basic Syntax and Structure`"]) shell(("`Shell`")) -.-> shell/VariableHandlingGroup(["`Variable Handling`"]) shell(("`Shell`")) -.-> shell/ControlFlowGroup(["`Control Flow`"]) shell(("`Shell`")) -.-> shell/AdvancedScriptingConceptsGroup(["`Advanced Scripting Concepts`"]) shell(("`Shell`")) -.-> shell/SystemInteractionandConfigurationGroup(["`System Interaction and Configuration`"]) linux/BasicFileOperationsGroup -.-> linux/cat("`File Concatenating`") linux/BasicFileOperationsGroup -.-> linux/wc("`Text Counting`") linux/BasicFileOperationsGroup -.-> linux/cut("`Text Cutting`") linux/BasicFileOperationsGroup -.-> linux/more("`File Scrolling`") linux/BasicSystemCommandsGroup -.-> linux/exit("`Shell Exiting`") linux/BasicSystemCommandsGroup -.-> linux/echo("`Text Display`") linux/InputandOutputRedirectionGroup -.-> linux/pipeline("`Data Piping`") linux/BasicSystemCommandsGroup -.-> linux/read("`Input Reading`") linux/UserandGroupManagementGroup -.-> linux/whoami("`User Identifying`") linux/FileandDirectoryManagementGroup -.-> linux/pwd("`Directory Displaying`") linux/SystemInformationandMonitoringGroup -.-> linux/ps("`Process Displaying`") linux/SystemInformationandMonitoringGroup -.-> linux/df("`Disk Space Reporting`") linux/SystemInformationandMonitoringGroup -.-> linux/du("`File Space Estimating`") linux/SystemInformationandMonitoringGroup -.-> linux/uname("`System Information Displaying`") shell/BasicSyntaxandStructureGroup -.-> shell/shebang("`Shebang`") shell/BasicSyntaxandStructureGroup -.-> shell/comments("`Comments`") shell/BasicSyntaxandStructureGroup -.-> shell/quoting("`Quoting Mechanisms`") shell/VariableHandlingGroup -.-> shell/variables_usage("`Variable Usage`") shell/ControlFlowGroup -.-> shell/case("`Case Statements`") shell/ControlFlowGroup -.-> shell/for_loops("`For Loops`") shell/ControlFlowGroup -.-> shell/cond_expr("`Conditional Expressions`") shell/ControlFlowGroup -.-> shell/exit_status("`Exit and Return Status`") shell/AdvancedScriptingConceptsGroup -.-> shell/read_input("`Reading Input`") shell/AdvancedScriptingConceptsGroup -.-> shell/cmd_substitution("`Command Substitution`") shell/AdvancedScriptingConceptsGroup -.-> shell/subshells("`Subshells and Command Groups`") shell/SystemInteractionandConfigurationGroup -.-> shell/globbing_expansion("`Globbing and Pathname Expansion`") linux/FileandDirectoryManagementGroup -.-> linux/wildcard("`Wildcard Character`") subgraph Lab Skills linux/cat -.-> lab-18281{{"`System Information Displaying Script`"}} linux/wc -.-> lab-18281{{"`System Information Displaying Script`"}} linux/cut -.-> lab-18281{{"`System Information Displaying Script`"}} linux/more -.-> lab-18281{{"`System Information Displaying Script`"}} linux/exit -.-> lab-18281{{"`System Information Displaying Script`"}} linux/echo -.-> lab-18281{{"`System Information Displaying Script`"}} linux/pipeline -.-> lab-18281{{"`System Information Displaying Script`"}} linux/read -.-> lab-18281{{"`System Information Displaying Script`"}} linux/whoami -.-> lab-18281{{"`System Information Displaying Script`"}} linux/pwd -.-> lab-18281{{"`System Information Displaying Script`"}} linux/ps -.-> lab-18281{{"`System Information Displaying Script`"}} linux/df -.-> lab-18281{{"`System Information Displaying Script`"}} linux/du -.-> lab-18281{{"`System Information Displaying Script`"}} linux/uname -.-> lab-18281{{"`System Information Displaying Script`"}} shell/shebang -.-> lab-18281{{"`System Information Displaying Script`"}} shell/comments -.-> lab-18281{{"`System Information Displaying Script`"}} shell/quoting -.-> lab-18281{{"`System Information Displaying Script`"}} shell/variables_usage -.-> lab-18281{{"`System Information Displaying Script`"}} shell/case -.-> lab-18281{{"`System Information Displaying Script`"}} shell/for_loops -.-> lab-18281{{"`System Information Displaying Script`"}} shell/cond_expr -.-> lab-18281{{"`System Information Displaying Script`"}} shell/exit_status -.-> lab-18281{{"`System Information Displaying Script`"}} shell/read_input -.-> lab-18281{{"`System Information Displaying Script`"}} shell/cmd_substitution -.-> lab-18281{{"`System Information Displaying Script`"}} shell/subshells -.-> lab-18281{{"`System Information Displaying Script`"}} shell/globbing_expansion -.-> lab-18281{{"`System Information Displaying Script`"}} linux/wildcard -.-> lab-18281{{"`System Information Displaying Script`"}} end

System Information

In this challenge, you are tasked with creating a script to display various system information based on user input.

Tasks

You need to complete the following task:

  1. Create a script to display various system information based on user input.
  2. Use switch case to handle user input and display the corresponding system information.

Requirements

You must meet the following requirements:

  • Name the script sysInfo.sh.
  • Place the script in the work directory ~/project.

Example

labex:project/ $ bash sysInfo.sh
[INPUT]Select the Option below to Display the Information[INPUT]

    1) Currently Logged User
    2) Shell Directory
    3) Home Directory
    4) OS name And OS version
    5) Current Working Directory
    6) Number Of users Logged-in
    7) Available Shells in System
    8) Hard disk Information
    9) CPU Information
    10) Memory Information
    11) File-Systm Information
    12) Currently running process(uid)

1
[OUTPUT]Currently Logged User[OUTPUT]
labex

Summary

After completing this challenge, you will have learned how to use various system information commands to display important information about your system. You will also have gained experience in using switch case statements in bash scripts to provide a menu for the user to select from. This script can be useful for system administrators or anyone who wants to quickly check various system information without having to manually run multiple commands.

Other Linux Tutorials you may like