Computer Networking Guide For Beginners – Networking Basics and Fundamentals

Networking is how information between two or more connections is exchanged. For example the The WiFi internet that you use at home is a local area network (LAN) which allows information to be sent over the internet. This networking guide is for beginners which covers networking basics and fundamentals.

Computer networking

Client 

A client is a device that requests information from a server such as a web server. A client can be a host but is not a server, it is only a device such as a computer.

Server

A server such as a web server sends information to a client that requests it. A server is not a client.

Host

A host is any device or node on a network such as a server or a device.

Local Area Network (LAN)

As stated above, a LAN is a local area network such as the WiFi connection in your home or the WiFi connection at a coffee shop. This kind of network is limited to only a certain area.

Wide Area Network (WAN)

A wide area network covers a lot more distance. For example the internet itself is a WAN which is world wide. A mobile phone service network is also a WAN.

HUB

A hub is like an older outdated version of the switch. When data was sent from a computer it would be sent to all other computers on the network instead of sending it to one specific computer. Hubs are for the most part not used anymore.

Switch

A switch is a device that is often built into a router that allows the router to send data to specific devices. The switch is similar to a hub but is a lot smarter in how it sends data to devices.

Router

A router is considered the gateway to the internet which allows your devices to connect through WiFi or Ethernet ports. This is the device that will be in a lot of peoples homes who have internet.

Wireless Access Point (WAP)

A wireless access point is a device that is often integrated into a router which allows WiFi devices to connect to the network. You can consider it the technical name for WiFi. It can also be a separate device which can be referred to as a WiFi extender.

IP Address

A computer uses an IP address so that information on the internet knows where to be sent. IP addresses are similar to house addresses but usually not as specific and only give a general location.

Dynamic Host Configuration Protocol (DHCP)

Dynamic Host Configuration Protocol assigns IP addresses to devices that allow them to to connect to the internet. Most IP addresses will remain the same for a while but it depends on the Internet Service Provider (ISP).

Media Access Control Address (MAC Address)

A MAC address is the physical address of a device which is used to send data from the internet to the specific device unlike the IP address which is used to transfer data from one connection to another. Another difference is that a MAC address is assigned at the time the device was manufactured unlike an IP address which is a dynamic address assigned when you connect to the internet.

Firewall 

A firewall is a layer between a device and the internet which filters incoming and outgoing traffic. Firewalls are a big part of online security and can also be adjusted to only allow certain data to be received.

Port

Ports are part of a firewall which allow different types of data to be received or rejected. 0 to 1,023 are the most commonly used ports even though there is a total of 65,535 for both TCP and UDP. TCP and UDP are basically two different types of connections that are used depending on what kind of data is being sent.

Ethernet 

Ethernet is the wiring that is used between devices such as routers, switches, and modems on a local area network (LAN). A cable that connects a device to the internet using a switch usually installed within a router is an Ethernet cable.

 

All of this is important to know if you want to advance within networking. More posts will be coming soon. Also check out how to protect yourself online https://thebloggingpot.com/2018/02/14/how-to-protect-yourself-online/ and the different types of malware and what they are used for https://thebloggingpot.com/2018/02/21/malware-trojans-and-viruses/

 

 

 

 

 

 

 

 

 

Most Useful Linux Commands for Beginners – Linux Terminal Tutorial

Linux uses the command line interface (CLI) for commands that can perform various tasks. Because the Linux command line uses text it can perform actions very quickly which is why even in the 1970s Computers using the Linux command line would operate quickly and efficiently. It may seem challenging for a beginner which is why it is important to start with the most basic commands and progress from there. The Linux terminal can do many things like downloading a program from the internet or changing the name of a file. A Linux terminal can do a lot of what a regular desktop Linux OS can do but it can also quickly perform other various tasks which is a big reason as to why the command line is still widely used today. When using the command line it is important to know that you must be very careful because it is possible to make a mistake and impact your system.

Linux Ubuntu command line

You can access the terminal by going into the system tools folder. It is usually easy to find. The picture above is what a Linux command line will usually look like. The colors may be different but more less they are all similar. In the example above, John is the name of the user and doe is the name of the system. The ~ followed by the $ represents the home directory. These Linux commands are the most useful for beginners as well as experienced users. You can use these commands in your terminal for practice. All of these commands are safe to use but to get a better idea it is recommended to look up YouTube videos of Linux commands to see them live in action as well as other written tutorials. It will take a little while to get used to but tutorials like this will help you put it all together.

 

sudo

The sudo command stands for super user do. It is almost always installed on most Linux distros but if not you can use sudo apt-get install sudo or yum install sudo if using CentOS or Fedora. It is often used when installing or running a program which will then ask for the password of the root user. Using sudo is generally more secure then logged in as root.

sudo -s 

This allows the user to log in as root. It is not recommended to log in as root unless you know what you are doing since it can be risky.

apt-get

apt-get stands for Advanced Packaging Tool and as the name implies it is used when installing and removing packages as well as clearing the system of cached data. Instead of using sudo apt-get to work with packages you can shorten it to sudo apt which most Linux distros will support. With these apt-get commands type the package name after the last word of the command. For example, sudo apt-get install packagename. The package name has be typed correctly in order to work. You can go to the package manager and look for the exact package name. For example the name of the Google Chrome browser package is chrome-browser-stable so each package name may be different.

sudo apt-get install

Installs a package

sudo apt-get remove

Removes a package.

sudo apt-get purge

Removes a package with configuration

sudo apt-cache search

Searches for a program

sudo apt-cache show

Shows package details

sudo apt-get update

Refreshes repository index but does not install or remove packages. This is a good command to use before using the sudo apt-get upgrade command.

sudo apt-get dist-upgrade

Upgrades packages and also ones with auto-handling of dependencies. The full-upgrade command also does the same thing. This command updates the system but could possibly remove packages in order to do that. It usually doesn’t but just in case it is possible to avoid this command completely.

sudo apt-get upgrade

Upgrades all up-gradable packages.

sudo apt-get autoremove

Removes all unwanted packages.

sudo apt-get clean

Clears out the local repository of received package files.

sudo apt-get autoclean

Similar to clean, autoclean Clears the local repository of retrieved package files but only removes files that can no longer be downloaded and are virtually useless.

ls

The ls command stands for list directory contents which lists the sub directories and files of the current directory. You can ls commands to list contents of any directory that you switch to.

ls -l

ls -l is similar to ls but instead lists the contents in long listing fashion which basically means that more info is provided like dates, size, and other info.

ls -a

The ls -a command lists all files including hidden ones. A file can be hidden by putting a . before the file name.

ls -la

The ls -la command lists all the sub directories and files as well as hidden files of the current directory. A lot of users will use this command since it lists the most content inside of a directory.

cd

The cd command (change directory) changes the current directory that the user is inside of. If you want to change a directory within your current directory type cd nameofdirectory such as pictures, downloads, music, or other directories. If the directory is located outside of the current directory you need to use a / to indicate the path. For example, cd /directory/directory To go back a directly use cd. with a single dot or cd.. (double dots). If the name of a folder or file within your directory has a space between it use a backwards slash like so, cd class\notes otherwise it will display an error because the space makes the command pick it up as two separate files resulting in an error. Also remember that Linux is case sensitive so the directory or file must be exact.

cd ~

This command allows you to go back to the home directory.

touch

The touch command creates a new file within a directory.

pwd 

pwd stands for Print Working Directory which as the name implies, prints the path of the current working directory starting from the root.

mv

The mv command stands for move which is different from copy since it moved the file or directory to another location unlike copy which leaves the source file or directory where it was originally located.

cp

The cp command stands for copy which copies a file or directory to another location. In order to copy files and directories you must have permissions for the read source and write destination otherwise you will be denied permission.

mkdir

The mkdir (make directory) command creates a new directory.

rm

rm stands for remove which removes a directory or file. It should be used with caution. It may seem obvious to not delete an important file on purpose but is stated as a reminder just in case one starts using the rm command as practice. rmdir can also be used but can only remove a directory without files which makes rm usually more useful. If you want to use delete just the directory and not the files then use rm -r

locate 

The locate command as the name implies locates a file.

cat 

The cat command creates a file with content. This similar to the touch command but the difference is that the touch command creates an empty file.

clear

The clear command clears the terminal for a new start like it was just opened. This is useful if you simply want a new start which is easier than closing and reopening the terminal.

who

The who command allows you to see the users that are logged into the system. The whoami command is also a command that can be used but only displays the currently logged in user. For Just 1 personal computer this is almost always the same result but for a system of computers it can be different.

df

df stands for Disk free which is similar to du.

du

The du command stands for Disk Usage is used to estimate hard drive space. du is used more often than df.

hostname

hostname is a command which shows the users host name and domain name (DNS)

uname -a 

uname is the regular command but the reason why I only listed uname -a is because with the -a parameter it will show all the system information instead of only parts of information.

killall

The killall command kills all running processes. This should not be used unless needed since data from a program can be lost. For example if a Web browser is misbehaving and is freezing the killall command can be used. You can also go to task manager, find the process, right click on it, then choose kill process.

lsblk

The lsblk command displays all block devices such as USB drives, hard drives or CD rom drives.

lsblk -l

The same as the lsblk command but instead lists it in long listing fashion which displays more information.

man 

Displays a manual for any command used on Linux. For example type man ls, man sudo, man apt-get, or others to get a text manual description within the terminal on how the command works. Use the arrow keys to navigate the man page, enter to move one line at a time, space bar to go to the next page, and b to go back to the previous page. To quit the man page press the q key.

help

help is similar to the command man but displays different information on how to use the command. Type the name of the command before help

ping

ping stands for Internet Packet Groper which is used to check the network connection between a server and a host. For example type or paste a URL after the word ping and you will get a response from the server which including a lower or high ping time indicating if the website is online and how fast the response time is. Use ctrl+c to stop sending packets or x out of the terminal. Using ctrl+c is in theory the safer method.

 

So one thing to remember is to not be overwhelmed thinking that you have to remember every command. A lot of experienced Linux users don’t use every single command and again, most of the commands are performing tasks that can usually be performed within the graphical desktop OS. As stated in the beginning it is a good idea to look up other info and YouTube videos to see these commands in action like. For example Ifconfig and a lot of other advanced networking commands were not listed due to the fact that they can be confusing for a beginner so seeing them used in action can make them a lot easier to understand. The important part is to not feel overwhelmed which will makes things easier.

 

Different Linux Distributions and Their Uses Explained

Linux uses different versions of the OS called distributions or distros for short. There are hundreds of distributions with only a portion of them being the most used and the most popular. Choosing a distribution can be a little difficult if you aren’t familiar with Linux and what it has to offer. Certain distros are more user friendly and easier to install than others, as well as a few being lightweight distros which are better suited for older computers with slower hardware. Other distributions require significant Linux knowledge in order to use since a few distributions use the terminal and other software more in depthly. Here is a list of the most well know Linux distributions and what they offer.

tux-158547__4801555611672.png

Debian

Debian is one of the oldest Linux distributions around dating back to 1993. Debian is a multi purpose distribution and can be used as a server or a desktop. There are a lot of distributions such as Ubuntu and Mint that are based off of Debian. Debian isn’t complicated to use however the the installation and post installation process requires extra steps such as configuring hardware which can be a little daunting for a beginner. For beginners a distro like Ubuntu is recommended over Debian although if your willing to learn a little Debian isn’t that hard to get the hang of.

Anti X

Anti X is a lightweight distro based off of Debian. Relatively easy to install. Anti X uses iceWM as the desktop environment. Good performance but not so flashy on the interface.

Kali Linux

Kali Linux is a popular distro based off of Debian. Kali Linux is used for security and penetration testing. Debian comes loaded with hundreds of software tools related to security, penetration testing, computer forensics, and reverse engineering. Kali Linux is not a beginner distro and is only recommended to those trying to learn about computer security and penetration testing.

Knoppix

Knoppix is a distribution based off of Debian that runs off of a CD or USB drive. Knoppix isn’t as extensive as Debian since it runs off a media device and uses little memory. Has a decent looking interface.

Slackware

Slackware is one of the oldest Linux distributions. It is a multi purpose distro only recommended to experienced users. Slackware Uses GNOME, KDE, and XFCE as desktop environments.

Ubuntu

Ubuntu is a desktop distro based off of Debian. It is aimed at being very user friendly just like Windows and OSX and is the most popular distro around. Ubuntu is an excellent choice for beginners. GNOME is the desktop environment that is now used, replacing unity.

Lubuntu

Lubuntu is a lightweight version of Ubuntu. The application selection isn’t as extensive since it’s a lightweight distro. Lubuntu is a good choice for older computers with slower hardware while also being just as user friendly as Ubuntu.

Linux mint

Linux mint is user friendly desktop distro based off of Ubuntu and Debian. Mint is a very smooth well designed easy to install distro which uses Cinnamon, Mate, and others as a desktop environment. Mint uses a similar display to Windows.

Linux lite

Linux lite is a lightweight distro based off of Ubuntu. Linux lite is easy to use, easy to install, and comes with a good amount of apps. XFCE is the desktop environment that is used. Linux lite is relatively user friendly.

Elementary

Elementary is a lightweight distro based off of Ubuntu. Elementary uses a clean and elegant user friendly interface making it one of the best looking distros and a great replacement for MAC since it uses a desktop environment very similar to MAC called pantheon. Elementary is easy to install and comes with a large repository for apps.

Zorin OS

Zorin OS is a distro based on Ubuntu. It easy easy to install and is very user friendly like Windows. Zorin OS uses GNOME and LXDE as desktop environments.

Open SUSE

Open SUSE is a distro developed by the open SUSE project. Uses GNOME and KDE as desktop environments. Great distro for new users.

Fedora

Fedora is a community desktop distro based off of redhat. Fedora is one of the first distributions to introduce wavland and systemD. Always uses up the latest up to date software. Fedora is relatively easy to install and uses GNOME and KDE as desktop environments.

CentOS

Cent OS is a very stable community distro based off of Red Hat. The difference is that it is mainstream unlike Red Hat but it is just as stable. Relatively easy to install and uses GNOME and KDE as desktop environments.

Arch Linux

Arch is a multi purpose rolling distro recommended by experts. Rolling means that the Arch OS updates automatically. Arch uses the latest software. Arch Requires a bit of knowledge to use and maintain. Cinnamon, GNOME, and KDE are used as desktop environments.

Antergos

Antergos is a more user friendly version of Arch Linux. It comes with more apps and more drivers.

Manjaro

Manjaro is a fairly lightweight distribution based off of Arch Linux that a lot of experts use. Manjaro is Not recommended for beginners unless your trying to jump right into an advanced distro. Manjaro uses Cinnamon, GNOME, and others as the desktop environment. Just like Arch Linux Manjaro is also a rolling distro.

Deepin

Deepin is a desktop distro that comes from China. Deepin has it’s own QT5 desktop environment and also has it’s own software such as an audio player. Deepin is relatively easy to install.

Puppy Linux

Puppy Linux is a Lightweight version of Linux meant to run from a USB drive or CD. It is designed so that it can run without the computer having a hard drive. A CD may be a better choice since a USB stick will eventually loose it’s life. Puppy Linux is very lightweight so it uses very little memory.

So it really depends on what kind of experience you already have with Linux and whether you’re a beginner or not. If you want to jump right into a distro that requires learning to use and maintain then Arch Linux, Manjaro, Debian, or Slackware are good distros to use. If you just want a replacement for whatever reason and are looking for a user friendly distro then Ubuntu, Linux mint, or Elementary are good choices.