Linux — основа DevOps: как швейцарский нож для серверов. Git — «машина времени» для кода. Docker упаковывает приложения в переносимые контейнеры. Kubernetes управляет контейнерами в кластере, Helm устанавливает приложения в Kubernetes, а Terraform описывает инфраструктуру в виде кода.
pwd — вывести текущий рабочий каталогls — вывести список файлов и каталоговcd — сменить каталогtouch — создать пустой файлmkdir — создать каталогrm — удалить файлы или каталогиrmdir — удалить пустой каталогcp — копировать файлы или каталогиmv — переместить или переименовать файлы и каталогиcat — вывести содержимое файлаecho — вывести строку текстаclear — очистить экран терминалаchmod — изменить права доступа к файламchown — изменить владельца файлаfind — искать файлы и каталогиgrep — искать текст в файлеwc — подсчитать строки, слова и символыhead — вывести первые строки файлаtail — вывести последние строки файлаsort — отсортировать содержимое файлаuniq — удалить повторяющиеся строкиdiff — построчно сравнить два файлаtar — упаковать файлы в архив tarzip/unzip — сжать и распаковать ZIP-файлыdf — показать использование дискового пространстваdu — показать размер каталогаtop — отслеживать процессы в реальном времениps — показать активные процессыkill — завершить процесс по PIDping — проверить сетевое соединениеwget — скачать файлы из интернетаcurl — передать данные на сервер или с сервераscp — безопасно копировать файлы между системамиrsync — синхронизировать файлы и каталогиawk — обработка текста и поиск по шаблонуsed — потоковый редактор для фильтрации и преобразования текстаcut — вырезать фрагменты из каждой строки файлаtr — заменить или удалить символыxargs — построить и выполнить командную строку из стандартного вводаln — создать символьные или жёсткие ссылкиdf -h — использование диска в удобочитаемом видеfree — показать использование памятиiostat — статистика CPU и ввода-выводаnetstat — сетевая статистика (современная замена: ss)ifconfig/ip — настройка сетевых интерфейсов (современная замена: ip)iptables — настройка правил файрволаsystemctl — управление systemd и сервисамиjournalctl — просмотр системных логовcrontab — планирование регулярных задачat — планирование задач на определённое времяuptime — время работы системыwhoami — показать текущего пользователяusers — список пользователей, вошедших в системуhostname — показать или задать имя хостаenv — показать переменные окруженияexport — задать переменные окруженияip addr — показать или настроить IP-адресаip route — показать или изменить таблицы маршрутизацииtraceroute — путь пакетов до узлаnslookup — запрос DNS-записейdig — запрос к DNS-серверамssh — подключение к удалённому серверу по SSHftp — передача файлов по протоколу FTPnmap — сканирование сети и обнаружение узловtelnet — связь с удалёнными узламиnetcat (nc) — чтение и запись данных по сетиlocate — быстро найти файлы по базе данныхstat — подробная информация о файлеtree — вывести каталоги в виде дереваfile — определить тип файлаbasename — извлечь имя файла из путиdirname — извлечь каталог из путиvmstat — статистика виртуальной памятиhtop — интерактивный просмотрщик процессов (альтернатива top)lsof — список открытых файловdmesg — сообщения кольцевого буфера ядраiotop — дисковый ввод-вывод по процессам в реальном времениapt — менеджер пакетов для Debian-подобных системyum/dnf — менеджер пакетов для RHEL-подобных системsnap — управление snap-пакетамиrpm — управление RPM-пакетамиmount/umount — смонтировать или размонтировать файловые системыfsck — проверить и восстановить файловую системуmkfs — создать файловую системуblkid — информация о блочных устройствахlsblk — список блочных устройствparted — интерактивное управление разделамиbash — интерпретатор команд и оболочка для скриптовsh — устаревший интерпретатор shellcron — автоматизация задачalias — создание сокращений для командsource — выполнить команды из файла в текущей оболочкеgcc — компиляция программ на Cmake — сборка и управление проектамиstrace — трассировка системных вызовов и сигналовgdb — отладка программgit — система контроля версийvim/nano — текстовые редакторы для скриптов и правокdate — показать или задать системные дату и времяcal — показать календарьman — показать справку по командеhistory — показать ранее выполненные командыGit — «машина времени» для кода: отслеживает изменения, помогает работать в команде без конфликтов и откатывать ошибки.
git init — инициализирует новый репозиторий в текущем каталогеПример: git initgit clone — копирует удалённый репозиторий на локальную машинуПример: git clone https://github.com/user/repo.gitgit status — состояние рабочего каталога и области подготовкиПример: git statusgit add — добавляет изменения в область подготовкиПример: git add file.txtgit commit — фиксирует изменения в репозиторииПример: git commit -m "Initial commit"git config — настройки пользователя, например имя и emailПример: git config --global user.name "Your Name"git log — история коммитовПример: git loggit show — подробная информация о коммитеПример: git show <commit-hash>git diff — изменения между коммитами, рабочим каталогом и областью подготовкиПример: git diffgit reset — убирает файлы из области подготовки или откатывает коммитыПример: git reset HEAD file.txtgit branch — список веток или создание новойПример: git branch feature-branchgit checkout — переключение веток или восстановление файловПример: git checkout feature-branchgit switch — переключение веток (современная замена checkout)Пример: git switch feature-branchgit merge — объединяет изменения из одной ветки в другуюПример: git merge feature-branchgit rebase — переносит коммиты одной ветки поверх другойПример: git rebase maingit cherry-pick — применяет отдельный коммит из одной ветки в другуюПример: git cherry-pick <commit-hash>git remote — управление подключениями к удалённым репозиториямПример: git remote add origin https://github.com/user/repo.gitgit push — отправляет изменения в удалённый репозиторийПример: git push origin maingit pull — получает и объединяет изменения из удалённого репозиторияПример: git pull origin maingit fetch — загружает изменения без слиянияПример: git fetch origingit remote -v — список URL удалённых репозиториевПример: git remote -vgit stash — временно сохраняет незафиксированные измененияПример: git stashgit stash pop — применяет сохранённые изменения и удаляет их из спискаПример: git stash popgit stash list — список всех stashПример: git stash listgit clean — удаляет неотслеживаемые файлы из рабочего каталогаПример: git clean -fgit tag — создаёт тег для коммитаПример: git tag -a v1.0 -m "Version 1.0"git tag -d — удаляет тегПример: git tag -d v1.0git push --tags — отправляет теги в удалённый репозиторийПример: git push origin --tagsgit bisect — находит коммит, который внёс ошибкуПример: git bisect startgit blame — показывает коммит и автора каждой строки файлаПример: git blame file.txtgit reflog — журнал изменений вершин ветокПример: git refloggit submodule — внешние репозитории как подмодулиПример: git submodule add https://github.com/user/repo.gitgit archive — архив файлов репозиторияПример: git archive --format=zip HEAD > archive.zipgit gc — очистка ненужных файлов и оптимизация репозиторияПример: git gcgh auth login — вход в GitHub через командную строкуПример: gh auth logingh repo clone — клонирование репозитория GitHubПример: gh repo clone user/repogh issue list — список задач (issues) в репозиторииПример: gh issue listgh pr create — создание pull requestПример: gh pr create --title "New Feature" --body "Description of the feature"gh repo create — создание нового репозитория на GitHubПример: gh repo create my-repoDocker упаковывает приложения в переносимые контейнеры — как транспортные контейнеры для софта. Команды помогают собирать, отправлять и запускать приложения одинаково в любой среде.
docker --version — версия установленного DockerПример: docker --versiondocker info — общая информация о Docker: количество контейнеров и образовПример: docker infodocker pull — загрузка образа из реестра (по умолчанию Docker Hub)Пример: docker pull ubuntu:latestdocker images — список загруженных образовПример: docker imagesdocker run — создаёт и запускает контейнер из образаПример: docker run -it ubuntu bashdocker ps — список запущенных контейнеровПример: docker psdocker ps -a — все контейнеры, включая остановленныеПример: docker ps -adocker stop — остановка запущенного контейнераПример: docker stop container_namedocker start — запуск остановленного контейнераПример: docker start container_namedocker rm — удаление контейнераПример: docker rm container_namedocker rmi — удаление образаПример: docker rmi image_namedocker exec — выполнение команды в запущенном контейнереПример: docker exec -it container_name bashdocker build — сборка образа из DockerfileПример: docker build -t my_image .docker commit — создание образа из изменений контейнераПример: docker commit container_name my_image:tagdocker logs — логи контейнераПример: docker logs container_namedocker inspect — подробная информация об объекте (контейнере или образе)Пример: docker inspect container_namedocker stats — статистика потребления ресурсов запущенными контейнерами в реальном времениПример: docker statsdocker cp — копирование файлов между контейнером и хостомПример: docker cp container_name:/path/in/container /path/on/hostdocker rename — переименование контейнераПример: docker rename old_name new_namedocker network ls — список сетей DockerПример: docker network lsdocker network create — создание сетиПример: docker network create my_networkdocker network inspect — подробности о сетиПример: docker network inspect my_networkdocker network connect — подключение контейнера к сетиПример: docker network connect my_network container_namedocker volume ls — список томовПример: docker volume lsdocker volume create — создание томаПример: docker volume create my_volumedocker volume inspect — подробности о томеПример: docker volume inspect my_volumedocker volume rm — удаление томаПример: docker volume rm my_volumedocker-compose up — запуск сервисов из docker-compose.ymlПример: docker-compose updocker-compose down — остановка и удаление сервисов из docker-compose.ymlПример: docker-compose downdocker-compose logs — логи сервисов ComposeПример: docker-compose logsdocker-compose exec — выполнение команды в контейнере сервисаПример: docker-compose exec service_name bashdocker save — экспорт образа в tar-файлПример: docker save -o my_image.tar my_image:tagdocker load — импорт образа из tar-файлаПример: docker load < my_image.tardocker export — экспорт файловой системы контейнера в tar-файлПример: docker export container_name > container.tardocker import — создание образа из экспортированного контейнераПример: docker import container.tar my_new_imagedocker system df — использование диска объектами DockerПример: docker system dfdocker system prune — очистка неиспользуемых ресурсов (образов, контейнеров, томов, сетей)Пример: docker system prunedocker tag — присвоение образу нового тегаПример: docker tag old_image_name new_image_namedocker push — загрузка образа в реестрПример: docker push my_image:tagdocker login / docker logout — вход и выход из реестраПример: docker login, docker logoutdocker swarm init — инициализация кластера Docker SwarmПример: docker swarm initdocker service create — создание сервиса в режиме SwarmПример: docker service create --name my_service nginxdocker stack deploy — развёртывание стека из Compose-файла в SwarmПример: docker stack deploy -c docker-compose.yml my_stackdocker stack rm — удаление стека в SwarmПример: docker stack rm my_stackdocker checkpoint create / ls / rm — создание, список и удаление чекпоинтов контейнераПример: docker checkpoint create container_name checkpoint_nameKubernetes — «дирижёр» контейнерного оркестра: автоматизирует развёртывание, масштабирование и управление приложениями в кластере серверов.
kubectl version — версия клиента и сервераПример: kubectl version --shortkubectl cluster-info — информация о кластереПример: kubectl cluster-infokubectl get nodes — список узлов кластераПример: kubectl get nodeskubectl get pods — список подов в namespace defaultПример: kubectl get podskubectl get services — список сервисов в namespace defaultПример: kubectl get serviceskubectl get namespaces — список namespace в кластереПример: kubectl get namespaceskubectl describe pod — подробная информация о подеПример: kubectl describe pod pod-namekubectl logs — логи подаПример: kubectl logs pod-namekubectl create namespace — создание namespaceПример: kubectl create namespace my-namespacekubectl delete pod — удаление подаПример: kubectl delete pod pod-namekubectl apply — применить изменения из YAML-файлаПример: kubectl apply -f deployment.yamlkubectl delete — удалить ресурсы из YAML-файлаПример: kubectl delete -f deployment.yamlkubectl scale — масштабировать деплоймент до нужного числа репликПример: kubectl scale deployment my-deployment --replicas=3kubectl expose — открыть под или деплоймент как сервисПример: kubectl expose deployment my-deployment --type=LoadBalancer --port=80kubectl exec — выполнить команду в запущенном подеПример: kubectl exec -it pod-name -- /bin/bashkubectl port-forward — пробросить локальный порт на порт подаПример: kubectl port-forward pod-name 8080:80kubectl get configmaps — список ConfigMapПример: kubectl get configmapskubectl get secrets — список SecretПример: kubectl get secretskubectl edit — редактирование ресурса прямо в редактореПример: kubectl edit deployment my-deploymentkubectl rollout status — статус обновления деплойментаПример: kubectl rollout status deployment/my-deploymentkubectl rollout undo — откат деплоймента к предыдущей ревизииПример: kubectl rollout undo deployment/my-deploymentkubectl top nodes / pods — использование ресурсов узлами и подамиПример: kubectl top podskubectl cordon — пометить узел как недоступный для планированияПример: kubectl cordon node-namekubectl uncordon — снова разрешить планирование на узлеПример: kubectl uncordon node-namekubectl drain — безопасно вытеснить поды с узлаПример: kubectl drain node-name --ignore-daemonsetskubectl taint — добавить taint на узел для управления размещением подовПример: kubectl taint nodes node-name key=value:NoSchedulekubectl get events — все события в кластереПример: kubectl get eventskubectl apply -k — применить ресурсы из каталога kustomizationПример: kubectl apply -k ./kustomization-dir/kubectl config view — показать kubeconfigПример: kubectl config viewkubectl config use-context — переключить активный контекстПример: kubectl config use-context my-clusterkubectl debug — создать сессию отладки для подаПример: kubectl debug pod-namekubectl delete namespace — удалить namespace и его ресурсыПример: kubectl delete namespace my-namespacekubectl patch — обновить ресурс с помощью patchПример: kubectl patch deployment my-deployment -p '{"spec": {"replicas": 2}}'kubectl rollout history — история ревизий деплойментаПример: kubectl rollout history deployment my-deploymentkubectl autoscale — автоматическое масштабирование по использованию ресурсовПример: kubectl autoscale deployment my-deployment --cpu-percent=50 --min=1 --max=10kubectl label — добавить или изменить метку ресурсаПример: kubectl label pod pod-name environment=productionkubectl annotate — добавить или изменить аннотацию ресурсаПример: kubectl annotate pod pod-name description="My app pod"kubectl delete pv — удалить PersistentVolumeПример: kubectl delete pv my-pvkubectl get ingress — список Ingress в namespaceПример: kubectl get ingresskubectl create configmap — создать ConfigMapПример: kubectl create configmap my-config --from-literal=key1=value1kubectl create secret — создать SecretПример: kubectl create secret generic my-secret --from-literal=password=myPasswordkubectl api-resources — список ресурсов API в кластереПример: kubectl api-resourceskubectl api-versions — список поддерживаемых версий APIПример: kubectl api-versionskubectl get crds — список CustomResourceDefinition (CRD)Пример: kubectl get crdsHelm — «магазин приложений» для Kubernetes: устанавливает и обновляет сложные приложения из готовых пакетов («чартов») — примерно как apt-get для Kubernetes.
helm help — справка по Helm CLI или по конкретной командеПример: helm helphelm version — версия клиента и сервера HelmПример: helm versionhelm repo add — добавить репозиторий чартовПример: helm repo add stable https://charts.helm.sh/stablehelm repo update — обновить все репозитории чартов до последней версииПример: helm repo updatehelm repo list — список добавленных репозиториевПример: helm repo listhelm search hub — поиск чартов в Helm HubПример: helm search hub nginxhelm search repo — поиск чартов в репозиторияхПример: helm search repo stable/nginxhelm show chart — метаданные и зависимости чартаПример: helm show chart stable/nginxhelm install — установка чарта в кластерПример: helm install my-release stable/nginxhelm upgrade — обновление релиза до новой версии чартаПример: helm upgrade my-release stable/nginxhelm upgrade --install — установить, если нет, или обновить, если уже естьПример: helm upgrade --install my-release stable/nginxhelm uninstall — удалить релизПример: helm uninstall my-releasehelm list — список релизов в кластереПример: helm listhelm status — статус релизаПример: helm status my-releasehelm create — создать новый чарт в каталогеПример: helm create my-charthelm lint — проверка чарта на типичные ошибкиПример: helm lint ./my-charthelm package — упаковка чарта в .tgzПример: helm package ./my-charthelm template — отрисовка YAML-манифестов без установкиПример: helm template my-release ./my-charthelm dependency update — обновить зависимости из Chart.yamlПример: helm dependency update ./my-charthelm rollback — откат релиза к предыдущей версииПример: helm rollback my-release 1helm history — история релизаПример: helm history my-releasehelm get all — вся информация о релизе (values и шаблоны)Пример: helm get all my-releasehelm get values — значения, использованные в релизеПример: helm get values my-releasehelm test — запуск тестов чартаПример: helm test my-releasehelm repo remove — удалить репозиторий чартовПример: helm repo remove stablehelm repo index — создать или обновить index-файл репозиторияПример: helm repo index ./chartshelm install --values — установка с пользовательскими значениями из файлаПример: helm install my-release stable/nginx --values values.yamlhelm upgrade --values — обновление с пользовательскими значениямиПример: helm upgrade my-release stable/nginx --values values.yamlhelm install --set — установка с заданием значения прямо в командеПример: helm install my-release stable/nginx --set replicaCount=3helm upgrade --set — обновление с заданием значения в командеПример: helm upgrade my-release stable/nginx --set replicaCount=5helm uninstall --purge — удалить релиз вместе с ресурсами и историейПример: helm uninstall my-release --purgehelm template --debug — отрисовка манифестов с отладочным выводомПример: helm template my-release ./my-chart --debughelm install --dry-run — имитация установки без её выполненияПример: helm install my-release stable/nginx --dry-runhelm upgrade --dry-run — имитация обновления без его примененияПример: helm upgrade my-release stable/nginx --dry-runhelm list --namespace — релизы в конкретном namespaceПример: helm list --namespace kube-systemhelm uninstall --namespace — удалить релиз из namespaceПример: helm uninstall my-release --namespace kube-systemhelm install --namespace — установить чарт в namespaceПример: helm install my-release stable/nginx --namespace mynamespacehelm upgrade --namespace — обновить релиз в namespaceПример: helm upgrade my-release stable/nginx --namespace mynamespacehelm list -n — то же, что --namespace, в короткой формеПример: helm list -n kube-systemhelm install / upgrade --kube-context — работа с конкретным контекстом kubeconfigПример: helm install my-release stable/nginx --kube-context my-clusterhelm package --sign — упаковка и подпись чарта GPG-ключомПример: helm package ./my-chart --sign --key my-key-idhelm create --starter — создание чарта на основе стартового шаблонаПример: helm create --starter https://github.com/helm/charts.githelm push — отправка чарта в репозиторийПример: helm push ./my-chart my-repohelm dependency build — сборка зависимостей чартаПример: helm dependency build ./my-charthelm dependency list — список зависимостей чартаПример: helm dependency list ./my-charthelm rollback --recreate-pods — откат с пересозданием подовПример: helm rollback my-release 2 --recreate-podshelm history --max — ограничить число версий в историиПример: helm history my-release --max 5Terraform позволяет описывать облачную инфраструктуру кодом. Вместо кликов в консолях AWS, GCP или Azure вы описываете серверы и сервисы в конфигурационных файлах.
terraform --help — общая справка по командам Terraform CLIterraform init — инициализирует рабочий каталог с конфигурацией и загружает плагины провайдеровterraform validate — проверка конфигурационных файлов на синтаксические ошибкиterraform plan — создаёт план: какие действия выполнит Terraform, чтобы инфраструктура соответствовала конфигурацииterraform apply — применяет изменения для достижения желаемого состояния; перед изменениями запрашивает подтверждениеterraform show — выводит состояние или план в удобочитаемом видеterraform output — выводит значения output после applyterraform destroy — уничтожает инфраструктуру из конфигурации; запрашивает подтверждениеterraform refresh — обновляет файл состояния по реальной инфраструктуре без применения измененийterraform taint — помечает ресурс для пересоздания при следующем apply, даже если он не менялсяterraform untaint — снимает пометку «tainted» с ресурсаterraform state — управление файлом состояния, например перенос ресурсов между модулямиterraform import — импорт существующей инфраструктуры под управление Terraformterraform graph — графическое представление ресурсов и их связейterraform providers — список провайдеров для текущей конфигурацииterraform state list — список ресурсов в файле состоянияterraform backend — настройка бэкенда для удалённого хранения состояния (например, S3 или Azure Blob Storage)uptime, alias и helm repo update встречаются дважды.helm uninstall --purge — флаг из Helm 2. В Helm 3 helm uninstall по умолчанию удаляет и историю релиза; чтобы её сохранить, используйте --keep-history.charts.helm.sh/stable из примеров Helm устарел; современные чарты берите из отдельных репозиториев (например, Bitnami).netstat и ifconfig заменены на ss и ip. В Docker docker-compose (v1) заменён на docker compose (v2).terraform backend — не отдельная команда: бэкенд задаётся в блоке terraform {} конфигурации, а terraform init его подключает.