<?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: TUNDE OGUNMODEDE</title>
    <description>The latest articles on DEV Community by TUNDE OGUNMODEDE (@tunde-dev).</description>
    <link>https://dev.to/tunde-dev</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4141756%2F2e15a2a3-43c3-4548-a9ad-f74f41f70237.jpg</url>
      <title>DEV Community: TUNDE OGUNMODEDE</title>
      <link>https://dev.to/tunde-dev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tunde-dev"/>
    <language>en</language>
    <item>
      <title>Week 2: Learning Python, Cloud, DevOps, Terraform, SSH, and CLI Basics</title>
      <dc:creator>TUNDE OGUNMODEDE</dc:creator>
      <pubDate>Sat, 03 Oct 2026 11:58:06 +0000</pubDate>
      <link>https://dev.to/tunde-dev/week-2-learning-python-cloud-devops-terraform-ssh-and-cli-basics-52fp</link>
      <guid>https://dev.to/tunde-dev/week-2-learning-python-cloud-devops-terraform-ssh-and-cli-basics-52fp</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; These are my learning notes from my current phase. I am keeping them as I wrote them so I can look back and see my progress.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Computer Programming
&lt;/h2&gt;

&lt;p&gt;This section talks about computer langauges from Low level languges to high level language, the compiler and interpreted languages. &lt;/p&gt;

&lt;h2&gt;
  
  
  Python
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Data types;
&lt;/h3&gt;

&lt;p&gt;Numbers: integers, floating-point numbers, and complex numbers&lt;/p&gt;

&lt;p&gt;Strings: Are character sequences.&lt;/p&gt;

&lt;p&gt;List are ordered group of elements&lt;/p&gt;

&lt;p&gt;tuples are ordered immutable collections of elements.&lt;/p&gt;

&lt;p&gt;Dictionaries are collections of key-values pairs that are not ordered. &lt;/p&gt;

&lt;p&gt;Variables: A variable is declared and assigned a value in Python by using the assignment operator. E.g&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt; &lt;span class="c1"&gt;# 7 is the assigned value of a
&lt;/span&gt;
&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="c1"&gt;# b is assigned the value of var x + 3
&lt;/span&gt;
&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="c1"&gt;#assigned var c the value of b
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Practiced the parse Json
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;sample&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="n"&gt;journal&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;api&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;

&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="n"&gt;healthy&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;

&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="n"&gt;region&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="n"&gt;eastus&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;

&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="n"&gt;requests_last_hour&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;

&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;sample&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;items&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;}:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Cloud Computing
&lt;/h2&gt;

&lt;p&gt;explained and i picked aws. created account. &lt;/p&gt;

&lt;h2&gt;
  
  
  Devops
&lt;/h2&gt;

&lt;p&gt;Version control: Git is most purpular version control in the world and it tracks a file history, changes make and when they make them over the course of time. &lt;/p&gt;

&lt;h3&gt;
  
  
  Git concept;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Working directory: Its where your file is saved on your terminal, it’s a workspace where all you make changes to your file. &lt;/li&gt;
&lt;li&gt;staging area: also called index is where you prepare changes to your file before committing them, allowing you to review and adjust changes before they become part of projects history. &lt;/li&gt;
&lt;li&gt;Local repository: This is your projects history is , the changes and the commit you’ve made is all saved here.&lt;/li&gt;
&lt;li&gt;remote repository: this is a version of your project hosted onlline or on a network where people can collaborate by pulling and pushing from this shared resource.
&lt;/li&gt;
&lt;li&gt;Branches: these are parallel version of project where work can be done on diffrent features or fixes independently without affecting the main project untill it is ready to be merged.&lt;/li&gt;
&lt;li&gt;Pull request: a pull request is away to propose changes from one branch to another. Like a request to review and edit.. as collaborations.&lt;/li&gt;
&lt;li&gt;Merge: merging is putting/ intergrating changes from one branch into another. like joining the branches where a chnage was made into the main project. &lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;Infrastructure as code&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;IaC is a way of bulding, changing and managing an infrastructure with a confiq file making it faster and repeatable than clicking through the console or CLI. It allow you to keep a consistent and repeatable result by defining the config file and version it with git to keep it reusable and easy to reshare.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;CI/CD&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;This stands for Continues integration and continues Deployment and it is the automatic process for developers that facilitates more frequent merging of code chnages back to a shared branch.&lt;br&gt;
CI this runs the any changes through a number of preset test and if passed, it send to CD which make it ready to go live, it can go live or wait for human approval. basically an automation to catch errors or bugs, if code is good, then CD makes it ready to go live. &lt;/p&gt;
&lt;h3&gt;
  
  
  Observability
&lt;/h3&gt;

&lt;p&gt;This is how well you can tell whats going on in your system by looking at the output it bring without having to guess. &lt;/p&gt;
&lt;h4&gt;
  
  
  Pillars of Observability:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Logs&lt;/strong&gt; — a running text record of what happened, like "10:32am, user login failed, wrong password." If something breaks, you read the logs to see the trail of what happened right before.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Metrics&lt;/strong&gt; — numbers over time, like CPU usage, memory usage, how many requests per second. These help you spot patterns, like "traffic spikes every day at noon" or "memory usage has been climbing all week."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Traces&lt;/strong&gt; — following one single request as it travels through multiple parts of a system, so you can see exactly where it slowed down or failed.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;
  
  
  How it works:
&lt;/h4&gt;

&lt;p&gt;Data collection : continues data collection make observability possible. &lt;/p&gt;

&lt;p&gt;Monitoring: Teams must be able to view app and system data with relative ease. &lt;/p&gt;

&lt;p&gt;analysis … &lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;em&gt;Containers:&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;A container is what packages the app plus everyhting it needs to run (library, code, settings) inot one units so it run same way on any system it is launched. &lt;/p&gt;

&lt;p&gt;Kubernetes: is a tools that manages alot of containers for you automatically, starting them, restarting them if they crash and spreading them across maultiple machines.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;em&gt;Terraform:&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;Terraform helps build what you want instead of manually clicking through the console to build.  &lt;/p&gt;
&lt;h4&gt;
  
  
  How it works:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Write: you type out your file, “I want 1 server, this size”. &lt;/li&gt;
&lt;li&gt;Plan: you run a command (terrafom plan), and Terraform previews what it’s about to do for confirmation&lt;/li&gt;
&lt;li&gt;Apply: (terraform apply), and terraform go and builds it on the server(aws)&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  &lt;em&gt;Terraform init command:&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;This command initializes a working directory containing terraform configuration files. It is the first command to be ran after writing a new terraform configuration or cloning an existing configuration from version control. &lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;em&gt;Terraform apply:&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;This excutes command the operation proposed in a terraform plan&lt;/p&gt;

&lt;p&gt;hcl&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight hcl"&gt;&lt;code&gt;&lt;span class="nx"&gt;terraform&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;required_providers&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;aws&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;source&lt;/span&gt;  &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"hashicorp/aws"&lt;/span&gt;
      &lt;span class="nx"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"~&amp;gt; 5.92"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nx"&gt;required_version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"&amp;gt;= 1.2"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;terraform { }&lt;/code&gt; — &lt;strong&gt;always this exact word.&lt;/strong&gt; This is Terraform's reserved keyword for "this block configures Terraform itself." You don't invent this, every project starts with it.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;required_providers { }&lt;/code&gt; — &lt;strong&gt;always this exact word too&lt;/strong&gt;, Terraform's fixed name for "list the providers I need here."&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;aws = { ... }&lt;/code&gt; — &lt;strong&gt;this part you choose.&lt;/strong&gt; &lt;code&gt;aws&lt;/code&gt; is just a label you're picking, it could be named anything, but by convention you name it after the provider. If you were using Azure instead, you'd write &lt;code&gt;azurerm = { ... }&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;source = "hashicorp/aws"&lt;/code&gt; — &lt;strong&gt;this is where your actual question lives.&lt;/strong&gt; &lt;code&gt;hashicorp/aws&lt;/code&gt; means: "go to the Terraform Registry, under the account/namespace &lt;code&gt;hashicorp&lt;/code&gt;, and get the provider named &lt;code&gt;aws&lt;/code&gt;." &lt;strong&gt;Will it always say &lt;code&gt;hashicorp/aws&lt;/code&gt;? Yes, for AWS specifically, forever&lt;/strong&gt;, because HashiCorp is the official maintainer of the AWS provider. If you ever used a different cloud, this string changes to match that cloud's official provider, e.g. &lt;code&gt;hashicorp/google&lt;/code&gt; for GCP, &lt;code&gt;hashicorp/azurerm&lt;/code&gt; for Azure. So it's not arbitrary, it's literally an address, like a URL, pointing at a specific, named thing in a public registry. You'd look this up on the Terraform Registry website, not memorize or invent it.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;version = "~&amp;gt; 5.92"&lt;/code&gt; — &lt;strong&gt;you choose this number&lt;/strong&gt;, based on what's current when you write the file. You'd typically just check the Terraform Registry page for the AWS provider and copy whatever the latest stable version is.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;required_version = "&amp;gt;= 1.2"&lt;/code&gt; — &lt;strong&gt;you choose this too&lt;/strong&gt;, usually just "whatever Terraform version I actually have installed," checked via &lt;code&gt;terraform -version&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Type &lt;code&gt;terraform {&lt;/code&gt; and &lt;code&gt;required_providers {&lt;/code&gt;, these are fixed syntax, not something you reason out, same as typing &lt;code&gt;for&lt;/code&gt; in Python, it's the keyword, not a choice.&lt;/li&gt;
&lt;li&gt;Go to the Terraform Registry website, search "AWS", copy the &lt;code&gt;source&lt;/code&gt; line it gives you, that's not memorized, it's looked up, every time, by everyone, including experienced engineers.&lt;/li&gt;
&lt;li&gt;Pick a version number, usually "latest," from that same page.&lt;/li&gt;
&lt;li&gt;Close the braces.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;I spent alot of time this week troubleshooting and verifying my AWS account, i got suspended for almost 72 hours, i sent mail after mail but yeah it was crazy. I got my account back yesterday * OCT 2nd *.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;SSH (SECURE SHELL) :&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;This a a secure way of sending command on an unsecured network. It uses cryptography to authenticate and encrypt connections between the devices. &lt;/p&gt;

&lt;h4&gt;
  
  
  Uses:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Remote encrypted connections: SSH allows for an encrypted connection between a user device and a faraway machine, often a server. &lt;/li&gt;
&lt;li&gt;It allows for Tunneling: Tunneling is communication channel/ path created to move network and packets from one end points to the other. (a method for moving network or packet through a channel/path where they would not ordinary be able to use).&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  How it works:
&lt;/h4&gt;

&lt;p&gt;SSH runs on top of TCP/IP protocol suite - which much of the internet relies upon.&lt;/p&gt;

&lt;p&gt;Public key cryptography - SSH is uses an encryption method to secure the connection called public key.&lt;/p&gt;

&lt;p&gt;public key cryptography is a way to encrypt and sigh data with two different keys, a public keys which can be used by the anyone and a private key used by the user(owner).&lt;/p&gt;

&lt;p&gt;Authetication: while the public keys cryptography authenticate the connected devies in ssh, a properly secured computer will still ask for authenticaion using the ssh, often through the device password(like my vs code terminal often does).&lt;/p&gt;

&lt;p&gt;SSH port forwarding / tunneling: This means sending data packets directed at an Ip address and port on one other machine to an ip address and port on a different machine(simply put: sending a data from one ip to another ip which now forward it to another ip (mostly pre-configured)) &lt;/p&gt;

&lt;h4&gt;
  
  
  What SSH is used for
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;remotely managing servers&lt;/li&gt;
&lt;li&gt;securely transferring file&lt;/li&gt;
&lt;li&gt;accessing service in the cloud without exposing a local machines ports to the internet&lt;/li&gt;
&lt;li&gt;connecting remotely to services in a private network&lt;/li&gt;
&lt;li&gt;bypassing firewall restrictions&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;SSH port through PORT 22. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;CLI BASICS:&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;ifconfig/ip:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;         Linux networking
                │
      ┌─────────┴──────────┐
      │                    │
   ip addr              ip route
      │                    │
 "Who am I?"          "Where do I go?"
      │                    │
  IP address             Gateway
  subnet                 routes
  interface
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;iwconfig: is a Linux utility for inspecting and configuring wireless network interfaces. It can show things like the Wi-Fi network (ESSID), wireless mode, frequency, access point, link rate, signal quality, and signal strength. It's different from &lt;code&gt;ip&lt;/code&gt; because &lt;code&gt;ip&lt;/code&gt; handles general network interface/IP/routing information, while &lt;code&gt;iwconfig&lt;/code&gt; deals with wireless-specific information.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;         NETWORKING
              │
    ┌─────────┴─────────┐
    │                   │
   IP                  Wi-Fi
    │                   │
   ip               iwconfig
    │                   │
    address        wireless info
    |.                  |
    routes.           signal
    |                   |
    interfaces.      frequency
    | 
    ESSID.
    | 
    access point
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;``&lt;/p&gt;

</description>
      <category>cloudcomputing</category>
      <category>devops</category>
      <category>newbie</category>
    </item>
    <item>
      <title>Learning Notes</title>
      <dc:creator>TUNDE OGUNMODEDE</dc:creator>
      <pubDate>Sat, 26 Sep 2026 22:20:33 +0000</pubDate>
      <link>https://dev.to/tunde-dev/learning-notes-289g</link>
      <guid>https://dev.to/tunde-dev/learning-notes-289g</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; These are my learning notes from my current phase. I am keeping them as I wrote them so I can look back and see my progress.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;watched a 1 hour history of linux, basically where it cme from, how it came by and the early struggles(on 1.5x). &lt;/p&gt;

&lt;h2&gt;
  
  
  Next: bash scripting and command lines for beginners.
&lt;/h2&gt;

&lt;p&gt;A bash script is a file containing sequence of command executed but bash program line by line. like a file where the command lines are saved so you dont need to retype them everytime. &lt;/p&gt;

&lt;p&gt;downloaded and install linux, and ubuntu and did the installation. used sudo hostnamectl set hostname devbox and then used sudo nano /etc/hosts to edit my terminal name. &lt;/p&gt;

&lt;p&gt;the superuser shell uses # as it anchor while normal user uses $ sign. &lt;/p&gt;

&lt;p&gt;i wrote my first script. to write your script you need the she bang which tell the terminal how to run the script. #!/bin/bash and you follow it with your script. &lt;br&gt;
echo command litrary echos whatever you write back to you. read pauses the script so you can input and $ holds the value of your variable. to write a date now here is how to write.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; “Today is &lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt; or &lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;”

&lt;span class="nb"&gt;echo&lt;/span&gt; “where &lt;span class="k"&gt;do &lt;/span&gt;you want the response to be” 

&lt;span class="nb"&gt;read&lt;/span&gt; “path”

&lt;span class="nb"&gt;echo&lt;/span&gt; “This is all the responses &lt;span class="k"&gt;in &lt;/span&gt;this path”

&lt;span class="nb"&gt;ls&lt;/span&gt; “&lt;span class="nv"&gt;$path&lt;/span&gt;”
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note: $(…..) means run the command inside the bracket. &lt;/p&gt;

&lt;p&gt;“$name means the name is holding a value. &lt;/p&gt;

&lt;p&gt;chmod u+x filename makes the file executable, before that, the file is just text. &lt;/p&gt;

&lt;p&gt;\n is new line&lt;/p&gt;

&lt;p&gt;-e make it easy to interpret the \n. without the -e, it will not render in a new line.  it will render literary.&lt;/p&gt;

&lt;p&gt;done &amp;lt; .txt. this take input from the text file. Let say the text file name is name.txt.  to take input from it, i will use &amp;lt;name.txt.  &lt;/p&gt;

&lt;p&gt;$1 this mean you input data at the execution point. e.g ./name Wale. output would be “My name is wale” &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;COMMAND&lt;/th&gt;
&lt;th&gt;WHAT IT DOES&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ls&lt;/td&gt;
&lt;td&gt;→ list directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ls &amp;gt; output.txt&lt;/td&gt;
&lt;td&gt;→ list directory → save output to file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cat output.txt&lt;/td&gt;
&lt;td&gt;→ display contents of file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ls output.txt&lt;/td&gt;
&lt;td&gt;→ list the file itself&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;echo macho&lt;/td&gt;
&lt;td&gt;→ produce "macho"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;echo macho &amp;gt; file&lt;/td&gt;
&lt;td&gt;→ produce "macho" → Overite the existiing file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;done &amp;lt; output.txt&lt;/td&gt;
&lt;td&gt;→ takes input from the text file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  while loop. sample
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;i&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1

&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt; &lt;span class="nt"&gt;-le&lt;/span&gt; 5 &lt;span class="o"&gt;]](&lt;/span&gt;logic, &lt;span class="k"&gt;if &lt;/span&gt;i is less or equal to 1&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;do&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;action&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; “&lt;span class="nv"&gt;$i&lt;/span&gt;” &lt;span class="o"&gt;(&lt;/span&gt;write i&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="o"&gt;((&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt; +&lt;span class="o"&gt;=&lt;/span&gt; 1&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;add 1 everytime till it equals to 5&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;done&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;done&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  for loop. sample
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;i&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1 &lt;span class="o"&gt;(&lt;/span&gt;var name&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for &lt;/span&gt;i &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;1…5&lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;logic&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;action.. &lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; “&lt;span class="nv"&gt;$i&lt;/span&gt;”&lt;span class="o"&gt;(&lt;/span&gt;write&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;done&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;done&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Case Settlements: means bash goes through muultiple case’s you’ve built and return with the most correct and if it cant find the correct, it return with the preset alternative.
&lt;/h2&gt;

&lt;p&gt;eg.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;fruit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;”apple”

&lt;span class="k"&gt;case&lt;/span&gt; fruit &lt;span class="nv"&gt;$fruit&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; 

“apple”&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; “This is a red fruit.”

&lt;span class="p"&gt;;;&lt;/span&gt;

“orange”&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; “This is an Orange fruit”

&lt;span class="p"&gt;;;&lt;/span&gt;

&lt;span class="k"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; “This is not a fruit.”

&lt;span class="p"&gt;;;&lt;/span&gt;

&lt;span class="k"&gt;esac&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;bash will check if there is apple in the script and return what echos the text for apple and if it couldn’t find it. it returns what was set to *). &lt;/p&gt;

&lt;h2&gt;
  
  
  Degugging.
&lt;/h2&gt;

&lt;p&gt;To debut a script that isnt working, you use set -x at the section where you think the error is or you could just put it after the shebang and it will run through the script and give you the feedback. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;. What cron does&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Cron automatically runs commands/scripts at scheduled times.&lt;/p&gt;

&lt;p&gt;Think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Run this script for me every day at 2 AM."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2. Know the five fields&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* * * * *
│ │ │ │ │
│ │ │ │ └── weekday
│ │ │ └──── month
│ │ └────── day of month
│ └──────── hour
└────────── minute
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You don't need to memorize every possible combination yet.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3. Know these two commands&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;crontab &lt;span class="nt"&gt;-l&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;→ See your scheduled cron jobs.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;crontab &lt;span class="nt"&gt;-e&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;→ Edit/add your cron jobs.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4. Understand one simple example&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;0 0 &lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt; /path/to/script.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Means:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Run &lt;code&gt;script.sh&lt;/code&gt; at &lt;strong&gt;00:00 (midnight), every day&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;*&lt;/span&gt;/5 &lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt; /path/to/script.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;means:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Run it &lt;strong&gt;every 5 minutes&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  What I'd skip for now
&lt;/h3&gt;

&lt;p&gt;Don't spend time memorizing things like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;0 0 1-7 &lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt;
0 6 &lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt; 1-5
&lt;span class="k"&gt;*&lt;/span&gt;/17 2-4 3-8 ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Computer Networking&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;LAN → ETHERNET &lt;/p&gt;

&lt;p&gt;MAC(media access control)  address is an identifier for each system. &lt;/p&gt;

&lt;p&gt;CSMA(carrier sense multiple access) → any share transmition that carries date eg cable network or wifi. &lt;/p&gt;

&lt;p&gt;bandwidth is the rate at which a transmiter carries data.  &lt;/p&gt;

&lt;p&gt;Exponential Backoff: to fix the network traffic by making one computer wait in a random time (e.g 1.3secs) to transmit data to reduce collusion. &lt;/p&gt;

&lt;p&gt;Collusion domain: this is using a netwrok switch which sit betwen small network ( Read more on this) &lt;/p&gt;

&lt;p&gt;Routine: Allocating a communition line for their exclusive use&lt;/p&gt;

&lt;p&gt;Circuit switch: **&lt;/p&gt;

&lt;p&gt;message switching: **&lt;/p&gt;

&lt;p&gt;Hop count: The number of hops a message tales along a route is called the hop count&lt;/p&gt;

&lt;p&gt;Packet: A small pieces of message that contains the destination address on the network so router know where to forward them. &lt;/p&gt;

&lt;p&gt;IP: this is internet protocol. an identifier. &lt;/p&gt;

&lt;p&gt;Congestion control: Load balance&lt;/p&gt;

&lt;p&gt;TCP IP: &lt;br&gt;
internet control message protocol(ICMP)&lt;/p&gt;

&lt;p&gt;Border gateway protocol(BGP) &lt;/p&gt;

&lt;p&gt;IoT&lt;/p&gt;

&lt;p&gt;ipv4: is a 32bit data that allows for 232 ip addresses or about 4.3billion unique ips(4 digits)&lt;/p&gt;

&lt;p&gt;ipv6: a 128bit data that allows for 2128 unique ips. (38 digits)&lt;/p&gt;

&lt;p&gt;IP types - Static and dynamic IP&lt;br&gt;
Static: is a permanent IP address whike dynamic is a temporary Ip address&lt;/p&gt;

&lt;h3&gt;
  
  
  DNS(Domain name system): This is internet phonebook where all internet website is saved. it works by translating the website into the Ip address so user can access the website.
&lt;/h3&gt;

&lt;p&gt;Types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Recursor&lt;/strong&gt; → actively goes looking for the answer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Root&lt;/strong&gt; → points it toward the correct TLD.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TLD&lt;/strong&gt; → points it toward the authoritative server for that domain.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  - &lt;strong&gt;Authoritative&lt;/strong&gt; → has the actual DNS record/answer.
&lt;/h2&gt;

&lt;p&gt;!image.png&lt;/p&gt;

&lt;p&gt;DNS caching:  This temporary stores the inital data results which results to faster response to queries. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What is time-to-live (TTL) in networking?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Time to live (TTL) refers to the amount of time or “hops” that a packet is set to exist inside a network before being discarded by a router. TTL is also used in other contexts including CDN caching and DNS caching.&lt;/p&gt;

</description>
      <category>learning</category>
      <category>bash</category>
      <category>linux</category>
      <category>newbie</category>
    </item>
  </channel>
</rss>
