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
- 584