Skip to content

philippabele/developers-guide-to-linux

Repository files navigation

Student's Guide To Linux

01 About the Project

02 How to Contribute

03 Outline

04 Actions

About The Project

This project is a guide for basic Linux Administration. It ranges from navigating the file system to the configuration of network traffic routing. Its full structure can be seen below. It is meant to serve as a guide for those new to Linux and as a kind of cheat sheet for uncommon tasks. The guide is based on the Linux Foundation System Administrator Certification as well as some common Literature and official OS documentations.

How to Contribute

To contibute follow these steps:

  • Fork this Repo
  • Clone the repo to your local PC: git clone git@github.com:<your-username>/developers-guide-to-linux.git
  • Pick a topic you want to work on from the Outline: i.e. Service Configuration - Configure an IMAP and IMAPS service
  • Create an issue in the original project which will be solved by your contribution
  • Create a feature branch for this topic: git checkout -b feature-imap_configuration
  • Write about your topic
    • Follow the folder structure: 05 Service Configuration -> 050_imap_configuration -> 010_configure_imap.md
    • Think about a neat exercise to consolidate the knowledge you write about and supply a solution to it
    • Take the Literature Section as inspiration for research
    • Do some Research on your own, the OS manufacturers like RedHat, Cononical (Ubuntu) and Suse offer great documentations
  • Add your files, commit your changes and push them:
    • git add -A
    • git commit -am 'added imap configuration'
    • git push
  • Create a pull request on GitHub to the development branch of this project and link the issue you are solving

Outline

  • Essential Commands 25%

    • Log into local & remote graphical and text mode consoles
    • Search for files
    • Evaluate and compare the basic file system features and options
    • Compare and manipulate file content
    • Use input-output redirection (e.g. >, >>, |, 2>)
    • Analyze text using basic regular expressions
    • Archive, backup, compress, unpack, and uncompress files
    • Create, delete, copy, and move files and directories
    • Create and manage hard and soft links
    • List, set, and change standard file permissions
    • Read, and use system documentation
  • Operation of Running Systems 20%

    • Boot, reboot, and shut down a system safely
    • Boot or change system into different operating modes
    • Install, configure and troubleshoot bootloaders
    • Diagnose and manage processes
    • Locate and analyze system log files
    • Schedule tasks to run at a set date and time
    • Verify completion of scheduled jobs
    • Update software to provide required functionality and security
    • Verify the integrity and availability of resources
    • Verify the integrity and availability of key processes
    • Change kernel runtime parameters, persistent and non-persistent
    • Use scripting to automate system maintenance tasks
    • Manage the startup process and services (In Services Configuration)
    • List and identify SELinux/AppArmor file and process contexts
    • Manage Software
    • Identify the component of a Linux distribution that a file belongs to
  • User and Group Management 10%

    • Create, delete, and modify local user accounts
    • Create, delete, and modify local groups and group memberships
    • Manage system-wide environment profiles
    • Manage template user environment
    • Configure user resource limits
    • Manage user privileges
      • Manage access to the root account
    • Configure PAM
  • Networking 12%

    • Configure networking and hostname resolution statically or dynamically
    • Configure network services to start automatically at boot
    • Implement packet filtering
    • Start, stop, and check the status of network services
    • Statically route IP traffic
    • Synchronize time using other network peers
  • Service Configuration 20%

    • Configure a caching DNS server
    • Maintain a DNS zone
    • Configure email aliases
    • Configure SSH servers and clients
    • Restrict access to the HTTP proxy server
    • Configure an IMAP and IMAPS service
    • Query and modify the behavior of system services at various operating modes
    • Configure an HTTP server
    • Configure HTTP server log files
    • Configure a database server
    • Restrict access to a web page
    • Manage and configure containers
    • Manage and configure Virtual Machines
  • Storage Management 13%

    • List, create, delete, and modify physical storage partitions
    • Manage and configure LVM storage
    • Create and configure encrypted storage
    • Configure systems to mount file systems at or during boot
    • Configure and manage swap space
    • Create and manage RAID devices
    • Configure systems to mount file systems on demand
    • Create, manage and diagnose advanced file system permissions
    • Setup user and group disk quotas for filesystems
    • Create and configure file systems

Actions

This project contains a GitHub Action which includes the mardown files into a LaTeX template and compiles it to a PDF file.

  • This command unifies all .md files into one by searching for them, sorting them and appending them to the file all.md: find .. -type f \( -iname '*.md' ! -iname "all.md" \) | sort -k1 | xargs cat >> "$working_directory/chapters/all.md"
  • This action compiles the latex: xu-cheng/latex-action@v2
  • This command renames the file to a name defined earlier in the action: mv "$working_directory/main.pdf" "$pdf_name.pdf"

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •