ubantuserver-liunx常用命令

捣鼓

-

ubantu server-liunx常用命令

关机/重启 sudo poweroff / sudo reboot

磁盘相关

  • 磁盘查看 lsblk
  • 挂载硬盘
sudo mount [设备路径] [挂载点目录]
#示例
sudo mount /dev/sd? /mnt/data?
sudo mount /dev/sdd1 /mnt/data4  3t
sudo mount /dev/sde1 /mnt/data5  2t
复制代码
  • 卸载退出硬盘步骤
1.同步所有文件系统缓存
sync
2.卸载文件系统位置
sudo umount /mnt/data?
sudo umount /mnt/data4
sudo umount /mnt/data5
3.对物理盘断电
sudo udisksctl power-off -b /dev/sd?
复制代码

服务相关

  • 版本查询 ? --version
  • 启动服务 sudo systemctl start ?
  • 设置服务自启动 sudo systemctl enable ?
  • 重启服务 sudo systemctl restart ?
  • 检查服务状态 sudo systemctl status ?
  • 检查服务是否开机自启 sudo systemctl is-enabled ?
  • .deb文件程序安装 sudo dpkg -i /?

清除缓存

  • 清除页面缓存(PageCache) sudo sync && echo 1 | sudo tee /proc/sys/vm/drop_caches

  • 清除目录项和inodes sudo sync && echo 2 | sudo tee /proc/sys/vm/drop_caches

  • 清除页面缓存、目录项和inodes sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

防火墙

  • 列出所有防火墙规则并带编号 sudo ufw status numbered
  • 删除规则 编号 sudo ufw delete
  • 检查防火墙配置 sudo ufw status verbose
  • 开放端口 sudo ufw allow ?/tcp
  • 禁止端口 sudo ufw deny ?/tcp
  • 启动防火墙 sudo ufw enable
  • 重新加载UFW规则 sudo ufw reload
  • 关闭防火墙 sudo ufw disable

权限相关

基本权限管理命令

  1. 查看权限
# 查看当前目录下文件和文件夹的详细权限
ls -l
# 查看指定文件夹的权限
ls -ld /path/to/folder
# 显示隐藏文件的权限
ls -la
复制代码
  1. chmod - 更改权限
# 数字表示法(推荐)
chmod 755 folder_name      # 所有者:rwx,组:r-x,其他:r-x
chmod 644 file_name        # 所有者:rw-,组:r--,其他:r--
chmod 777 folder_name      # 所有人可读、写、执行(谨慎使用)

# 符号表示法
chmod u+rwx folder_name    # 给所有者添加读、写、执行权限
chmod g+rx folder_name     # 给组添加读、执行权限
chmod o-w folder_name      # 移除其他的写权限
chmod a+x script.sh        # 给所有人添加执行权限
复制代码
  1. chown - 更改所有者和组
# 更改文件夹的所有者
sudo chown username folder_name
# 更改文件夹的所有者和组
sudo chown username:groupname folder_name
# 更改文件夹的所有者为当前用户
sudo chown $USER folder_name
# 更改文件夹的组
sudo chown :groupname folder_name
复制代码
  1. chgrp - 更改组
# 更改文件夹的所属组
sudo chgrp groupname folder_name
# 将文件夹组改为 www-data(常用于 web 目录)
sudo chgrp www-data /var/www/html
复制代码

递归操作(处理文件夹及其内容)

递归更改权限

# 递归更改文件夹及其所有内容的权限
chmod -R 755 folder_name
# 递归给所有 .sh 文件添加执行权限
find folder_name -name "*.sh" -exec chmod +x {} \;
# 递归移除其他用户的写权限
chmod -R o-w folder_name
复制代码

递归更改所有权

# 递归更改文件夹及其所有内容的所有者
sudo chown -R username:groupname folder_name
# 递归更改文件夹及其内容为当前用户
sudo chown -R $USER:$USER folder_name
# 递归更改组
sudo chgrp -R www-data /var/www/html
复制代码

常用权限组合

Web 服务器目录权限

# Web 根目录 - 安全配置
sudo chown -R $USER:www-data /var/www/html
sudo chmod -R 755 /var/www/html
sudo chmod -R 644 /var/www/html/*.html  # 仅文件为 644
# 可写目录(如上传文件夹)
sudo chmod 775 /var/www/html/uploads
sudo chgrp www-data /var/www/html/uploads
复制代码

用户目录权限

# 用户主目录
chmod 700 ~              # 仅用户自己可访问
chmod 755 ~/public_html  # 公开可读,但只有用户可写
# 项目目录
chmod 755 ~/projects     # 其他人可读但不可写
复制代码

配置文件权限

# 敏感配置文件
chmod 600 ~/.ssh/id_rsa          # 仅用户可读写
chmod 644 ~/.ssh/id_rsa.pub      # 公开可读
chmod 700 ~/.ssh                 # SSH 目录
复制代码

权限数字表示法详解

数字权限含义
0---无权限
1--x仅执行
2-w-仅写入
3-wx写入和执行
4r--仅读取
5r-x读取和执行
6rw-读取和写入
7rwx读取写入和执行

格式: chmod ABC file

  • A = 所有者权限
  • B = 组权限
  • C = 其他用户权限

实用权限管理

  1. 设置默认权限
# 查看当前 umask
umask
# 设置默认创建的文件权限为 644,文件夹为 755
umask 022
# 设置更严格的默认权限(文件 600,文件夹 700)
umask 077
复制代码
  1. 特殊权限
# 设置粘滞位(常用于 /tmp,只有所有者能删除文件)
chmod +t folder_name
chmod 1755 folder_name
# 设置 SetGID(新建文件继承父目录的组)
chmod g+s folder_name
chmod 2755 folder_name
# 设置 SetUID(以文件所有者身份运行)
chmod u+s executable_file
chmod 4755 executable_file
复制代码
  1. 权限检查与修复
# 检查文件夹权限
namei -l /path/to/folder
# 查找权限过大的文件
find /path -type f -perm 777 -ls
# 查找没有所有者的文件
find /path -nouser -o -nogroup
# 修复常见 web 目录权限
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
复制代码
  • 最小权限原则:只给予必要的最小权限
  • 避免使用 777:除非绝对必要且了解风险
  • 定期审计权限:检查关键目录的权限设置
  • 使用适当的组权限:通过组管理而非全局权限

Linux 命令中 - 后面接字母的选项详细说明

选项的基本类型

  1. 单字母选项
# 单个字母选项,用单个 - 前缀
ls -l          # 长格式显示
ls -a          # 显示所有文件(包括隐藏文件)
ls -h          # 人类可读的文件大小
复制代码
  1. 组合单字母选项
# 多个单字母选项可以组合使用
ls -la         # 等同于 ls -l -a
ls -lh         # 等同于 ls -l -h
ls -lha        # 等同于 ls -l -h -a
复制代码
  1. 完整单词选项
# 完整单词选项,用 -- 前缀
ls --all       # 显示所有文件
ls --help      # 显示帮助信息
ls --version   # 显示版本信息
复制代码

常用命令选项详解

  • 文件操作命令 ls - 列出目录内容
    ls -l      # 长格式显示(权限、所有者、大小、时间)
    ls -a      # 显示所有文件,包括隐藏文件
    ls -h      # 人类可读的文件大小(KB, MB, GB)
    ls -t      # 按修改时间排序
    ls -r      # 反向排序
    ls -R      # 递归显示子目录
    ls -S      # 按文件大小排序
    ls -i      # 显示 inode 号码
    
    复制代码
    cp - 复制文件
    cp -r      # 递归复制目录
    cp -i      # 交互模式(覆盖前确认)
    cp -v      # 详细模式(显示复制过程)
    cp -p      # 保留文件属性(权限、时间戳)
    cp -u      # 仅复制更新的文件
    cp -l      # 创建硬链接而非复制
    cp -s      # 创建符号链接
    
    复制代码
    mv - 移动/重命名文件
    mv -i      # 交互模式(覆盖前确认)
    mv -v      # 详细模式(显示移动过程)
    mv -f      # 强制移动(不提示)
    mv -n      # 不覆盖已存在文件
    
    复制代码
    rm - 删除文件
    rm -r      # 递归删除目录
    rm -f      # 强制删除(不提示)
    rm -i      # 交互模式(删除前确认)
    rm -v      # 详细模式(显示删除过程)
    rm -d      # 删除空目录
    
    复制代码
    mkdir - 创建目录
    mkdir -p   # 创建多级目录(自动创建父目录)
    mkdir -v   # 详细模式(显示创建的目录)
    mkdir -m   # 设置目录权限(mkdir -m 755 dirname)
    
    复制代码
  • 权限管理命令 chmod - 更改权限
    chmod -R   # 递归更改权限
    chmod -v   # 详细模式(显示更改的文件)
    chmod -c   # 仅在更改时报告
    chmod -f   # 忽略大部分错误信息
    
    复制代码
    chown - 更改所有者
    chown -R   # 递归更改所有者
    chown -v   # 详细模式
    chown -c   # 仅在更改时报告
    
    复制代码
    chgrp - 更改组
    chgrp -R   # 递归更改组
    chgrp -v   # 详细模式
    
    复制代码
  • 文本处理命令 grep - 文本搜索
    grep -r    # 递归搜索目录
    grep -i    # 忽略大小写
    grep -v    # 反向匹配(显示不包含的行)
    grep -n    # 显示行号
    grep -l    # 仅显示包含匹配的文件名
    grep -c    # 显示匹配行数
    grep -E    # 使用扩展正则表达式
    
    复制代码
    find - 查找文件
    find -name     # 按文件名查找
    find -type     # 按文件类型查找(f=文件,d=目录)
    find -mtime    # 按修改时间查找
    find -size     # 按文件大小查找
    find -exec     # 对找到的文件执行命令
    find -delete   # 删除找到的文件
    
    复制代码
    tar - 归档文件
    tar -c     # 创建归档
    tar -x     # 提取归档
    tar -v     # 详细模式
    tar -f     # 指定归档文件名
    tar -z     # 使用 gzip 压缩
    tar -j     # 使用 bzip2 压缩
    tar -t     # 列出归档内容
    
    复制代码
  • 系统管理命令 ps - 进程状态
    ps -e      # 显示所有进程
    ps -f      # 完整格式显示
    ps -l      # 长格式显示
    ps -u      # 按用户显示进程
    ps -aux    # 显示所有用户的详细进程信息
    
    复制代码
    top / htop - 进程监控
    top -p     # 监控特定PID
    top -u     # 监控特定用户
    top -d     # 设置刷新间隔
    
    复制代码
    systemctl - 服务管理
    systemctl start     # 启动服务
    systemctl stop      # 停止服务
    systemctl restart   # 重启服务
    systemctl reload    # 重新加载配置
    systemctl enable    # 启用开机启动
    systemctl disable   # 禁用开机启动
    systemctl status    # 查看服务状态
    
    复制代码

选项的语法规则

  1. 短选项语法
# 单个选项
command -a
# 多个选项组合
command -abc          # 等同于 command -a -b -c
# 带参数的选项
command -f filename   # -f 后面接文件名
command -n 10         # -n 后面接数字
复制代码
  1. 长选项语法
# 完整单词选项
command --help
command --version
# 带参数的选项
command --file=filename
command --number=10
复制代码
  1. 混合使用
# 短选项和长选项可以混合使用
tar -czvf archive.tar.gz --exclude="*.tmp" /path/to/dir
复制代码

常用选项组合示例

实用组合命令

# 备份目录并压缩
tar -czvf backup.tar.gz /path/to/directory
# 查找并删除旧日志文件
find /var/log -name "*.log" -mtime +30 -delete
# 递归更改所有 .sh 文件为可执行
find . -name "*.sh" -exec chmod +x {} \;
# 显示进程的完整信息
ps -ef | grep nginx
# 安全删除(交互确认)
rm -ri old_directory
# 复制并保留所有属性
cp -rp source_directory destination
复制代码

注意事项

  1. 选项顺序问题
# 有些命令对选项顺序敏感
tar -cf archive.tar files/    # 正确
tar -fc archive.tar files/    # 可能出错
# 一般规则:带参数的选项应该在参数之前
复制代码
  1. 选项冲突
# 某些选项不能同时使用
rm -ri         # 可以:交互式递归删除
rm -rf         # 可以:强制递归删除
# 但 -i 和 -f 通常不能同时使用,因为含义冲突
3. GNU 风格 vs BSD 风格
bash
# Linux (GNU) 风格
ls --color=auto
# macOS (BSD) 风格
ls -G
复制代码

帮助信息获取

查看命令选项帮助

# 大多数命令的标准帮助选项
command --help
command -h
# 详细手册
man command
# 简要帮助
command --help | less
复制代码

示例:学习新命令

# 查看 tar 命令的所有选项
tar --help
# 或者查看手册页
man tar
# 查找特定选项的说明
man chmod | grep -A 5 -B 5 "\-R"
复制代码

常用字母含义:

  • r - 递归 (recursive)
  • f - 强制 (force) / 文件 (file)
  • v - 详细 (verbose)
  • i - 交互 (interactive)
  • p - 保留属性 (preserve) / 路径 (path)
  • h - 人类可读 (human-readable)
  • 使用 --help 查看不熟悉的选项
  • 在测试环境练习危险选项(如 rm -rf)

docker相关

启动/停止 Docker sudo systemctl start docker / sudo systemctl stop docker

查看服务状态 sudo systemctl status docker

进入?内的容器 docker exec -it ? /bin/bash

镜像管理

列出本地所有镜像的基本信息 docker images / docker image ls

通过镜像ID删除镜像 docker rmi ?

删除所有未被容器使用的镜像 docker image prune -a

删除所有悬空镜像(未被任何镜像引用的镜像层) docker image prune

拉取镜像 docker pull [image]

删除镜像 docker rmi [image]

docker容器管理

查看运行中的容器 docker ps

查看所有容器 docker ps -a

启动容器 docker start ?

停止容器 docker stop ?

重启容器 docker restart ?

删除容器 docker rm ?

进入容器 docker exec -it ? bash

docker-compose容器

在yaml文件所在目录执行命令 启动容器 docker compose up -d

重启容器 docker compose restart ?

关闭容器 docker compose stop ?

停止并删除容器和网络(不会删除数据卷和配置目录) docker compose down

查看日志 docker compose logs -f

近10条日志 sudo docker compose logs --tail=10

Nginx相关

检查 Nginx 状态 service nginx status

检查位置nginx配置文件 nginx -t -c /?

查看nginx进程 ps | grep nginx

启动nginx /etc/init.d/nginx start

测试配置语法 nginx -t -c '/etc/nginx/uci.conf'

如果测试通过,启动 Nginx /etc/init.d/nginx start

文本编辑器

cat

查看 cat /? cat > 文件名? 直接编写 enter换行 ctrl+d 保存退出

cat > /?#位置文件名 << 'EOF'
插入内容
EOF
复制代码

vi

i编辑
esc:wq保存退出 :%d 全部删除

nano

  • 全选 Ctrl + ^ 或 Alt + A → Meta + \ → Meta + / 先设置标记,然后跳转至文件首,再跳转至文件尾以实现全选
  • 删除所选 Ctrl + K 剪切(删除)已选中的文本
  • 粘贴 Ctrl + U在光标位置粘贴剪切板内容
  • 跳转至文件首 Meta + \ 或 Ctrl + Home快速将光标移动到文件开头
  • 跳转至文件尾 Meta + / 或 Ctrl + End快速将光标移动到文件末尾
  • 实现全选并删除 1.精确选择:按 Ctrl + ^ (即Ctrl+6) 或 Alt + A 设置标记,你会看到底部出现"Mark Set"的提示。然后,通过按 Meta + / (通常是Alt + /) 跳转到文件末尾。此时,从设置标记的位置到文件末尾的所有文本都会被高亮选中。最后,按Ctrl + K即可一次性删除所有选中的内容。 2.快速选择:先按 Meta + \ (通常是Alt + \) 跳到文件开头,接着按 Ctrl + ^ 设置标记,然后再按 Meta + / 跳到文件末尾。这样就选中了整个文件,再使用 Ctrl + K 删除。
  • 全选并覆盖粘贴 这个操作通常用于用剪贴板里的新内容完全替换当前文件的全部旧内容。 首先,使用上面介绍的任意一种方法全选文件内容并按下 Ctrl + K将其剪切(删除)。此时,旧内容已经从编辑区消失。 接着,直接按 Ctrl + U 就能将刚才剪切的内容粘贴回来。如果你是从其他程序(比如浏览器)复制了内容,想在Nano中替换当前文件,在完成全选和剪切后,不要在Nano里复制新内容,而是直接使用Ctrl + Shift + V(具体组合取决于你的终端设置)将系统剪贴板的新内容粘贴进来。
#ubantu#liunx
头像

HaG_Cat

1分类数6文章数

该笔记已存活437 天 20 时 52 分 51 秒

QQQQ个人作品站个人作品站ArtStationArtStationBilibiliBilibili

哔哔

-

© 2025-2026 HaG_Cat‘Blog