In this article we will try to cover the most useful Linux commands that every hackers, pentesters and experts in cybersecurity must know !! So if you are ready and if you want to know more, open your terminal and let move further.

HACKERS LOVE THE TERMINAL

You are a hacker, your home is the terminal, you work on several projects at once, You know every keystroke is valuable. With just some commands, you can automate tasks, install your favorite software, view a whole network, find vulnerabilities on just about anything connected to the internet, compile a script, create additional user accounts, properly configure anonymity software, and optimize our interactions with terminals.

When you search for something, it should be blazing fast. If something is less than 100% efficient, you will spend hours figuring out the right way to save yourself seconds.

MAN PAGE (SHORT FOR MANUAL PAGE)

There is quite something to say about the man page. A man page is an extensive help page in Linux. There are people who have learned Linux through the man command. It is the way to find out everything about the program.

man [program name]

# To find out a lot about python
man python

Use this command to find the explanation of the man page:

man man

You will get this output "How to use the man page" (As the screenshot shows).

best-linux-commands-hacks-and-other-cool-tricks

If there isn't any man page available, Than you can invoke the program help page if any.

-help
--help
LINUX PACKAGES MANAGERS

In addition to apt which is the Debian package manager, there are other packages manager used by the different Linux systems. Below are some of the best known:

  • Debian - Ubuntu Debian: apt, apt-cache, apt-get, dpkg
  • Arch Linux: pacman -S packageName
  • OpenSUSE: zypper - sudo zypper update
  • CentOS - Fedora - Red Hat: yun, dnf

In recent versions of Fedora, yum has been supplanted by dnf, a modernized fork which retains most of yum's interface.

In this article we will focus on Debian based Pentest Linux such as (Kali or Parrot OS).

APT (PREVIOUSLY APT-GET)

The apt tool automatically updates Debian, Ubuntu, and other related Linux distributions (Like Kali Linux) and installs Debian/Ubuntu packages and programs. The apt provides the necessary option to manage the packages. while apt-get won't be deprecated, as a regular user, I suggest you to use directly apt command which do exactly the same but which is more recent.

To perform an update run this command on your system's terminal:

sudo apt update

To perform an upgrade run this command on your system's terminal:

sudo apt upgrade

To perform a whole upgrade run this command on your system's terminal:

sudo apt full-upgrade

best-linux-commands-hacks-and-other-cool-tricks

You also can comby this two commands in one line:

sudo apt update && sudo apt full-upgrade

sudo apt [options] command
sudo apt install [...PACKAGES] (for installing a package)
sudo apt search [...PACKAGES] (for searching a package)
sudo apt remove [...PACKAGES] (for removing a package)

Kali Linux allows users to configure a password for the root user during installation. However, the i386 and amd64 live images, along with the ARM images, are configured with the default root password: "toor", without the quotes. Also due to its default root privileged environment, Kali Linux isn't recommended for absolute beginners.

In short way, if you are using Kali Linux you are "root", and that's the reason I recommend creating a sudo user account within your Kali system. Below are two examples of how to create a sudo user account.

CREATING USER ACCOUNT IN LINUX

First of all register a normal user account using adduser command, it'll ask you for password confirmation and other user details.

best-linux-commands-hacks-and-other-cool-tricks

Another way to add a user is:

# Creates a home directory for the user
useradd -m username -m

At this point we have added a new user. But we need to put this user in sudoers group so that this user can use sudo command to perform administrative tasks on the machine and let us do whatever we would like to do.

Set the password for the user:

# This will prompt you to enter a password.
passwd username

If you want to add the user to a specific group, type the command:

usermod -a -G sudo Testuser

# -a means add
# -G sudo means to add the user to sudoers group

The last thing to do is to specify the shell the creation of the new user. To do so execute the following command:

chsh -s /bin/bash username

NOTE: You can delete the user using the following command:

userdel username

# Remove this user
userdel* username

# Delete the user's home directory and mail spool
userdel -r* username

The "sudo" command lets you execute commands with superuser privileges as long as your user id is in the sudoers file, giving you all the necessary authorization.

HOW DO I GET ROOT PRIVILEGES IN LINUX?

In a "normal" Linux installation such as Ubuntu or Linux Mint we do not have root access by default in the machine. So if needed, we can create root access as follows:

# Can also be used to change the password
sudo passwd root

best-linux-commands-hacks-and-other-cool-tricks

The command su root gives us the root access to Linux As can be seen in the screenshot above.

best-linux-commands-hacks-and-other-cool-tricks

A-Z LINUX COMMANDS

What I can recommend to anyone (especially if you are Linux beginners) is to go through this list. If you see an unknown command. Put your terminal next to it and try it all out. This way you learn the most. Obviously for more explanation about the command you can use the man page or the --help page.


A

apropos: Search Help manual pages

apt: Search for and install software packages (Debian)

apt-get: Search for and install software packages (Debian)

aptitude: Search for and install software packages (Debian)

aspell: Spell Checker

awk: Find and Replace text, database sort/validate/index


B

basename: Strip directory and suffix from filenames

bash: GNU Bourne-Again Shell. A Shell command lanuage

bc: Arbitrary precision calculator language

bg: Send to background

break: Exit from a loop

builtin: Run a shell builtin

bzip2: Compress or decompress named file(s)


C

cal: Display a calendar

case: Conditionally perform a command

cat: Concatenate and print (display) the content of files

cd: Change Directory

cfdisk: Partition table manipulator for Linux

chgrp: Change group ownership

chmod: Change access permissions

chown: Change file owner and group

chroot: Run a command with a different root directory

cksum: Print CRC checksum and byte counts

clear: Clear terminal screen

cmp: Compare two files

comm: Compare two sorted files line by line

command: Run a command - ignoring shell functions

continue: Resume the next iteration of a loop

cp: Copy one or more files to another location

cron: Daemon to execute scheduled commands

crontab: Schedule a command to run at a later time

csplit: Split a file into context-determined pieces

cut: Divide a file into several parts


D

date: Display or change the date & time

dc: Desk Calculator

dd: Convert and copy a file, write disk headers, boot records

ddrescue: Data recovery tool

declare: Declare variables and give them attributes

df: Display free disk space

diff: Display the differences between two files

diff3: Show differences among three files

dig: DNS lookup

dir: Briefly list directory contents

dircolors: Colour setup for `ls'

dirname: Convert a full path name to just a path

dirs: Display list of remembered directories

dmesg: Print kernel & driver messages

du: Estimate file space usage


E

echo: Display message on screen

egrep: Search file(s) for lines that match an extended expression

eject: Eject removable media

enable: Enable and disable builtin shell commands

env: Environment variables

ethtool: Ethernet card settings

eval: Evaluate several commands/arguments

exec: Execute a command

exit: Exit the shell

expect: Automate arbitrary applications accessed over a terminal

expand: Convert tabs to spaces

export: Set an environment variable

expr: Evaluate expressions


F

false: Do nothing, unsuccessfully

fdformat: Low-level format a floppy disk

fdisk: Partition table manipulator for Linux

fg: Send job to foreground

fgrep: Search file(s) for lines that match a fixed string

file: Determine file type

find: Search for files that meet a desired criteria

fmt: Reformat paragraph text

fold: Wrap text to fit a specified width.

for: Expand words, and execute commands

format: Format disks or tapes

free: Display memory usage

fsck: File system consistency check and repair

ftp: File Transfer Protocol

function: Define Function Macros

fuser: Identify/kill the process that is accessing a file


G

gawk: Find and Replace text within file(s)

getopts: Parse positional parameters

grep: Search file(s) for lines that match a given pattern

groupadd: Add a user security group

groupdel: Delete a group

groupmod: Modify a group

groups: Print group names a user is in

gzip: Compress or decompress named file(s)


H

hash: Remember the full path name of a name argument

head: Output the first part of file(s)

help: Display help for a built-in command

history: Command History

hostname: Print or set system name


I

iconv: Convert the character set of a file

id: Print user and group id's

if: Conditionally perform a command

ifconfig: Configure a network interface

ifdown: Stop a network interface

ifup: Start a network interface up

import: Capture an X server screen and save the image to file

install: Copy files and set attributes


J

jobs: List active jobs

join: Join lines on a common field


K

kill: Stop a process from running

killall: Kill processes by name


L

less: Display output one screen at a time

let: Perform arithmetic on shell variables

ln: Create a symbolic link to a file

local: Create variables

locate: Find files

logname: Print current login name

logout: Exit a login shell

look: Display lines beginning with a given string

lpc: Line printer control program

lpr: Off line print

lprint: Print a file

lprintd: Abort a print job

lprintq: List the print queue

lprm: Remove jobs from the print queue

ls: List information about file(s)

lsof: List open files


M

make: Recompile a group of programs

man: Help manual

mkdir: Create new folder(s)

mkfifo: Make FIFOs (named pipes)

mkisofs: Create an hybrid ISO9660/JOLIET/HFS filesystem

mknod: Make block or character special files

more: Display output one screen at a time

mount: Mount a file system

mtools: Manipulate MS-DOS files

mtr: Network diagnostics (traceroute/ping)

mv: Move or rename files or directories

mmv: Mass Move and rename (files)


N

netstat: Networking information

nice: Set the priority of a command or job

nl: Number lines and write files

nohup: Run a command immune to hangups

notify-send: Send desktop notifications

nslookup: Query Internet name servers interactively


O

open: Open a file in its default application

op: Operator access


P

passwd: Modify a password

paste: Merge lines of files

pathchk: Check file name portability

ping: Test a network connection

pkill: Stop processes from running

popd: Restore the previous value of the current directory

pr: Prepare files for printing

printcap: Printer capability database

printenv: Print environment variables

printf: Format and print data

ps: Process status

pushd: Save and then change the current directory

pwd: Print Working Directory


Q

quota: Display disk usage and limits

quotacheck: Scan a file system for disk usage

quotactl: Set disk quotas


R

rcp: Copy files between two machines

read: Read a line from standard input

readarray: Read from stdin into an array variable

readonly: Mark variables/functions as readonly

reboot: Reboot the system

rename: Rename files

renice: Alter priority of running processes

remsync: Synchronize remote files via email

return: Exit a shell function

rev: Reverse lines of a file

rm: Remove files

rmdir: Remove folder(s)

rsync: Remote file copy (Synchronize file trees)


S

screen: Multiplex terminal, run remote shells via ssh

scp: Secure copy (remote file copy)

sdiff: Merge two files interactively

sed: Stream Editor

select: Accept keyboard input

seq: Print numeric sequences

set: Manipulate shell variables and functions

sftp: Secure File Transfer Program

shift: Shift positional parameters

shopt: Shell Options

shutdown: Shutdown or restart Linux

sleep: Delay for a specified time

slocate: Find files

sort: Sort text files

source: Run commands from a file `.'

split: Split a file into fixed-size pieces

ssh: Secure Shell client (remote login program)

strace: Trace system calls and signals

sum: Print a checksum for a file

suspend: Suspend execution of this shell

symlink: Make a new name for a file

sync: Synchronize data on disk with memory


T

tail: Output the last part of file

tar: Tape ARchiver

tee: Redirect output to multiple files

test: Evaluate a conditional expression

time: Measure Program running time

times: User and system times

touch: Change file timestamps

top: List processes running on the system

traceroute: Trace Route to Host

trap: Run a command when a signal is set(bourne)

tr: Translate, squeeze, and/or delete characters

true: Do nothing, successfully

tsort: Topological sort

tty: Print filename of terminal on stdin

type: Describe a command


U

ulimit: Limit user resources

umask: Users file creation mask

umount: Unmount a device

unalias: Remove an alias

uname: Print system information

unexpand: Convert spaces to tabs

uniq: Uniquify files

units: Convert units from one scale to another

unset: Remove variable or function names

unshar: Unpack shell archive scripts

until: Execute commands (until error)

uptime: Show uptime

useradd: Create new user account

userdel: Delete a user account

usermod: Modify user account

users: List users currently logged in


V

v: Verbosely list directory contents (`ls -l -b')

vdir: Verbosely list directory contents (`ls -l -b')

vi: Text Editor

vim: Text Editor

vmstat: Report virtual memory statistics


W

wait: Wait for a process to complete

watch: Execute/display a program periodically

wc: Print byte, word, and line counts

whereis: Search the user's $path, man pages and source files for a program

which: Search the user's $path for a program file

while: Execute commands

who: Print all usernames currently logged in

whoami: Print the current user id and name (`id -un')

wget: Retrieve web pages or files via HTTP, HTTPS or FTP

write: Send a message to another user


X

xargs: Execute utility, passing constructed argument list(s)

xdg-open: Open a file or URL in the user's preferred application.


Y

yes: Print a string until interrupted

youtube-dl: Downloads a Youtube video


Z

zcmp: Minimal utilitie used to compare compressed files

zdiff: Minimal utilitie used to compare compressed files

zip: Is a simple easy-to-use utility used to package and compress (archive) files.

zz: Offers quick access to files and directories in Linux

HERE ARE SOME HANDY AND FUN PROGRAMS
INSTALL GIT

Git is an open-source software version control application distributed under the terms of the GNU General Public License version 2. It can be used for collaboratively sharing and editing code but is commonly referenced here as a primary tool for copying (or "cloning") code repositories found on GitHub.

Git is a must have tool for pentesters looking to expand their tool set beyond what's available in the default Kali Linux repositories. Git can be installed using the below apt command.

sudo apt install git

apropos

best-linux-commands-hacks-and-other-cool-tricks

In Linux, if you need help regarding a command, all you need to do is to open its man page. But what if a situation arises wherein the requirement is to quickly search the names and descriptions of all available man pages ? Well, Linux has got your covered, as there exists a command dubbed apropos that does exactly this for you.

wttr.in: - There’s only one right way to check the weather.

curl wttr.in/Amsterdam

best-linux-commands-hacks-and-other-cool-tricks

telnet: - Telnet is an application protocol used on the Internet or local area network to provide a bidirectional interactive text-oriented communication facility using a virtual terminal connection. User data is interspersed in-band with Telnet control information in an 8-bit byte oriented data connection over the Transmission Control Protocol (TCP). The unique thing you will need here once again it's your terminal and an Internet connection.

telnet towel.blinkenlights.nl

best-linux-commands-hacks-and-other-cool-tricks

haxor-news: - How can you pretend be a hacker if you don’t read Hacker News?

sudo pip install haxor-news

# The below command will show you how to use haxor-news
hn --help

Usage

hn top
hn show 15

best-linux-commands-hacks-and-other-cool-tricks