A to Z command list 📚

> **Note**
> Use `Ctrl+f` to search in browsers🔎


#### │ [A](#-a) │ [B](#-b) │ [C](#-c) │ [D](#-d) │ [E](#-e) │ [F](#-f) │ [G](#-g) │ [H](#-h) │ [I](#-i) │ [J](#-j) │ [K](#-k) │ [L](#-l) │ [M](#-m) │ [N](#-n) │ [O](#-o) │ [P](#-p) │ [Q](#-q) │ [R](#-r) │ [S](#-s) │ [T](#-t) │ [U](#-u) │ [V](#-v) │ [W](#-w) │ [X](#-x) │ [Y](#-y) │ [Z](#-z) │


Command Description
accept Accept or Reject jobs to a destination, such as a printer.
access Check a user’s RWX(read, write and execute) permission for a file.
accton Used to turn on or turn off the process for accounting or change info process accounting file.
aclocal Used to automatically generate aclocal.m4 files from configure.in file.
aconnect ALSA(Advanced Linux Sound Architecture) sequencer connection manager.
acpi Show information about the Advanced Configuration and Power Interface.
acpi_available Check if ACPI(Advanced Configuration and Power Interface) functionality exists on the system.
acpid Informs user-space programs about ACPI events.
addr2line Used to convert addresses into file names and line numbers.
addresses Formats for internet mail addresses.
agetty An alternative Linux Getty that manages physical or virtual terminals to allow multi-user access
alias Create an alias, a shortcut that references a command.
alsactl Access advanced controls for ALSA soundcard driver.
amidi Perform read/write operation for ALSA RawMIDI ports.
amixer Access CLI-based mixer for ALSA soundcard driver.
anacron Used to run commands periodically.
aplay Sound recorder and player for CLI.
aplaymidi CLI utility used to play MIDI files.
apm Show Advanced Power Management (APM) hardware info on older systems.
apmd Used to handle events reported by APM BIOS drivers.
apropos Shows the list of all man pages containing a specific keyword.
apt Advanced Package Tool, a package management system for Debian and derivatives.
apt-get Command-line utility to install/remove/update packages based on APT system.
aptitude Another utility to add/remove/upgrade packages based on the APT system.
ar A utility to create/modify/extract from archives.
arch Display print machine hardware name.
arecord Just like aplay, it’s a sound recorder and player for ALSA soundcard driver.
arecordmidi Record standard MIDI files.
arp Used to make changes to the system’s ARP cache.
as A portable GNU assembler.
aspell An interactive spell checker utility.
at Used to schedule command execution at specified date & time, reading commands from an input file.
atd Used to execute jobs queued by the at command.
atq List a user’s pending jobs for the at command.
atrm Delete jobs queued by the at command.
audiosend Used to send an audio recording as an email.
aumix An audio mixer utility.
autoconf Generate configuration scripts from a TEMPLATE-FILE and send the output to standard output.
autoheader Create a template header for configure.
automake Creates GNU standards-compliant Makefiles from template files.
autoreconf Update generated configuration files.
autoscan Generate a preliminary configure.in file.
autoupdate Update a configure.in file to newer autoconf.
awk A scripting language used for manipulating data and generating reports. Also used to find and replace text in a file(s).
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
badblocks Search a disk partition for bad sectors.
banner Used to print characters as a poster.
basename Used to display filenames with directory or suffix.
bash GNU Bourne-Again Shell.
batch Used to run commands entered on a standard input.
bc Access the GNU bc calculator utility.
bg Send processes to the background.
biff Notify about incoming mail and sender’s name on a system running comsat server.
bind Used to attach a name to a socket.
bison A GNU parser generator, compatible with yacc.
break Used to exit from a loop (eg: for, while, select).
builtin Used to run shell builtin commands, make custom functions for commands extending their functionality.
bzcmp Used to call the cmp program forbzip2 compressed files.
bzdiff Used to call the diff program for bzip2 compressed files.
bzgrep Used to call grep for bzip2 compressed files.
bzip2 A block-sorting file compressor used to shrink given files.
bzless Used to apply ‘less’ (show info one page at a time) to bzip2 compressed files.
bzmore Used to apply ‘more’ (an inferior version of less) to bzip2 compressed files.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
cal Show calendar.
cardctl Used to control PCMCIA sockets and select configuration schemes.
cardmgr Keeps an eye on the added/removes sockets for PCMCIA devices.
case Execute a command conditionally by matching a pattern.
cat Used to concatenate files and print them on the screen.
cc GNU C and C++ compiler.
ccrypt Used for encryption and decryption of data.
cd Used to change directory.
cdda2wav Used to rip a CD-ROM and make WAV file.
cdparanoia Record audio from CD more reliably using data-verification algorithms.
cdrdao Used to write all the content specified to a file to a CD all at once.
cdrecord Used to record data or audio compact discs.
cfdisk Show or change the disk partition table.
chage Used to change user password information.
chattr Used to change file attributes.
chdir Used to change active working directory.
chfn Used to change real user name and information.
chgrp Used to change group ownership for file.
chkconfig Manage execution of runlevel services.
chmod Change access permission for a file(s).
chown Change the owner or group for a file.
chpasswd Update password in a batch.
chroot Run a command with root directory.
chrt Alter process attributed in real-time.
chsh Switch login shell.
chvt Change foreground virtual terminal.
cksum Perform a CRC checksum for files.
clear Used to clear the terminal window.
cmp Compare two files (byte by byte).
col Filter reverse (and half-reverse) line feeds from the input.
colcrt Filter nroff output for CRT previewing.
colrm Remove columns from the lines of a file.
column A utility that formats its input into columns.
comm Used to compare two sorted files line by line.
command Used to execute a command with arguments ignoring shell function named command.
compress Used to compress one or more file(s) and replacing the originals ones.
continue Resume the next iteration of a loop.
cp Copy contents of one file to another.
cpio Copy files from and to archives.
cpp GNU C language processor.
cron A daemon to execute scheduled commands.
crond Same work as cron.
crontab Manage crontab files (containing schedules commands) for users.
csplit Split a file into sections on the basis of context lines.
ctags Make a list of functions and macro names defined in a programming source file.
cupsd A scheduler for CUPS.
curl Used to transfer data from or to a server using supported protocols.
cut Used to remove sections from each line of a file(s).
cvs Concurrent Versions System. Used to track file versions, allow storage/retrieval of previous versions, and enables multiple users to work on the same file.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
date Show system date and time.
dc Desk calculator utility.
dd Used to convert and copy a file, create disk clone, write disk headers, etc.
ddrescue Used to recover data from a crashed partition.
deallocvt Deallocates kernel memory for unused virtual consoles.
debugfs File system debugger for ext2/ext3/ext4
declare Used to declare variables and assign attributes.
depmod Generate modules.dep and map files.
devdump Interactively displays the contents of device or file system ISO.
df Show disk usage.
diff Used to compare files line by line.
diff3 Compare three files line by line.
dig Domain Information Groper, a DNS lookup utility.
dir List the contents of a directory.
dircolors Set colors for ‘ls’ by altering the LS_COLORS environment variable.
dirname Display pathname after removing the last slash and characters thereafter.
dirs Show the list of remembered directories.
disable Restrict access to a printer.
dlpsh Interactive Desktop Link Protocol (DLP) shell for PalmOS.
dmesg Examine and control the kernel ring buffer.
dmidecode Used when the user wants to retrieve system’s hardware related information such as Processor, RAM(DIMMs), BIOS detail, etc. of Linux system in a readable format.
dnsdomainname Show the DNS domain name of the system.
dnssec-keygen Generate encrypted Secure DNS keys for a given domain name.
dnssec-makekeyset Produce domain key set from one or more DNS security keys generated by dnssec-keygen.
dnssec-signkey Sign a secure DNS keyset with key signatures specified in the list of key-identifiers.
dnssec-signzone Sign a secure DNS zonefile with the signatures in the specified list of key-identifiers.
doexec Used to run an executable with an arbitrary argv list provided.
domainname Show or set the name of current NIS (Network Information Services) domain.
dosfsck Used to retrieve information or statistics form components of the system such as network connections, IO devices, or CPU, etc.
dstat Check and repair MS-DOS file systems.
du Show disk usage summary for a file(s).
dump Backup utility for ext2/ext3 file systems.
dumpe2fs Dump ext2/ext3/ext4 file systems.
dumpkeys Show information about the keyboard driver’s current translation tables.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
e2fsck Used to check ext2/ext3/ext4 file systems.
e2image Store important ext2/ext3/ext4 filesystem metadata to a file.
e2label Show or change the label on an ext2/ext3/ext4 filesystem.
echo Send input string(s) to standard output i.e. display text on the screen.
ed GNU Ed – a line-oriented text editor.
edquota Used to edit filesystem quotas using a text editor, such as vi.
egrep Search and display text matching a pattern.
eject Eject removable media.
elvtune Used to set latency in the elevator algorithm used to schedule I/O activities for specified block devices.
emacs Emacs text editor command line utility.
enable Used to enable/disable shell builtin commands.
env Run a command in a modified environment. Show/set/delete environment variables.
envsubst Substitute environment variable values in shell format strings.
esd Start the Enlightenment Sound Daemon (EsounD or esd). Enables multiple applications to access the same audio device simultaneously.
esd-config Manage EsounD configuration.
esdcat Use EsounD to send audio data from a specified file.
esdctl EsounD control program.
esddsp Used to reroute non-esd audio data to esd and control all the audio using esd.
esdmon Used to copy the sound being sent to a device. Also, send it to a secondary device.
esdplay Use EsounD system to play a file.
esdrec Use EsounD to record audio to a specified file.
esdsample Sample audio using esd.
etags Used to create a list of functions and macros from a programming source file. These etags are used by emacs. For vi, use ctags.
ethtool Used to query and control network driver and hardware settings.
eval Used to evaluate multiple commands or arguments are once.
ex Interactive command
exec An interactive line-based text editor.
exit Exit from the terminal.
expand Convert tabs into spaces in a given file and show the output.
expect An extension to the Tcl script, it’s used to automate interaction with other applications based on their expected output.
export Used to set an environment variable.
expr Evaluate expressions and display them on standard output.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
factor Display prime factors of specified integer numbers.
false Do nothing, unsuccessfully. Exit with a status code indicating failure.
fc Used to list, edit or re-execute the commands previously entered into an interactive shell.
fc-cache Make font information cache after scanning the directories.
fc-list Show the list of available fonts.
fdformat Do a low-level format on a floppy disk.
fdisk Make changes to the disk partition table.
fetchmail Fetch mail from mail servers and forward it to the local mail delivery system.
fg Used to send a job to the foreground.
fgconsole Display the number of the current virtual console.
fgrep Display lines from a file(s) that match a specified string. A variant of grep.
file Determine file type for a file.
find Do a file search in a directory hierarchy.
finger Display user data including the information listed in .planand .projectin each user’s home directory.
fingerd Provides a network interface for the finger program.
flex Generate programs that perform pattern-matching on text.
fmt Used to convert text to a specified width by filling lines and removing new lines, displaying the output.
fold Wrap input line to fit in a specified width.
for Expand words and run commands for each one in the resultant list.
formail Used to filter standard input into mailbox format.
format Used to format disks.
free Show free and used system memory.
fsck Check and repair a Linux file system
ftp File transfer protocol user interface.
ftpd FTP server process.
function Used to define function macros.
Fun Used to draw various type of patterns on the terminal.
fuser Find and kill a process accessing a file.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
g++ Run the g++ compiler.
gawk Used for pattern scanning and language processing. A GNU implementation of AWK language.
gcc A C and C++ compiler by GNU.
gdb A utility to debug programs and know about where it crashes.
getent Shows entries from Name Service Switch Libraries for specified keys.
getkeycodes Displays the kernel scancode-to-keycode mapping table.
getopts A utility to parse positional parameters.
gpasswd Allows an administrator to change group passwords.
gpg Enables encryption and signing services as per the OpenPGP standard.
gpgsplit Used to split an OpenPGP message into packets.
gpgv Used to verify OpenPGP signatures.
gpm It enables cut and paste functionality and a mouse server for the Linux console.
gprof Shows call graph profile data.
grep Searches input files for a given pattern and displays the relevant lines.
groff Serves as the front-end of the groff document formatting system.
groffer Displays groff files and man pages.
groupadd Used to add a new user group.
groupdel Used to remove a user group.
groupmod Used to modify a group definition.
groups Showthe group(s) to which a user belongs.
grpck Verifies the integrity of group files.
grpconv Creates agshadow file from a group or an already existing gshadow.
gs Invokes Ghostscript, and interpreter and previewer for Adobe’s PostScript and PDF languages.
gunzip A utility to compress/expand files.
gzexe Used compress executable files in place and have them automatically uncompress and run at a later stage.
gzip A utility to compress/expand files.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
halt Command used to half the machine.
hash Shows the path for the commands executed in the shell.
hdparm Show/configure parameters for SATA/IDE devices.
head Shows first 10 lines from each specified file.
help Display’s help for a built-in command.
hexdump Shows specified file output in hexadecimal, octal, decimal, or ASCII format.
history Shows the command history.
host A utility to perform DNS lookups.
hostid Shows host’s numeric ID in hexadecimal format.
hostname Display/set the hostname of the system.
hostnamectl Provides a proper API used to control Linux system hostname and change its related settings.
htdigest Manage the user authentication file used by the Apache web server.
htop An interactive process viewer for the command line.
hwclock Show or configure the system’s hardware clock.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
iconv Convert text file from one encoding to another.
id Show user and group information for a specified user.
if Execute a command conditionally.
ifconfig Used to configure network interfaces.
ifdown Stops a network interface.
iftop It is a network analyzing tool used by system administrators to view the bandwidth related stats.
ifup Starts a network interface.
imapd An IMAP (Interactive Mail Access Protocol) server daemon.
import Capture an X server screen and saves it as an image.
inetd Extended internet services daemon, it starts the programs that provide internet services.
info Used to read the documentation in Info format.
init Systemd system and service manager.
insmod A program that inserts a module into the Linux kernel.
install Used to copy files to specified locations and set attributions during the install process.
iostat Shows statistics for CPU, I/O devices, partitions, network filesystems.
iotop Used to display and monitor the disk IO usage details and even gets a table of existing IO utilization by the process.
ip Display/manipulate routing, devices, policy, routing and tunnels.
ipcrm Used to remove System V interprocess communication (IPC) objects and associated data structures.
ipcs Show information on IPC facilities for which calling process has read access.
iptables Administration tool for IPv4 packet filtering and NAT.
iptables-restore Used to restore IP tables from data specified in the input or a file.
iptables-save Used to dump IP table contents to standard output.
iwconfig Used to display the parameters, and the wireless statistics which are extracted from /proc/net/wireless.
isodump A utility that shows the content iso9660 images to verify the integrity of directory contents.
isoinfo A utility to perform directory like listings of iso9660 images.
isosize Show the length of an iso9660 filesystem contained in a specified file.
isovfy Verifies the integrity of an iso9660 image.
ispell A CLI-based spell-check utility.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
jobs Show the list of active jobs and their status.
join For each pair of input lines, join them using a command field and display on standard output.
journalctl Used to view systemd, kernal and journal logs.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
kbd_mode Set a keyboard mode. Without arguments, shows the current keyboard mode.
kbdrate Reset keyboard repeat rate and delay time.
kill Send a kill (termination) signal to one more processes.
killall Kills a process(es) running a specified command.
killall5 A SystemV killall command. Kills all the processes excluding the ones which it depends on.
klogd Control and prioritize the kernel messages to be displayed on the console, and log them through syslogd.
kudzu Used to detect new and enhanced hardware by comparing it with existing database. Only for RHEL and derivatives.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
last Shows a list of recent logins on the system by fetching data from /var/log/wtmp file.
lastb Shows the list of bad login attempts by fetching data from /var/log/btmpfile.
lastlog Displays information about the most recent login of all users or a specified user.
ld The Unix linker, it combines archives and object files. It then puts them into one output file, resolving external references.
ldconfig Configure dynamic linker run-time bindings.
ldd Shows shared object dependencies.
less Displays contents of a fileone page at a time. It’s advanced than more command.
lesskey Used to specify key bindings for less command.
let Used to perform integer artithmetic on shell variables.
lftp An FTP utility with extra features.
lftpget Uses lftop to retrieve HTTP, FTP, and other protocol URLs supported by lftp.
link Create links between two files. Similar to ln command.
ln Create links between files. Links can be hard (two names for the same file) or soft (a shortcut of the first file).
loadkeys Load keyboard translation tables.
local Used to create function variables.
locale Shows information about current or all locales.
locate Used to find files by their name.
lockfile Create semaphore file(s) which can be used to limit access to a file.
logger Make entries in the system log.
login Create a new session on the system.
logname Shows the login name of the current user.
logout Performs the logout operation by making changes to the utmp and wtmp files.
logrotate Used for automatic rotation, compression, removal, and mailing of system log files.
look Shows any lines in a file containing a given string in the beginning.
losetup Set up and control loop devices.
lpadmin Used to configure printer and class queues provided by CUPS (Common UNIX Printing System).
lpc Line printer control program, it provides limited control over CUPS printer and class queues.
lpinfo Shows the list of available devices and drivers known to the CUPS server.
lpmove Move on or more printing jobs to a new destination.
lpq Shows current print queue status for a specified printer.
lpr Used to submit files for printing.
lprint Used to print a file.
lprintd Used to abort a print job.
lprintq List the print queue.
lprm Cancel print jobs.
lpstat Displays status information about current classes, jobs, and printers.
ls Shows the list of files in the current directory.
lsattr Shows file attributes on a Linux ext2 file system.
lsblk Lists information about all available or the specified block devices.
lshw Used to generate the detailed information of the system’s hardware configuration from various files in the /proc directory.
lsmod Show the status of modules in the Linux kernel.
lsof List open files.
lspci List all PCI devices.
lsusb List USB devices.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
m4 Macro processor.
mail Utility to compose, receive, send, forward, and reply to emails.
mailq Shows to list all emails queued for delivery (sendmail queue).
mailstats Shows current mail statistics.
mailto Used to send mail with multimedia content in MIME format.
make Utility to maintain groups of programs, recompile them if needed.
makedbm Creates an NIS (Network Information Services) database map.
makemap Creates database maps used by the keyed map lookups in sendmail.
man Shows manual pages for Linux commands.
manpath Determine search path for manual pages.
mattrib Used to change MS-DOS file attribute flags.
mbadblocks Checks MD-DOS filesystems for bad blocks.
mcat Dump raw disk image.
mcd Used to change MS-DOS directory.
mcopy Used to copy MS-DOS files from or to Unix.
md5sum Used to check MD5 checksum for a file.
mdel, mdeltree Used to delete MS-DOS file. mdeltree recursively deletes MS-DOS directory and its contents.
mdir Used to display an MS-DOS directory.
mdu Used to display the amount of space occupied by an MS-DOS directory.
merge Three-way file merge. Includes all changes from file2 and file3 to file1.
mesg Allow/disallow osends to sedn write messages to your terminal.
metamail For sending and showing rich text or multimedia email using MIME typing metadata.
metasend An interface for sending non-text mail.
mformat Used to add an MS-DOS filesystem to a low-level formatted floppy disk.
mimencode Translate to/from MIME multimedia mail encoding formats.
minfo Display parameters of an MS-DOS filesystem.
mkdir Used to create directories.
mkdosfs Used to create an MS-DOS filesystem under Linux.
mke2fs Used create an ext2/ext3/ext4 filesystem.
mkfifo Used to create named pipes (FIFOs) with the given names.
mkfs Used to build a Linux filesystem on a hard disk partition.
mkfs.ext3 Same as mke2fs, create an ext3 Linux filesystem.
mkisofs Used to create an ISO9660/JOLIET/HFS hybrid filesystem.
mklost+found Create a lost+found directory on a mounted ext2 filesystem.
mkmanifest Makes alist of file names and their DOS 8.3 equivalent.
mknod Create a FIFO, block (buffered) special file, character (unbuffered) special file with the specified name.
mkraid Used to setup RAID device arrays.
mkswap Set up a Linux swap area.
mktemp Create a temporary file or directory.
mlabel Make an MD-DOS volume label.
mmd Make an MS-DOS subdirectory.
mmount Mount an MS-DOS disk.
mmove Move or rename an MS-DOS file or subdirectory.
mmv Mass move and rename files.
modinfo Show information about a Linux kernel module.
modprobe Add or remove modules from the Linux kernel.
more Display content of a file page-by-page.
most Browse or page through a text file.
mount Mount a filesystem.
mountd NFS mount daemon.
mpartition Used to report processor related statistics.
mpstat Partition an MS-DOS disk.
mpg123 Command-line mp3 player.
mpg321 Similar to mpg123.
mrd Remove an MS-DOS subdirectory.
mren Rename an existing MS-DOS file.
mshowfat Show FTA clusters allocated to a file.
mt Control magnetic tape drive operation.
mtools Utilities to access MS-DOS disks.
mtoolstest Tests and displays the mtools configuration files.
mtr A network diagnostic tool.
mtype Display contents of an MS-DOS file.
mv Move/rename files or directories.
mzip Change protection mode and eject disk on Zip/Jaz drive.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
named Internet domain name server.
namei Follow a pathname until a terminal point is found.
nameif Name network interfaces based on MAC addresses.
nc Netcat utility. Arbitrary TCP and UDP connections and listens.
netstat Show network information.
newaliases Rebuilds mail alias database.
newgrp Log-in to a new group.
newusers Update/create new users in batch.
nfsd Special filesystem for controlling Linux NFS server.
nfsstat List NFS statistics.
nice Run a program with modified scheduling priority.
nl Show numbered line while displaying the contents of a file.
nm List symbols from object files.
nohup Run a command immune to hangups.
notify-send A program to send desktop notifications.
nslookup Used performs DNS queries. Read this article for more info.
nsupdate Dynamic DNS update utility.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
objcopy Copy and translate object files.
objdump Display information from object files.
od Dump files in octal and other formats.
op Operator access, allows system administrators to grant users access to certain root operations that require superuser privileges.
open Open a file using its default application.
openvt Start a program on a new virtual terminal (VT).
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
passwd Change user password.
paste Merge lines of files. Write to standard output, TAB-separated lines consisting of sequentially corresponding lines from each file.
patch Apply a patchfile (containing differences listing by diff program) to an original file.
pathchk Check if file names are valid or portable.
perl Perl 5 language interpreter.
pgrep List process IDs matching the specified criteria among all the running processes.
pidof Find process ID of a running program.
ping Send ICMP ECHO_REQUEST to network hosts.
pinky Lightweight finger.
pkill Send kill signal to processes based on name and other attributes.
pmap Report memory map of a process.
popd Removes directory on the head of the directory stack and takes you to the new directory on the head.
portmap Converts RPC program numbers to IP port numbers.
poweroff Shuts down the machine.
pppd Point-to-point protocol daemon.
pr Convert (column or paginate) text files for printing.
praliases Prints the current system mail aliases.
printcap Printer capability database.
printenv Show values of all or specified environment variables.
printf Show arguments formatted according to a specified format.
ps Report a snapshot of the current processes.
ptx Produce a permuted index of file contents.
pushd Appends a given directory name to the head of the stack and then cd to the given directory.
pv Monitor progress of data through a pipe.
pwck Verify integrity of password files.
pwconv Creates shadow from passwd and an optionally existing shadow.
pwd Show current directory.
python Computer programming language often used to build websites and software, automate tasks, and conduct data analysis.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
quota Shows disk usage, and space limits for a user or group. Without arguments, only shows user quotas.
quotacheck Used to scan a file system for disk usage.
quotactl Make changes to disk quotas.
quotaoff Enable enforcement of filesystem quotas.
quotaon Disable enforcement of filesystem quotas.
quotastats Shows the report of quota system statistics gathered from the kernel.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
raidstart Start/stop RAID devices.
ram RAM disk device used to access the RAM disk in raw mode.
ramsize Show usage information for the RAM disk.
ranlib Generate index to the contents of an archive and store it in the archive.
rar Create and manage RAR file in Linux.
rarpd Respond to Reverse Address Resolution Protocol (RARP) requests.
rcp Remote copy command to copy files between remote computers.
rdate Set system date and time by fetching information from a remote machine.
rdev Set or query RAM disk size, image root device, or video mode.
rdist Remote file distribution client, maintains identical file copies over multiple hosts.
rdistd Start the rdist server.
read Read from a file descriptor.
readarray Read lines from a file into an array variable.
readcd Read/write compact disks.
readelf Shows information about ELF (Executable and Linkable format) files.
readlink Display value of a symbolic link or canonical file name.
readonly Mark functions and variables as read-only.
reboot Restart the machine.
reject Accept/reject print jobs sent to a specified destination.
remsync Synchronize remote files over email.
rename Rename one or more files.
renice Change priority of active processes.
repquota Report disk usage and quotas for a specified filesystem.
reset Reinitialize the terminal.
resize2fs Used to resize ext2/ext3/ext4 file systems.
restore Restore files from a backup created using dump.
return Exit a shell function.
rev Show contents of a file, reversing the order of characters in every line.
rexec Remote execution client for exec server.
rexecd Remote execution server.
richtext View “richtext” on an ACSII terminal.
rlogin Used to connect a local host system with a remote host.
rlogind Acts as the server for rlogin.It facilitates remote login, and authentication based on privileged port numbers from trusted hosts.
rm Removes specified files and directories (not by default).
rmail Handle remote mail received via uucp.
rmdir Used to remove empty directories.
rmmod A program to remove modules from Linux kernel.
rndc Name server control utility. Send command to a BIND DNS server over a TCP connection.
rootflags Show/set flags for the kernel image.
route Show/change IP routing table.
routed A daemon, invoked at boot time, to manage internet routing tables.
rpcgen An RPC protocol compiler. Parse a file written in the RPC language.
rpcinfo Shows RPC information. Makes an RPC call to an RPC server and reports the findings.
rpm A package manager for Linux distributions. Originally developed for RedHat Linux.
rsh Remote shell. Connects to a specified host and executes commands.
rshd A daemon that acts as a server for rsh and rcp commands.
rsync A versitile to for copying files remotely and locally.
runlevel Shows previous and current SysV runlevel.
rup Remote status display. Shows current system status for all or specified hosts on the local network.
ruptime Shows uptime and login details of the machines on the local network.
rusers Shows the list of the users logged-in to the host or on all machines on the local network.
rusersd The rsuerd daemon acts as a server that responds to the queries from rsuers command.
rwall Sends messages to all users on the local network.
rwho Reports who is logged-in to the hosts on the local network.
rwhod Acts as a server for rwho and ruptime commands.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
sane-find-scanner Find SCSI and USB scanner and determine their device files.
sar Used to monitor Linux system’s resources like CPU usage, Memory utilization, I/O devices consumption, etc..
scanadf Retrieve multiple images from a scanner equipped with an automatic document feeder (ADF).
scanimage Read images from image acquisition devices (scanner or camera) and display on standard output in PNM (Portable aNyMap) format.
scp Copy files between hosts on a network securely using SSH.
screen A window manager that enables multiple pseudo-terminals with the help of ANSI/VT100 terminal emulation.
script Used to make a typescript of everything displayed on the screen during a terminal session.
scriptreplay Used to replay a typescript/terminal_activity stored in the log file that was recorded by the script command.
sdiff Shows two files side-by-side and highlights the differences.
sed Stream editor for filtering and transforming text (from a file or a pipe input).
select Synchronous I/O multiplexing.
sendmail It’s a mail router or an MTA (Mail Transfer Agent). sendmail support can send a mail to one or more recipients using necessary protocols.
sensors Shows the current readings of all sensor chips.
seq Displays an incremental sequence of numbers from first to last.
service This command is used to manage system services.
set Used to manipulate shell variables and functions.
setfdprm Sets floppy disk parameters as provided by the user.
setkeycodes Load kernel scancode-to-keycode mapping table entries.
setleds Show/change LED light settings of the keyboard.
setmetamode Define keyboard meta key handling. Without arguments, shows current meta key mode.
setquota Set disk quotas for users and groups.
setsid Run a program in a new session.
setterm Set terminal attributes.
sftp Secure File Transfer program.
sh Command interpreter (shell) utility.
sha1sum Compute and check 160-bit SHA1 checksum to verify file integrity.
shift Shift positional parameters.
shopt Shell options.
showkey Examines codes sent by the keyboard displays them in printable form.
showmount Shows information about NFS server mount on the host.
shred Overwrite a file to hide its content (optionally delete it), making it harder to recover it.
shutdown Power-off the machine.
size Lists section size and the total size of a specified file.
skill Send a signal to processes.
slabtop Show kernel slab cache information in real-time.
slattach Attack a network interface to a serial line.
sleep Suspend execution for a specified amount of time (in seconds).
slocate Display matches by searching filename databases. Takes ownership and file permission into consideration.
snice Reset priority for processes.
sort Sort lines of text files.
source Run commands from a specified file.
split Split a file into pieces of fixed size.
ss Display socket statistics, similar to netstat.
ssh An SSH client for logging in to a remote machine. It provides encrypted communication between the hosts.
ssh-add Adds private key identities to the authentication agent.
ssh-agent It holds private keys used for public key authentication.
ssh-keygen It generates, manages, converts authentication keys for ssh.
ssh-keyscan Gather ssh public keys.
sshd Server for the ssh program.
stat Display file or filesystem status.
statd A daemon that listens for reboot notifications from other hosts, and manages the list of hosts to be notified when the local system reboots.
strace Trace system calls and signals.
strfile Create a random access file for storing strings.
strings Search a specified file and prints any printable strings with at least four characters and followed by an unprintable character.
strip Discard symbols from object files.
stty Change and print terminal line settings.
su Change user ID or become superuser.
sudo Execute a command as superuser.
sum Checksum and count the block in a file.
suspend Suspend the execution of the current shell.
swapoff Disable devices for paging and swapping.
swapon Enable devices for paging and swapping.
symlink Create a symbolic link to a file.
sync Synchronize cached writes to persistent storage.
sysctl Configure kernel parameters at runtime.
sysklogd Linux system logging utilities. Provides syslogd and klogd functionalities.
syslogd Read and log system messages to the system console and log files.
systemctl This command can be used to start, stop, and check the status of system services.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
tac Concatenate and print files in reverse order. Opposite of cat command.
tail Show the last 10 lines of each specified file(s).
tailf Follow the growth of a log file. (Deprecated command)
talk A two-way screen-oriented communication utility that allows two user to exchange messages simultaneously.
talkd A remote user communication server for talk.
tar GNU version of the tar archiving utility. Used to store and extract multiple files from a single archive.
taskset Set/retrieve a process’s CPU affinity.
tcpd Access control utility for internet services.
tcpdump Dump traffic on network. Displays a description of the contents of packets on a network interface that match the boolean expression.
tcpslice Extract pieces of tcpdump files or merge them.
tee Read from standard input and write to standard output and files.
telinit Change SysV runlevel.
telnet Telnet protocol user interface. Used to interact with another host using telnet.
telnetd A server for the telnet protocol.
test Check file type and compare values.
tftp User interface to the internet TFTP (Trivial File Transfer Protocol).
tftpd TFTP server.
time Run programs and summarize system resource usage.
timeout Execute a command with a time limit.
times Shows accumulated user and system times for the shell and it’s child processes.
tload Shows a graph of the current system load average to the specified tty.
tmpwatch Recursively remove files and directories which haven’t been accessed for the specified period of time.
top Displays real-time view of processes running on the system.
touch Change file access and modification times.
tput Modify terminal-dependent capabilities, color, etc.
tr Translate, squeeze, or delete characters from standard input and display on standard output.
tracepath Traces path to a network host discovering MTU (Maximum Transmission Unit) along this path.
traceroute Traces the route taken by the packets to reach the network host.
trap Trap function responds to hardware signals. It defines and creates handlers to run when the shell receives signals.
tree A recursive directory listing program that produces a depth-indented listing of files.
troff The troff processor of the groff text formatting system.
TRUE Exit with a status code indicating success.
tset Initialize terminal.
tsort Perform topological sort.
tty Display the filename of the terminal connected to standard input.
tune2fs Adjust tuneable filesystem parameters on ext2/ext3/ext4 filesystems.
tunelp Set various parameters for the line printer devices.
type Write a description for a command type.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
ul Underline text.
ulimit Get and set user limits for the calling process.
umask Set file mode creation mask.
umount Unmount specified file systems.
unalias Remove alias definitions for specified alias names.
uname Show system information.
uncompress Uncompress the files compressed with the compress command.
unexpand Convert spaces to tabs for a specified file.
unicode_start Put keyboard and console in Unicode mode.
unicode_stop Revert keyboard and console from Unicode mode.
uniq Report or omit repeating lines.
units Convert units from one scalar to another.
unix2dos Converts a Unix text file to DOS format.
unrar Extract files from a RAR archive.
unset Remove variable or function names.
unshar Unpack shell archive scripts.
until Execute command until a given condition is true.
uptime Tell how long the system has been running.
useradd Create a new user or update default user information.
userdel Delete a user account and related files.
usermod Modify a user account.
username It provides a set of commands to fetch username and its configurations from the Linux host.
users Show the list of active users on the machine.
usleep Suspend execution for microsecond intervals.
uudecode Decode a binary file.
uuencode Encode a binary file.
uuidgen Created a new UUID (Universally Unique Identifier) table.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
vdir Same as ls -l -b. Verbosely list directory contents.
vi A text editor utility.
vidmode Set the video mode for a kernel image. Displays current mode value without arguments. Alternative: rdev -v
vim Vi Improved, a text-based editor which is a successor to vi.
vmstat Shows information about processes, memory, paging, block IO, traps, disks, and CPU activity.
vnstat Used by system administrators in order to monitor network parameters such as bandwidth consumption or maybe some traffic flowing in or out.
volname Returns volume name for a device formatted with an ISO-9660 filesystem. For example, CD-ROM.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
w Show who is logged-on and what they’re doing.
wait Waits for a specified process ID(s) to terminate and returns the termination status.
wall Display a message on the terminals all the users who are currently logged-in.
warnquota Send mail to the users who’ve exceeded their disk quota soft limit.
watch Runs commands repeatedly until interrupted and shows their output and errors.
wc Print newline, word, and byte count for each of the specified files.
wget A non-interactive file download utility.
whatis Display one line manual page descriptions.
whereis Locate the binary, source, and man page files for a command.
which For a given command, lists the pathnames for the files which would be executed when the command runs.
while Conditionally execute commands (while loop).
who Shows who is logged on.
whoami Displays the username tied to the current effective user ID.
whois Looks for an object in a WHOIS database
write Display a message on other user’s terminal.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
xargs Runs a command using initial arguments and then reads remaining arguments from standard input.
xdg-open Used to open a file or URL in an application preferred by the user.
xinetd Extended internet services daemon. Works similar to inetd.
xz Compress/ Decompress .xz and .lzma files.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
yacc Yet Another Compiler Compiler, a GNU Project parser generator.
yes Repeatedly output a line with a specified string(s) until killed.
ypbind A daemon that helps client processes to connect to an NIS server.
ypcat Shows the NIS map (or database) for the specified MapName parameter.
ypinit Sets up NIS maps on an NIS server.
ypmatch Shows values for specified keys from an NIS map.
yppasswd Change NIS login password.
yppasswdd Acts as a server for the yppasswd command. Receives and executes requests.
yppoll Shows the ID number or version of NIS map currently used on the NIS server.
yppush Forces slave NIS servers to copy updated NIS maps.
ypserv A daemon activated at system startup. It looks for information in local NIS maps.
ypset Point a client (running ypbind) to a specific server (running ypserv).
yptest Calls various functions to check the configuration of NIS services.
ypwhich Shows the hostname for NIS server or master server for a given map.
ypxfr Transfers NIS server map from server to a local host.
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)


Command Description
zcat Used to compress/uncompress files. Similar to gzip
zcmp Compare compressed files.
zdiff Compare compressed files line by line.
zdump Displays time for the timezone mentioned.
zforce Adds .gz extension to all gzipped files.
zgrep Performs grep on compressed files.
zic Creates time conversion information files using the specified input files.
zip A file compression and packaging utility.
zless Displays information of a compressed file (using less command) on the terminal one screen at a time.
zmore Displays output of a compressed file (using more command) on the terminal one page at a time.
znew Recompress .z files to .gz. files.

Credits: fossbytes & geeksforgeeks

[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#table)

Quick cheat sheet 📝

> Examples like `-a|--all` option flags means, single `-` used for _short_ option(-a) **or**| double `--` used for _long_ option(--all). Both was added for educational purpose. ### Contents - [Command Information](#command-information) - [Command History](#command-history) - [Navigating Directories](#navigating-directories) - [Creating Directories](#creating-directories) - [Moving Directories](#moving-directories) - [Deleting Directories](#deleting-directories) - [Creating Files](#creating-files) - [Standard Output, Error and Input](#standard-output-standard-error-and-standard-input) - [Moving Files](#moving-files) - [Deleting Files](#deleting-files) - [Reading Files](#reading-files) - [Sorting Files](#sorting-files) - [File Permissions](#file-permissions) - [Finding Files](#finding-files) - [Find in Files](#find-in-files) - [Replace in Files](#replace-in-files) - [File Editor](#file-editor) - [Symbolic Links](#symbolic-links) - [Compressing Files](#compressing-files) - [Decompressing Files](#decompressing-files) - [Packages](#packages) - [Disk Usage](#disk-usage) - [Memory Usage](#memory-usage) - [Shutdown and Reboot](#shutdown-and-reboot) - [Identifying Processes](#identifying-processes) - [Process Priority](#process-priority) - [Killing Processes](#killing-processes) - [Date & Time](#date--time) - [Scheduled Tasks](#scheduled-tasks) - [User Mangement](#user-management) - [HTTP Requests](#http-requests) - [Network Troubleshooting](#network-troubleshooting) - [DNS](#dns) - [Hardware](#hardware) - [System Information](#system-information) - [Terminal Multiplexers](#terminal-multiplexers) - [Secure Shell Protocol (SSH)](#secure-shell-protocol-ssh) - [Secure Copy](#secure-copy) - [Bash Profile](#bash-profile) - [Bash Script](#bash-script) # ## Command Information ```bash man chmod # Display page manual of a command man -f|--whatis chmod # Display short description about a command man -k|--apropos permission # Display all related commands from a specific keyword chmod --help # Display usage options of a command ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Command History ```bash history # View all previous commands history | grep foo # View the commands using a specific word history | grep -E|--extended-regexp -i|--ignore-case 'foo1|foo2|foo3' # View the commands using more than 1 specific word(case sensitive) history | head -n|--lines 3 # View the first 3 executed commands history 3 # View the last 3 executed commands history -d 99 # Clear a command from a specific line history -c # Clears all history commands !! # Run the last command executed touch foo.sh # <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<┐ chmod +x !$ # !$ is the last argument of the last command i.e. foo.sh <<<<┘ ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Navigating Directories ```bash pwd # Print current directory path ls # List directories ls -a|--all # List directories including hidden ls -l # List directories in long form ls -l -h|--human-readable # List directories in long form with human readable sizes ls -t # List directories by modification time, newest first stat foo.txt # List size, created and modified timestamps for a file stat foo # List size, created and modified timestamps for a directory tree # List directory and file tree tree -a # List directory and file tree including hidden tree -d # List directory tree cd foo # Go to foo sub-directory cd # Go to home directory cd ~ # Go to home directory cd - # Go to the previously chosen directory pushd foo # Go to foo sub-directory and add previous directory to stack popd # Go back to directory in stack saved by `pushd` ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Creating Directories ```bash mkdir foo # Create a directory mkdir foo bar # Create multiple directories mkdir -p|--parents foo/bar # Create nested directory mkdir -p|--parents {foo,bar}/baz # Create multiple nested directories mktemp -d|--directory # Create a temporary directory ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Moving Directories ```bash cp -R|--recursive foo bar # Copy directory mv foo bar # Move directory rsync -z|--compress -v|--verbose /foo /bar # Copy directory, overwrites destination rsync --ignore-existing -a|--archive-a|--archive -z|--compress -v|--verbose /foo /bar # Copy directory, without overwriting destination rsync -avz /foo username@hostname:/bar # Copy local directory to remote directory rsync -avz username@hostname:/foo /bar # Copy remote directory to local directory ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Deleting Directories ```bash rmdir foo # Delete non-empty directory rm -r|--recursive foo # Delete directory including contents rm -r|--recursive -f|--force foo # Delete directory including contents, ignore nonexistent files and never prompt ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Creating Files ```bash touch foo.txt # Create file or update existing files modified timestamp touch foo.txt bar.txt # Create multiple files touch {foo,bar}.txt # Create multiple files touch test{1..3} # Create test1, test2 and test3 files touch test{a..c} # Create testa, testb and testc files mktemp # Create a temporary file ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Standard Output, Standard Error and Standard Input ```bash echo "foo" > bar.txt # Overwrite file with content echo "foo" >> bar.txt # Append to file with content ls exists 1> stdout.txt # Redirect the standard output to a file ls noexist 2> stderror.txt # Redirect the standard error output to a file ls > out.txt 2>&1 # Redirect standard output and error to a file ls > /dev/null # Discard standard output and error read foo # Read from standard input and write to the variable foo ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Moving Files ```bash cp foo.txt bar.txt # Copy file mv foo.txt bar.txt # Move file rsync -z|--compress -v|--verbose /foo.txt /bar # Copy file quickly if not changed rsync -z|--compress -v|--verbose /foo.txt /bar.txt # Copy and rename file quickly if not changed ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Deleting Files ```bash rm foo.txt # Delete file rm -f|--force foo.txt # Delete file, ignore nonexistent files and never prompt ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Reading Files ```bash cat foo.txt # Print all contents less foo.txt # Print some contents at a time (g - go to top of file, SHIFT+g, go to bottom of file, /foo to search for 'foo') head foo.txt # Print top 10 lines of file tail foo.txt # Print bottom 10 lines of file tail -f|--follow foo.txt # Print bottom 10 lines of file updating with new data open foo.txt # Open file in the default editor wc foo.txt # List number of lines words and characters in the file ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Sorting Files ```bash sort foo.txt # Sort file (ascending order) sort -r|--reverse foo.txt # Sort file (descending order) sort -n|--numeric-sort foo.txt # Sort numbers instead of strings sort -t|--field-separator: -k 3n /foo/foo.txt # Sort by the third column of a file ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## File Permissions | # | Permission | rwx | Binary | | - | - | - | - | | 7 | read, write and execute | rwx | 111 | | 6 | read and write | rw- | 110 | | 5 | read and execute | r-x | 101 | | 4 | read only | r-- | 100 | | 3 | write and execute | -wx | 011 | | 2 | write only | -w- | 010 | | 1 | execute only | --x | 001 | | 0 | none | --- | 000 | For a directory, execute means you can enter a directory. | User | Group | Others | Description | | - | - | - | - | | 6 | 4 | 4 | User can read and write, everyone else can read (Default file permissions) | | 7 | 5 | 5 | User can read, write and execute, everyone else can read and execute (Default directory permissions) | - u - User - g - Group - o - Others - a - All of the above ```bash ls -l /foo.sh # List file permissions chmod +100 foo.sh # Add 1 to the user permission chmod -100 foo.sh # Subtract 1 from the user permission chmod u+x foo.sh # Give the user execute permission chmod g+x foo.sh # Give the group execute permission chmod u-x,g-x foo.sh # Take away the user and group execute permission chmod u+x,g+x,o+x foo.sh # Give everybody execute permission chmod a+x foo.sh # Give everybody execute permission chmod +x foo.sh # Give everybody execute permission ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Finding Files Find binary files for a command. ```bash type -a wget # Display all locations of executable which -a wget # Display all locations of executables whereis wget # Find the binary, source, and manual page files ``` `locate` uses an index and is fast. ```bash updatedb # Update the index locate foo.txt # Find a file locate --ignore-case # Find a file and ignore case locate f*.txt # Find a text file starting with 'f' ``` `find` doesn't use an index and is slow. ```bash find /path -name foo.txt # Find a file find /path -iname foo.txt # Find a file with case insensitive search find /path -name "*.txt" # Find all text files find /path -name foo.txt -delete # Find a file and delete it find /path -name "*.png" -exec pngquant {} # Find all .png files and execute pngquant on it find /path -type f -name foo.txt # Find a file find /path -type d -name foo # Find a directory find /path -type l -name foo.txt # Find a symbolic link find /path -type f -mtime +30 # Find files that haven't been modified in 30 days find /path -type f -mtime +30 -delete # Delete files that haven't been modified in 30 days ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Find in Files ```bash grep 'foo' /bar.txt # Search for 'foo' in file 'bar.txt' grep 'foo' /bar -r|--recursive # Search for 'foo' in directory 'bar' grep 'foo' /bar -R|--dereference-recursive # Search for 'foo' in directory 'bar' and follow symbolic links grep 'foo' /bar -l|--files-with-matches # Show only files that match grep 'foo' /bar -L|--files-without-match # Show only files that don't match grep 'Foo' /bar -i|--ignore-case # Case insensitive search grep 'foo' /bar -x|--line-regexp # Match the entire line grep 'foo' /bar -C|--context 1 # Add N line of context above and below each search result grep 'foo' /bar -v|--invert-match # Show only lines that don't match grep 'foo' /bar -c|--count # Count the number lines that match grep 'foo' /bar -n|--line-number # Add line numbers grep 'foo' /bar --colour # Add colour to output grep 'foo\|bar' /baz -R # Search for 'foo' or 'bar' in directory 'baz' grep --extended-regexp|-E 'foo|bar' /baz -R # Use regular expressions grep -E 'foo|bar' /baz -R # Use regular expressions ``` ### Replace in Files ```bash sed 's/fox/bear/g' foo.txt # Replace fox with bear in foo.txt and output to console sed 's/fox/bear/gi' foo.txt # Replace fox (case insensitive) with bear in foo.txt and output to console sed 's/red fox/blue bear/g' foo.txt # Replace red with blue and fox with bear in foo.txt and output to console sed 's/fox/bear/g' foo.txt > bar.txt # Replace fox with bear in foo.txt and save in bar.txt sed -i|--in-place 's/fox/bear/g' foo.txt # Replace fox with bear and overwrite foo.txt sed -i|--in-place '/red fox/i\blue bear' foo.txt # Insert blue bear before red fox and overwrite foo.txt sed -i|--in-place '/red fox/a\blue bear' foo.txt # Insert blue bear after red fox and overwrite foo.txt sed -i|--in-place '10s/find/replace/' foo.txt # Replace the 10th line of the file sed -i|--in-place '10,20s/find/replace/' foo.txt # Replace in the file 10-20 lines ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ### File Editor ```bash nano # Open a new file in nano nano foo.txt # Open a specific file nano -m|--mouse foo.txt # Enable the use of the mouse nano -l|--linenumbers foo.txt # Show line numbers in front of the text nano +line,10 foo.txt # Open file positioning the cursor at the specified line and column nano -B|--backup foo.txt # Create a backup file (`foo~`) when saving edits ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Symbolic Links ```bash ln -s|--symbolic foo bar # Create a link 'bar' to the 'foo' folder ln -s|--symbolic -f|--force foo bar # Overwrite an existing symbolic link 'bar' ls -l # Show where symbolic links are pointing ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Compressing Files ### zip Compresses one or more files into *.zip files. ```bash zip foo.zip /bar.txt # Compress bar.txt into foo.zip zip foo.zip /bar.txt /baz.txt # Compress bar.txt and baz.txt into foo.zip zip foo.zip /{bar,baz}.txt # Compress bar.txt and baz.txt into foo.zip zip -r|--recurse-paths foo.zip /bar # Compress directory bar into foo.zip ``` ### gzip Compresses a single file into *.gz files. ```bash gzip /bar.txt foo.gz # Compress bar.txt into foo.gz and then delete bar.txt gzip -k|--keep /bar.txt foo.gz # Compress bar.txt into foo.gz ``` ### tar -c Compresses (optionally) and combines one or more files into a single *.tar, *.tar.gz, *.tpz or *.tgz file. ```bash tar -c|--create -z|--gzip -f|--file=foo.tgz /bar.txt /baz.txt # Compress bar.txt and baz.txt into foo.tgz tar -c|--create -z|--gzip -f|--file=foo.tgz /{bar,baz}.txt # Compress bar.txt and baz.txt into foo.tgz tar -c|--create -z|--gzip -f|--file=foo.tgz /bar # Compress directory bar into foo.tgz ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Decompressing Files ### unzip ```bash unzip foo.zip # Unzip foo.zip into current directory ``` ### gunzip ```bash gunzip foo.gz # Unzip foo.gz into current directory and delete foo.gz gunzip -k|--keep foo.gz # Unzip foo.gz into current directory ``` ### tar -x ```bash tar -x|--extract -z|--gzip -f|--file=foo.tar.gz # Un-compress foo.tar.gz into current directory tar -x|--extract -f|--file=foo.tar # Un-combine foo.tar into current directory ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Packages ```bash apt update # Refreshes repository index apt search wget # Search for a package apt show wget # List information about the wget package apt list --all-versions wget # List all versions of the package apt install wget # Install the latest version of the wget package apt install wget=1.2.3 # Install a specific version of the wget package apt remove wget # Removes the wget package apt upgrade # Upgrades all upgradable packages apt clean # Clears out the local repository of downloaded package files dpkg -i|--install package_name.deb # Install deb file rpm -i|--install package_name.rpm # Install rpm file ``` ### Install package source code ```bash tar zxvf sourcecode.tar.gz cd sourcecode ./configure make make install ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Disk Usage ```bash df # List disks, size, used and available space df -h|--human-readable # List disks, size, used and available space in a human readable format du # List current directory, subdirectories and file sizes du /foo/bar # List specified directory, subdirectories and file sizes du -h|--human-readable # List current directory, subdirectories and file sizes in a human readable format du -d|--max-depth # List current directory, subdirectories and file sizes within the max depth du -d 0 # List current directory size ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Memory Usage ```bash free # Show memory usage free -h|--human # Show human readable memory usage free -h|--human --si # Show human readable memory usage in power of 1000 instead of 1024 free -s|--seconds 5 # Show memory usage and update continuously every five seconds ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Shutdown and Reboot ```bash shutdown # Shutdown in 1 minute shutdown now # Immediately shut down shutdown +5 # Shutdown in 5 minutes shutdown -r|--reboot # Reboot in 1 minute shutdown -r|--reboot now # Immediately reboot shutdown -r|--reboot +5 # Reboot in 5 minutes shutdown -c # Cancel a shutdown or reboot reboot # Reboot now reboot -f # Force a reboot ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Identifying Processes ```bash top # List all processes interactively htop # List all processes interactively ps ax # List all processes pidof foo # Return the PID of all foo processes CTRL+Z # Suspend a process running in the foreground bg # Resume a suspended process and run in the background fg # Bring the last background process to the foreground fg 1 # Bring the background process with the PID to the foreground sleep 30 & # Sleep for 30 seconds and move the process into the background jobs # List all background jobs jobs -p # List all background jobs with their PID lsof # List all open files and the process using them lsof -itcp:4000 # Return the process listening on port 4000 ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Process Priority Process priorities go from -20 (highest) to 19 (lowest). ```bash nice -n -20 foo # Change process priority by name renice 20 PID # Change process priority by PID ps -o ni PID # Return the process priority of PID ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Killing Processes ```bash CTRL+C # Kill a process running in the foreground kill PID # Shut down process by PID gracefully. Sends TERM signal. kill -9 PID # Force shut down of process by PID. Sends SIGKILL signal. pkill foo # Shut down process by name gracefully. Sends TERM signal. pkill -9 foo # force shut down process by name. Sends SIGKILL signal. killall foo # Kill all process with the specified name gracefully. ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Date & Time ```bash date # Print the date and time date --iso-8601 # Print the ISO8601 date date --iso-8601=ns # Print the ISO8601 date and time date -s "02 DEC 2020 12:02:02" # Manually change date and time dpkg-reconfigure tzdata # Change date/timezone uptime # Print how long the system has been running time tree # Print amount of time to tree takes to execute ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Scheduled Tasks ```pre * * * * * Minute, Hour, Day of month, Month, Day of the week ``` ```bash crontab -l # List cron tab crontab -e # Edit cron tab in a file editor crontab /path/crontab # Load cron tab from a file crontab -l > /path/crontab # Save cron tab to a file * * * * * foo # Run foo every minute */15 * * * * foo # Run foo every 15 minutes 0 * * * * foo # Run foo every hour 15 6 * * * foo # Run foo daily at 6:15 AM 44 4 * * 5 foo # Run foo every Friday at 4:44 AM 0 0 1 * * foo # Run foo at midnight on the first of the month 0 0 1 1 * foo # Run foo at midnight on the first of the year at -l # List scheduled tasks at -c 1 # Show task with ID 1 at -r 1 # Remove task with ID 1 at now + 2 minutes # Create a task in a file editor to execute in 2 minutes at 12:34 PM next month # Create a task in a file editor to execute at 12:34 PM next month at tomorrow # Create a task in a file editor to execute tomorrow ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## User Management ```bash sudo su # Switch to root user sudo foo # Execute commands(has permission denied) as the root user sudo nano /foo/foo.txt # Open directories and files(is not writable) as the root user su username # Switch to a different user passwd # To change the password of a user adduser username # To add a new user userdel username # To remove user userdel -r|--remove username # To remove user with home directory and mail spool usermod -a|--append -G|--groups GROUPNAME USERNAME # To add a user to a group deluser USER GROUPNAME # To remove a user from a group last # Display information of all the users logged in last username # Display information of a particular user w # Display who is online ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## HTTP Requests ```bash curl https://example.com # Return response body curl -i|--include https://example.com # Include status code and HTTP headers curl -L|--location https://example.com # Follow redirects curl -O|--remote-name foo.txt https://example.com # Output to a text file curl -H|--header "User-Agent: Foo" https://example.com # Add a HTTP header curl -X|--request POST -H "Content-Type: application/json" -d|--data '{"foo":"bar"}' https://example.com # POST JSON curl -X POST -H --data-urlencode foo="bar" http://example.com # POST URL Form Encoded wget https://example.com/file.txt # Download a file to the current directory wget -O|--output-document foo.txt https://example.com/file.txt # Output to a file with the specified name ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Network Troubleshooting ```bash ifconfig # Display all network card and interface information ifconfig -a # Display information of all network cards (including those that are not started at boot) ifconfig eth0 # Display specific device information ifconfig eth0 up # Turn on the network card ifconfig eth0 down # Turn off the network card ifconfig eth0 # Configure IP address for network card curl ifconfig.me # Obtain external IP address ping example.com # Send multiple ping requests using the ICMP protocol ping -c 10 -i 5 example.com # Make 10 attempts, 5 seconds apart ip addr # List IP addresses on the system ip route show # Show IP addresses to router netstat -i|--interfaces # List all network interfaces and in/out usage netstat -l|--listening # List all open ports traceroute example.com # List all servers the network traffic goes through mtr -w|--report-wide example.com # Continually list all servers the network traffic goes through mtr -r|--report -w|--report-wide -c|--report-cycles 100 example.com # Output a report that lists network traffic 100 times nmap # Scan for the 1000 most common open ports on localhost nmap -p1-65535 # Scan for open ports on localhost between 1 and 65535 nmap # Scan for the 1000 most common open ports on a remote IP address nmap -sP # Discover all machines on the network by ping'ing them ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## DNS ```bash dig example.com # Show query information of domain A records dig -4 example.com # Show IPv4 A records dig -6 example.com # Show IPv6 AAA records dig example.com @nameserver # Show query of a specific nameserver dig example.com -p 123 # Show query of a specific port number cat /etc/resolv.conf # Nameservers file cat /etc/systemd/resolved.conf # DNS resolver config file ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Hardware ```bash lsusb # List USB devices lspci # List PCI hardware lshw # List all hardware ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## System Information ```bash uname -s # Print kernel name uname -r # Print kernel release uname -m # Print Architecture uname -o # Print Operating System uname -a # Print all Systen info lsb_release -a # Print distribution-specific information dpkg --print-architecture # Print-architecture by name cat /proc/cpuinfo # Show cpu info cat /proc/meminfo # Show memory info ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Terminal Multiplexers Start multiple terminal sessions. Active sessions persist reboots. `tmux` is more modern than `screen`. ```bash tmux # Start a new session (CTRL-b + d to detach) tmux ls # List all sessions tmux attach -t 0 # Reattach to a session screen # Start a new session (CTRL-a + d to detach) screen -S foo # Start a new named session screen -ls # List all sessions screen -R 31166 # Reattach to a session exit # Exit a session reset # Reset the terminal(when binary and the terminal state is messed up) ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Secure Shell Protocol (SSH) ```bash ssh hostname # Connect to hostname using your current user name over the default SSH port 22 ssh -i foo.pem hostname # Connect to hostname using the identity file ssh user@hostname # Connect to hostname using the user over the default SSH port 22 ssh user@hostname -p 8765 # Connect to hostname using the user over a custom port ssh ssh://user@hostname:8765 # Connect to hostname using the user over a custom port ``` Set default user and port in `~/.ssh/config`, so you can just enter the name next time: ```bash $ cat ~/.ssh/config Host name User foo Hostname Port 8765 $ ssh name ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Secure Copy ```bash scp foo.txt ubuntu@hostname:/home/ubuntu # Copy foo.txt into the specified remote directory scp ubuntu@hostname:/home/ubuntu/foo.txt /C:\Users\Admin # Copy foo.txt from the specified remote directory ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Bash Profile - bash - `.bashrc` - zsh - `.zshrc` ```bash # Always run ls after cd function cd { builtin cd "$@" && ls } # Prompt user before overwriting any files alias cp='cp --interactive' alias mv='mv --interactive' alias rm='rm --interactive' # Always show disk usage in a human readable format alias df='df -h' alias du='du -h' ``` [⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents) ## Bash Script ### Variables ```bash #!/bin/bash foo=123 # Initialize variable foo with 123 declare -i foo=123 # Initialize an integer foo with 123 declare -r foo=123 # Initialize readonly variable foo with 123 echo $foo # Print variable foo echo ${foo}_'bar' # Print variable foo followed by _bar echo ${foo:-'default'} # Print variable foo if it exists otherwise print default export foo # Make foo available to child processes unset foo # Make foo unavailable to child processes and current session ``` ### Environment Variables ```bash #!/bin/bash set # List all environment variables echo $PATH # Print PATH environment variable export FOO=Bar # Set an environment variable ``` ### Functions ```bash #!/bin/bash greet() { local world="World" echo "$1 $world" return "$1 $world" } greet "Hello" greeting=$(greet "Hello") ``` ### Exit Codes ```bash #!/bin/bash exit 0 # Exit the script successfully exit 1 # Exit the script unsuccessfully echo $? # Print the last exit code ``` ### Conditional Statements #### Boolean Operators - `$foo` - Is true - `!$foo` - Is false #### Numeric Operators - `-eq` - Equals - `-ne` - Not equals - `-gt` - Greater than - `-ge` - Greater than or equal to - `-lt` - Less than - `-le` - Less than or equal to - `-e` foo.txt - Check file exists - `-z` foo - Check if variable exists #### String Operators - `=` - Equals - `==` - Equals - `-z` - Is null - `-n` - Is not null - `<` - Is less than in ASCII alphabetical order - `>` - Is greater than in ASCII alphabetical order #### If Statements ```bash #!/bin/bash [[ if [[$foo = 'bar']]; then echo 'one' elif [[$foo = 'bar']] || [[$foo = 'baz']]; then echo 'two' elif [[$foo = 'ban']] && [[$USER = 'bat']]; then echo 'three' else echo 'four' fi ]] ``` #### Inline If Statements ```bash #!/bin/bash [[ $USER = 'rehan' ]] && echo 'yes' || echo 'no' ``` #### While Loops ```bash #!/bin/bash [ declare -i counter counter=10 while [$counter -gt 2]; do echo The counter is $counter counter=counter-1 done ] ``` #### For Loops ```bash #!/bin/bash for i in {0..10..2} do echo "Index: $i" done for filename in file1 file2 file3 do echo "Content: " >> $filename done for filename in *; do echo "Content: " >> $filename done ``` #### Case Statements ```bash #!/bin/bash echo "What's the weather like tomorrow?" read weather case $weather in sunny | warm ) echo "Nice weather: " $weather ;; cloudy | cool ) echo "Not bad weather: " $weather ;; rainy | cold ) echo "Terrible weather: " $weather ;; * ) echo "Don't understand" ;; esac ```

Inspired by RehanSaeed/Bash-Cheat-Sheet

[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴄᴏɴᴛᴇɴᴛꜱ](#contents)

Special characters 🔣

> **Note**
> └─> = or

Char. Description
~ Home directory [tilde]. The path to a user's home directory location.
- Last directory [hyphen]. Go to the previously chosen directory.
└─> Option flag for a command or filter.
└─> Arithmetic operator. Minus of arithmetic operations.
/ Root directory [forward slash]. The path to root directory location.
└─> Filename path separator.
\ Escape [backslash]. A quoting mechanism for single characters. It preserves the literal value of the next character that follows, with the exception of newline.
└─> Arithmetic operator. Divider of arithmetic operations.
| Pipe. This is a method of chaining commands together. Connects the output (stdout) of command1 to the input (stdin) of command2. Each command reads the previous command’s output.
|& This operator connects the output (stdout) and error (stderr) of command1 to the input (stdin) of command2.
|| The OR operator is used to chain commands. It will execute the first command then stop if successful, if not, it will proceed pass failed commands until one is successful and stop.
&& The AND operator is used to chain commands. It will execute commands only if the first command is successful and proceed until one fails.
; Command separator [semicolon]. Used to separate multiple commands and output all successful and failed ones.
& Run job in background [and]. A command followed by an & will run in the background.
>, >>, < Redirect a command's standard output (stdout) or input (stdin) into a file.
&>, >& Redirects a command's both standard output (stdout) and error (stderr) into a file.
<&- Close standard input (stdin) to prevent showing from a file.
>&- Close standard output (stdout) to prevent showing from a file.
>| Force redirection (even if the noclobber option is set). This will forcibly overwrite an existing file.
" Partial quoting [double quotes]. Protects the text inside them from being split into multiple words or arguments, yet allow substitutions to occur, meaning most other special characters is usually prevented.
. Source command [period]. To evaluate commands in the current execution context. This is a bash builtin.
└─> "As a component of a filename. When working with filenames, a leading dot is the prefix of a "hidden" file, a file that an ls will not normally show.
└─> Character match. When matching characters, as part of a regular expression, a "dot" matches a single character.
' Full quoting [single quotes]. Protects the text inside them so that it has a literal meaning. This is a stronger form of quoting than double quotes.
` Command substitution [backquotes]. Assign the output of a shell command to a variable.
# Comment [number sign]. Lines in files beginning with a # (with the exception of #!) are comments and will not be executed.
! Reverse (or negate) [exclamation]. The ! operator inverts the exit status of the command to which it is applied. It also inverts the meaning of a test operator.
* Wild card [asterisk]. The * character serves as a "wild card" for filename expansion in globbing. By itself, it matches every filename in a given directory.
└─> Arithmetic operator. Multiplier of arithmetic operations.
? Wild card [question mark]. The ? character serves as a single-character "wild card" for filename expansion in globbing, as well as representing one character in an extended regular expression.
└─> Test operator. Within certain expressions, the ? indicates a test for a condition.
{ } Inline group [curly brackets]. Commands inside the curly braces are treated as if they were one command.
└─> Placeholder for output text.
( ) Subshell group [parentheses]. Commands within are executed in a subshell (a new process) Used much like a sandbox, if a command causes side effects (like changing variables), it will have no effect on the current shell.
[ ] Test expression [brackets]. It is part of the shell builtin test.
└─> Array element. Brackets set off the numbering of each element.
└─> Range of characters. As part of a regular expression, brackets delineate a range of characters to match.
[[ ]] Test/Evaluate [double brackets] a condition expression to determine whether true or false. It is more flexible than the single-bracket [ ] test.
(( )) Arithmetic expression [double parentheses]. Characters such as +, -, *, and / are mathematical operators used for calculations.
~+ Current working directory.
~- Previous working directory.
: Null command [colon]. This is the shell equivalent of a "NOP" (no op, a do-nothing operation). It may be considered a synonym for the shell builtin true.
;; Terminator [double semicolon]. Only used in case constructs to indicate the end of an alternative.
" " Whitespace. This is a tab, newline, vertical tab, form feed, carriage return, or space. Bash uses whitespace to determine where words begin and end.
,, , Lowercase conversion in parameter substitution.
^, ^^ Uppercase conversion in parameter substitution.
$ Variable substitution. A $ prefixing a variable name indicates the value the variable holds
└─> End-of-line. In a regular expression, a "$" addresses the end of a line of text.
$* All the arguments are seen as a single word.
!! The previous command.
!$ The last argument to the previous command.
!* All the arguments from the previous command.
$? The exit status of the last command executed.
$# The number of arguments supplied to a script.
$$ The process number of the current shell. For shell scripts, this is the process ID under which they are executing.
$! The process number of the last background command.
$_ Special variable set to final argument of previous command executed.
$- Expands to the current option flags as specified upon invocation, by the set builtin command, or those set by the shell itself (such as the -i option).
$0 Used to reference the name of the current shell or current shell script.
$n These variables correspond to the arguments with which a script was invoked. Here n is a positive decimal number corresponding to the position of an argument (the first argument is $1, the second argument is $2, and so on).
[⬆ ʀᴇᴛᴜʀɴ ᴛᴏ ᴛᴏᴩ](#special-characters-)

Keyboard controls ⌨️

| Key | Function | | :--: | :-- | | Ctrl+B | Moves cursor backward one character position | | Ctrl+F | Moves cursor forward one character position | | Alt+F | Moves cursor one word forward in line | | Alt+B | Moves cursor one word backwards in line | | Ctrl+A | Moves cursor to beginning of text in line | | Ctrl+E | Moves cursor to end of text in line | | Ctrl+D | Erase character forward from cursor left to right | | Ctrl+H | Erase character backward from cursor right to left | | Alt+D | Erase the next word from cursor left to right | | Ctrl+W | Erase backwards to first non-alphanumeric character or empty space | | Ctrl+U | Erase a line of input from cursor right to left | | Ctrl+K | Erase a line of input from cursor left to right | | Ctrl+P | Fetch previous command from history list | | Ctrl+N | Fetch next command from history list | | Ctrl+/ | Undo changes in command-line | | Alt+R | Reverts any changes to a previously executed command that's being edited | | Alt+. | Fetch and paste the last word at end of a command from previous commands | | Ctrl+T | Reverses the position of the character the cursor is on with the previous character | | Alt+T | Reverses the position of the word the cursor is in with the previous word | | Alt+U | Capitalizes every character from cursor left to right to the end of one word | | Alt+L | UnCapitalizes every character from cursor left to right to the end of one word | | Ctrl+R | Reverse search commands from history list | | Ctrl+Y | Causes the process to be stopped| | Ctrl+Z | Pauses a foreground job | | Ctrl+C | Break/Terminate a foreground job | | Ctrl+M | Clear the current line | | Ctrl+O | Accept the current line for execution and fetch the next command | | Ctrl+L | Clear screen contents (command-line needs to be empty) | | Ctrl+S | Suspend | | Ctrl+Q | Resume | | Ctrl+D | Log out from a shell (similar to exit) | Ctrl+X(twice)| The cursor jumps back and forth between the current position to the beginning of the line | ### Nano | Key | Function | | :--: | :-- | | Ctrl+Y | Scrolls page down | | Ctrl+V | Scrolls page up| | Alt+\ | Go to beginning of file | | Alt+/ | Go to end of file | | Ctrl+H | Delete character before cursor | | Ctrl+D | Erase character under cursor | | Alt+Backspace | Erase word to the left | | Ctrl+Del |Erase word to the right | | Alt+Del | Erase current line | | Alt+^ | Copy selected text | | Ctrl+U | To paste the text from the cut buffer (similar to clipboard) into the selected line. | | Ctrl+K | It cuts the entire selected line to the cut buffer. | | Alt+A | To select text. You can combine this command with CTRL + K to cut a specific part of the text to the cut buffer. | | Alt+U | Undo last action | | Alt+E | Redo last undone action | | Ctrl+Q | Start backward search. Press Ctrl+Q to search for the same phrase again | | Ctrl+W | Start forward search. Press ALT+W to search for the same phrase again | | Ctrl+\ | Replaces string or a regular expression | | Alt+3 | Comment/uncomment line/region | | Ctrl+R | Opens a file and inserts it at the current cursor position | | Ctrl+O | Write changes to a file ("Save as") | | Ctrl+S | Save current file | | Ctrl+X | To exit Nano text editor. It prompts a save request if you made any changes to the file | | Ctrl+G | A Help window will pop out and show you all the available commands |


Online Cheat Sheet for quick references of commands and codes


Cheat sheets sources

|Cheat sheets |Repository |C/U* |Stars |Creation Date| |-----------------------|------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|-------------| |UNIX/Linux, programming|[cheat.sheets](https://github.com/chubin/cheat.sheets) |![](https://img.shields.io/github/contributors-anon/chubin/cheat.sheets?label=%F0%9F%91%A5&labelColor=white) |![](https://img.shields.io/github/stars/chubin/cheat.sheets?label=%E2%AD%90&labelColor=white) |May 1, 2017 | |UNIX/Linux commands |[tldr-pages/tldr](https://github.com/tldr-pages/tldr) |![](https://img.shields.io/github/contributors-anon/tldr-pages/tldr?label=%F0%9F%91%A5&labelColor=white) |![](https://img.shields.io/github/stars/tldr-pages/tldr?label=%E2%AD%90&labelColor=white) |Dec 8, 2013 | |UNIX/Linux commands |[chrisallenlane/cheat](https://github.com/chrisallenlane/cheat) |![](https://img.shields.io/github/contributors-anon/chrisallenlane/cheat?label=%F0%9F%91%A5&labelColor=white) |![](https://img.shields.io/github/stars/chrisallenlane/cheat?label=%E2%AD%90&labelColor=white) |Jul 28, 2013 | |Programming languages |[adambard/learnxinyminutes-docs](https://github.com/adambard/learnxinyminutes-docs) |![](https://img.shields.io/github/contributors-anon/adambard/learnxinyminutes-docs?label=%F0%9F%91%A5&labelColor=white)|![](https://img.shields.io/github/stars/adambard/learnxinyminutes-docs?label=%E2%AD%90&labelColor=white)|Jun 23, 2013 | |Go |[a8m/go-lang-cheat-sheet](https://github.com/a8m/go-lang-cheat-sheet) |![](https://img.shields.io/github/contributors-anon/a8m/go-lang-cheat-sheet?label=%F0%9F%91%A5&labelColor=white) |![](https://img.shields.io/github/stars/a8m/go-lang-cheat-sheet?label=%E2%AD%90&labelColor=white) |Feb 9, 2014 | |Perl |[pkrumnis/perl1line.txt](https://github.com/pkrumins/perl1line.txt) |![](https://img.shields.io/github/contributors-anon/pkrumins/perl1line.txt?label=%F0%9F%91%A5&labelColor=white) |![](https://img.shields.io/github/stars/pkrumins/perl1line.txt?label=%E2%AD%90&labelColor=white) |Nov 4, 2011 | |Programming languages |[StackOverflow](https://stackoverflow.com) |[14M](https://stackexchange.com/leagues/1/alltime/stackoverflow)|N/A

### Usage _**Terminal**_ : ```bash curl cht.sh/keyword # or curl cheat.sh/keyword ``` _**Browser**_ : > [https://cht.sh/](https://cht.sh/)keyword
> or
> [https://cheat.sh/](https://cheat.sh/)keyword # ### Offline usage [install](https://github.com/chubin/cheat.sh#installation) cheat script manually
_**Install globally(all users)**_ : ```bash curl -s https://cht.sh/:cht.sh | sudo tee /usr/local/bin/cht.sh && sudo chmod +x /usr/local/bin/cht.sh ``` _**Run**_ : ```bash cht.sh keyword ``` >**Note** - More info on usage : > https://cht.sh/:help


More bash resources

| | | | :--: | :--: | | [introduction-to-bash-scripting](https://github.com/bobbyiliev/introduction-to-bash-scripting) | Free Introduction to Bash Scripting eBook| | [shell-scripting-tutorial](https://github.com/techarkit/shell-scripting-tutorial) | A complete begineers guide to learn shell scripting from scratch which includes Videos, Practice scenarios and project idea. | | [100-shell-script-examples](https://github.com/epety/100-shell-script-examples) | Collection of shell scripts found on the internet | | [simple-bash-scripts](https://github.com/ruanyf/simple-bash-scripts) | A collection of simple Bash scripts | | [shell-examples](https://github.com/qjcg/shell-examples) | Little Bash shell scripting examples | | [bash-utils](https://github.com/pirate/bash-utils)| A collection of hand-crafted bash scripts for various common tasks | | [Bash-Snippets](https://github.com/alexanderepstein/Bash-Snippets) | A collection of small bash scripts for heavy terminal users | | [awesome-bash](https://github.com/awesome-lists/awesome-bash) | A curated list of delightful Bash scripts and resources | | [awesome-shell](https://github.com/uhub/awesome-shell) | A curated list of awesome Shell frameworks, libraries and software | | [awesome-cli-apps](https://github.com/agarrharr/awesome-cli-apps) | A curated list of command line apps | | [cli-apps](https://github.com/toolleeo/cli-apps) | Awesome Curated list of (mainly) CLI/TUI applications with source data organized into CSV files | | [awesome-cli](https://github.com/Kikobeats/awesome-cli) | A curated list of awesome resources for building immersive CLI experiences | | [awesome-cli](https://github.com/umutphp/awesome-cli) | A simple command line tool to give you a fancy command line interface to dive into Awesome lists | | [terminals-are-sexy](https://github.com/k4m4/terminals-are-sexy) | A curated list of Terminal frameworks, plugins & resources for CLI lovers | | [funny-Linux-Commands](https://github.com/Debargha-Mitra-Roy/Funny-Linux-Commands) | Funny Linux Commands in Ubuntu | | [awesome-ttygames](https://github.com/ligurio/awesome-ttygames) | Unix ASCII games |