\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{InfinityCliff} \pdfinfo{ /Title (linux-command-line.pdf) /Creator (Cheatography) /Author (InfinityCliff) /Subject (Linux Command Line 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}{8636A3} \definecolor{LightBackground}{HTML}{F7F2F9} \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 Command Line Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{InfinityCliff} via \textcolor{DarkBackground}{\uline{cheatography.com/79806/cs/19403/}}} \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}InfinityCliff \\ \uline{cheatography.com/infinitycliff} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 19th April, 2019.\\ 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{multicols*}{3} \begin{tabularx}{5.377cm}{x{3.43413 cm} x{1.54287 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Folders \& Files}} \tn % Row 0 \SetRowColor{LightBackground} `\$ cp -a source/. /dest/` & Copy Directory \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `\$ rm -r mydir` & Remove Directory \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} `\$ sudo du -hs /{\emph{` \{\{nl\}\} `\$ sudo du -hs /etc/}} \{\{nl\}\}~\# to restrict to specified directory` & Usage by directory \tn % Row Count 8 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Misc}} \tn % Row 0 \SetRowColor{LightBackground} `\$ dpkg -{}-list` & List installed packages \{\{nl\}\}add `\textgreater{} **.txt` to dump list to file \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} `.tar.gz or tgz` \{\{nl\}\}`\$ tar xvzf ***.tar.gz \{\{nl\}\}\{\{nl\}\}\$ \textgreater{} .gz (.gzip) \{\{nl\}\}\$ gunzip ***.gz \{\{nl\}\}\{\{nl\}\}\$ \textgreater{}.tar.bz2 or .tbz \{\{nl\}\}\$ tar xvjf ***.tar.tbz \{\{nl\}\}\{\{nl\}\}\$ dtrx ***.tar.gz \{\{nl\}\}\$ dtrx ***.tar.bz2` & Unzip tar \{\{nl\}\}- v is for verbose \tn % Row Count 16 (+ 12) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.64701 cm} x{4.32999 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Change Permissions}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{`\$ sudo chmod -R ugo+rw /DATA/SHARE` \{\{link="https://manpages.ubuntu.com/manpages/trusty/man1/chmod.1posix.html"\}\}{[}...{]}\{\{/link\}\}} \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{bb\}\}The breakdown of the above command looks like:} \tn % Row Count 5 (+ 2) % Row 2 \SetRowColor{LightBackground} ~ & \{\{bl\}\}• sudo – this is used to gain admin rights for the command on any system that makes use of sudo (otherwise you'd have to 'su' to root and run the above command without 'sudo') \{\{nl\}\}• chmod – the command to modify permissions \{\{nl\}\} •-R – this modifies the permission of the parent folder and the child objects within \{\{nl\}\} •ugo+rw – this gives User, Group, and Other read and write access. \tn % Row Count 18 (+ 13) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{As you can probably surmise, this command, as shown above, opens wide the `SHARE` folder such that anyone on the system can have access to that folder. A more secure method would be to use groups `g` or current user `u`.} \tn % Row Count 23 (+ 5) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{bb\}\}The breakdown of user permissions looks like this:} \tn % Row Count 25 (+ 2) % Row 5 \SetRowColor{white} ~ & \{\{bl\}\}•u – user \{\{nl\}\}•g – group \{\{nl\}\}•o – other \{\{nl\}\} {\emph{The 'other' entry is the dangerous one, as it effectively gives everyone permission for the folder/file.}} \tn % Row Count 31 (+ 6) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{p{0.64701 cm} x{4.32999 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Change Permissions (cont)}} \tn % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{bb\}\}The permissions you can give to a file or folder are:} \tn % Row Count 2 (+ 2) % Row 7 \SetRowColor{white} & \{\{bl\}\}•r – read \{\{nl\}\}•w – write \{\{nl\}\}•x – execute \tn % Row Count 4 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Using the `-R` switch is important. If you have a number of sub-folders and files within the `SHARE` directory, and you want the permissions to apply from the parent object (the containing folder) to the child objects (the sub-folders and files), you must use the `-R` (recursive) switch so the same permissions are applied all the way to the deepest folder, contained within the parent. \{\{link="https://manpages.ubuntu.com/manpages/trusty/man1/chmod.1posix.html"\}\}{[}...{]}\{\{/link\}\}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}