HBB BLOG
首页
登录
🌙
Liunx常用相关指令
📅 2024-02-06
📂 系统
📝 2298 字
⏱️ 8 分钟
👁️ 21
不管是部署服务器、写脚本还是日常运维,Linux 指令都是基本功。 --- ## 一、 📊 系统资源与硬件监控(排查卡顿必看) 服务器卡顿或报错时,检查 CPU、内存和磁盘。 ```bash df -h # 【必会】查看各个磁盘分区的剩余空间(如 80% 满额需及时清理) free -h # 【必会】查看当前内存 (RAM) 和交换分区 (Swap) 的使用情况 top # 实时显示系统资源与最活跃进程(按 q 退出) top -d 10 # 每 10 秒刷新一次进程列表 htop # 可视化增强版进程监视器(支持鼠标点击,更直观) uptime # 查看系统已运行时间及平均负载 (Load Average) uname -r # 查看 Linux 内核版本 neofetch # 炫酷展示系统 Logo 和硬件配置信息 ``` --- ## 二、 📁 文件与目录高频操作 ```bash touch xxx.txt xxx2.txt # 创建空白文件(可同时创建多个) mkdir -p a/b/c # 创建多级嵌套文件夹 cp 源文件 目标目录/ # 复制文件(复制文件夹需加 -r 参数:cp -r src/ dst/) mv 源文件 目标目录/ # 移动文件,或直接重命名文件 du -sh 路径 # 查看指定目录/文件的总占用大小(如 1.5G) du -h --max-depth=1 路径 # 查看目录下各个子目录的大小,方便找出大文件 find / -name "xxx" # 根据文件名全盘精准/模糊查找 ln -s 源文件 软链接名 # 创建软链接(类似于 Windows 的快捷方式) ``` --- ## 三、 🔐 权限与文件归属管理 ### 1. 权限与归属修改 ```bash chmod +x script.sh # 给脚本添加可执行权限 chmod 755 catalog # 设置目录权限(所有者全权,其他人可读可执行) chown 用户:用户组 file # 【补全】修改文件的所有者与所属用户组 ``` ### 2. 常用权限数字速查表 > **原理说明**:读(`r`)=4,写(`w`)=2,执行(`x`)=1。相加即为权限数字。 | 权限代码 | 对应权限 (`r`读 / `w`写 / `x`执行) | 人话适用场景说明 | | :--- | :--- | :--- | | **600** | `rw-------` | 只有所有者能读写(常见于 SSH 私钥文件,安全系数高) | | **644** | `rw-r--r--` | 普通文件默认权限(所有者可读写,其他人只能读) | | **700** | `rwx------` | 只有所有者拥有完全权限 | | **755** | `rwxr-xr-x` | 目录与可执行脚本的默认标准权限 | | **777** | `rwxrwxrwx` | 最高权限(所有人均可读写执行,**生产环境极不安全**) | --- ## 四、 📦 压缩、解压与软件包升级 ```bash # 解压与打包 tar -zxvf FileName.tar.gz # 解压 .tar.gz 压缩包 tar -czvf FileName.tar.gz 目录/ # 【补全】将目录打包压缩为 .tar.gz zip -r test.zip file # 压缩为 .zip 格式 unzip FileName.zip # 解压 .zip 压缩包 rar a -r test.rar file # 压缩为 .rar 格式 # 系统更新一条龙 (Ubuntu/Debian) apt update && apt upgrade -y # 【推荐】更新软件源并升级所有已安装软件 apt autoremove && apt-get dist-upgrade # 清理无用依赖并进行深度系统更新 ``` --- ## 五、 🔍 进程控制、后台挂起与排查 解决“网络挂断程序终止”或“找不出是谁占用了端口”的问题。 ### 1. 进程查找与端口排查 ```bash ps -ef | grep 名称 # 搜索指定进程名并获取其 PID ps -p 进程PID -o comm= # 根据 PID 反查进程完整名称 lsof -i:端口号 # 【必会】查看指定端口被哪个进程占用了 ss -tulpn # 【必会】查看当前系统所有正在监听的端口及对应进程 ``` ### 2. 后台挂起运行 (Nohup & Screen) ```bash # 1. Nohup 标准后台运行写法(附标准输出重定向): nohup python3 script.py > output.log 2>&1 & tail -f output.log # 实时查看后台程序输出的日志 # 2. Screen 窗口管理(比 nohup 更强大) screen -S 名称 # 新建并进入指定名称的后台会话 Ctrl + a + d # 快捷键:将当前会话挂起并退回主终端 screen -ls # 查看所有后台 Screen 会话 screen -r 名称 # 切回指定名称的会话 screen -S 名称 -X quit # 关闭指定的后台会话 ``` --- ## 六、 🌐 网络调优、防火墙与远程传输 ### 1. 远程文件传输 (SCP 与 Rsync) ```bash # SCP 传输 scp -P 22 用户名@IP:/远程路径/文件 /本地路径/ # 从远程服务器下载文件 scp -P 22 /本地文件 用户名@IP:/远程路径/ # 上传文件到远程服务器 # Rsync 传输(【补全】比 SCP 更强,支持断点续传与增量同步) rsync -avzP /本地目录/ 用户名@IP:/远程目录/ ``` ### 2. 防火墙配置 (UFW & iptables) ```bash # UFW 防火墙 (Ubuntu) ufw status # 查看防火墙状态 ufw enable / disable # 开启 / 禁用防火墙 ufw allow 6500:6800/tcp # 允许 TCP 端口段 ufw allow from 192.168.1.1 # 放行指定 IP # iptables 防火墙设置 # ⚠️ 踩坑警告:如果默认 INPUT 策略是 DROP,直接运行 iptables -F 会导致 SSH 断连! iptables -F # 清空现有的防火墙规则 iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 放行 SSH 端口 iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 放行 HTTP 端口 iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 放行 HTTPS 端口 iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # 保持已有连接 iptables-save # 保存规则 ``` ### 3. Nmap 网络探测(修正语法报错) ```bash nmap IP # 扫描目标 IP 开放的端口 nmap -sn 192.168.1.0/24 # C 段存活主机探测(已纠错 namp 拼写) # 绕过安全检测的深度扫描(已修正原命令中会导致报错的中文全角括号): nmap -A -v -p1-1000 -Pn -T4 -sS 175.6.245.227 --script http-methods --script-args http.useragent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:87.0) Gecko/20100101 Firefox/87.0" ``` ### 4. 开启 BBR 网络拥塞控制算法 ```bash # 确认 Linux 内核版本在 4.9 以上 uname -r # 启用 TCP BBR echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf sysctl -p # 确认开启成功 sysctl net.ipv4.tcp_congestion_control # 应输出 bbr lsmod | grep bbr ``` ### 5. acme.sh 自动化申请域名 SSL 证书 ```bash # 1. 安装 acme.sh 工具 sudo apt update && apt install cron socat curl -y curl https://get.acme.sh | sh ~/.acme.sh/acme.sh --set-default-ca --server letsencrypt # 2. 申请证书(需确保 80 端口未被占用) ~/.acme.sh/acme.sh --issue -d 你的域名.com --standalone -k ec-256 --force # 3. 安装证书到指定路径 ~/.acme.sh/acme.sh --install-cert -d 你的域名.com --ecc \ --key-file /etc/nginx/ssl/server.key \ --fullchain-file /etc/nginx/ssl/server.crt ``` --- ## 七、 🐳 Docker 与 Docker Compose 运维 容器化部署高频运维指令。 ```bash docker ps # 查看正在运行的容器 docker ps -aq # 列出所有容器的 ID docker start $(docker ps -aq) # 启动所有容器 docker stop $(docker ps -aq) # 停止所有容器 docker rm $(docker ps -aq) # ⚠️ 强制删除所有已停止的容器(慎用) docker rmi $(docker images -q) # ⚠️ 删除所有未使用的镜像(慎用) # Docker Compose 管理 docker-compose up -d # 进入 docker-compose.yml 所在目录,后台启动所有服务 docker-compose stop # 停止所有服务 docker-compose stop 服务名 # 停止指定名称的服务 docker-compose logs -f # 【补全】实时查看容器组合的运行日志 ``` --- ## 八、 ⚙️ 系统服务、定时任务与开关机 ```bash # Systemd 服务管理 systemctl enable 名称 # 设置开机自启 systemctl start 名称 # 启动服务 systemctl stop 名称 # 停止服务 systemctl restart 名称 # 重启服务 systemctl status 名称 # 查看服务运行状态 journalctl -u 服务名 -f # 【补全】实时查看指定 systemctl 服务的日志 # 定时任务 (Crontab) crontab -e # 【补全】编辑当前用户的定时任务 crontab -l # 【补全】查看已设立的定时任务列表 # 关机与重启 shutdown -h now # 立即关机 reboot # 重启服务器 ``` --- ## 九、 💡 实用小工具与基础指令速查表 ### 1. 开发与脚本小技巧 * **Vim 粘贴保持原格式**:在 Vim 指令模式下输入 `:set paste`,然后再进行粘贴,可以防止代码缩进格式错乱。 * **PyInstaller 打包 Python 程序**: ```bash pyinstaller -w -F main.py # -w:隐藏控制台黑框; -F:生成单个独立 exe 文件 ``` ### 2. 基础必备单行指令速查表 | 命令 | 用法示例 / 说明 | 用人话讲:这是干嘛的? | | :--- | :--- | :--- | | **man** | `man ls` | 查看任何 Linux 命令的操作手册 | | **curl** | `curl -I https://xxx.com` | 【补全】测试网页连通性或发送网络请求 | | **echo** | `echo "内容" > file.txt` | 输出文本或写入文件 | | **cat** | `cat file.txt` | 一次性打印文件全部内容 | | **less** | `less /var/log/syslog` | 分页查看大文件日志(按 Q 退出,按 / 搜索) | | **head / tail** | `tail -n 20 file.txt` | 查看文件前 N 行 / 后 N 行 | | **tail -f** | `tail -f /var/log/nginx/access.log` | **实时追踪**文件末尾新增的日志 | | **grep** | `grep "ERROR" app.log` | 从文件中过滤匹配包含特定关键词的行 | | **history** | `history` | 列出过去在终端敲过的历史命令 | | **which** | `which python3` | 查找软件命令对应的可执行文件物理路径 | | **shred** | `shred -u secret.txt` | 安全粉碎文件,防止数据被恢复 | | **whoami** | `whoami` | 输出当前登录的用户名 | | **whatis** | `whatis tar` | 用一句话简短说明某个命令的功能 | | **wc** | `wc -l file.txt` | 统计文件的行数(`-l` 参数) | | **wget** | `wget https://...` | 从网络直接下载文件到当前路径 | --- ### 💬 总结 纸上得来终觉浅,操作一哈子印象来得深刻些。
# Liunx
下一篇 →
奇奇怪怪的网站集合
💬 评论
0
/1000
发表评论
加载中...
不管是部署服务器、写脚本还是日常运维,Linux 指令都是基本功。 --- ## 一、 📊 系统资源与硬件监控(排查卡顿必看) 服务器卡顿或报错时,检查 CPU、内存和磁盘。 ```bash df -h # 【必会】查看各个磁盘分区的剩余空间(如 80% 满额需及时清理) free -h # 【必会】查看当前内存 (RAM) 和交换分区 (Swap) 的使用情况 top # 实时显示系统资源与最活跃进程(按 q 退出) top -d 10 # 每 10 秒刷新一次进程列表 htop # 可视化增强版进程监视器(支持鼠标点击,更直观) uptime # 查看系统已运行时间及平均负载 (Load Average) uname -r # 查看 Linux 内核版本 neofetch # 炫酷展示系统 Logo 和硬件配置信息 ``` --- ## 二、 📁 文件与目录高频操作 ```bash touch xxx.txt xxx2.txt # 创建空白文件(可同时创建多个) mkdir -p a/b/c # 创建多级嵌套文件夹 cp 源文件 目标目录/ # 复制文件(复制文件夹需加 -r 参数:cp -r src/ dst/) mv 源文件 目标目录/ # 移动文件,或直接重命名文件 du -sh 路径 # 查看指定目录/文件的总占用大小(如 1.5G) du -h --max-depth=1 路径 # 查看目录下各个子目录的大小,方便找出大文件 find / -name "xxx" # 根据文件名全盘精准/模糊查找 ln -s 源文件 软链接名 # 创建软链接(类似于 Windows 的快捷方式) ``` --- ## 三、 🔐 权限与文件归属管理 ### 1. 权限与归属修改 ```bash chmod +x script.sh # 给脚本添加可执行权限 chmod 755 catalog # 设置目录权限(所有者全权,其他人可读可执行) chown 用户:用户组 file # 【补全】修改文件的所有者与所属用户组 ``` ### 2. 常用权限数字速查表 > **原理说明**:读(`r`)=4,写(`w`)=2,执行(`x`)=1。相加即为权限数字。 | 权限代码 | 对应权限 (`r`读 / `w`写 / `x`执行) | 人话适用场景说明 | | :--- | :--- | :--- | | **600** | `rw-------` | 只有所有者能读写(常见于 SSH 私钥文件,安全系数高) | | **644** | `rw-r--r--` | 普通文件默认权限(所有者可读写,其他人只能读) | | **700** | `rwx------` | 只有所有者拥有完全权限 | | **755** | `rwxr-xr-x` | 目录与可执行脚本的默认标准权限 | | **777** | `rwxrwxrwx` | 最高权限(所有人均可读写执行,**生产环境极不安全**) | --- ## 四、 📦 压缩、解压与软件包升级 ```bash # 解压与打包 tar -zxvf FileName.tar.gz # 解压 .tar.gz 压缩包 tar -czvf FileName.tar.gz 目录/ # 【补全】将目录打包压缩为 .tar.gz zip -r test.zip file # 压缩为 .zip 格式 unzip FileName.zip # 解压 .zip 压缩包 rar a -r test.rar file # 压缩为 .rar 格式 # 系统更新一条龙 (Ubuntu/Debian) apt update && apt upgrade -y # 【推荐】更新软件源并升级所有已安装软件 apt autoremove && apt-get dist-upgrade # 清理无用依赖并进行深度系统更新 ``` --- ## 五、 🔍 进程控制、后台挂起与排查 解决“网络挂断程序终止”或“找不出是谁占用了端口”的问题。 ### 1. 进程查找与端口排查 ```bash ps -ef | grep 名称 # 搜索指定进程名并获取其 PID ps -p 进程PID -o comm= # 根据 PID 反查进程完整名称 lsof -i:端口号 # 【必会】查看指定端口被哪个进程占用了 ss -tulpn # 【必会】查看当前系统所有正在监听的端口及对应进程 ``` ### 2. 后台挂起运行 (Nohup & Screen) ```bash # 1. Nohup 标准后台运行写法(附标准输出重定向): nohup python3 script.py > output.log 2>&1 & tail -f output.log # 实时查看后台程序输出的日志 # 2. Screen 窗口管理(比 nohup 更强大) screen -S 名称 # 新建并进入指定名称的后台会话 Ctrl + a + d # 快捷键:将当前会话挂起并退回主终端 screen -ls # 查看所有后台 Screen 会话 screen -r 名称 # 切回指定名称的会话 screen -S 名称 -X quit # 关闭指定的后台会话 ``` --- ## 六、 🌐 网络调优、防火墙与远程传输 ### 1. 远程文件传输 (SCP 与 Rsync) ```bash # SCP 传输 scp -P 22 用户名@IP:/远程路径/文件 /本地路径/ # 从远程服务器下载文件 scp -P 22 /本地文件 用户名@IP:/远程路径/ # 上传文件到远程服务器 # Rsync 传输(【补全】比 SCP 更强,支持断点续传与增量同步) rsync -avzP /本地目录/ 用户名@IP:/远程目录/ ``` ### 2. 防火墙配置 (UFW & iptables) ```bash # UFW 防火墙 (Ubuntu) ufw status # 查看防火墙状态 ufw enable / disable # 开启 / 禁用防火墙 ufw allow 6500:6800/tcp # 允许 TCP 端口段 ufw allow from 192.168.1.1 # 放行指定 IP # iptables 防火墙设置 # ⚠️ 踩坑警告:如果默认 INPUT 策略是 DROP,直接运行 iptables -F 会导致 SSH 断连! iptables -F # 清空现有的防火墙规则 iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 放行 SSH 端口 iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 放行 HTTP 端口 iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 放行 HTTPS 端口 iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # 保持已有连接 iptables-save # 保存规则 ``` ### 3. Nmap 网络探测(修正语法报错) ```bash nmap IP # 扫描目标 IP 开放的端口 nmap -sn 192.168.1.0/24 # C 段存活主机探测(已纠错 namp 拼写) # 绕过安全检测的深度扫描(已修正原命令中会导致报错的中文全角括号): nmap -A -v -p1-1000 -Pn -T4 -sS 175.6.245.227 --script http-methods --script-args http.useragent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:87.0) Gecko/20100101 Firefox/87.0" ``` ### 4. 开启 BBR 网络拥塞控制算法 ```bash # 确认 Linux 内核版本在 4.9 以上 uname -r # 启用 TCP BBR echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf sysctl -p # 确认开启成功 sysctl net.ipv4.tcp_congestion_control # 应输出 bbr lsmod | grep bbr ``` ### 5. acme.sh 自动化申请域名 SSL 证书 ```bash # 1. 安装 acme.sh 工具 sudo apt update && apt install cron socat curl -y curl https://get.acme.sh | sh ~/.acme.sh/acme.sh --set-default-ca --server letsencrypt # 2. 申请证书(需确保 80 端口未被占用) ~/.acme.sh/acme.sh --issue -d 你的域名.com --standalone -k ec-256 --force # 3. 安装证书到指定路径 ~/.acme.sh/acme.sh --install-cert -d 你的域名.com --ecc \ --key-file /etc/nginx/ssl/server.key \ --fullchain-file /etc/nginx/ssl/server.crt ``` --- ## 七、 🐳 Docker 与 Docker Compose 运维 容器化部署高频运维指令。 ```bash docker ps # 查看正在运行的容器 docker ps -aq # 列出所有容器的 ID docker start $(docker ps -aq) # 启动所有容器 docker stop $(docker ps -aq) # 停止所有容器 docker rm $(docker ps -aq) # ⚠️ 强制删除所有已停止的容器(慎用) docker rmi $(docker images -q) # ⚠️ 删除所有未使用的镜像(慎用) # Docker Compose 管理 docker-compose up -d # 进入 docker-compose.yml 所在目录,后台启动所有服务 docker-compose stop # 停止所有服务 docker-compose stop 服务名 # 停止指定名称的服务 docker-compose logs -f # 【补全】实时查看容器组合的运行日志 ``` --- ## 八、 ⚙️ 系统服务、定时任务与开关机 ```bash # Systemd 服务管理 systemctl enable 名称 # 设置开机自启 systemctl start 名称 # 启动服务 systemctl stop 名称 # 停止服务 systemctl restart 名称 # 重启服务 systemctl status 名称 # 查看服务运行状态 journalctl -u 服务名 -f # 【补全】实时查看指定 systemctl 服务的日志 # 定时任务 (Crontab) crontab -e # 【补全】编辑当前用户的定时任务 crontab -l # 【补全】查看已设立的定时任务列表 # 关机与重启 shutdown -h now # 立即关机 reboot # 重启服务器 ``` --- ## 九、 💡 实用小工具与基础指令速查表 ### 1. 开发与脚本小技巧 * **Vim 粘贴保持原格式**:在 Vim 指令模式下输入 `:set paste`,然后再进行粘贴,可以防止代码缩进格式错乱。 * **PyInstaller 打包 Python 程序**: ```bash pyinstaller -w -F main.py # -w:隐藏控制台黑框; -F:生成单个独立 exe 文件 ``` ### 2. 基础必备单行指令速查表 | 命令 | 用法示例 / 说明 | 用人话讲:这是干嘛的? | | :--- | :--- | :--- | | **man** | `man ls` | 查看任何 Linux 命令的操作手册 | | **curl** | `curl -I https://xxx.com` | 【补全】测试网页连通性或发送网络请求 | | **echo** | `echo "内容" > file.txt` | 输出文本或写入文件 | | **cat** | `cat file.txt` | 一次性打印文件全部内容 | | **less** | `less /var/log/syslog` | 分页查看大文件日志(按 Q 退出,按 / 搜索) | | **head / tail** | `tail -n 20 file.txt` | 查看文件前 N 行 / 后 N 行 | | **tail -f** | `tail -f /var/log/nginx/access.log` | **实时追踪**文件末尾新增的日志 | | **grep** | `grep "ERROR" app.log` | 从文件中过滤匹配包含特定关键词的行 | | **history** | `history` | 列出过去在终端敲过的历史命令 | | **which** | `which python3` | 查找软件命令对应的可执行文件物理路径 | | **shred** | `shred -u secret.txt` | 安全粉碎文件,防止数据被恢复 | | **whoami** | `whoami` | 输出当前登录的用户名 | | **whatis** | `whatis tar` | 用一句话简短说明某个命令的功能 | | **wc** | `wc -l file.txt` | 统计文件的行数(`-l` 参数) | | **wget** | `wget https://...` | 从网络直接下载文件到当前路径 | --- ### 💬 总结 纸上得来终觉浅,操作一哈子印象来得深刻些。
↑
💬 评论