Linux命令大全 - DevOps和云原生
概述
本部分介绍Linux系统中用于DevOps、容器化、云原生应用部署和管理的命令。这些命令是现代软件开发和运维的重要工具,用于自动化部署、容器管理、微服务架构和云平台集成。
1. docker - 容器管理
命令语法
docker [选项] 命令 [参数]
功能说明
Docker容器管理工具,用于构建、运行和管理容器。
常用参数
run: 运行容器build: 构建镜像images: 列出镜像ps: 列出容器exec: 在容器中执行命令logs: 查看容器日志
实际案例
# 运行容器
docker run -d -p 8080:80 nginx
# 构建镜像
docker build -t myapp:latest .
# 列出镜像
docker images
# 列出运行中的容器
docker ps
# 列出所有容器
docker ps -a
# 在容器中执行命令
docker exec -it container_name bash
# 查看容器日志
docker logs container_name
# 停止容器
docker stop container_name
# 删除容器
docker rm container_name
# 删除镜像
docker rmi image_name
执行结果
$ docker run -d -p 8080:80 nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
...
Status: Downloaded newer image for nginx:latest
a1b2c3d4e5f6
详细解析
Docker是最流行的容器化平台,提供轻量级的虚拟化解决方案。
2. docker-compose - 多容器编排
命令语法
docker-compose [选项] 命令 [参数]
功能说明
Docker Compose用于定义和运行多容器Docker应用。
常用参数
up: 启动服务down: 停止服务build: 构建服务logs: 查看日志ps: 列出服务
实际案例
# 启动服务
docker-compose up
# 后台启动服务
docker-compose up -d
# 停止服务
docker-compose down
# 构建服务
docker-compose build
# 查看日志
docker-compose logs
# 列出服务
docker-compose ps
# 重启服务
docker-compose restart
# 扩展服务
docker-compose up --scale web=3
执行结果
$ docker-compose up -d
Creating network "myapp_default" with the default driver
Creating myapp_web_1 ... done
Creating myapp_db_1 ... done
详细解析
Docker Compose通过YAML文件定义多容器应用,简化了复杂应用的部署。
3. kubectl - K8s集群管理
命令语法
kubectl [选项] 命令 [资源类型] [资源名称]
功能说明
Kubernetes命令行工具,用于管理K8s集群。
常用参数
get: 获取资源create: 创建资源delete: 删除资源apply: 应用配置describe: 描述资源logs: 查看日志
实际案例
# 获取节点
kubectl get nodes
# 获取Pod
kubectl get pods
# 获取服务
kubectl get services
# 创建部署
kubectl create deployment nginx --image=nginx
# 应用配置
kubectl apply -f deployment.yaml
# 描述Pod
kubectl describe pod pod_name
# 查看Pod日志
kubectl logs pod_name
# 进入Pod
kubectl exec -it pod_name -- bash
# 删除资源
kubectl delete deployment nginx
执行结果
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-7c87f569d-abc123 1/1 Running 0 2m
详细解析
kubectl是Kubernetes的核心管理工具,提供完整的集群管理功能。
4. helm - 包管理器
命令语法
helm [选项] 命令 [参数]
功能说明
Kubernetes包管理器,用于管理K8s应用。
常用参数
install: 安装Chartuninstall: 卸载Chartlist: 列出安装的Chartupgrade: 升级Chartstatus: 查看状态
实际案例
# 安装Chart
helm install my-release bitnami/nginx
# 列出安装的Chart
helm list
# 查看Chart状态
helm status my-release
# 升级Chart
helm upgrade my-release bitnami/nginx
# 卸载Chart
helm uninstall my-release
# 搜索Chart
helm search repo nginx
# 添加仓库
helm repo add bitnami https://charts.bitnami.com/bitnami
# 更新仓库
helm repo update
执行结果
$ helm install my-release bitnami/nginx
NAME: my-release
LAST DEPLOYED: Sat Dec 15 10:30:00 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
详细解析
Helm简化了Kubernetes应用的部署和管理,使用Chart打包应用。
5. terraform - 基础设施即代码
命令语法
terraform [选项] 命令 [参数]
功能说明
基础设施即代码工具,用于自动化基础设施管理。
常用参数
init: 初始化plan: 计划变更apply: 应用变更destroy: 销毁资源show: 显示状态
实际案例
# 初始化Terraform
terraform init
# 查看计划
terraform plan
# 应用变更
terraform apply
# 销毁资源
terraform destroy
# 显示状态
terraform show
# 格式化代码
terraform fmt
# 验证配置
terraform validate
# 输出变量
terraform output
执行结果
$ terraform plan
Plan: 2 to add, 0 to change, 0 to destroy.
详细解析
Terraform使用声明式配置管理基础设施,支持多云平台。
6. ansible - 自动化配置
命令语法
ansible [选项] 主机模式 命令
功能说明
自动化配置管理和应用部署工具。
常用参数
-i: 指定清单文件-m: 指定模块-a: 指定参数-u: 指定用户-k: 询问密码
实际案例
# 执行命令
ansible all -m ping
# 安装软件包
ansible all -m apt -a "name=nginx state=present"
# 复制文件
ansible all -m copy -a "src=file.txt dest=/tmp/file.txt"
# 执行Playbook
ansible-playbook playbook.yml
# 检查语法
ansible-playbook --syntax-check playbook.yml
# 干运行
ansible-playbook --check playbook.yml
# 指定主机
ansible webservers -m service -a "name=nginx state=started"
执行结果
$ ansible all -m ping
server1 | SUCCESS => {
"changed": false,
"ping": "pong"
}
详细解析
Ansible使用SSH连接管理远程主机,无需在目标主机安装代理。
7. jenkins - 持续集成
命令语法
jenkins [选项] 命令
功能说明
Jenkins持续集成服务器管理。
常用参数
start: 启动Jenkinsstop: 停止Jenkinsrestart: 重启Jenkinsstatus: 查看状态
实际案例
# 启动Jenkins
systemctl start jenkins
# 停止Jenkins
systemctl stop jenkins
# 重启Jenkins
systemctl restart jenkins
# 查看状态
systemctl status jenkins
# 查看日志
journalctl -u jenkins
# 启用开机自启
systemctl enable jenkins
# 禁用开机自启
systemctl disable jenkins
执行结果
$ systemctl status jenkins
● jenkins.service - LSB: Start Jenkins at boot time
Loaded: loaded (/etc/init.d/jenkins; generated)
Active: active (running) since Sat 2023-12-15 10:30:00 UTC; 2min 30s ago
详细解析
Jenkins是流行的持续集成工具,支持自动化构建、测试和部署。
8. git - 版本控制
命令语法
git [选项] 命令 [参数]
功能说明
分布式版本控制系统。
常用参数
clone: 克隆仓库add: 添加文件commit: 提交更改push: 推送更改pull: 拉取更改branch: 分支管理
实际案例
# 克隆仓库
git clone https://github.com/user/repo.git
# 添加文件
git add file.txt
# 提交更改
git commit -m "Add new feature"
# 推送更改
git push origin main
# 拉取更改
git pull origin main
# 创建分支
git branch feature-branch
# 切换分支
git checkout feature-branch
# 合并分支
git merge feature-branch
# 查看状态
git status
# 查看日志
git log
执行结果
$ git status
On branch main
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: file.txt
详细解析
Git是最流行的版本控制系统,支持分布式开发和协作。
9. maven - 项目管理
命令语法
mvn [选项] 目标
功能说明
Java项目管理和构建工具。
常用参数
compile: 编译项目test: 运行测试package: 打包项目install: 安装到本地仓库clean: 清理项目
实际案例
# 编译项目
mvn compile
# 运行测试
mvn test
# 打包项目
mvn package
# 安装到本地仓库
mvn install
# 清理项目
mvn clean
# 清理并编译
mvn clean compile
# 跳过测试打包
mvn package -DskipTests
# 指定配置文件
mvn package -P production
执行结果
$ mvn package
[INFO] Scanning for projects...
[INFO] Building myapp 1.0.0
[INFO] --- maven-jar-plugin:3.2.0:jar (default-jar) @ myapp ---
[INFO] Building jar: /path/to/target/myapp-1.0.0.jar
[INFO] BUILD SUCCESS
详细解析
Maven使用POM文件管理项目依赖和构建过程。
10. gradle - 构建工具
命令语法
gradle [选项] 任务
功能说明
现代构建自动化工具。
常用参数
build: 构建项目test: 运行测试clean: 清理项目run: 运行应用dependencies: 显示依赖
实际案例
# 构建项目
gradle build
# 运行测试
gradle test
# 清理项目
gradle clean
# 运行应用
gradle run
# 显示依赖
gradle dependencies
# 构建并运行测试
gradle build test
# 并行构建
gradle build --parallel
# 构建缓存
gradle build --build-cache
执行结果
$ gradle build
> Task :compileJava
> Task :processResources
> Task :classes
> Task :jar
> Task :assemble
> Task :compileTestJava
> Task :processTestResources
> Task :testClasses
> Task :test
> Task :check
> Task :build
BUILD SUCCESSFUL in 2s
详细解析
Gradle使用Groovy DSL定义构建脚本,支持增量构建。
11. npm - Node.js包管理
命令语法
npm [选项] 命令 [参数]
功能说明
Node.js包管理器。
常用参数
install: 安装包start: 启动应用test: 运行测试build: 构建项目publish: 发布包
实际案例
# 安装依赖
npm install
# 安装包
npm install express
# 全局安装
npm install -g nodemon
# 启动应用
npm start
# 运行测试
npm test
# 构建项目
npm run build
# 发布包
npm publish
# 查看已安装包
npm list
# 更新包
npm update
执行结果
$ npm install express
npm notice created a lockfile as package-lock.json
npm WARN myapp@1.0.0 No description
npm WARN myapp@1.0.0 No repository field.
+ express@4.18.2
added 1 package in 2s
详细解析
npm是Node.js的包管理器,管理项目依赖和脚本。
12. pip - Python包管理
命令语法
pip [选项] 命令 [参数]
功能说明
Python包管理器。
常用参数
install: 安装包uninstall: 卸载包list: 列出包show: 显示包信息freeze: 冻结依赖
实际案例
# 安装包
pip install requests
# 安装指定版本
pip install requests==2.28.0
# 从requirements文件安装
pip install -r requirements.txt
# 卸载包
pip uninstall requests
# 列出已安装包
pip list
# 显示包信息
pip show requests
# 冻结依赖
pip freeze > requirements.txt
# 升级包
pip install --upgrade requests
# 安装开发依赖
pip install -e .
执行结果
$ pip install requests
Collecting requests
Downloading requests-2.28.0-py2.py3-none-any.whl (62 kB)
Installing collected packages: requests
Successfully installed requests-2.28.0
详细解析
pip是Python的包管理器,管理Python包和依赖。
13. docker-machine - 机器管理
命令语法
docker-machine [选项] 命令 [参数]
功能说明
Docker Machine用于管理Docker主机。
常用参数
create: 创建机器ls: 列出机器start: 启动机器stop: 停止机器rm: 删除机器
实际案例
# 创建机器
docker-machine create --driver virtualbox myvm
# 列出机器
docker-machine ls
# 启动机器
docker-machine start myvm
# 停止机器
docker-machine stop myvm
# 删除机器
docker-machine rm myvm
# 获取环境变量
docker-machine env myvm
# 连接到机器
docker-machine ssh myvm
# 查看机器状态
docker-machine status myvm
执行结果
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
myvm - virtualbox Running tcp://192.168.99.100:2376 v20.10.0
详细解析
Docker Machine简化了Docker主机的创建和管理。
4. docker-swarm - 集群管理
命令语法
docker swarm [选项] 命令 [参数]
功能说明
Docker Swarm集群管理。
常用参数
init: 初始化集群join: 加入集群leave: 离开集群update: 更新集群
实际案例
# 初始化集群
docker swarm init
# 加入集群
docker swarm join --token SWMTKN-1-xxx 192.168.1.100:2377
# 离开集群
docker swarm leave
# 更新集群
docker swarm update --autolock
# 查看集群信息
docker info
# 查看节点
docker node ls
# 创建服务
docker service create --name web nginx
# 扩展服务
docker service scale web=3
执行结果
$ docker swarm init
Swarm initialized: current node (abc123) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-xxx 192.168.1.100:2377
详细解析
Docker Swarm提供原生集群功能,简化容器编排。
15. minikube - 本地Kubernetes
命令语法
minikube [选项] 命令 [参数]
功能说明
本地Kubernetes集群管理。
常用参数
start: 启动集群stop: 停止集群status: 查看状态delete: 删除集群
实际案例
# 启动集群
minikube start
# 停止集群
minikube stop
# 查看状态
minikube status
# 删除集群
minikube delete
# 查看服务
minikube service list
# 打开仪表板
minikube dashboard
# 查看日志
minikube logs
# 进入节点
minikube ssh
执行结果
$ minikube start
😄 minikube v1.28.0 on Ubuntu 20.04
✨ Using the docker driver based on existing profile
🎯 Starting control plane node minikube in cluster minikube
🚀 Booting up node, this may take a few minutes ...
详细解析
minikube提供本地Kubernetes环境,用于开发和测试。
16. kind - Kubernetes in Docker
命令语法
kind [选项] 命令 [参数]
功能说明
使用Docker容器运行Kubernetes。
常用参数
create: 创建集群delete: 删除集群get: 获取信息load: 加载镜像
实际案例
# 创建集群
kind create cluster
# 创建命名集群
kind create cluster --name mycluster
# 删除集群
kind delete cluster
# 删除命名集群
kind delete cluster --name mycluster
# 获取集群
kind get clusters
# 加载镜像
kind load docker-image myapp:latest
# 创建配置文件
kind create cluster --config cluster.yaml
执行结果
$ kind create cluster
Creating cluster "kind" ...
✓ Ensuring node image (kindest/node:v1.25.3) 🖼
✓ Preparing nodes 📦
✓ Writing configuration 📝
✓ Starting control-plane 🕹️
✓ Installing CNI 🔌
✓ Installing StorageClass 💾
Set kubectl context to "kind-kind"
详细解析
kind使用Docker容器运行Kubernetes,快速创建测试环境。
17. k3s - 轻量级Kubernetes
命令语法
k3s [选项] 命令 [参数]
功能说明
轻量级Kubernetes发行版。
常用参数
server: 启动服务器agent: 启动代理kubectl: 执行kubectl命令uninstall: 卸载k3s
实际案例
# 安装k3s服务器
curl -sfL https://get.k3s.io | sh -
# 安装k3s代理
curl -sfL https://get.k3s.io | K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetoken sh -
# 使用kubectl
k3s kubectl get nodes
# 卸载k3s
/usr/local/bin/k3s-uninstall.sh
# 启动服务器
k3s server
# 启动代理
k3s agent --server https://myserver:6443 --token mytoken
执行结果
$ k3s kubectl get nodes
NAME STATUS ROLES AGE VERSION
k3s-server Ready control-plane,master 2m v1.25.3+k3s1
详细解析
k3s是轻量级Kubernetes,适合边缘计算和资源受限环境。
18. istio - 服务网格
命令语法
istioctl [选项] 命令 [参数]
功能说明
Istio服务网格管理工具。
常用参数
install: 安装Istiouninstall: 卸载Istioversion: 查看版本proxy-config: 代理配置
实际案例
# 安装Istio
istioctl install --set values.defaultRevision=default
# 卸载Istio
istioctl uninstall --purge
# 查看版本
istioctl version
# 注入代理
istioctl kube-inject -f deployment.yaml
# 查看代理配置
istioctl proxy-config cluster pod-name
# 查看服务
istioctl proxy-config endpoints pod-name
# 查看路由
istioctl proxy-config routes pod-name
执行结果
$ istioctl install --set values.defaultRevision=default
This will install the Istio 1.16.0 default profile with ["Istio core" "Istiod" "Ingress gateways"] components into the cluster. Proceed? (y/N) y
✔ Istio core installed
✔ Istiod installed
✔ Ingress gateways installed
✔ Installation complete
详细解析
Istio提供服务网格功能,包括流量管理、安全、可观测性。
19. prometheus - 监控系统
命令语法
prometheus [选项]
功能说明
Prometheus监控系统。
常用参数
--config.file: 配置文件--storage.tsdb.path: 存储路径--web.listen-address: 监听地址
实际案例
# 启动Prometheus
prometheus --config.file=prometheus.yml
# 指定存储路径
prometheus --storage.tsdb.path=/data/prometheus
# 指定监听地址
prometheus --web.listen-address=0.0.0.0:9090
# 使用systemd管理
systemctl start prometheus
# 查看状态
systemctl status prometheus
# 查看日志
journalctl -u prometheus
执行结果
$ prometheus --config.file=prometheus.yml
level=info ts=2023-12-15T10:30:00.000Z caller=main.go:300 msg="Starting Prometheus Server"
level=info ts=2023-12-15T10:30:00.000Z caller=main.go:301 version="2.40.0"
详细解析
Prometheus是开源的监控和告警系统,使用时间序列数据库。
20. grafana - 可视化
命令语法
grafana-server [选项]
功能说明
Grafana数据可视化平台。
常用参数
--config: 配置文件--homepath: 主目录--pidfile: PID文件
实际案例
# 启动Grafana
grafana-server --config=/etc/grafana/grafana.ini
# 指定主目录
grafana-server --homepath=/usr/share/grafana
# 使用systemd管理
systemctl start grafana-server
# 查看状态
systemctl status grafana-server
# 查看日志
journalctl -u grafana-server
# 启用开机自启
systemctl enable grafana-server
执行结果
$ systemctl status grafana-server
● grafana-server.service - Grafana instance
Loaded: loaded (/lib/systemd/system/grafana-server.service; enabled)
Active: active (running) since Sat 2023-12-15 10:30:00 UTC; 2min 30s ago
详细解析
Grafana提供丰富的数据可视化功能,支持多种数据源。
总结
本部分介绍了Linux系统中用于DevOps和云原生的核心命令。这些命令是现代软件开发和运维的重要工具。
主要命令分类:
- 容器化:docker、docker-compose、docker-machine、docker-swarm
- Kubernetes:kubectl、helm、minikube、kind、k3s
- 基础设施即代码:terraform、ansible
- 持续集成:jenkins、git、maven、gradle
- 包管理:npm、pip
- 服务网格:istio
- 监控:prometheus、grafana
使用建议:
- 使用Docker进行容器化应用开发
- 使用Kubernetes进行容器编排
- 使用Terraform管理基础设施
- 使用Ansible进行配置管理
- 使用Jenkins实现持续集成
- 使用Git进行版本控制
- 使用Prometheus和Grafana进行监控
- 使用Istio实现服务网格
这些命令为现代DevOps和云原生应用提供了完整的工具链。
更多推荐
所有评论(0)