Linux 与 Docker 常用命令

Linux 与 Docker 常用命令

这部分是后端/运维/云原生高频必问内容,按**「模块分类+重点标注+核心参数」**整理,剔除冷门命令,只保留常考、工作常用的核心指令,同时补充高频组合用法和问答考点,方便你直接背诵和实操。

一、Linux 常用命令(核心)

Linux 命令考察基础操作+高频组合+场景实操 ,重点集中在文件操作、权限、进程、查找、系统信息、压缩解压 6大模块,以下标注★★★的是必考 ,★★是高频考。

1. 基础导航/文件操作(★★★,第一道必问)

核心考察是否会基础的目录切换和文件操作 ,常问rm -rf的含义/风险、ls常用参数。

|-------|----------|--------------------------------------------------------------|
| 命令 | 核心用法 | 常考参数/说明 |
| cd | 切换目录 | cd /(根目录)、cd ..(上一级)、cd ~(家目录)、cd -(上一次目录) |
| pwd | 查看当前绝对路径 | 无参数,纯基础必问 |
| ls | 查看目录文件 | ls -l(详单,简写ll)、ls -a(显示隐藏文件)、ls -lh(人性化显示大小) |
| mkdir | 创建目录 | mkdir -p /a/b/c(递归创建多级目录,★★★必考) |
| rm | 删除文件/目录 | rm -f(强制删除不提示)、rm -rf 目录(递归强制删除,★★★必考,重点说风险:rm -rf /会删系统根目录) |
| cp | 复制文件/目录 | cp -r 源目录 目标目录(递归复制目录,★★★) |
| mv | 移动/重命名 | mv 旧名 新名(重命名)、mv 源 目标路径(移动),无递归参数,直接用 |
| touch | 创建空文件 | touch test.txt,基础操作 |

2. 文件查看/编辑(★★★,高频考)

考察查看文件的不同场景用法 ,常问cat/more/less/tail的区别,tail -f是必考。

|-----------|--------------|-------------------------------------------------------------|
| 命令 | 核心用法 | 常考说明 |
| cat | 查看小文件全部内容 | cat test.txt,适合小文件,大文件会刷屏 |
| more/less | 分页查看大文件 | more(只能向下翻)、less(上下翻,按q退出,★★更常用) |
| head | 查看文件前N行 | head -10 test.txt(前10行,默认前10行) |
| tail | 查看文件后N行/实时日志 | tail -10 test.txt(后10行)、tail -f 日志文件(实时监控日志,★★★必考,工作/核心) |
| vim | 编辑文件 | 基础流程:vim test.txt→按i编辑→按Esc→输入:wq保存退出/:q!强制退出(★★★必考,会让口述流程) |

3. 查找/过滤(★★★,核心难点)

考察管道| +查找命令 的组合用法,grep/find是重中之重,常考组合命令。

|-------|--------------------|----------------------------------------------------------------------------------------|
| 命令 | 核心用法 | 常考参数/组合 |
| grep | 过滤文本内容(按关键词查) | grep "关键词" 文件名、grep -i(忽略大小写)、grep -v(反向过滤,排除关键词)、grep -n(显示行号)<br>★★★必考组合:`ps -ef |
| find | 按文件名/大小/时间查找文件 | find 查找路径 -name "文件名"(★★★必考,如find /root -name "*.txt")、find / -size +100M(查大于100M的文件) |
| which | 查找命令的安装路径 | which java、which docker,基础高频 |

4. 权限管理(★★★,必考核心)

考察权限数字含义 和chmod/chown用法,是Linux部分最易考的考点之一 ,会直接问755/644的含义。

先记必考的权限基础:

Linux文件权限分所有者(u)/所属组(g)/其他(o) ,每个角色有读(r=4)/写(w=2)/执行(x=1) 权限,数字权限=各角色权限值相加(★★★必考):

  • 755:所有者rwx(4+2+1)、所属组r-x(4+0+1)、其他r-x → 文件夹默认权限
  • 644:所有者rw-(4+2+0)、所属组r--(4+0+0)、其他r-- → 文件默认权限
  • 777:所有角色都rwx(常问:为什么不建议用?答:权限过大,有安全风险)

核心权限命令:

|-------|---------------------|--------------------------------------------------------------|
| 命令 | 核心用法 | 常考 |
| chmod | 修改文件/目录权限 | chmod 755 test.sh(数字权限,★★★必考)、chmod u+x test.sh(给所有者加执行权限) |
| chown | 修改文件/目录的所有者/所属组 | chown -R 用户名:组名 目录(★★★必考,-R递归修改,如chown -R root:root /docker) |
| ll | 查看权限详情 | 等价于ls -l,会让通过ll结果分析文件权限 |

5. 进程管理(★★★,必考)

考察查看进程、杀死进程 的组合用法,是工作/的高频操作,常和grep组合考。

|---------|------------------------|----------------------------------------------------------------------------------|
| 命令 | 核心用法 | 常考组合/说明 |
| ps | 查看进程 | ps -ef(查看所有进程,★★★必考)、ps aux(更详细的进程信息)<br>★★★必考组合:`ps -ef |
| top | 实时监控进程(类似Windows任务管理器) | 按q退出,会问:如何看CPU/内存占用最高的进程?(答:top界面默认按CPU排序,按M按内存排序) |
| kill | 杀死进程 | kill 进程ID(正常杀死)、kill -9 进程ID(强制杀死,★★★必考,适用于进程卡死的情况) |
| netstat | 查看端口占用(网络进程) | netstat -tlnp(★★★必考,参数含义:t-TCP、l-监听、n-数字显示端口、p-显示进程ID)<br>必考组合:`netstat -tlnp |
| ss | 替代netstat的端口查看命令 | `ss -tlnp |

6. 系统信息/磁盘管理(★★,高频考)

考察查看系统资源使用情况 ,常问df/du/free的区别。

|--------|--------------------|-------------------------------------------------------------|
| 命令 | 核心用法 | 常考参数 |
| df | 查看磁盘分区的剩余空间 | df -h(★★★必考,人性化显示大小,如df -h /查看根分区) |
| du | 查看文件/目录的实际占用空间 | du -sh 目录(★★★必考,s-汇总大小,h-人性化,如du -sh /root) |
| free | 查看内存/交换分区使用情况 | free -h(★★★必考,显示总内存/已用/可用) |
| uname | 查看系统内核/版本信息 | uname -r(查看内核版本,如3.10.0-1160.el7.x86_64)、uname -a(查看所有系统信息) |
| whoami | 查看当前登录用户 | 基础操作,常和权限结合考 |

7. 压缩/解压(★★★,必考)

Linux中tar是唯一核心压缩解压命令,只考这个,重点记参数组合。

|-----|----------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 命令 | 核心用法 | 常考组合(★★★必考) |
| tar | 压缩/解压.tar/.tar.gz/.tar.bz2 | 压缩 :tar -zcvf 压缩包名.tar.gz 源文件/目录(z-gz压缩、c-创建、v-显示过程、f-指定包名) 解压 :tar -zxvf 压缩包名.tar.gz -C 目标目录(x-解压、C-指定解压路径,不加则解压到当前目录) 解压.bz2:把z换成j,即tar -jxvf 包名.tar.bz2 |

8. 其他高频命令

|------------------------|------------|-----------------------------------------------------------------------|
| 命令 | 核心用法 | 考点 |
| ` | ` | 管道符 |
| >/>> | 重定向 | >(覆盖写入,如ls -l > test.txt)、>>(追加写入,★★★必考,如echo "内容" >> test.txt) |
| sudo | 以管理员权限执行命令 | sudo rm -rf 目录,会问:sudo和su的区别?(答:sudo临时提权,su切换到root用户,sudo更安全) |
| reboot/init 6 | 重启系统 | 基础操作 |
| shutdown -h now/init 0 | 关机 | 基础操作 |

二、Docker 常用命令(核心,云原生必问)

Docker 考察镜像/容器的核心操作+参数含义+场景实操 ,重点集中在镜像操作、容器操作、数据卷、网络 4大模块,同时Dockerfile构建镜像、Docker Compose 是进阶必考,以下标注★★★的是必考核心。

前置:Docker 基础(必问)

  • 镜像(image):容器的模板,只读,一个镜像可以创建多个容器
  • 容器(container):镜像的运行实例,可启动/停止/删除
  • 核心原则:容器一次性(数据不存容器内,存数据卷/宿主机)

1. 镜像操作(★★★,必考)

考察镜像的拉取、查看、删除、构建、打标 ,docker build/pull/rmi/tag是核心,常问Dockerfile构建镜像的命令。

|---------------------|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------|
| 命令 | 核心用法 | 常考参数/说明 |
| docker version/info | 查看Docker版本/系统信息 | 基础操作,验证Docker是否安装成功 |
| docker pull | 拉取镜像 | docker pull 镜像名:标签(★★★必考,标签是版本,如docker pull nginx:1.24,不加标签默认拉latest(最新版),会问:为什么不建议用latest?答:版本不固定,易导致环境不一致) |
| docker images | 查看本地所有镜像 | docker images -a(查看所有镜像,包括中间层)、docker images -q(只显示镜像ID) |
| docker rmi | 删除镜像 | docker rmi 镜像ID/镜像名:标签、docker rmi -f 镜像ID(强制删除,★★★必考,镜像被容器引用时需先删容器)<br>必考组合:docker rmi $(docker images -q)(删除所有本地镜像) |
| docker build | 通过Dockerfile构建镜像 | docker build -t 镜像名:标签 -f Dockerfile路径 构建上下文(★★★必考,-t:打标,-f:指定Dockerfile(默认当前目录的Dockerfile),如docker build -t mynginx:1.0 .(.是构建上下文为当前目录)) |
| docker tag | 给镜像打新标签(重命名/改版本) | docker tag 原镜像ID/名:标签 新镜像名:新标签(★★★必考,如docker tag nginx:1.24 myharbor/nginx:1.24,用于推送到私有仓库) |
| docker push | 推送镜像到仓库(阿里云/Harbor) | docker push 镜像名:标签(需先登录仓库:docker login 仓库地址) |

2. 容器操作(★★★,最核心,占Docker考点80%)

考察容器的创建、启动、查看、进入、停止、删除、日志查看 ,docker run/ps/exec/stop/rm/logs是重中之重,docker run 的核心参数是必考难点,会让口述参数含义。

先记 docker run 核心参数(★★★必考,按重要性排序)

docker run 参数 镜像名:标签,参数是核心,必须背会含义:

  • -d:后台运行容器(★★★必考,守护进程模式,不加则前台运行,关闭终端容器就停)
  • --name:给容器起自定义名字(避免默认随机名,如--name mynginx)
  • -p:宿主机端口:容器端口(端口映射,★★★必考,如-p 80:80,宿主机80端口映射到容器80端口,外部才能访问容器)
  • -v:数据卷/宿主机路径:容器内路径(数据挂载,★★★必考,如-v /host/data:/container/data,将宿主机/host/data挂载到容器内,实现数据持久化)
  • --restart=always:容器随Docker服务启动而自动重启(★★★必考,生产环境必备)
  • -it:交互式运行容器(结合/bin/bash进入容器,如docker run -it centos /bin/bash)
  • --rm:容器停止后自动删除(适合临时测试容器)

核心容器命令

|---------------------------|---------------------|----------------------------------------------------------------------------------------------------------------------|
| 命令 | 核心用法 | 常考组合/说明 |
| docker run | 创建并启动容器 | 必考示例:docker run -d --name mynginx -p 80:80 --restart=always -v /host/nginx/conf:/etc/nginx nginx:1.24(会让分析这个命令的每个参数) |
| docker ps | 查看容器 | docker ps(查看运行中 的容器,★★★必考)、docker ps -a(查看所有容器,包括停止的)、docker ps -q(只显示运行中容器ID) |
| docker exec | 进入运行中的容器(★★★必考) | docker exec -it 容器ID/容器名 /bin/bash(★★★唯一推荐的进入方式,会问:为什么不用docker attach?答:attach退出容器会导致容器停止,exec不会,更安全) |
| docker start/stop/restart | 启动/停止/重启容器 | docker start 容器ID/名、docker stop 容器ID/名(正常停止)、docker restart 容器ID/名 |
| docker rm | 删除容器 | docker rm 容器ID/名、docker rm -f 容器ID/名(强制删除运行中的容器,★★★必考)<br>必考组合:docker rm -f $(docker ps -aq)(删除所有容器,包括运行中的) |
| docker logs | 查看容器日志 | docker logs 容器ID/名、docker logs -f 容器ID/名(实时查看日志,★★★必考,和Linux的tail -f同理)、docker logs --tail 100 容器ID(查看最后100行日志) |
| docker inspect | 查看容器/镜像的详细信息 | docker inspect 容器ID/镜像ID(★★★必考,查看端口、挂载、网络、IP等信息,会问:如何查看容器的IP地址?答:`docker inspect 容器ID |
| docker cp | 宿主机和容器之间复制文件 | docker cp 宿主机文件 容器ID:容器内路径(如docker cp test.txt mynginx:/tmp)、docker cp 容器ID:容器内文件 宿主机路径,基础高频 |

3. 数据卷操作(★★★,必考,数据持久化核心)

Docker 数据卷是独立于容器的存储卷 ,用于持久化容器数据(容器删除后数据不丢),常问:容器挂载的两种方式(数据卷vs宿主机路径)的区别?

|-----------------------|--------------|----------------------------------------------------|
| 命令 | 核心用法 | 常考说明 |
| docker volume create | 创建数据卷 | docker volume create myvol |
| docker volume ls | 查看所有数据卷 | 基础操作 |
| docker volume inspect | 查看数据卷详细信息 | docker volume inspect myvol(★★★必考,查看数据卷的宿主机实际存储路径) |
| docker volume rm | 删除数据卷 | docker volume rm 数据卷名 |
| docker volume prune | 删除未被使用的所有数据卷 | 生产环境慎用,高频 |

4. 网络操作(★★,高频)

Docker 默认网络模式:bridge(桥接,默认)、host(主机网络)、none(无网络),常问bridge和host的区别

|---------------------------|--------------|-------------------------------------------------------------------------|
| 命令 | 核心用法 | 常考说明 |
| docker network ls | 查看所有Docker网络 | 基础操作 |
| docker network create | 创建自定义网络 | docker network create --driver bridge mynet(自定义桥接网络,容器加入同一网络可通过容器名互相访问) |
| docker network connect | 将容器加入指定网络 | docker network connect mynet mynginx |
| docker network disconnect | 将容器移出指定网络 | docker network disconnect mynet mynginx |
| docker network rm | 删除网络 | docker network rm 网络名 |

5. 清理/其他高频命令(★★,常考)

|--------------|----------------------|---------------------------------------------------------------|
| 命令 | 核心用法 | 必考说明 |
| docker prune | 清理无用的镜像、容器、数据卷、网络 | docker system prune -a(★★★必考,清理所有未被使用的资源,包括未被引用的镜像,生产环境执行前确认) |
| docker stats | 实时监控容器的CPU/内存/磁盘IO占用 | 类似Linux的top,高频 |

6. Docker Compose 常用命令(★★★,进阶必考)

Docker Compose 用于编排多个容器 (如nginx+mysql+redis),中云原生方向必问,核心命令简单,重点记up/down。

|-----------------------------------|----------------|---------------------------------------------------------|
| 命令 | 核心用法 | 常考参数 |
| docker-compose -v | 查看Compose版本 | 基础操作 |
| docker-compose up | 启动所有容器 | docker-compose up -d(★★★必考,后台启动,基于docker-compose.yml文件) |
| docker-compose down | 停止并删除所有容器、网络 | 会保留数据卷,常问:如何删除数据卷?答:docker-compose down -v |
| docker-compose ps | 查看Compose管理的容器 | 基础操作 |
| docker-compose logs | 查看所有/指定容器日志 | docker-compose logs -f 服务名(实时查看某个服务的日志,★★★必考) |
| docker-compose restart/start/stop | 重启/启动/停止服务 | docker-compose restart nginx(重启nginx服务) |

三、常考「组合命令+高频问答」(背会直接答)

(一)Linux 高频组合命令(★★★必考)

  1. 查找java进程并强制杀死:ps -ef | grep java | grep -v grep | awk '{print $2}' | xargs kill -9
  2. 实时监控nginx日志:tail -f /usr/local/nginx/logs/access.log
  3. 查8080端口占用并杀死对应进程:netstat -tlnp | grep 8080 | awk '{print $7}' | cut -d/ -f1 | xargs kill -9
  4. 查找/root目录下所有txt文件并删除:find /root -name "*.txt" -exec rm -rf {} ;
  5. 把nginx进程信息追加写入到process.txt:ps -ef | grep nginx >> process.txt

(二)Docker 高频问答(★★★必考,背会答案)

docker run 和 docker create 的区别?

答:docker create 只创建容器(未启动),docker run = create + start(创建并启动)。

docker exec 和 docker attach 的区别?

答:exec 进入运行中的容器,退出容器(exit)不会导致容器停止,推荐使用;attach 进入容器后,退出会导致容器停止,适合临时调试。

为什么要做容器数据持久化?如何实现?

答:容器是一次性的,删除后数据会丢失,所以需要持久化;实现方式:① 数据卷(docker volume);② 宿主机路径挂载(-v 宿主机路径:容器内路径)。

docker 镜像的分层原理?

答:镜像采用分层只读文件系统,每一个命令都会创建一个新的层,层可以共享,减少镜像体积(如多个镜像共用基础CentOS层),最后一层是容器的可写层(容器运行时的修改都在这层,镜像本身只读)。

Dockerfile 中 FROM、RUN、COPY、ADD、CMD、ENTRYPOINT 的作用?

答:① FROM:指定基础镜像(必选,如FROM centos:7);② RUN:构建镜像时执行的命令(如安装软件);③ COPY/ADD:将宿主机文件复制到镜像内(ADD比COPY多了解压功能);④ CMD/ENTRYPOINT:容器启动时执行的命令(CMD可被docker run参数覆盖,ENTRYPOINT不可覆盖,更适合固定启动命令)。

docker 常用的网络模式有哪些?区别是什么?

答:① bridge:默认模式,容器有独立IP,通过宿主机端口映射访问外部;② host:容器共享宿主机的网络命名空间,无独立IP,宿主机端口直接被容器使用,性能更高;③ none:容器无网络,只能本地操作;④ container:容器共享另一个容器的网络。

四、总结

  1. Linux 重点抓文件操作、权限、进程、grep/find、tar、组合命令,这些是第一道必问,口述流程+参数即可;
  2. Docker 核心是镜像拉取/构建、容器run的参数、exec进入容器、日志查看、数据卷 ,docker run的参数必须背会并能分析;
相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式