Our Linux cheat sheet includes some of the most commonly used commands along with brief explanations and examples of what the commands can do. Credit: PeopleImages.com - Yuri A / Shutterstock One of the things you need when building your “chops” on Linux is a command vocabulary that will allow you to do all of the things that you need to do on the command line. One of the best ways to do this is to start with a “cheat sheet” – a list of the commonly used commands with brief explanations and examples of what the commands can do. A cheat sheet can help you to become familiar with commands you might not even have known were available. This post provides an intro Linux cheat sheet. It includes a series of commands with descriptions and examples and categorizes them in groups by their primary focus. Keep in mind that, while most commands on Linux will work the same from one distribution to the next, some commands – like those used to install manage packages (tools, programming languages, etc.) – will differ from one distro to another. A brief cheat sheet The tables below provides information on some of the most basic Linux commands. Getting familiar with your account Command Function Example pwd display current file system location pwd whoami display username whoami who list logged in users who ls list files in current location ls; ls -l; ls -a env display settings (search path, command history …) env echo repeat the argument provided echo hello; echo $PATH history list recently used commands history; history | tail -5 passwd reset your password passwd Looking at text file content Command Function Example cat display file content cat myfile more view file content a page at a time more myfile less display file content a page at a time, allows backing up less myfile head show top of file head myfile; head -5 myfile tail show bottom of file tail myfile; tail -3 myfile Managing your files Command Function Example chmod change file permissions chmod a+x myscript; chmod 700 myscript cp make a copy of a file cp myfile savefile mv rename a file or move to another location mv file oldfile; mv script bin rm delete a file rm oldfile View running processes Command Function Example ps show processes associated with your current login ps ps -ef show processes running on the system ps -ef; ps -ef | more Command output The examples in this section provide sample output for many of the commands described in the tables above. env The env command provides a lot of information on your command environment. This includes the shell assigned to your account, how many of the commands you run will be maintained in your command history (HISTSIZE), your default text editor, your current file system location, terminal type and most recent former file system location as well as other data. $ env SHELL=/bin/bash HISTCONTROL=ignoredups HISTSIZE=1000 HOSTNAME=fedora EDITOR=/usr/bin/nano PWD=/home/justme LOGNAME=justme HOME=/home/justme LANG=en_US.UTF-8 LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;37;41:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.m4a=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.oga=01;36:*.opus=01;36:*.spx=01;36:*.xspf=01;36:*~=00;90:*#=00;90:*.bak=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.swp=00;90:*.tmp=00;90:*.dpkg-dist=00;90:*.dpkg-old=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90: TERM=xterm LESSOPEN=||/usr/bin/lesspipe.sh %s USER=justme SHLVL=1 DEBUGINFOD_URLS=https://debuginfod.fedoraproject.org/ XDG_DATA_DIRS=/home/justme/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share PATH=/home/justme/.local/bin:/home/justme/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin MAIL=/var/spool/mail/justme _=/usr/bin/env OLDPWD=/tmp echo The echo command will display content you provide and variables you include, but it can also be used to add lines to existing files. $ echo date: `date` date: Tue Nov 20 02:53:43 PM EST 2023 Note that including command output in an echo command requires using backticks to run the command rather than just display its name. To add the generated output to a file, you would use a command like this: $ echo date: `date` > myreport $ cat myreport date: Tue Nov 20 03:06:33 PM EST 2023 Keep in mind that > overwrites and former file content. Use >> to append to an existing file. history The history command shows recent commands you have run – as many as your $HISTSIZE setting allows. You can narrow this down to the most recent four with a command like this: $ history | tail -3 84 echo date: `date` > myreport 85 cat myreport 86 history | tail -3 The passwd command allows you to change your password but requires that you enter your current password first. It also enforces some length and complexity requirements. $ passwd Changing password for user justme. Current password: New password: Retype new password: passwd: all authentication tokens updated successfully. more The more command displays file content a screen at a time. To save space below, I’ve used the -n option to display only five lines at a time from a very long list of time zones. You would press the enter key to see the next five. $ more -n 5 TZs Africa/Abidjan Africa/Accra Africa/Addis_Ababa Africa/Algiers Africa/Asmara head and tail The head and tail commands will display the top and bottom lines in text files. As with the more command, you can add the -n option to limit the number of lines displayed. $ head -n 5 TZs Africa/Abidjan Africa/Accra Africa/Addis_Ababa Africa/Algiers Africa/Asmara $ tail -n 5 TZs UTC Universal W-SU WET Zulu chmod The chmod command is used to change file permissions. If you set up a script that you want others to be able to run, you can give them execute permission with command like this: $ chmod 755 myscript The first 5 in the chmod command above sets the script’s permissions to allow others in the same group to read and execute the script. The second allows anyone else to run the script (provided they have access to the file’s location). Normally, Linux accounts are set up with the account owner being the only member of a same-named group. $ chmod 755 mkTable $ ls -l mkTable -rwxr-xr-x. 1 justme justme 701 Nov 17 14:05 mkTable cp The cp command makes a copy of a file. For example, it’s often a good idea to make a backup copy of a file before making significant changes so that you can easily “roll back” if something goes wrong. $ cp myfile myfile.backup mv and rm The mv (remove) command allows you to rename a file, move it to another location, or do both in a single command. Here are some examples: $ mv myreport oldreport $ mv myscript ~/bin $ mv myreport /shared/reports The rm (remove) command deletes a file. $ rm oldfile $ ls oldfile ls: cannot access 'oldfile': No such file or directory The final ls command above shows that the file is no longer available after the rm command is run. ps The ps command shows running processes. Without arguments, it only shows processes related to your current login. $ ps PID TTY TIME CMD 6688 pts/1 00:00:00 bash 7201 pts/1 00:00:00 ps Use ps -ef (ps -aux on some systems) to see all running processes. You can send the command output to a more or a grep command to restrict the output to just what you’re looking for. $ ps -ef | grep sshd root 782 1 0 Nov20 ? 00:00:00 sshd: /usr/sbin/sshd -D root 6632 782 0 14:38 ? 00:00:00 sshd: shs [priv] justme 6678 6632 0 14:38 ? 00:00:00 sshd: shs@pts/1 justme 7228 6688 0 16:14 pts/1 00:00:00 grep --color=auto sshd The command output above is showing processes associated with the sshd (secure login) processes. who The who command provides a list of everyone currently logged into the system, whether at the system console or logged on remotely. $ who fedora seat0 2023-11-16 09:06 (login screen) fedora tty2 2023-11-16 09:06 (tty2) justme pts/1 2023-11-17 14:38 (192.168.0.8) Wrap-up There’s a lot to learn about Linux before you will likely feel “at home” on the command line, but it’s well worth the effort. Related content how-to How to examine files on Linux Linux provides very useful options for viewing file attributes, such as owners and permissions, as well as file content. By Sandra Henry Stocker Oct 24, 2024 6 mins Linux how-to 8 easy ways to reuse commands on Linux Typing the same command again and again can become tiresome. Here are a number of ways you can make repeating commands – or repeating commands but with some changes – a lot easier than you might expect. By Sandra Henry-Stocker Oct 15, 2024 5 mins Linux news SUSE Edge upgrade targets Kubernetes and Linux at the edge SUSE Edge 3.1 includes a new stack validation framework and an image builder tool that are aimed at improving the scalability and manageability of complex Kubernetes and Linux edge-computing deployments. By Sean Michael Kerner Oct 15, 2024 6 mins Edge Computing Linux Network Management Software how-to Lesser-known xargs command is a versatile time saver Boost your Linux command line options and simplify your work with xargs, a handy tool for a number of data manipulation tasks. By Sandra Henry Stocker Oct 11, 2024 6 mins Linux PODCASTS VIDEOS RESOURCES EVENTS NEWSLETTERS Newsletter Promo Module Test Description for newsletter promo module. Please enter a valid email address Subscribe