You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

263 lines
9.8 KiB

10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
  1. \documentclass[8pt, letter, landscape]{extarticle}
  2. \usepackage{extsizes}
  3. \usepackage[
  4. margin=0.5in,
  5. top=2cm,
  6. bottom=2cm
  7. ]{geometry}
  8. \usepackage{lmodern}
  9. \usepackage[os=win]{menukeys}
  10. % Using this, but see other solution below
  11. % This option works better with small font sizes
  12. \usepackage{ragged2e} % Make right margin look better
  13. \raggedright
  14. \usepackage{titlesec}
  15. \titleformat{\section}[display]
  16. {\large\scshape}{\thesection}{}{\hrule\vspace{3pt}}{}
  17. % Define a date the way we like it
  18. \usepackage[en-AU]{datetime2}
  19. \usepackage{enumitem}
  20. \setlist[description]{
  21. style=nextline,
  22. font={\bfseries\ttfamily},
  23. itemsep=1pt,
  24. parsep=0pt
  25. }
  26. \usepackage{fancyhdr}
  27. \pagestyle{fancy}
  28. \fancyhf{}
  29. \fancyhead[L]{\textbf{A Linux Cheat Sheet}}
  30. \fancyhead[R]{\texttt{https://git.kjodle.net/kjodle/linux-cheat-sheet}}
  31. \fancyfoot[L]{Version 1.0.0 • \today}
  32. \fancyfoot[R]{Page \thepage}
  33. \renewcommand{\footrulewidth}{0.4pt}
  34. % Redefining headrule
  35. % See https://tex.stackexchange.com/a/584638/245702
  36. \makeatletter
  37. \renewcommand{\headrule}{\hrule height 1pt \vspace{1pt}\hrule height 0.25pt}
  38. \usepackage{multicol}
  39. \setlength{\columnseprule}{0.3pt}
  40. \setlength{\columnsep}{1cm}
  41. \usepackage[T1]{fontenc}
  42. \usepackage[utf8]{inputenc}
  43. \usepackage{tikz}
  44. \usetikzlibrary{shadows}
  45. % Not currently used; using «menukeys» package instead
  46. % See https://tex.stackexchange.com/questions/5226/keyboard-font-for-latex
  47. \newcommand*\keystroke[1]{%
  48. \tikz[baseline=(key.base)]
  49. \node[%
  50. draw,
  51. fill=white,
  52. drop shadow={shadow xshift=0.4ex,shadow yshift=-0.2ex,fill=black,opacity=0.35},
  53. rectangle,
  54. rounded corners=2pt,
  55. inner xsep=3pt,
  56. inner ysep=0.5pt,
  57. line width=0.5pt,
  58. font=\footnotesize\ttfamily
  59. ](key) {#1\strut}
  60. ;
  61. }
  62. % See https://semver.org/ for versioning meaning
  63. \begin{document}
  64. \begin{multicols*}{4}
  65. As always, check the \texttt{man} files for additional options and parameters.
  66. \section*{Disk Usage}
  67. \begin{description}
  68. \item[df] Get a report on the system's disk space usage
  69. \item[du] Check the disk space usage of a file or directory
  70. \item[du -ah] Show disk usage for all files and directories in human readable sizes
  71. \item[du -sh] Show disk usage of the current directory
  72. \item[fdisk -l] Show disk partitions, sizes, and types
  73. \item[findmnt] Show target mount point for all filesystems
  74. \end{description}
  75. \section*{Files}
  76. \begin{description}
  77. \item[ls] List files in a directory
  78. \item[ls -R] List all files in all subdirectories
  79. \item[ls -a] List hidden files
  80. \item[ls -l] List detailed information in a tabular format
  81. \item[ls -h] List sizes in human-readable format
  82. \item[cat] List the contents of a file on \texttt{stdout}
  83. \item[cat <file>] Create a new file
  84. \item[cat file1 file2 > file3] Joins two files and stores the output as a new file
  85. \item[cat <file.txt> | tr a-z A-Z output.txt] Convert a file to upper or lower case
  86. \item[diff] Compare the contents of two files line by line
  87. \item[rm] Delete (permanently) a file
  88. \item[cp] Copy files
  89. \item[cp file1 file2] Copy the contents of the first file to the second one
  90. \item[cp -r <directorya> <directory2>] Copy recursively the contents of the first directory into the second directory.
  91. \item[mv] Move or rename files
  92. \item[mv file1 file2] Rename a file
  93. \item[ln -s <path/to/file> <link name>] Create a symbolic link to a file
  94. \item[touch <newfile>] Create a new file
  95. \item[touch <oldfile>] Update the modification time of an existing file
  96. \item[more <file>] Show the contents of a file
  97. \item[head <file>] Show the first 10 lines of a file
  98. \item[head -<n> <file>] Show the first \texttt{n} lines of a file
  99. \item[tail <file>] Show the last 10 lines of a file
  100. \item[tail -<n> <file>] Show the last \texttt{n} lines of a file
  101. \item[locate] Search for a file or directory
  102. \item[find] Locate files within a directory
  103. \end{description}
  104. \section*{Directories}
  105. \begin{description}
  106. \item[cd] Change the current directory
  107. \item[cd..] Move one directory up
  108. \item[cd-] Move to your previous directory
  109. \item[pwd] Show the current directory (relative to \texttt{\$HOME})
  110. \item[scp <file> <server/file>] Securely copy a specific file to a server directory
  111. \item[mkdir] Create a new directory
  112. \item[rmdir] Delete an empty directory
  113. \item[rsync -a </path/to/file> </file>] Synchronize the contents of a specific direcotry with a backup directory
  114. \item[rm -r <directory>] Remove a non-empty directory
  115. \item[rm -ri <directory>] Remove a non-empty directory recursively, and require confirmation of each item
  116. \end{description}
  117. \section*{Archives}
  118. \begin{description}
  119. \item[tar]Archive multiple files into a common Linux file format (\textbf{Note:} \texttt{tar} files are \textit{not} compressed.)
  120. \item[tar -xf file.tar] Extract an archived file
  121. \item[tar -cf file.tar file1.txt file2.txt] Create an archive from one or more files
  122. \item[tar -czf file.txt file.tar.gz] Create a gzip-compressed file (\textbf{Note:} the file extensions \texttt{.tar.gz} and \texttt{.tgz} are equivalent.)
  123. \item[gzip file] Compress a file with the \texttt{.gz} extension
  124. \item[gpg -c <file>] Encrypt a file
  125. \item[gpg <file>] Decrypt a file
  126. \item[zip <archive.zip> <file1> <file2>] Compress files into a zip archive
  127. \item[unzip <archive.zip>] Extract zipped files from a zip archive
  128. \end{description}
  129. \section*{System}
  130. \begin{description}
  131. \item[history] Review previously entered commands
  132. \item[uname] Print information about your Linux system
  133. \item[uname -a] Show system and kernel
  134. \item[head -n1 /etc/issue] Show the current system software
  135. \item[jobs] Display currently running jobs
  136. \item[top] Monitor system resource usage
  137. \item[ps] Show a snapshot of active processes
  138. \item[kill <pid>] Terminate a process with process id <pid>
  139. \item[man <command>] Display the manual pages for a given command
  140. \item[uname -r] Show system information
  141. \item[timedatectl] Query and change the system clock
  142. \item[last reboot] Show the system reboot history
  143. \item[uptime] Show how long the system has been running, including load average
  144. \item[echo \$<variable>] Show the value of a variable
  145. \item[echo \$PATH] Show the current value of the \texttt{\$PATH} variable
  146. \end{description}
  147. \section*{Network}
  148. \textbf{Note:} Many of these are not installed by default on most systems.
  149. \begin{description}
  150. \item[hostname] Display the name of your host or network
  151. \item[ip addr show] Show IP addresses and network interfaces
  152. \item[ping] Check connectivity to a server
  153. \item[ifconfig] Show IP addresses of all network interfaces
  154. \item[netstat -pnltu] Show active ports
  155. \item[netstat -nutlp] Show more information about a domain
  156. \item[whois <domain>] Show more information about a domain
  157. \item[dig <domain>] Show DNS information about a domain
  158. \item[host <domain>] Do an IP lookup for a domain
  159. \item[hostname -i] Show the IP address of the system
  160. \end{description}
  161. \section*{Users, Groups, and Permissions}
  162. \begin{description}
  163. \item[id] Show information about the current user
  164. \item[useradd] Create a new user
  165. \item[passwrd] Add a password to a user's account
  166. \item[last] Show last logins
  167. \item[userdel <user>] Delete a user
  168. \item[chmod] Change the read, write, and execute permissions of files and directories
  169. \item[chmod u + x <file>] Give the user execute permissions on a file
  170. \item[chmod u+rw,go+r <file>] Give read and write permissions to the owner, and read-only permissions to the group and others.
  171. \item[chmod -R 755 <directory>] Change the permissions of a directory and its files recursively
  172. \item[chown] Change or transfer file ownership
  173. \item[chown <user> <file>] Change the ownership of a file to a given user
  174. \item[chown :<group> <file>] Change the group of a file to a given group (\textbf{Note:} Instead of the group permissions, the user permissions will apply if the owner user is in this group.)
  175. \item[sudo] Perform tasks as the root user
  176. \end{description}
  177. Permissions are always in the order: owner, group, others.
  178. \hspace{1em} Calculate permission digits by adding these numbers:
  179. \begin{itemize}[noitemsep]
  180. \item 4 — read (r)
  181. \item 2 — write (w)
  182. \item 1 — execute (x)
  183. \end{itemize}
  184. \section*{Pipes and Redirection}
  185. \begin{description}
  186. \item[cmd1 | cmd2] Pipe the \texttt{stdout} of the first command to the second command
  187. \item[cmd1 |\& cmd2] Pipe the \texttt{stderr} of the first command to the second command
  188. \item[cmd1 > file.txt] Redirect the \texttt{stdout} of a command to a file
  189. \item[cmd1 2>error.log] Redirect the \texttt{stderr} of a commmand to a log file
  190. \end{description}
  191. \section*{Command Lists}
  192. \begin{description}
  193. \item[cmd1 ; cmd2] Run \textit{cmd1} and then run \textit{cmd2}
  194. \item[cmd1 \&\& cmd2] Run \textit{cmd2} if \textit{cmd1} is successful
  195. \item[cmd1 || cmd2] Run \textit{cmd2} if \textit{cmd1} is not successful
  196. \end{description}
  197. \section*{Keyboard Shortcuts}
  198. \begin{description}
  199. \item[\keys{ctrl + a}] Move to the beginning of a line
  200. \item[\keys{ctrl + e}] Move to the end of the line
  201. \item[\keys{ctrl + w}] Cut one word before the cursor and add it to the clipboard
  202. \item[\keys{ctrl + u}] Cut part of the line before the cursor and add it to the clipboard
  203. \item[\keys{ctrl + k}] Cut part of the line after the cursor and add it to the clipboard
  204. \item[\keys{ctrl + y}] Paste from the clipboard
  205. \item
  206. \item[\keys{ctrl + z}] Pause the command
  207. \item[\keys{ctrl + c}] Stop and terminate the current command
  208. \item
  209. \item[\keys{ctrl + s}] Freeze the terminal
  210. \item[\keys{ctrl + q}] Unfreeze the terminal
  211. \item
  212. \item[\keys{$uparrow$}] Review the command history
  213. \item[\keys{ctrl + o}] Run the previously recalled command
  214. \item[\keys{ctrl + g}] Exit the command history without running a command
  215. \item[\keys{ctrl + r}] Recall the last command that matches the provided characters
  216. \item[\keys{Tab}] Autofill typing
  217. \item[\keys{!}\keys{!}] Repeat the last command
  218. \item[\keys{alt + /}] Move to the end of the file
  219. \item[exit] Log out of the current session
  220. \end{description}
  221. \end{multicols*}
  222. \end{document}