If you're not using the terminal, Linux commands may appear scary at first by once you start using them you will understand them very easily On a Linux system, there are numerous commands for executing operations and procedures.
Having a list of commands on hand is useful whether you are new to Linux or an experienced user.
File Permission commands
| Command | Description |
|---|---|
| ls-l | to show file type and access permission |
| r | read permission |
| w | write permission |
| x | execute permission |
| -= | no permission |
| Chown user | For changing the ownership of a file/directory |
| Chown user:group filename | change the user as well as group for a file or directory |
Hardware commands
| Command | Description |
|---|---|
| dmesg | Displays bootup messages |
| cat /proc/cpuinfo | Displays more information about CPU e.g model, model name, cores, vendor id |
| cat /proc/meminfo | Displays more information about hardware memory e.g. Total and Free memory |
| lshw | Displays information about system's hardware configuration |
| lsblk | Displays block devices related information |
| free -m | Displays free and used memory in the system (-m flag indicates memory in MB) |
| lspci -tv | Displays PCI devices in a tree-like diagram |
| lsusb -tv | Displays USB devices in a tree-like diagram |
| dmidecode | Displays hardware information from the BIOS |
| hdparm -i /dev/xda | Displays information about disk data |
| hdparm -tT /dev/xda <:code> | Conducts a read speed test on device xda |
| badblocks -s /dev/xda | Tests for unreadable blocks on disk |
Basic Linux commands
| Command | Description |
|---|---|
| ls | Lists all files and directories in the present working directory |
| ls-R | Lists files in sub-directories as well |
| ls-a | Lists hidden files as well |
| ls-al | Lists files and directories with detailed information like permissions,size, owner, etc. |
| cd or cd ~ | Navigate to HOME directory |
| cd .. | Move one level up |
| cd | To change to a particular directory |
| cd / | Move to the root directory |
| cat > filename | Creates a new file |
| cat filename | Displays the file content |
| cat file1 file2 > file3 | Joins two files (file1, file2) and stores the output in a new file (file3) |
| mv file "new file path" | Moves the files to the new location |
| mv filename new_file_name | Renames the file to a new filename |
| sudo | Allows regular users to run programs with the security privileges of the superuser or root |
| rm filename | Deletes a file |
| man | Gives help information on a command |
| history | Gives a list of all past commands typed in the current terminal session |
| clear | Clears the terminal |
| mkdir directoryname | Creates a new directory in the present working directory or a at the specified path |
| rmdir | Deletes a directory |
| mv | Renames a directory |
| pr -x | Divides the file into x columns |
| pr -h | Assigns a header to the file |
| pr -n | Denotes the file with Line Numbers |
| lp -nc , lpr c | Prints "c" copies of the File |
| lp-d lp-P | Specifies name of the printer |
| apt-get | Command used to install and update packages |
| mail -s 'subject' -c 'cc-address' -b 'bcc-address' 'to-address' | Command to send email |
| mail -s "Subject" to-address < Filename | Command to send email with attachment |
Environment Variables command
| Command | Description |
|---|---|
| echo $VARIABLE | To display value of a variable |
| env | Displays all environment variables |
| VARIABLE_NAME= variable_value | Create a new variable |
| Unset | Remove a variable |
| export Variable=value | To set value of an environment variable |
User management commands of linux
| Command | Description |
|---|---|
| sudo adduser username | To add a new user to your current Linux machine |
| sudo userdel -r 'username' | deluser removes a user from a specific group. |
| finger | Gives information on all logged in user |
| finger username | Gives information of a particular user |
Network command
| Command | Description |
|---|---|
| SSH username@ip-address or hostname | login into a remote Linux machine using SSH |
| Ping hostname="" or ="" | To ping and Analyzing network and host connections |
| dir | Display files in the current directory of a remote computer |
| cd "dirname" | change directory to "dirname" on a remote computer |
| put file | upload 'file' from local to remote computer |
| get file | Download 'file' from remote to local computer |
| ip addr show | Displays IP addresses and all the network interfaces |
| ip address add 192.168.0.1/24 dev eth0 | Assigns IP address 192.168.0.1 to interface eth0 |
| ifconfig | Displays IP addresses of all network interfaces |
| ping host | ping command sends an ICMP echo request to establish a connection to server / PC |
| whois domain | Retrieves more information about a domain name |
| dig domain | Retrieves DNS information about the domain |
| dig -x host | Performs reverse lookup on a domain |
| host google.com | Performs an IP lookup for the domain name |
| hostname -i | Displays local IP address |
| wget file_name | Downloads a file from an online source |
| netstat -pnltu | Displays all active listening ports |
| quit | Logout |
Process command
| Command | Description |
|---|---|
| bg | To send a process to the background |
| fg | To run a stopped process in the foreground |
| top | Details on all Active Processes |
| ps | Give the status of processes running for a user |
| ps PID | Gives the status of a particular process |
| pidof | Gives the Process ID (PID) of a process |
| kill PID | Kills a process |
| nice | Starts a process with a given priority |
| renice | Changes priority of an already running process |
| df | Gives free hard disk space on your system |
| free | Gives free RAM on your system |
System Information
| Command | Description |
|---|---|
| time | It is a utility that measures the time taken by a program to execute. |
| /proc | The files under /proc displays system information. |
| dmseg | This command is used to print the contents of the bootup messages displayed by the kernel. This is particularly useful in debugging issues. |
| df | Displays the information about the space on the mounted file-systems. |
| who | Displays information about the logged in users including their login time. |
| w | This command displays who are logged in into the system and the processes they are running. |
| users | This command prints the name of the currently logged in users. |
| last | This command displays the time of the logged-out users. This also displays the information when the computer was rebooted. |
| lastlog | Displays a list of the users and the time/day of their login. |
| whoami | It tells the username of the logged in user. |
| free | Displays memory status. (Total, Used, Free, cached, Swap) |
| uptime | w | It displays how long the computer has been up and running. Additionally, it displays the number of users and the processor load. |
| uname | It is used to display system information such as OS type, kernel version, etc. |
| xargs | This command is used to run a command as many times as required. |
| date | It is used to display the system. It can also be used to set the date/time. |
| cal | This command displays the calendar of the current month. |
| acpi | This command is used to display the battery status and other ACPI(Advanced Configuration and Power Information) related information. |
| acpi_available | This command is used to test if the ACPI subsystem is available. |
| aptitude |
VI Editing Commands
| Command | Description |
|---|---|
| i | Insert at cursor (goes into insert mode) |
| a | Write after cursor (goes into insert mode) |
| A | Write at the end of line (goes into insert mode) |
| ESC | Terminate insert mode |
| u | Undo last change |
| U | Undo all changes to the entire line |
| o | Open a new line (goes into insert mode) |
| dd | Delete line |
| 3dd | Delete 3 lines |
| D | Delete contents of line after the cursor |
| C | Delete contents of a line after the cursor and insert new text. Press ESC key to end insertion. |
| dw | Delete word |
| 4dw | Delete 4 words |
| cw | Change word |
| x | Delete character at the cursor |
| r | Replace character |
| R | Overwrite characters from cursor onward |
| s | Substitute one character under cursor continue to insert |
| S | Substitute entire line and begin to insert at the beginning of the line |
| ~ | Change case of individual character |
References: Linoxide, Guru 99, Hackr, Loggly, Phoenixnap
Conclusion
I hope you found this cheatsheet helpful. If you need any help please let me know in the comment section
Let's connect on Twitter and LinkedIn
👋 Thanks for reading, See you next time
Top comments (4)
Your "User management commands" descriptions are all wrong - they're copied from your environment variables table.
Thanks for mentioning, I fixed it 😀
I truly respect and Appreciate your hardWork mann !
Thanks Asif, Glad you liked it :)