Linux part 1: Introduction

Background

What is Linux

Linux is, in simplest terms, is a freely distributed, cross-platform operating system based on Unix

Why Linux?

For developers

  • Many open source applications/libraries are developed natively for Linux.
  • Many development tools like GIT is developed natively for Linux
  • Better command line
  • Better window management & virtual desktops
  • Environment variable
  • Package managers apt-get | rpm
  • Many different flavors of Linux that there's bound to be one you fall in love with.

Why let Microsoft give you a window, when Linux can give you a House?

For servers

  • Stability
  • Secure
  • Performance
  • Cost effective
  • Distributed Apps
  • PaaS
  • A minimal Operating System
  • Manage high availability of docker containers
  • Clustered by default
  • Painless auto updating

Desktop Environment

Unity

kde

Gnome

KDE

Cinnamon

Mate

xfce

Popular Distro

ubuntu

redhat/centOS

openSUSE

linux mint

elementary OS

Getting started

Installation: Dual boot

  • Install Windows first
  • Backup your files into external (just in case!)
  • Create new partition for Linux (take note of the size)
  • Create a bootable usb of your chosen linux distro
  • Boot into USB & click install now -> 'Something else'
  • Delete the new partition
  • Create 3 new partitions:
    • root (for root user): 10~20gb
    • swap space: double the amount of your RAM
    • home (for your Documents etc): all your remaining
  • Once installed, if Windows is not detected, open a terminal window and run:
    sudo update-grub

Installation: Virtualization

  • Download & Install VM Player
  • Open VMware Player, and choose “Create a New Virtual Machine.”
  • Choose ISO image
  • Create user
  • Specify disk capacity
  • Finish

Installation: Cloud Hosting

  • If you're not a member yet, use this link to get free $10 credit: Register
  • Activate account & complete billing details
  • Create a new droplet by choosing distro, size & data center
  • Wait 55 seconds
  • ???
  • Done!

Basic Concept

File Permission

Groups

  • u : User: owner
  • g : Group: other users in the same group
  • a or o : Other: other users outside of the group

Types

  • r : Read: 4
  • w : Write: 2
  • x : Execute: 1

Example

Option 1

To get 2nd output:
chmod u+x file1

chmod g-w file1

chmod a-r file1

To revert back to 1st:
chmod u-x file1

chmod g+w file1

chmod a+r file1

Option 2

To get 2nd output: chmod 740 file1

To revert back to 1st:
chmod 640 file1
-rw-rw-r-- 1 user group 1 2016-02-19 file1
-rwxr----- 1 user group 1 2016-02-19 file1

Devices Files

Working with files

Directory Operations

Command Description
pwd Print current directory
mkdir <dir> Create a new directory
cd <dir> Change directory
cd .. Go up a directory
cd - Toggle between last 2 directories
ls List files in current directory

ls options

Command Description
-a Show all including hidden
-R Recursive list
-r Reverse order
-t Sort by last modified
-S Sort by file size
-l Long listing format
-h Human readable format
-1 One file per line
-m Comma-seperated output
-Q Quoted output

File Command

Command Description
rm <file>
Delete file
rm -r <dir>
Delete directory
rm -f <file>
Force delete file
mv <file1> <file2>
Rename or move file
cp <file1> <file2>
Copy file 1 to file 2
touch <file>
Create or update file
cat file1 > logfile
Standard
cat > <file> Find all empty files in home directory

Search Files

Command Description
grep <string> <file> Search for a given string in a file, with the following options:
-i Case insensitive
-r Recursive search
-v Inverted search
-o Show matched part of file only
find -iname "MyFile.c" Find files in directory matching file name (case insensitive)
find -iname "MyFile.c" -exec md5sum {} \; Execute commands on files found by the find command
find ~ -empty Find all empty files in home directory

Compression

Command Description
tar cvf file.tar directory/ Create a new tar archive
tar xvf file.tar Extract from a tar archive
gzip test.txt Create a *.gz compressed file
gzip -d test.txt.gz Extract  from a *.gz file
unzip test.zip Extract a *.zip compressed file

Pipes & IO Redirection

Cheat sheets:

Quiz Time!

Q1: Which of the following are Linux Distro ?

  • A: Linux Mint
  • B: KDE
  • C: CoreOS
  • D: Unity
  • E: elementary OS

Q1: Which of the following are Linux Distro ?

  • A: Linux Mint
  • B: KDE
  • C: CoreOS
  • D: Unity
  • E: elementary OS

Q2: How to set a file permission

  • owner: read, write & execute
  • group : read & execute only
  • other: execute

Linux Introduction

By Wan Mohd Hafiz

Linux Introduction

  • 423