\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{rocket248} \pdfinfo{ /Title (linux.pdf) /Creator (Cheatography) /Author (rocket248) /Subject (Шпаргалка Linux 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}{3279A8} \definecolor{LightBackground}{HTML}{F2F6F9} \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 Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{rocket248} via \textcolor{DarkBackground}{\uline{cheatography.com/189989/cs/39605/}}} \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}rocket248 \\ \uline{cheatography.com/rocket248} \\ \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 July, 2023.\\ 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*}{2} \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{МЕНЕДЖЕР ПАКЕТОВ YUM}} \tn % Row 0 \SetRowColor{LightBackground} yum repolist & Список \seqsplit{репозиториев} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} yum repoinfo nauphone & \seqsplit{Информация} о \seqsplit{репозитории} \tn % Row Count 5 (+ 3) % Row 2 \SetRowColor{LightBackground} yum repo-pkgs nauphone list | grep outbound & Поиск доступных пакетов по названию \tn % Row Count 9 (+ 4) % Row 3 \SetRowColor{white} rpm -qa | grep \seqsplit{nauphone-message-box} & Текущая \seqsplit{установленная} версия пакета \tn % Row Count 13 (+ 4) % Row 4 \SetRowColor{LightBackground} yum clean all & Очистить кэш пакетов, \seqsplit{необходимо} для \seqsplit{обновления} \seqsplit{метаданных} \tn % Row Count 19 (+ 6) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{yumdownloader \seqsplit{robots-nauphone-ivr-v2-erudite-outbound}.x86\_64} \tn % Row Count 21 (+ 2) % Row 6 \SetRowColor{LightBackground} rpm2cpio \seqsplit{robots-nauphone-ivr-v2-erudite-outbound-5}.8.0-1.el7.x86\_64.rpm | cpio -idmv & Скачать пакет для \seqsplit{дальнейшего} анализа (в отдельный каталог!) \tn % Row Count 27 (+ 6) % Row 7 \SetRowColor{white} yumdownloader nauphone* -{}-resolve & \seqsplit{Скачивание} в текущую \seqsplit{директорию} rpm-пакетов и всех \seqsplit{зависимостей} \tn % Row Count 33 (+ 6) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{МЕНЕДЖЕР ПАКЕТОВ YUM (cont)}} \tn % Row 8 \SetRowColor{LightBackground} yum whatprovides java-17-openjdk & Узнать из какого \seqsplit{репозитория} пакет \tn % Row Count 4 (+ 4) % Row 9 \SetRowColor{white} yum provides \seqsplit{"/usr/share/Modules"} & Узнать из какого пакета файл \tn % Row Count 7 (+ 3) % Row 10 \SetRowColor{LightBackground} yum localinstall *.rpm & \seqsplit{Установить} \seqsplit{предварительно} скаченные rpm-пакеты \tn % Row Count 12 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{ПАРСИНГ ЛОГОВ}} \tn % Row 0 \SetRowColor{LightBackground} tail -f \seqsplit{/opt/nsd/logs/sdng.log} | grep -{}-line-buffered script.Script & Выдача лога в реальном времени по ключевым словам \tn % Row Count 5 (+ 5) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{journalctl -{}-since "2022-03-22 14:37:00" \textgreater{} /root/journalctl.txt} \tn % Row Count 7 (+ 2) % Row 2 \SetRowColor{LightBackground} journalctl -xe -{}-since "5 min ago" & journalctl \tn % Row Count 9 (+ 2) % Row 3 \SetRowColor{white} less /var/log/messages & Чтение и пагинация по логу \tn % Row Count 12 (+ 3) % Row 4 \SetRowColor{LightBackground} tail -n 30 /var/log/messages & \seqsplit{Отображение} последних 30 строк из лога \tn % Row Count 16 (+ 4) % Row 5 \SetRowColor{white} head /var/log/messages & \seqsplit{Отображение} первых 10 строк из лога \tn % Row Count 20 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{ФАЙЛОВАЯ СИСТЕМА}} \tn % Row 0 \SetRowColor{LightBackground} fdisk -l & \seqsplit{Информация} о дисках \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} lsblk & \seqsplit{Информация} о блочных \seqsplit{устройствах} \tn % Row Count 6 (+ 4) % Row 2 \SetRowColor{LightBackground} df -H & \seqsplit{Информация} о разделах \tn % Row Count 8 (+ 2) % Row 3 \SetRowColor{white} du -sh /opt/* | sort -hr & Просмотр размера каталогов \tn % Row Count 11 (+ 3) % Row 4 \SetRowColor{LightBackground} cat /dev/null \textgreater{} \seqsplit{/opt/nsd/logs/sdng.log} & Обнуление лога \tn % Row Count 13 (+ 2) % Row 5 \SetRowColor{white} find . -type f -name "sip" & Поиск файла \tn % Row Count 15 (+ 2) % Row 6 \SetRowColor{LightBackground} find . -name "*.php" -mtime -5 -exec grep -qi 'filesman' \{\} \textbackslash{}; -exec ls -la \{\} \textbackslash{}; & Поиск файла по \seqsplit{содержимому} \tn % Row Count 20 (+ 5) % Row 7 \SetRowColor{white} mkdir & Создать каталог \tn % Row Count 22 (+ 2) % Row 8 \SetRowColor{LightBackground} which & Найти \seqsplit{исполняемый} файл в PATH \tn % Row Count 25 (+ 3) % Row 9 \SetRowColor{white} locate & Найти \seqsplit{расположение} файла \tn % Row Count 28 (+ 3) % Row 10 \SetRowColor{LightBackground} namei -l \seqsplit{/opt/naumen/nauphone/spool/addons/httpservice3/} & Проверка прав доступа по всему пути \tn % Row Count 32 (+ 4) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{ФАЙЛОВАЯ СИСТЕМА (cont)}} \tn % Row 11 \SetRowColor{LightBackground} sudo -u voip test -r \seqsplit{/opt/naumen/nauphone/spool/addons/httpservice3/config}.py; echo "\$?" & Проверка чтения файла от имени \seqsplit{пользователя} \tn % Row Count 5 (+ 5) % Row 12 \SetRowColor{white} sudo sed -i 's/\textasciicircum{}SELINUX=enforcing\$/SELINUX=permissive/' /etc/selinux/config & Замена строк в текстовом файле \tn % Row Count 9 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{СЕРВИСЫ SYSTEMCTL}} \tn % Row 0 \SetRowColor{LightBackground} systemctl list-units -{}-type service & Все \seqsplit{запущенные} сервисы \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} systemctl list-units -{}-type service -all & Вообще все сервисы \tn % Row Count 5 (+ 2) % Row 2 \SetRowColor{LightBackground} systemctl list-unit-files -{}-state enabled & Список сервисов, \seqsplit{запускаемых} \seqsplit{автоматически} \tn % Row Count 9 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{FIREWALLD}} \tn % Row 0 \SetRowColor{LightBackground} firewall-cmd -{}-get-services & список доступных сервисов \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} firewall-cmd -{}-permanent -{}-add-service=http & \seqsplit{добавление} \seqsplit{определённого} сервиса в список \seqsplit{исключений} \tn % Row Count 8 (+ 5) % Row 2 \SetRowColor{LightBackground} firewall-cmd -{}-zone=public -{}-permanent -{}-add-port=3389/tcp & \seqsplit{добавление} \seqsplit{определённого} порта в список \seqsplit{исключений} \tn % Row Count 13 (+ 5) % Row 3 \SetRowColor{white} firewall-cmd -{}-list-all & просмотр всех текущих правил \tn % Row Count 16 (+ 3) % Row 4 \SetRowColor{LightBackground} firewall-cmd -{}-reload & \seqsplit{сохранение} внесённых изменений \tn % Row Count 19 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{DOCKER}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{docker service ls} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{docker service logs o5d8agnmqjq8 -f} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{docker service logs o5d8agnmqjq8 -{}-since 20m} \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{docker service scale \seqsplit{erudite-project\_levitan=0}} \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{docker service scale \seqsplit{erudite-project\_levitan=1}} \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{docker inspect -f '\{\{.Id\}\}' 9ec9cedca3cf (get long id)} \tn % Row Count 7 (+ 2) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{docker ps -{}-format "table \{\{.ID\}\}\textbackslash{}t\{\{.Names\}\}\textbackslash{}t\{\{.Status\}\}\textbackslash{}t\{\{.Ports\}\}"} \tn % Row Count 9 (+ 2) % Row 7 \SetRowColor{white} docker ps -a & получить id \seqsplit{контейнера} \tn % Row Count 11 (+ 2) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{docker exec -it 072ad33a5836 bash} \tn % Row Count 12 (+ 1) % Row 9 \SetRowColor{white} docker exec -it -u root 072ad33a5836 bash & зайти под рутом \tn % Row Count 15 (+ 3) % Row 10 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{docker cp \seqsplit{/etc/pki/ca-trust/source/anchors/ca}.cer \seqsplit{1dd19051682e:/etc/pki/ca-trust/source/anchors/ca}.cer} \tn % Row Count 18 (+ 3) % Row 11 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{docker cp \seqsplit{2195d5163046:/home/keras/archive}.tar.gz /root/archive.tar.gz} \tn % Row Count 20 (+ 2) % Row 12 \SetRowColor{LightBackground} find /proc -mindepth 2 -maxdepth 2 -name exe -exec ls -lh \{\} \textbackslash{}; -exec sh -c 'echo -n cmdline: ; cat "\$\{0\%exe\}cmdline" | xargs -0 echo ; echo' \{\} \textbackslash{}; & ps без ps \tn % Row Count 28 (+ 8) % Row 13 \SetRowColor{white} docker stack rm erudite-project & остановка сервисов erudite \tn % Row Count 31 (+ 3) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{DOCKER (cont)}} \tn % Row 14 \SetRowColor{LightBackground} docker stop \$(docker ps -a -q) \&\& docker rm \$(docker ps -a -q) & остановка и удаление всех \seqsplit{контейнеров} \tn % Row Count 4 (+ 4) % Row 15 \SetRowColor{white} docker rm \$(docker ps -a -q) & удалить все \seqsplit{контейнеры} ??? \tn % Row Count 7 (+ 3) % Row 16 \SetRowColor{LightBackground} docker rmi -f \$(docker images -q) & удалить все образы \tn % Row Count 9 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} p{0.8 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{CURL}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{curl \seqsplit{https://ncc.sigma-it.local/api/v2/} -{}-noproxy '*' -v -{}-insecure} \tn % Row Count 2 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.6 cm} x{4.4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{CRONTAB}} \tn % Row 0 \SetRowColor{LightBackground} ls -la /var/spool/cron & Файлы кронтаба \tn % Row Count 2 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.56 cm} x{5.44 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{ОПЕРАЦИОННАЯ СИСТЕМА}} \tn % Row 0 \SetRowColor{LightBackground} cat \seqsplit{/etc/os-release} & версия операционной системы \tn % Row Count 2 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{СЕТЬ}} \tn % Row 0 \SetRowColor{LightBackground} ip -a & \seqsplit{Информация} о сетевых \seqsplit{интерфейсах} \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} tcpdump -i eth0 -w \seqsplit{/tmp/tcpdump\_packets}.pcap & Сбор трафика \tn % Row Count 7 (+ 3) % Row 2 \SetRowColor{LightBackground} nmap -sS 10.196.18.196 & \seqsplit{Информация} об открытых портах хоста \tn % Row Count 11 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{5.84 cm} x{2.16 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{АППАРАТНАЯ ЧАСТЬ}} \tn % Row 0 \SetRowColor{LightBackground} free & \seqsplit{Память} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} grep -c \textasciicircum{}processor /proc/cpuinfo & CPU \tn % Row Count 4 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{SSL}} \tn % Row 0 \SetRowColor{LightBackground} openssl s\_client -connect \seqsplit{ncc.sigma-it.local:443} & Проверка ответа от сервера \tn % Row Count 3 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{GIT}} \tn % Row 0 \SetRowColor{LightBackground} git clone \seqsplit{https://gitlab.sigma-it.ru/vushanyov/httpservice3.git} httpservice3 & \seqsplit{клонирование} \seqsplit{существующего} \seqsplit{репозитория} \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} git init & создание окружения git \tn % Row Count 6 (+ 2) % Row 2 \SetRowColor{LightBackground} git add \seqsplit{/plugins/sigma\_tracker/} & \seqsplit{добавление} файла или каталога в git \tn % Row Count 10 (+ 4) % Row 3 \SetRowColor{white} git commit -am 'Релиз \seqsplit{кастомного} виджета и плагина по \seqsplit{артефактам'} & создание коммита \tn % Row Count 16 (+ 6) % Row 4 \SetRowColor{LightBackground} git status & состояние git \tn % Row Count 18 (+ 2) % Row 5 \SetRowColor{white} git push & загрузка в \seqsplit{репозиторий} \tn % Row Count 21 (+ 3) % Row 6 \SetRowColor{LightBackground} git pull & \seqsplit{обновление} из \seqsplit{репозитория} \tn % Row Count 24 (+ 3) % Row 7 \SetRowColor{white} git config -{}-global user.name "Vlad Ushanyov" & \seqsplit{конфигурирование} автора \tn % Row Count 27 (+ 3) % Row 8 \SetRowColor{LightBackground} git config -{}-global user.email \seqsplit{"v.ushanyov@sigma-it.ru"} & \seqsplit{конфигурирование} автора \tn % Row Count 30 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}