What is Soft Links and Hard Links in Linux File System

Author Piyush Gupta

To make links between files you need to use ln command. A symbolic link (also known as a soft link or symlink) consists of a special type of file that serves as a reference to another file or directory. Unix/Linux like operating systems often uses symbolic links.

Two types of links

There are two types of links
  • symbolic links: Refer to a symbolic path indicating the abstract location of another file
  • hard links : Refer to the specific location of physical data.

How do I create soft link / symbolic link?

Soft links are created with the ln command. For example, the following would create a soft link named link1 to a file named file1, both in the current directory
$ ln -s file1 link1
To verify new soft link run:
$ ls -l file1 link1
Use following command to create a soft link of Apache configuration file under /etc directory. While creating softlink of file inode number will be different that original file.
ln -s /etc/httpd/conf/httpd.conf /etc/httpd.conf
Check soft link and original file inode number.
ls -li /etc/httpd/conf/httpd.conf /etc/httpd.conf

4035744 lrwxrwxrwx 1 root root 19 Sep 19 18:19 /etc/httpd.conf -> /etc/httpd/conf/httpd.conf
6130556 -rw-r--r-- 1 root root 19 Sep 19 18:59 /etc/httpd/conf/httpd.conf

How do I create Hard link?


Use following command to create a hard-link of Apache configuration file under /etc directory. While creating hard-link of file inode number will be same as original file.
ln /etc/httpd/conf/httpd.conf /etc/httpd.conf
Check soft link and original file inode number.
ls -li /etc/httpd/conf/httpd.conf /etc/httpd.conf

6130556 -rw-r--r-- 2 root root 19 Sep 19 18:19 /etc/httpd.conf
6130556 -rw-r--r-- 2 root root 19 Sep 19 18:59 /etc/httpd/conf/httpd.conf

How to convert tabs to spaces in Notepad++

Author Piyush Gupta

To convert existing tabs to spaces, press Edit->Blank Operations->TAB to Space.
If in the future you want to enter spaces instead of tab when you press tab key:
  1. Go to Settings->Preferences...->Language (since version 7.1) or Settings->Preferences...->Tab Settings (previous versions)
  2. Check Replace by space
  3. (Optional) You can set the number of spaces to use in place of a Tab by changing the Tab size field.

Find the list of all installed packages in Linux

Author Piyush Gupta


Some times we need to check how many packages are installed in our Linux machine. This article will help you to find all installed packages on Redhat and Debian based Linux systems.

Find the list of all installed packages

Use one of following commands to list all installed packages on CentOS, RedHat, Fedora, Ubuntu, Debian and LinuxMint systems
On CentOS, RHEL & Fedora:
# rpm -qa    # Using rpm command 

# yum list installed # Using yum command
On Ubuntu & Debian:
# dpkg --get-selections

$ apt list --installed # Ubuntu 14.04 or above

How to check Linux System is 64 bit or 32 bit

Author : Piyush Gupta


This article describes how to find out whether your Linux system’s OS is 32-bit or 64-bit. This will be helpful if you wanted to download or install an application in your Linux system. As we all know, we can’t install 64-bit applications into a 32-bit OS type. That’s why knowing your Linux system’s OS type is important.
Here are the five easy and simple methods to verify your Linux system’s OS type. It doesn’t matter whether you’re using a GUI or CLI type systems, the following commands will work on almost all Linux operating systems such as RHEL, CentOS, Fedora, Scientific Linux, Debian, Ubuntu, Linux Mint, openSUSE etc.

1. uname Command

uname -a command will display your Linux system’s OS type. This is the universal command and it will work on almost all Linux/Unix operating systems.
To find out the system’s OS type, run:
# uname -a

#64-Ubuntu Mon Sep 28 20:29:08 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

2. dpkg Command

dpkg command will also display whether your Debian/Ubuntu operating system is 32-bit or 64-bit. This command will work only on Debian and Ubuntu based distributions and it’s derivatives.
Open your Terminal, and run:
$ dpkg --print-architecture
If your OS is 64-bit, you’ll get the following output:
amd64
If your OS is 32-bit, then the output will be:
i386

3. getconf Command

getconf command will also display the system configuration variables. Now, let me show you how to find out the Linux system arch using getconf command.
$ getconf LONG_BIT

64
For more details refer the man pages.
$ man getconf

4. arch Command

arch command will display your OS type. This command is similar to uname -m command. If its output is x86_64 then it’s 64-bit OS. If the output is i686 or i386, then it’s 32-bit OS.
$ arch

x86_64

5. file Command

file command with with a special argument /sbin/init will display the OS type.
$ file /sbin/init

/sbin/init: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),
dynamically linked (uses shared libs), for GNU/Linux 2.6.24,
BuildID[sha1]=*****, stripped

How to archive files and directories in Linux

Author Piyush Gupta

Archive files and directories In Linux, There are multiple tools available in Linux system for creating archive files. In this article we will see how to archive files and directories using tar, zip and gzip command.
Below is the most common programs to archive files and directories are;
  1. zip
  2. tar
  3. gzip

1 – Zip

zip is the most popular command line archiving utility for Linux systems. zip program comes pre-installed with some Linux distros. Just in case if it is not available, you can install it using the distribution’s default package manager.

On Arch Linux and variants:

$ sudo pacman -S zip unzip

On RHEL, CentOS, Fedora:

$ sudo yum install zip unzip

On Debian, Ubuntu, Linux Mint:

$ sudo apt-get install zip unzip

On SUSE/openSUSE:

$ sudo zypper install zip unzip
Now let us see some examples.

Create Archive of File

# zip output.zip /var/log/*.log

Create Archive of Directory

# zip -r output.zip /var/log

Extract Archive

# unzip output.zip

2 – Tar

Tar is an Unix command which stands for Tape Archive. It is used to combine or store multiple files (same or different size) into a single file. There are 4 main operating modes in tar utility.


  1. c – Create an archive from a file(s) or directory(s).
  2. x – Extract an archive.
  3. r – Append files to the end of an archive.
  4. t – List the contents of the archive.

Create Archive of File

# tar -cf output.tar /var/log/*.log

Create Archive of Directory

# zip -cf output.tar /var/log

Extract Archive

# tar -xf output.tar

3 – gzip

gzip is a utility to compress and decompress files using Lempel-Ziv coding (LZ77) algorithm.
gzip is one more tool for command line users for making archive files. gzip also supports to take input of data as standard input or through pipe and create zip file.

Create Archive of File

# gzip -k access.log

Create zip file of piped data

# cat /var/log/messages | gzip > messages.gz

Extract Archive

# gunzip access.log.gz

Combined – Tar + gzip

Tar also combined gzip program to enable higher compression level of files. Using tar with gzip created files extension will be .tar.gz.

Create Archive of File

# tar -czf output.tar.gz /var/log/*.log

Create Archive of Directory

# zip -czf output.tar.gz /var/log

Extract Archive

# tar -xzf output.tar.gz

How to change background color of text in Linux Shell

Author Piyush Gupta

Information as found on this page, excluding preview column:
Sequences are composed of the Escape character (often represented by ”^[” or ””) followed by some other characters: ”^[FCm” (where FC is one of the numbers in the bulleted list below).
In bash, the Esc code can be either of the following:
  1. \e
  2. \033 (octal)
  3. \x1B (hexadecimal)
Note 1: The “\e[0m” sequence removes all attributes (formatting and colors). It can be a good idea to add it at the end of each colored text.
Note 2: Foreground and background colours may vary, depending on the terminal’s configuration and not all colours are supported.

Set/Reset

  • 0: Reset/remove all modifier, foreground and background attributes: echo -e "\e[0mNormal Text"
  • 1: Bold/Bright: echo -e "Normal \e[1mBold"
  • 2: Dim: echo -e "Normal \e[2mDim"
  • 4: Underlined: echo -e "Normal \e[4mUnderlined"
  • 5: Blink (doesn’t work in most terminals except XTerm): echo -e "Normal \e[5mBlink"
  • 7: Reverse/Invert: echo -e "Normal \e[7minverted"
  • 8: Hidden (useful for sensitive info): echo -e "Normal \e[8mHidden Input"
  • 21: Reset/Remove bold/bright: echo -e "Normal \e[1mBold \e[21mNormal"
  • 22: Reset/Remove dim: echo -e "Normal \e[2mDim \e[22mNormal"
  • 24: Reset/Remove underline: echo -e "Normal \e[4mUnderlined \e[24mNormal"
  • 25: Reset/Remove blink: echo -e "Normal \e[5mBlink \e[25mNormal"
  • 27: Reset/Remove reverse/invert: echo -e "Normal \e[7minverted \e[27mNormal"
  • 28: Reset/Remove hidden: echo -e "Normal \e[8mHidden \e[28mNormal"

Foreground

  • 39: Default (usually green, white or light gray): echo -e "Default \e[39mDefault"
  • 30: Black: echo -e "Default \e[30mBlack" (best combined with a background colour: echo -e "Default \e[30;107mBlack on white")
  • 31: Red (don’t use with green background)
  • 32: Green
  • 33: Yellow
  • 34: Blue
  • 35: Magenta/Purple
  • 36: Cyan
  • 37: Light Gray
  • 90: Dark Gray
  • 91: Light Red
  • 92: Light Green
  • 93: Light Yellow
  • 94: Light Blue
  • 95: Light Magenta/Pink
  • 96: Light Cyan
  • 97: White

Background

  • 49: Default background color (usually black or blue)
  • 40: Black
  • 41: Red
  • 42: Green
  • 43: Yellow
  • 44: Blue
  • 45: Magenta/Purple
  • 46: Cyan
  • 47: Light Gray (don’t use with white foreground)
  • 100: Dark Gray (don’t use with black foreground)
  • 101: Light Red
  • 102: Light Green (don’t use with white foreground)
  • 103: Light Yellow (don’t use with white foreground)
  • 104: Light Blue (don’t use with light yellow foreground)
  • 105: Light Magenta/Pink (don’t use with light foreground)
  • 106: Light Cyan (don’t use with white foreground)
  • 107: White (don’t use with light foreground)
To set both the foreground and background colours at once, use ther form echo -e "\e[S;FG;BGm". For example: echo -e "\e[1;97;41m" (bold white foreground on red background)
For 256 colour options, see the source page.

How to change output text color in Linux Shell

Author Piyush Gupta

You can use these ANSI escape codes:

Black        0;30     Dark Gray     1;30
Red 0;31 Light Red 1;31
Green 0;32 Light Green 1;32
Brown/Orange 0;33 Yellow 1;33
Blue 0;34 Light Blue 1;34
Purple 0;35 Light Purple 1;35
Cyan 0;36 Light Cyan 1;36
Light Gray 0;37 White 1;37

Example:

# echo -e “e[0;31mText in Red Colore[0m

The Above commands are showing to set foreground ( Text ) color of output on Linux bash shell. The output of above command will be in red color. There are many other colors available which you can use defined as below. Just replace “0;31” with other color values in above text.
Foreground ( Text ) Color’s:
   Black        0;30
Red 0;31
Green 0;32
Yellow 0;33
Blue 0;34
Purple 0;35
Cyan 0;36
White 0;37

Reset Text Color 0m
Use following codes to show text in Bold with same colors.
   Black        1;30
Red 1;31
Green 1;32
Yellow 1;33
Blue 1;34
Purple 1;35
Cyan 1;36
White 1;37

How to prompt for User Input in Linux shell script

Author Piyush Gupta

Command:

# read var

# read -s “Waiting for input: ” var

Uses:

read command is used for getting user input in a Linux shell script. -p switch with read command is used for showing some helpful text on-screen. Create a shell script named input.sh and add following content.
#!/bin/bash

read -p "Enter Your Name: " username
echo "Welcome $username!"
Lets execute the shell script
# sh input.sh

Enter Your Name: Piyush
Welcome Piyush!

Input Password in Shell Script

If you want to take input of password in shell script. You must want to not to show any character on-screen entered by user. Use -s for silent mode. Using -s input characters are not echoed.
#!/bin/bash

read -s -p "Enter Password: " pswd
echo $pswd

How to extract .gz File in Linux

Author Piyush Gupta

GZ files are archive files compressed with the “gzip” program, similar to zip files. These archive files contain one or more files, compressed into a smaller file size for faster download times from the Internet. Source code and other software program files for Linux are often distributed in .gz or .tar.gzformat. Unzip a GZ file using the “gunzip” command or a .tar.gz file using the “tar” command in a Linux terminal.

Command:

$ gunzip archive.gz

Uses:

.gz is files are compressed with gzip in linux. To extract .gz files we use gunzip command.
First use following command to create gzip (.gz) archive of access.log file. Keep remember that below command will remove original file.
gzip access.log
Above command will create a archive file named access.log.gz in current directory.
ls -l access.log.gz
-rw-r--r-- 1 root root 37 Sep 14 04:02 access.log.gz
Now use gunzip command to extract access.log.gz file using command. This will extract the file from archive and remove .gz file automatically.
gunzip access.log.gz

How to remove all spaces from file in Notepad++?

Author Piyush Gupta

There are two way to remove all spaces from file in Notepad.

  1. Using Regular expression 
  2. Direct Method

Using Regular expression:


To delete all spaces in the file, replace ' +' with '' (quotes only for demonstration, please remove them). You need to have the checkbox “Regular expression” checked.
To remove all spaces and tabs, replace '[ \t]+' with '' (remove quotes).
This works for big files, too, where the solution of direct method will be tiresome.
Direct Method:
No need for regular expressions. In Find (Used Ctrl + H) what add a white space character  and then replace with nothing.
Design a site like this with WordPress.com
Get started