Linux指令大全
下面是一些常见的 Linux 指令及其简要说明,分为不同类别,方便查阅:
文件和目录操作
- ls:列出当前目录的内容
-
ls -l
:详细显示文件信息ls -a
:显示隐藏文件
- cd:切换目录
-
cd ..
:返回上一级目录cd ~
:进入用户的主目录
- pwd:显示当前工作目录
- mkdir:创建新目录
-
mkdir dirname
:创建名为 dirname 的目录
- rm:删除文件或目录
-
rm file
:删除文件rm -r dir
:递归删除目录rm -rf dir
: 无需用户确认直接强行删除rm -f
:强制删除文件 加上这个就不用
- cp:复制文件或目录
-
cp file1 file2
:将文件 file1 复制到 file2cp -r dir1 dir2
:递归复制目录
- mv:移动文件或重命名
-
mv file1 file2
:将文件 file1 移动或重命名为 file2
- touch:创建新文件
-
touch filename
:创建空文件
文件内容查看
- cat:查看文件内容
-
cat file
:显示文件内容
- less:分页查看文件内容
-
less file
:逐页查看文件内容- 在使用
less
分页查看文件内容时,你可以按以下键退出查看模式:
css
退出 less 的方法:
● 按 q 键:这是退出 less 查看器的快捷键,按下 q 后会立即退出 less,返回命令行。
常见的其他 less 操作:
● 向下翻页:按 Space 键或 f 键。
● 向上翻页:按 b 键。
● 向下滚动一行:按 Enter 键或 j 键。
● 向上滚动一行:按 k 键。
● 搜索文本:按 / 键,然后输入搜索的关键字,按 Enter 进行搜索。
要退出 less 查看器,只需按下 q 键即可
- more :类似于 less,但功能稍弱 4. head:显示文件前几行
-
head -n 10 file
:显示文件的前 10 行
- tail:显示文件后几行
-
tail -n 10 file
:显示文件的最后 10 行tail -f file
:实时查看文件末尾的变化(例如日志文件)
文件权限
- chmod:更改文件权限
-
chmod 755 file
:设置文件权限为 755chmod u+x file
:为文件的拥有者添加执行权限
- chown:更改文件所有者
-
chown user:group file
:将文件的所有者和所属组更改为指定的 user 和 group
- umask:设置默认文件权限
系统管理
- sudo:以超级用户身份执行命令
-
sudo command
:以管理员身份执行 command
- df:查看磁盘空间使用情况
-
df -h
:以可读的方式显示
- du:查看目录和文件的大小
-
du -h
:以可读的方式显示du -sh dir
:显示目录 dir 的总大小
- top:实时查看系统进程和资源使用情况
- ps:查看当前运行的进程
-
ps aux
:显示所有进程的详细信息- ps -ef
- kill:终止进程
-
kill PID
:终止指定 PID 的进程kill -9 PID
:强制终止进程
- reboot:重启系统
- shutdown:关闭系统
-
shutdown -h now
:立即关机shutdown -r now
:立即重启
压缩与解压
- tar:打包和解包文件
-
tar -cvf archive.tar dir/
:将 dir 目录打包为 archive.tartar -xvf archive.tar
:解包 archive.tartar -czvf archive.tar.gz dir/
:打包并压缩为 gzip 格式tar -xzvf archive.tar.gz
:解压 gzip 格式的压缩包
- gzip:压缩文件
-
gzip file
:压缩文件gzip -d file.gz
:解压缩文件
- zip:压缩文件或目录
-
zip archive.zip file1 file2
:压缩文件unzip archive.zip
:解压缩文件
- 下载rar解析工具
sudo dnf install epel - release
sudo dnf install unrar
unrar x example.rar
网络相关
- ping:测试网络连通性
-
ping www.example.com
:测试与域名的连接
- ifconfig:查看或配置网络接口(较旧)
- ip:显示或修改网络配置(替代 ifconfig)
-
ip addr
:查看网络地址
- netstat:查看网络连接状态
-
netstat -tuln
:查看当前监听的端口
- ssh:远程登录
-
ssh user@host
:登录到指定的远程主机
- scp:通过 SSH 复制文件
-
scp file user@host:/path/
:将文件复制到远程主机scp user@host:/path/file ./
:从远程主机复制文件到本地
搜索与查找
- find:在文件系统中查找文件
-
find /path -name filename
:在 /path 目录下查找名为 filename 的文件
- grep:在文件中搜索文本
-
grep 'pattern' file
:在文件中搜索匹配 pattern 的行grep -r 'pattern' dir/
:递归搜索目录
- locate:快速查找文件
-
locate filename
:查找文件位置(需要事先更新数据库)
磁盘和文件系统
- mount:挂载文件系统
-
mount /dev/sdX /mnt
:挂载设备到 /mnt 目录
- umount:卸载文件系统
-
umount /mnt
:卸载挂载在 /mnt 的文件系统
- fdisk:磁盘分区工具
- mkfs:格式化文件系统
-
mkfs.ext4 /dev/sdX
:将设备格式化为 ext4 文件系统
用户和组管理
- useradd:添加新用户
-
useradd username
:添加新用户
- passwd:设置用户密码
-
passwd username
:为用户设置密码
- groupadd:添加新组
- usermod:修改用户属性
-
usermod -aG group username
:将用户添加到组中
- userdel:删除用户
-
userdel username
:删除用户
- who:查看当前登录的用户
- su:切换用户身份
-
su - username
:切换到指定用户
其他常用命令
- echo:输出文本
-
echo "Hello World"
:打印文本
- history:查看命令历史
- alias:为命令创建别名
-
alias ll='ls -l'
:将ll
作为ls -l
的别名
- date:显示当前日期和时间
- uptime:查看系统运行时间
- clear:清屏
命令 | 说明 | 文档地址 |
---|---|---|
docker pull | 拉取镜像 | docker pull |
docker push | 推送镜像到DockerRegistry | docker push |
docker images | 查看本地镜像 | docker images |
docker rmi | 删除本地镜像 | docker rmi |
docker run | 创建并运行容器(不能重复创建) | docker run |
docker stop | 停止指定容器 | docker stop |
docker start | 启动指定容器 | docker start |
docker restart | 重新启动容器 | docker restart |
docker rm | 删除指定容器 | docs.docker.com |
docker ps | 查看容器 | docker ps |
docker logs | 查看容器运行日志 | docker logs |
docker exec | 进入容器 | docker exec |
docker save | 保存镜像到本地压缩文件 | docker save |
docker load | 加载本地压缩文件到镜像 | docker load |
docker inspect | 查看容器详细信息 | docker inspect |
Docker 是一个用于容器化应用程序的开源平台,以下是一些常见的 Docker 命令,涵盖了镜像、容器、网络、数据卷等操作。
镜像操作
- 搜索镜像
-
docker search image_name
:在 Docker Hub 上搜索镜像。
- 下载镜像
-
docker pull image_name
:从 Docker Hub 下载镜像。docker pull image_name:tag
:下载指定标签(版本)的镜像。
- 列出本地镜像
-
docker images
:列出本地的所有镜像。
- 删除镜像
-
docker rmi image_name
:删除本地的指定镜像。docker rmi image_id
:根据镜像 ID 删除镜像。
- 构建镜像
-
docker build -t image_name:tag .
:基于 Dockerfile 构建镜像并指定名称和标签。
容器操作
- 运行容器
-
docker run image_name
:从镜像启动一个容器。docker run -d image_name
:后台运行容器(守护模式)。docker run -it image_name /bin/bash
:启动交互式容器并进入 Bash。
- 列出容器
-
docker ps
:列出正在运行的容器。docker ps -a
:列出所有容器(包括停止的)。
- 停止容器
-
docker stop container_id
:停止指定容器。docker stop $(docker ps -q)
:停止所有运行中的容器。
- 启动容器
-
docker start container_id
:启动已停止的容器。
- 删除容器
-
docker rm container_id
:删除指定容器。docker rm $(docker ps -a -q)
:删除所有已停止的容器。
- 查看容器日志
-
docker logs container_id
:查看指定容器的日志。docker logs -f container_id
:实时查看容器日志。
- 进入容器
-
docker exec -it container_id /bin/bash
:进入正在运行的容器并启动一个交互式终端。
- 重启容器
-
docker restart container_id
:重启容器。
网络操作
- 列出网络
-
docker network ls
:列出所有 Docker 网络。
- 创建网络
-
docker network create network_name
:创建自定义网络。
- 删除网络
-
docker network rm network_name
:删除指定网络。
- 连接容器到网络
-
docker network connect network_name container_id
:将容器连接到指定网络。
- 断开容器与网络的连接
-
docker network disconnect network_name container_id
:断开容器与网络的连接。
数据卷(Volume)操作
- 创建数据卷
-
docker volume create volume_name
:创建数据卷。
- 列出数据卷
-
docker volume ls
:列出所有数据卷。
- 挂载数据卷
-
docker run -v volume_name:/path/in/container image_name
:将数据卷挂载到容器中指定的路径。
- 删除数据卷
-
docker volume rm volume_name
:删除指定的数据卷。
- 清理未使用的数据卷
-
docker volume prune
:删除所有未使用的数据卷。
镜像和容器清理
- 删除未使用的镜像
-
docker image prune
:删除所有未被容器使用的镜像。
- 删除所有未使用的资源
-
docker system prune
:清理所有未使用的容器、镜像、网络等资源。
Docker Compose
- 启动容器
-
docker-compose up
:根据docker-compose.yml
启动服务。docker-compose up -d
:后台运行所有服务。
- 停止容器
-
docker-compose down
:停止并删除所有由docker-compose
启动的容器和网络。
- 查看容器日志
-
docker-compose logs
:查看由docker-compose
启动的服务的日志。
- 构建镜像
-
docker-compose build
:根据docker-compose.yml
文件构建镜像。
其他常用命令
- 查看容器信息
-
docker inspect container_id
:查看容器详细信息。docker stats
:实时查看容器的资源使用情况。
- 复制文件
-
docker cp container_id:/path/in/container /host/path
:从容器内复制文件到宿主机。docker cp /host/path container_id:/path/in/container
:从宿主机复制文件到容器内。
- 重命名容器
-
docker rename old_name new_name
:为容器重新命名。
- 导出容器
-
docker export container_id > file.tar
:将容器导出为 tar 文件。
- 导入容器
-
docker import file.tar
:将导出的 tar 文件导入为镜像。
管理 Docker 服务
- 启动 Docker 服务
-
sudo systemctl start docker
:启动 Docker 服务。
- 停止 Docker 服务
-
sudo systemctl stop docker
:停止 Docker 服务。
- 检查 Docker 服务状态
-
sudo systemctl status docker
:检查 Docker 服务是否正在运行。
- 启用 Docker 开机启动
-
sudo systemctl enable docker
:设置 Docker 开机自动启动。
总结
以上是常见的 Docker 命令,涵盖了容器的启动、停止、删除、网络管理、数据卷管理等操作。通过熟悉这些命令,可以有效地使用 Docker 来管理和部署容器化应用。
在 Linux 系统中,sudo
命令的作用是以超级用户(root)的权限执行命令。普通用户在执行一些涉及系统级别的操作时,往往需要通过 sudo
来临时获取 root 权限。sudo
和不加 sudo
的区别主要体现在权限控制上。
总结
- 加
sudo
:你可以提升到 root 权限执行命令,通常是管理系统服务所必需的。 - 不加
sudo
:以普通用户权限执行命令,通常无法成功启动或管理系统级服务,除非当前用户就是 root。
一般情况下,管理 Docker 服务(如启动、停止等)都需要 sudo
权限,因此你需要在命令前加上 sudo
来提升权限。
systemctl
是 Linux 系统中用于管理 systemd
系统和服务管理器的命令行工具。systemd
是许多现代 Linux 发行版中默认的系统初始化程序(init 系统),负责启动、停止和管理系统的服务和进程。
systemctl
主要用于启动、停止、重启服务,查看服务状态,以及管理系统服务的启动行为(例如开机自动启动等)。
systemctl
的常用功能和命令
- 启动服务
-
systemctl start service_name
:启动指定的服务。- 示例:
systemctl start docker
启动 Docker 服务。
- 停止服务
-
systemctl stop service_name
:停止指定的服务。- 示例:
systemctl stop nginx
停止 Nginx 服务。
- 重启服务
-
systemctl restart service_name
:重启指定的服务。- 示例:
systemctl restart apache2
重启 Apache 服务。
- 查看服务状态
-
systemctl status service_name
:查看服务的当前状态(运行中、停止或失败等)。- 示例:
systemctl status ssh
查看 SSH 服务状态。
- 启用服务(开机自启)
-
systemctl enable service_name
:设置指定服务为开机自动启动。- 示例:
systemctl enable docker
设置 Docker 服务为开机启动。
- 禁用服务(取消开机自启)
-
systemctl disable service_name
:取消指定服务的开机启动。- 示例:
systemctl disable docker
禁止 Docker 开机自动启动。
- 查看服务是否开机自启
-
systemctl is-enabled service_name
:查看某个服务是否设置为开机自启。
- 重新加载配置
-
systemctl reload service_name
:在不终止服务的情况下重新加载其配置文件(如果服务支持)。- 示例:
systemctl reload nginx
重新加载 Nginx 的配置文件。
- 列出所有服务
-
systemctl list-units --type=service
:列出系统中所有的服务及其状态。
- 列出失败的服务
-
systemctl --failed
:显示所有失败的服务。
- 查看系统状态
-
systemctl
或systemctl status
:查看系统整体的状态,包括系统启动时间、加载的服务、状态等。
systemd
和 systemctl
的关系
systemd
是一个系统和服务管理器,负责启动系统时初始化服务、挂载文件系统、管理服务的依赖关系、处理进程等。它取代了传统的init
系统。systemctl
是与systemd
交互的命令行工具,允许管理员通过命令管理服务和系统状态。
常见的 systemctl
使用示例
- 启动 Docker 服务:
sql
sudo systemctl start docker
- 查看 Apache 服务的状态:
lua
sudo systemctl status apache2
- 设置 Nginx 服务为开机自启:
bash
sudo systemctl enable nginx
-
重启 MySQL 服务:
sudo systemctl restart mysql
-
查看系统的整体状态:
lua
systemctl status
总结
systemctl
是一个非常强大的命令行工具,用于控制 systemd
管理的服务和系统状态。通过 systemctl
,可以方便地启动、停止、管理和监控系统服务,提升了 Linux 系统管理的效率和灵活性。