Best Linux Commands Hacks and other Cool Tricks for Beginners

Best Linux Commands Hacks and other Cool Tricks for Beginners
Hacker attacking internet

In this article, I will try to cover the most useful Linux commands that every hacker, pentester, and expert in cybersecurity must know !!


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.”


LINUX 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 a 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).


man pages

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 is 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: yum, dnf

In recent versions of Fedorayum has been supplanted by dnf, a modernized fork that 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 use a directly apt command which does 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

sudo apt full-upgrade

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 A 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.


CREATING A USER ACCOUNT IN LINUX

Another way to add a user is:

Creates a home directory for the user

sudo 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.

sudo passwd username

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

sudo 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 TO 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

ROOT PRIVILEGES IN LINUX

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


ROOT PRIVILEGES IN LINUX

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

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 the 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
  • dirname: Convert a full pathname to just a path
  • dirs: Display list of remembered directories
  • dmesg: Print kernel & driver messages
  • du: Estimate file space usage

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 pathname of a name argument
  • head: Output the first part of a 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 read-only
  • 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 the 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 toolset beyond what’s available in the default Kali Linux repositories. Git can be installed using the below apt command.

sudo apt install git

apropos


apropos

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

wttr.in

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

Telnet

Haxor-news

How can you pretend to 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

Haxor-news

Finally

If you have any questions about this article, any feedback, suggestions if you want to share your thoughts, please feel free to do it using the below comment form.

If you like to read more about Linux and different operating systems, then follow this link:
https://hackingpassion.com/category/linux/

Bulls Eye
My name is Jolanda de Koff and on the internet, I'm also known as Bulls Eye. Ethical Hacker, Penetration tester, Researcher, Programmer, Self Learner, and forever n00b. Not necessarily in that order. Like to make my own hacking tools and I sometimes share them with you. "You can create art & beauty with a computer and Hacking is not a hobby but a way of life ..." I ♥ open-source and Linux"
error: Content is protected !!