\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{bytebar} \pdfinfo{ /Title (linux-commands.pdf) /Creator (Cheatography) /Author (bytebar) /Subject (Linux Commands Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{A3A3A3} \definecolor{LightBackground}{HTML}{F3F3F3} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Linux Commands Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{bytebar} via \textcolor{DarkBackground}{\uline{cheatography.com/218949/cs/48439/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}bytebar \\ \uline{cheatography.com/bytebar} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 14th September, 2026.\\ Updated 14th September, 2026.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{tabularx}{17.67cm}{x{6.7353 cm} x{10.5347 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{17.67cm}}{\bf\textcolor{white}{Navigation \& Files}} \tn % Row 0 \SetRowColor{LightBackground} `pwd` & Print working directory \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `ls -la` & List all files incl. hidden, with details \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} `cd -` & Jump back to previous directory \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} `cp -r src dst` & Copy recursively \tn % Row Count 6 (+ 1) % Row 4 \SetRowColor{LightBackground} `mv old new` & Move / rename \tn % Row Count 7 (+ 1) % Row 5 \SetRowColor{white} `rm -rf dir` & Delete recursively, no prompt (⚠️ careful) \tn % Row Count 9 (+ 2) % Row 6 \SetRowColor{LightBackground} `mkdir -p a/b/c` & Create nested directories \tn % Row Count 11 (+ 2) % Row 7 \SetRowColor{white} `touch file` & Create empty file / update timestamp \tn % Row Count 13 (+ 2) % Row 8 \SetRowColor{LightBackground} `find / -name "*.log"` & Search by name \tn % Row Count 15 (+ 2) % Row 9 \SetRowColor{white} `grep -r "error" /var/log` & Search inside files, recursive \tn % Row Count 17 (+ 2) % Row 10 \SetRowColor{LightBackground} `cat / less / head / tail` & View files (`tail -f` follows live) \tn % Row Count 19 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{17.67cm}}{The 40+ commands CompTIA Linux+, Security+, and every sysadmin interview expect.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{17.67cm}{x{6.3899 cm} x{10.8801 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{17.67cm}}{\bf\textcolor{white}{Permissions}} \tn % Row 0 \SetRowColor{LightBackground} `ls -l` & Show permissions (`-rwxr-xr-{}-`) \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `chmod 755 file` & rwx / r-x / r-x — standard for scripts \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} `chmod 644 file` & rw- / r-{}- / r-{}- — standard for files \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} `chown user:group file` & Change owner \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} `sudo !!` & Re-run last command as root \tn % Row Count 10 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{17.67cm}}{{\bf{Numeric recap:}} 4 = read, 2 = write, 1 = execute → 7 = rwx, 6 = rw-, 5 = r-x, 4 = r-{}-} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{17.67cm}{x{6.7353 cm} x{10.5347 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{17.67cm}}{\bf\textcolor{white}{Networking}} \tn % Row 0 \SetRowColor{LightBackground} `ip a` & Show interfaces + IPs (modern `ifconfig`) \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `ip r` & Show routing table \tn % Row Count 3 (+ 1) % Row 2 \SetRowColor{LightBackground} `ping -c 4 host` & Test connectivity \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} `ss -tulpn` & Listening ports + processes (modern `netstat`) \tn % Row Count 7 (+ 2) % Row 4 \SetRowColor{LightBackground} `curl -I host` & Fetch headers \tn % Row Count 8 (+ 1) % Row 5 \SetRowColor{white} `dig +short example.com` & DNS lookup \tn % Row Count 10 (+ 2) % Row 6 \SetRowColor{LightBackground} `traceroute host` & Path packets take \tn % Row Count 12 (+ 2) % Row 7 \SetRowColor{white} `ssh user@host` & Secure remote shell \tn % Row Count 13 (+ 1) % Row 8 \SetRowColor{LightBackground} `scp file \seqsplit{user@host:/path`} & Secure copy \tn % Row Count 15 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{17.67cm}}{Modern replacements: `ip` for `ifconfig`, `ss` for `netstat`.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{17.67cm}{x{8.2896 cm} x{8.9804 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{17.67cm}}{\bf\textcolor{white}{System \& Processes}} \tn % Row 0 \SetRowColor{LightBackground} `ps aux | grep nginx` & Find processes \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `top` / `htop` & Live process monitor \tn % Row Count 3 (+ 1) % Row 2 \SetRowColor{LightBackground} `kill -9 PID` & Force-kill a process \tn % Row Count 4 (+ 1) % Row 3 \SetRowColor{white} `systemctl status nginx` & Service status \tn % Row Count 6 (+ 2) % Row 4 \SetRowColor{LightBackground} `systemctl restart nginx` & Restart a service \tn % Row Count 8 (+ 2) % Row 5 \SetRowColor{white} `journalctl -u nginx -f` & Follow service logs \tn % Row Count 10 (+ 2) % Row 6 \SetRowColor{LightBackground} `df -h` & Disk space (human-readable) \tn % Row Count 12 (+ 2) % Row 7 \SetRowColor{white} `du -sh *` & Directory sizes \tn % Row Count 13 (+ 1) % Row 8 \SetRowColor{LightBackground} `free -h` & Memory usage \tn % Row Count 14 (+ 1) % Row 9 \SetRowColor{white} `uptime` & Load + uptime \tn % Row Count 15 (+ 1) % Row 10 \SetRowColor{LightBackground} `uname -a` & Kernel / system info \tn % Row Count 16 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{17.67cm}}{`-h` means human-readable — use it for df, du, free.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{17.67cm}{x{8.8077 cm} x{8.4623 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{17.67cm}}{\bf\textcolor{white}{Text Power Tools}} \tn % Row 0 \SetRowColor{LightBackground} `grep -i "fail" log` & Case-insensitive search \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `sort file | uniq -c` & Count unique lines \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} `awk '\{print \$1\}' file` & Print column 1 \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} `sed 's/old/new/g' file` & Find and replace \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} `wc -l file` & Count lines \tn % Row Count 9 (+ 1) % Row 5 \SetRowColor{white} `history | grep ssh` & Search command history \tn % Row Count 11 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{17.67cm}}{Chain them with pipes — that's where the power is.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \end{document}