<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Victor Oderinde</title>
    <description>The latest articles on DEV Community by Victor Oderinde (@vctcode).</description>
    <link>https://dev.to/vctcode</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1092494%2Fd8a08edf-54ed-482b-b613-f653233a7198.jpg</url>
      <title>DEV Community: Victor Oderinde</title>
      <link>https://dev.to/vctcode</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vctcode"/>
    <language>en</language>
    <item>
      <title>Automating User Creation with Bash Script</title>
      <dc:creator>Victor Oderinde</dc:creator>
      <pubDate>Wed, 03 Jul 2024 14:04:47 +0000</pubDate>
      <link>https://dev.to/vctcode/automating-user-creation-with-bash-script-1d75</link>
      <guid>https://dev.to/vctcode/automating-user-creation-with-bash-script-1d75</guid>
      <description>&lt;p&gt;As a SysOps engineer, managing users and groups in a growing development team can be a time-consuming task. To streamline this process, automating user and group creation with a Bash script can save valuable time and reduce errors. This article will guide you through creating a script to automate these tasks, while ensuring secure handling of user passwords and detailed logging of all actions.&lt;/p&gt;

&lt;p&gt;In this article, we will explore an enhanced bash script that handles user creation and management for your growing company. This script reads a formatted text file and handles user and group creation, sets up home directories, generates random passwords, and ensures secure logging of actions. This script allows for multiple groups per user to be added when the user is created.&lt;/p&gt;

&lt;h2&gt;
  
  
  Requirements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Linux machine - Ubuntu preferably&lt;/li&gt;
&lt;li&gt;Sudo privileges: a type of administrator right to run higher level commands.&lt;/li&gt;
&lt;li&gt;A Text file containing the users and groups separated by a &lt;code&gt;;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Reads Input File: The script reads a text file(.txt) where the user and group is inserted in each line of the file as &lt;code&gt;user;group1,group2,group3&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Creates Users and Groups: Each user gets a personal group and additional groups as specified.&lt;/li&gt;
&lt;li&gt;Sets Up Home Directories: Sets up home directories with proper permissions.&lt;/li&gt;
&lt;li&gt;Generates Random Passwords: Securely generates and stores random passwords.&lt;/li&gt;
&lt;li&gt;Log Actions: Logs all action to &lt;code&gt;/var/log/user_management.log&lt;/code&gt; and stores generated passwords securely in &lt;code&gt;/var/secure/user_passwords.txt&lt;/code&gt;. You can specify your custom paths.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Let's Get this Done
&lt;/h2&gt;

&lt;p&gt;Create a file with &lt;code&gt;.sh&lt;/code&gt; extension. Here I the script called &lt;code&gt;create_users.sh&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F476i42q9l7rkekwpepwh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F476i42q9l7rkekwpepwh.png" alt="Create user" width="800" height="43"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The create_users.sh script is divided into several modules, each responsible for a specific task. Here's a detailed explanation of each module:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Initialization
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#!/bin/bash

# Script to create users and groups from a file, generate passwords, and log actions

INPUT_FILE=$1
LOG_FILE="/var/log/user_management.log"
PASSWORD_FILE="/var/secure/user_passwords.txt"
DATE=$(date "+%Y-%m-%d %H:%M:%S")

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;#!/bin/bash&lt;/code&gt; called &lt;strong&gt;Shebang&lt;/strong&gt;: Specifies the script should be run using the Bash shell.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$1&lt;/code&gt; is the Input Arguments: Takes the name of the input file as the first argument.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;PASSWORD_FILE&lt;/code&gt;: Log and Password Files- Defines paths for logging and storing passwords.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;DATE&lt;/code&gt;: Captures the current date and time for logging purposes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Setup Directories and Files
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;## Ensure the log and password directories exist
sudo mkdir -p /var/log
sudo mkdir -p /var/secure
sudo touch $LOG_FILE
sudo touch $PASSWORD_FILE

# Set permissions for the password file
sudo chmod 600 $PASSWORD_FILE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;mkdir&lt;/code&gt;: directory creation which ensures that the directories for logs and secure files exist.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;touch&lt;/code&gt;: file creation that creates the log file and password file if they don't exist.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;chmod&lt;/code&gt;: File Permissions used to set the password file to be readable and writable only by the owner (chmod 600).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Logging Function
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Function to log actions
log_action() {
    echo "$DATE - $1" | sudo tee -a $LOG_FILE &amp;gt; /dev/null
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;log_action&lt;/code&gt;: Defines a function to log actions with timestamps to the log file. The sudo tee -a $LOG_FILE command appends the log message to the log file.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Password Generation Function
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Function to generate a random password
generate_password() {
    tr -dc A-Za-z0-9 &amp;lt;/dev/urandom | head -c 12 ; echo ''
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;generate_password&lt;/code&gt;: Uses the &lt;code&gt;tr&lt;/code&gt; command to generate a random 12-character password consisting of alphanumeric characters.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Input Validation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Ensure input file is provided
if [[ -z "$INPUT_FILE" ]]; then
    echo "Usage: $0 &amp;lt;input_file&amp;gt;"
    log_action "ERROR: No input file provided"
    exit 1
fi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Validation: Checks if the input file is provided. If not, logs an error and exits the script.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. Main Processing Loop
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Read the input file line by line
while IFS=';' read -r username groups; do

    username=$(echo "$username" | xargs)
    groups=$(echo "$groups" | xargs)

    # Ignore empty lines
    if [[ -z "$username" ]]; then
        continue
    fi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Reading Input: Reads the input file line by line, splitting each line into username and groups based on the ; delimiter.&lt;/li&gt;
&lt;li&gt;Trimming Whitespace: Uses &lt;code&gt;xargs&lt;/code&gt; to trim any leading or trailing whitespace from username and groups.&lt;/li&gt;
&lt;li&gt;Ignore Empty Lines: Skips processing for empty lines.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7. User and Group Creation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    # Check if user already exists
    if id "$username" &amp;amp;&amp;gt;/dev/null; then
        log_action "User $username already exists"
        continue
    fi

    # Create the user with their own personal group
    user_group=$username
    if ! getent group "$user_group" &amp;gt; /dev/null; then
        sudo groupadd "$user_group"
        log_action "Created group $user_group"
    fi

    sudo useradd -m -g "$user_group" -s /bin/bash "$username"
    log_action "Created user $username with group $user_group"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;User Existence Check: Uses the id command to check if the user already exists. If the user exists, it logs the action and skips to the next iteration.&lt;/li&gt;
&lt;li&gt;Personal Group Creation: Checks if a group with the same name as the username exists. If not, it creates the group.&lt;/li&gt;
&lt;li&gt;User Creation: Creates the user with their personal group, sets the shell to Bash, and creates a home directory.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  8. Password Handling
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    # Generate a random password
    password=$(generate_password)
    echo "$username:$password" | sudo chpasswd
    log_action "Set password for user $username"

    # Store the password securely
    echo "$username,$password" | sudo tee -a $PASSWORD_FILE &amp;gt; /dev/null
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Password Generation: Generates a random password using the &lt;code&gt;generate_password&lt;/code&gt; function.&lt;/li&gt;
&lt;li&gt;Password Assignment: Sets the generated password for the user using &lt;code&gt;chpasswd&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Password Storage: Appends the username and password to the password file in txt format.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  9. Additional Group Handling
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    # Handle additional groups
    IFS=',' read -ra ADD_GROUPS &amp;lt;&amp;lt;&amp;lt; "$groups"
    for group in "${ADD_GROUPS[@]}"; do
        group=$(echo "$group" | xargs)
        if ! getent group "$group" &amp;gt; /dev/null; then
            sudo groupadd "$group"
            log_action "Created group $group"
        fi
        sudo usermod -aG "$group" "$username"
        log_action "Added user $username to group $group"
    done
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Parsing Groups: Splits the groups string into an array using , as the delimiter.&lt;/li&gt;
&lt;li&gt;Group Existence Check: Checks if each group exists and creates it if necessary.&lt;/li&gt;
&lt;li&gt;User Group Assignment: Adds the user to each additional group using &lt;code&gt;usermod -aG&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  10. Home Directory Permissions
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    # Set appropriate permissions and ownership for the home directory
    sudo chown -R "$username:$user_group" "/home/$username"
    sudo chmod 700 "/home/$username"
    log_action "Set permissions for home directory of user $username"
done &amp;lt; "$INPUT_FILE"

log_action "User creation process completed"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Ownership and Permissions: Sets the ownership of the user's home directory to the user and their personal group. Sets directory permissions to 700 (owner can read, write, and execute; others have no permissions).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Execute
&lt;/h3&gt;

&lt;p&gt;Merge the modules above into the script (in my case &lt;code&gt;create_user.sh&lt;/code&gt;). Give execute permission to the file using &lt;code&gt;sudo chmod +x create_user.sh&lt;/code&gt;. and run the script like the below &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j9lgaxhocva20aw3b8j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j9lgaxhocva20aw3b8j.png" alt="Execute command format" width="671" height="25"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;PS&lt;/strong&gt;: you specify the path and the name of your custom  &lt;code&gt;.txt&lt;/code&gt; file you create in your machine with the content in the format below&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frq1l5h03y7jnof303tm8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frq1l5h03y7jnof303tm8.png" alt="file text sample" width="437" height="151"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;By modularizing the script, each part of the process is handled in a clear and structured manner, making it easier to understand and maintain. This script efficiently automates user and group management tasks, ensuring secure handling of passwords and detailed logging of actions.&lt;/p&gt;

&lt;p&gt;For more resources and opportunities to enhance your technical skills, check out the &lt;a href="https://hng.tech/internship" rel="noopener noreferrer"&gt;HNG Internship&lt;/a&gt; and explore their &lt;a href="https://hng.tech/premium" rel="noopener noreferrer"&gt;premium offerings&lt;/a&gt;. The HNG Internship is a great platform to learn, grow, and network with industry professionals.&lt;/p&gt;

</description>
      <category>automation</category>
      <category>devops</category>
      <category>cloud</category>
      <category>linux</category>
    </item>
    <item>
      <title>Linux Basics: A Clear Guide to Getting Started</title>
      <dc:creator>Victor Oderinde</dc:creator>
      <pubDate>Thu, 02 May 2024 07:52:54 +0000</pubDate>
      <link>https://dev.to/vctcode/linux-basics-a-clear-guide-to-getting-started-98j</link>
      <guid>https://dev.to/vctcode/linux-basics-a-clear-guide-to-getting-started-98j</guid>
      <description>&lt;p&gt;Linux is a free and open-source operating system that has been gaining popularity in recent years. It is known for its stability, security, and flexibility, making it a popular choice for both personal and professional use. However, for those who are new to Linux, it can be a daunting task to get started.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft0awrvdvlwbo6ydb9d85.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft0awrvdvlwbo6ydb9d85.jpg" alt="Linux_logo" width="800" height="547"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this article, readers will learn the basics of Linux and how to get started with it. The article will cover topics such as the history of Linux, the different distributions available, and the basic commands needed to navigate the system. By the end of the article, readers will have a better understanding of what Linux is and how to use it, making it easier for them to dive into the world of open-source software.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding Linux
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is Linux?
&lt;/h3&gt;

&lt;p&gt;Linux is an open-source operating system that is based on the Unix operating system. It was created by Linus Torvalds in 1991 and has since become one of the most popular operating systems in the world. Linux is known for its stability, security, and flexibility, making it an ideal choice for servers, desktops, and other devices.&lt;/p&gt;

&lt;h3&gt;
  
  
  Linux Distributions
&lt;/h3&gt;

&lt;p&gt;Linux Distributions commonly known as Linux Distros can be compared to different flavors of cake (e.g Vanilla cake, Red Velvet cake, Strawberry cake, etc). Linux is available in many different distributions, each with its own unique features and characteristics. Some of the most popular Linux distributions include Ubuntu, Debian, Fedora, and CentOS. These distributions are created and maintained by different organizations and communities, and each has its own set of software packages, tools, and user interfaces.&lt;/p&gt;

&lt;h3&gt;
  
  
  Linux Kernel
&lt;/h3&gt;

&lt;p&gt;The Linux kernel is the core of the Linux operating system. It is responsible for managing system resources such as memory, processing power, and input/output operations. The kernel is designed to be modular, which means that it can be customized and extended to support different hardware and software configurations.&lt;/p&gt;

&lt;p&gt;Linux is a powerful and versatile operating system that can be used for a wide range of applications. Whether you are a developer, a system administrator, or just a curious user, Linux has something to offer. By understanding the basics of Linux, you can unlock its full potential and take advantage of its many benefits.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started with Linux
&lt;/h2&gt;

&lt;p&gt;Linux is a powerful and versatile operating system that has gained popularity in recent years. If you're new to Linux, getting started can seem daunting. However, with the right guidance, you can quickly learn the basics and start exploring all that Linux has to offer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installation Basics
&lt;/h3&gt;

&lt;p&gt;The first step in getting started with Linux is to install it on your computer. There are many different Linux distributions to choose from, each with its own strengths and weaknesses. Some popular distributions include Ubuntu, Fedora, and Debian. There are different types of ways to install Linux, which include but not limited to the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Virtual Machine Installation &lt;/li&gt;
&lt;li&gt;Live Environment Installation&lt;/li&gt;
&lt;li&gt;Linux Subsystem for Windows (WSL)&lt;/li&gt;
&lt;li&gt;Cloud Instances&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;My best choice and advise to get you started with is Virtual Machine Installation (a step-by-step guide is covered in another post).&lt;/p&gt;

&lt;h3&gt;
  
  
  Command Line Essentials
&lt;/h3&gt;

&lt;p&gt;One of the most powerful features of Linux is its command line interface. While it may seem intimidating at first, learning to use the command line can greatly increase your productivity and allow you to perform tasks that would be difficult or impossible with a graphical user interface.&lt;/p&gt;

&lt;p&gt;Some essential command line tools to learn include:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ls&lt;/code&gt; - list the contents of a directory&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmr7i78l6nxbe3mx8e91o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmr7i78l6nxbe3mx8e91o.png" alt="list directory" width="800" height="63"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cd&lt;/code&gt; - change directories&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr1d49gmailtp4xn48qb6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr1d49gmailtp4xn48qb6.png" alt="change_directory" width="800" height="67"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mkdir&lt;/code&gt; - create a new directory&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxzqf54avruu3tj99c02j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxzqf54avruu3tj99c02j.png" alt="make directory" width="800" height="63"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;rmdir&lt;/code&gt; - remove a file or directory&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsk1q7cvw2f6hcjpwzneq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsk1q7cvw2f6hcjpwzneq.png" alt="remove directory" width="800" height="91"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;nano&lt;/code&gt; - a simple text editor&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd2tgj3wb8cuf9b9eyxnk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd2tgj3wb8cuf9b9eyxnk.png" alt="nano text editor" width="800" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Package Management
&lt;/h3&gt;

&lt;p&gt;One of the strengths of Linux is its package management system. Most Linux distributions have a package manager that allows you to easily install, update, and remove software from your system.&lt;/p&gt;

&lt;p&gt;Some popular package managers include:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;apt&lt;/code&gt; - used by Debian and Ubuntu&lt;br&gt;
&lt;code&gt;dnf&lt;/code&gt; - used by Fedora&lt;br&gt;
&lt;code&gt;pacman&lt;/code&gt; - used by Arch Linux&lt;/p&gt;

&lt;h3&gt;
  
  
  Basic System Configuration
&lt;/h3&gt;

&lt;p&gt;Once you have Linux installed, you'll want to configure your system to meet your needs. This may include setting up your network connection, configuring your display settings, and installing additional software.&lt;/p&gt;

&lt;p&gt;Some common tools for system configuration include:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ifconfig&lt;/code&gt; - configure network interfaces&lt;br&gt;
&lt;code&gt;xrandr&lt;/code&gt; - configure display settings&lt;br&gt;
gnome-control-center - a graphical tool for configuring various system settings&lt;/p&gt;

&lt;h3&gt;
  
  
  Finding Help and Resources
&lt;/h3&gt;

&lt;p&gt;As you learn more about Linux, you'll likely have questions and run into issues. Fortunately, there are many resources available to help you.&lt;/p&gt;

&lt;h4&gt;
  
  
  Some useful resources include:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Online forums and communities, such as the &lt;a href="https://docs.ubuntu.com/" rel="noopener noreferrer"&gt;Ubuntu Forums&lt;/a&gt; or &lt;/li&gt;
&lt;li&gt;The &lt;a href="https://bbs.archlinux.org/" rel="noopener noreferrer"&gt;Arch Linux Forums&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The official documentation for your &lt;a href="https://www.linux.org/forums/linux-beginner-tutorials.123/" rel="noopener noreferrer"&gt;Linux distribution&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By following these basic guidelines, you can get started with Linux and begin exploring all that this powerful operating system has to offer.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>opensource</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Understanding what Vagrant is</title>
      <dc:creator>Victor Oderinde</dc:creator>
      <pubDate>Mon, 18 Mar 2024 13:35:28 +0000</pubDate>
      <link>https://dev.to/vctcode/understanding-what-vagrant-is-joh</link>
      <guid>https://dev.to/vctcode/understanding-what-vagrant-is-joh</guid>
      <description>&lt;p&gt;Welcome to my Cloud Computing journey! Join me as I unravel the mysteries behind this cutting-edge technology. In this post, we'll dive deep into the realm of buzzwords, starting with Vagrant, and uncover how it has revolutionized the way we build and manage virtual environments.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is vagrant?
&lt;/h2&gt;

&lt;p&gt;In my learning journey, what I describe vagrant to be in a  simplified way is "an easy tool for working in a virtual environment with an easy to configure setup". Not simple enough right? Well, I ask ChatGPT to give an explanation like I'm 5. Here's what it says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Imagine you have a magic box that can make different houses for your toys whenever you want. Vagrant is like that magic box, but for grown-up people who write computer programs. It helps them create special houses called "virtual machines" on their computers, where they can build and test their programs without changing anything on their real computer. This helps them make sure their programs work the same way on everyone's computer. So, Vagrant helps people build their programs in a safe and tidy place, just like how you use your magic box to make different houses for your toys.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Interesting it is, right?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The concepts of Vagrant is that it utilizes virtualization software such as VirtualBox, VMware, or Hyper-V to create virtual machines (VMs) on which development environments are provisioned. Vagrant simplifies the process of setting up a development environments, to allow Software and Cloud engineers focus on other tasks like writing codes rather than dealing with environment setup.&lt;/p&gt;

&lt;h2&gt;
  
  
  Advantages of Vagrant you need to discover
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Consistency &amp;amp; Reproducibility: Ensures consistent and easily reproducible development environments.&lt;/li&gt;
&lt;li&gt;Portability: Facilitates easy sharing and deployment of development environments.&lt;/li&gt;
&lt;li&gt;Isolation &amp;amp; Safety: Provides a safe sandboxed environment for experimentation.&lt;/li&gt;
&lt;li&gt;Efficiency: Automates environment setup and enhances workflow productivity.&lt;/li&gt;
&lt;li&gt;Scalability: Allows for the creation of multiple environments to suit project needs.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Disadvantages of Vagrant, What to watch out for
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Resource Intensive: Running multiple virtual machines simultaneously can consume a significant amount of system resources such as CPU, memory, and disk space, potentially impacting the performance of the host machine. This is to be avoided especially if you're not running it on a high-end powerful system.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Learning Curve: While Vagrant aims to simplify the process of managing development environments, there is still a learning curve involved, especially for beginners who are unfamiliar a with concept like virtualization.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Complexity of Configuration: Configuring Vagrant environments can become complex, especially for setups involving multiple virtual machines, network configurations, or integration with other tools. Managing and troubleshooting these configurations may require additional time and effort. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For more info and documentation to get started with using Vagrant,&lt;a href="https://www.vagrantup.com/" rel="noopener noreferrer"&gt;Click here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You want to up your game, run vagrant up.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>cloud</category>
    </item>
    <item>
      <title>The Beginning of a Cloud Journey</title>
      <dc:creator>Victor Oderinde</dc:creator>
      <pubDate>Tue, 12 Mar 2024 06:53:33 +0000</pubDate>
      <link>https://dev.to/vctcode/the-beginning-of-a-cloud-journey-55ij</link>
      <guid>https://dev.to/vctcode/the-beginning-of-a-cloud-journey-55ij</guid>
      <description>&lt;p&gt;A few months ago, I started a journey into a new world in the Tech space - Cloud Computing. I've had quite an experience and knowledge of design basics with Figma, Web design (HTML, CSS, and JavaScript), and the MERN stack, of which CLOUD COMPUTING is a different one.&lt;/p&gt;

&lt;p&gt;Thanks to AltSchool Africa, learning has indeed been impactful and valuable. I got the opportunity to learn with a community of like-minded people with vibrant goals which made helping one another possible and easier. I found this quote as a summary - "To go fast, work alone. To go far, work together."&lt;/p&gt;

&lt;p&gt;Let me share some new buzz words in this field;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vagrant&lt;/li&gt;
&lt;li&gt;Ubuntu&lt;/li&gt;
&lt;li&gt;Linux Distros&lt;/li&gt;
&lt;li&gt;Sudo and Sudoer&lt;/li&gt;
&lt;li&gt;Apt and Yum&lt;/li&gt;
&lt;li&gt;Ansible&lt;/li&gt;
&lt;li&gt;VM and more...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The above words did not only birth a new knowledge in me, rather I learnt not just to define them, but know how to use them and bring them together to make things work.&lt;/p&gt;

&lt;p&gt;"In Cloud Engineering, we give wings to your codes to fly". Come with me as I explore the cool things Cloud Computing can do!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Is The Future Really In The Cloud?</title>
      <dc:creator>Victor Oderinde</dc:creator>
      <pubDate>Wed, 28 Feb 2024 06:19:13 +0000</pubDate>
      <link>https://dev.to/vctcode/is-the-future-really-in-the-cloud-1b82</link>
      <guid>https://dev.to/vctcode/is-the-future-really-in-the-cloud-1b82</guid>
      <description>&lt;p&gt;Curious about the cloud-driven force moving around me, months ago I took a leap to give it a start and well...&lt;/p&gt;

&lt;h2&gt;
  
  
  Future in Cloud Computing: Advancements and Opportunities
&lt;/h2&gt;

&lt;p&gt;Cloud computing has revolutionized the way businesses operate in recent years. It has enabled companies to store, manage and access data and applications online, thereby reducing the need for on-premise infrastructure. The future of cloud computing looks brighter than ever, with the technology expected to continue its upward trajectory in the coming years.&lt;/p&gt;

&lt;p&gt;One of the major trends in cloud computing is the shift towards hybrid cloud environments. This involves a combination of public and private cloud infrastructure, allowing businesses to take advantage of the benefits of both. Hybrid cloud environments offer increased flexibility, scalability and security, making them an attractive option for businesses of all sizes. As more and more companies adopt this approach, it is expected to become the norm in the future.&lt;/p&gt;

&lt;p&gt;Another trend is the rise of edge computing, which involves processing data closer to where it is generated, rather than in centralized data centers. This approach can help reduce latency and improve performance, making it ideal for applications that require real-time processing. As the number of connected devices continues to grow, edge computing is expected to become increasingly important in the future of cloud computing. More on that in later posts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Evolution of Cloud Computing
&lt;/h3&gt;

&lt;p&gt;Cloud computing has come a long way since its inception, and it continues to evolve rapidly. In the early days of cloud computing, businesses used cloud services mainly for storage and backup. However, the adoption of cloud computing has grown significantly in recent years, and it has now become an essential tool for businesses of all sizes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Shift to Serverless Architectures
&lt;/h3&gt;

&lt;p&gt;One of the most significant trends in cloud computing is the shift towards serverless architectures. This approach allows developers to focus on writing code without worrying about the underlying infrastructure. Serverless architectures also offer increased scalability and reduced costs, making them an attractive option for businesses.&lt;/p&gt;

&lt;h3&gt;
  
  
  Advancements in Distributed Cloud
&lt;/h3&gt;

&lt;p&gt;Distributed cloud is another area that has seen significant advancements in recent years. This approach allows businesses to distribute their cloud resources across multiple locations, providing increased resilience and performance. With the growth of the Internet of Things (IoT), distributed cloud is becoming increasingly important, as it allows businesses to process data closer to the source.&lt;/p&gt;

&lt;h3&gt;
  
  
  Growth of Cloud Services and APIs
&lt;/h3&gt;

&lt;p&gt;Finally, the growth of cloud services and APIs has also been a significant trend in cloud computing. Cloud services such as Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform offer a range of services, including storage, compute, and analytics. APIs allow businesses to integrate these services into their applications, providing increased functionality and flexibility.&lt;/p&gt;

&lt;p&gt;Overall, the evolution of cloud computing has been driven by a combination of technological advancements and changing business needs. As businesses continue to adopt cloud computing, it is likely that we will see further innovations in the years to come.&lt;/p&gt;

</description>
      <category>cloudcomputing</category>
      <category>cloud</category>
      <category>development</category>
      <category>aws</category>
    </item>
  </channel>
</rss>
