Introduction
In this project, you will learn how to create a random password generator script that meets specific requirements. The password generator will create a 12-character password that includes at least one digit, one uppercase letter, one lowercase letter, and one special character from the set ><+-{}:.&;
.
👀 Preview
$ cd /home/labex/project
$ sh genpass.sh
## Example
2Dsxw9+xS:27
🎯 Tasks
In this project, you will learn:
- How to set up the project environment and create the necessary script file
- How to implement the logic to generate a random password that meets the specified requirements
- How to test the password generator script to ensure it works as expected
🏆 Achievements
After completing this project, you will be able to:
- Understand the process of creating a random password generator script
- Implement a password generation algorithm that meets specific requirements
- Test and validate the generated passwords to ensure they meet the desired criteria
Skills Graph
%%%%{init: {'theme':'neutral'}}%%%%
flowchart RL
linux(("`Linux`")) -.-> linux/BasicSystemCommandsGroup(["`Basic System Commands`"])
linux(("`Linux`")) -.-> linux/InputandOutputRedirectionGroup(["`Input and Output Redirection`"])
linux(("`Linux`")) -.-> linux/TextProcessingGroup(["`Text Processing`"])
linux(("`Linux`")) -.-> linux/FileandDirectoryManagementGroup(["`File and Directory Management`"])
shell(("`Shell`")) -.-> shell/BasicSyntaxandStructureGroup(["`Basic Syntax and Structure`"])
shell(("`Shell`")) -.-> shell/VariableHandlingGroup(["`Variable Handling`"])
shell(("`Shell`")) -.-> shell/ControlFlowGroup(["`Control Flow`"])
shell(("`Shell`")) -.-> shell/FunctionsandScopeGroup(["`Functions and Scope`"])
shell(("`Shell`")) -.-> shell/AdvancedScriptingConceptsGroup(["`Advanced Scripting Concepts`"])
linux/BasicSystemCommandsGroup -.-> linux/echo("`Text Display`")
linux/InputandOutputRedirectionGroup -.-> linux/pipeline("`Data Piping`")
linux/InputandOutputRedirectionGroup -.-> linux/redirect("`I/O Redirecting`")
linux/TextProcessingGroup -.-> linux/tr("`Character Translating`")
linux/FileandDirectoryManagementGroup -.-> linux/cd("`Directory Changing`")
shell/BasicSyntaxandStructureGroup -.-> shell/shebang("`Shebang`")
shell/BasicSyntaxandStructureGroup -.-> shell/comments("`Comments`")
shell/BasicSyntaxandStructureGroup -.-> shell/quoting("`Quoting Mechanisms`")
shell/VariableHandlingGroup -.-> shell/variables_decl("`Variable Declaration`")
shell/VariableHandlingGroup -.-> shell/variables_usage("`Variable Usage`")
shell/VariableHandlingGroup -.-> shell/str_manipulation("`String Manipulation`")
shell/VariableHandlingGroup -.-> shell/param_expansion("`Parameter Expansion`")
shell/ControlFlowGroup -.-> shell/for_loops("`For Loops`")
shell/FunctionsandScopeGroup -.-> shell/scope_vars("`Scope of Variables`")
shell/AdvancedScriptingConceptsGroup -.-> shell/arith_expansion("`Arithmetic Expansion`")
shell/AdvancedScriptingConceptsGroup -.-> shell/cmd_substitution("`Command Substitution`")
shell/AdvancedScriptingConceptsGroup -.-> shell/subshells("`Subshells and Command Groups`")
shell/AdvancedScriptingConceptsGroup -.-> shell/adv_redirection("`Advanced Redirection`")
subgraph Lab Skills
linux/echo -.-> lab-301485{{"`Random Password Generator Development`"}}
linux/pipeline -.-> lab-301485{{"`Random Password Generator Development`"}}
linux/redirect -.-> lab-301485{{"`Random Password Generator Development`"}}
linux/tr -.-> lab-301485{{"`Random Password Generator Development`"}}
linux/cd -.-> lab-301485{{"`Random Password Generator Development`"}}
shell/shebang -.-> lab-301485{{"`Random Password Generator Development`"}}
shell/comments -.-> lab-301485{{"`Random Password Generator Development`"}}
shell/quoting -.-> lab-301485{{"`Random Password Generator Development`"}}
shell/variables_decl -.-> lab-301485{{"`Random Password Generator Development`"}}
shell/variables_usage -.-> lab-301485{{"`Random Password Generator Development`"}}
shell/str_manipulation -.-> lab-301485{{"`Random Password Generator Development`"}}
shell/param_expansion -.-> lab-301485{{"`Random Password Generator Development`"}}
shell/for_loops -.-> lab-301485{{"`Random Password Generator Development`"}}
shell/scope_vars -.-> lab-301485{{"`Random Password Generator Development`"}}
shell/arith_expansion -.-> lab-301485{{"`Random Password Generator Development`"}}
shell/cmd_substitution -.-> lab-301485{{"`Random Password Generator Development`"}}
shell/subshells -.-> lab-301485{{"`Random Password Generator Development`"}}
shell/adv_redirection -.-> lab-301485{{"`Random Password Generator Development`"}}
end