Amazing Linux Command Line Tips and Tricks

neotam Avatar

Linux Command Line Tips & Tricks
Posted on :

In an operating system, Command line is a tool which provides the typing interface to perform commands on computer. This article will walk you trough some time saving tips to working with Linux command line.

Switch working directory to home directory

cd ~

In Linux ~ refers to home directory. You can use cd ~ to switch current working directory to home directory.

Execute previous command

!!

Print Or get process ID of current Shell

echo $$

Inside script “$$” return the process ID of the process in which it is executing

List last n commands used

Command history returns history of commands performed typically 1000 or configured count

history 

Pass number to get last n commands

history 5

Repeat last nth command

!-n executes the nth last command from the history. Where following command executes last 5th command

!-5

Repeat nth command from history

!n executes the command by it’s number from history . Where following command executes the command at 535th entry in command history.

!535

Repeat last command starting with given characters

!string executes the very last command which starts with given string of characters. For example following command executes last command which starts with lsb .

!lsb
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 140.7M 1 loop /snap/gnome-3-26-1604/74
loop1 7:1 0 143.5M 1 loop /snap/gnome-3-28-1804/23

Executes last command which contains given characters

!?chars executes the last command which contains given characters. For Example following example executes command which contains getKT.

echo "hello! welcome to getKT"
hello! welcome to getKT
!?getKT
echo "hello! welcome to getKT"
hello! welcome to getKT

Reuse the last word from previous command

!$ refers to the last word in the last command executed in the terminal. In the following example we used created file name using !$ .

echo "hello world" > testfile
# cat !$
cat testfile
hello world

Get process number of last background command

echo $!

Populate command from history while typing

CTRL + R populates last command that matches as you type

~#
(reverse-i-search)if': ifconfig

Execute command in background

To execute given command in background append & to the command

# command &

For example, the command "sleep 50 &" would execute the command in background because of suffix &. So, it doesn't block command line.

sleep 50 &
[2] 9416

Suspend the current command

CTRL + z suspends long running command and puts it in background to gives you access to the terminal .

Send command to background

Command which is sent to background can be called as background job (task) . The command bg is used to put given command by it's JOB_SPEC to background.

# bg --help
bg: bg [job_spec ...]
    Move jobs to the background.
    
    Place the jobs identified by each JOB_SPEC in the background, as if they
    had been started with &'.  If JOB_SPEC is not present, the shell's notion
    of the current job is used.
    
    Exit Status:
    Returns success unless job control is not enabled or an error occurs.

Where job_spec can be,

  • %n : Job number n
  • %str : Refers to job command which start with str
  • %?str : Refers to job command which contains str
  • %% or %+ : Refers current job
  • %- : Refers the previous job

Bring last background job back to foreground

command fg brings the last background job to foreground. The command which executes in foreground can be called as foreground job(task)

fg

Bring last nth background job to foregrond

fg n brings last nth background job to foreground where n is background job ID not PID

fg 3

jobs command lists all background jobs by it's job ID and command

Easy cursor navigation by words and lines

Following short cuts will help you to navigate cursor quickly in side command line

Move cursor left by one wordESC + B
Move cursor right by one wordESC + F
Jump to the beginning of the line CTRL + A
Jump to the end of the lineCTRL + E
Delete the previous word CTRL + W
Clear the lineCTRL + U
Clear the line from cursor position to endCTRL + K
Comment current line but keep in history, then prompt to new lineATL + SHIFT + #

Unfreeze Linux terminal from accidental CTRL + S

If you freeze your terminal because of habitual CTRL+S. Don't worry frozen terminal can be unfrozen by CTRL + Q .

Linux terminal copy and paste

Most of the terminals support copy and paste with following short cuts

CopyCTRL + SHIFT+ C
PasteCTRL + SHIFT + V

Also you can use middle mouse button to paste copied or selected text.

Some terminal may support CTRL +C and CTRL +V. On windows on putty, select text for copy and then right click to paste

Clear line: from cursor to beginning of the line

CTRL + U will clear the line from current cursor position to beginning of the line. If cursor is at the end of the line, short cut CTRL + U will clear whole line

This short cut CTRL + U is especially useful while you type a password in the terminal just in case if you made a mistake to clear line instead of typing never ending backspaces.

Leave a Reply

Your email address will not be published. Required fields are marked *