首页
关于小站
朋友
壁纸
留言
时光之书
笔顺字帖
LayUI手册
Search
1
【PHP】PHPoffice/PHPSpreadsheet读取和写入Excel
1,713 阅读
2
【Layui】控制页面元素展示隐藏
1,562 阅读
3
【Git】No tracked branch configured for branch master or the branch doesn't exist.
1,505 阅读
4
【PHP】PHP实现JWT生成和验证
1,413 阅读
5
精准检测,助力社交管理 —— 微信好友检测服务来袭!
1,305 阅读
默认分类
PHP
ThinkPHP
Laravel
面向对象
设计模式
算法
基础
网络安全
Web
HTML
CSS
JavaScript
jQuery
Layui
VUE
uni-app
Database
MySQL
Redis
RabbitMQ
Nginx
Git
Linux
Soft Ware
Windows
网赚
Go
Docker
登录
Search
标签搜索
PHP
函数
方法
类
MySQL
ThinkPHP
JavaScript
OOP
Layui
Web
Server
Linux
Docker
PHPSpreadsheet
PHPoffice
Array
设计模式
Nginx
Git
排序算法
小破孩
累计撰写
255
篇文章
累计收到
13
条评论
首页
栏目
默认分类
PHP
ThinkPHP
Laravel
面向对象
设计模式
算法
基础
网络安全
Web
HTML
CSS
JavaScript
jQuery
Layui
VUE
uni-app
Database
MySQL
Redis
RabbitMQ
Nginx
Git
Linux
Soft Ware
Windows
网赚
Go
Docker
页面
关于小站
朋友
壁纸
留言
时光之书
笔顺字帖
LayUI手册
搜索到
1
篇与
的结果
2025-09-10
【Linux】Linux 开发与运维命令终极手册 - 持续更新
Linux 开发与运维命令终极手册封面与使用说明适用人群:PHP开发者、后端工程师、运维人员 核心价值:从日常开发到应急调试的全场景命令参考,兼顾效率与安全 使用方法:按「场景速查」快速定位,按「功能分类」系统学习,注意「安全警告」规避风险一、场景速查索引(紧急情况优先看)问题场景核心命令链功能分类网站突然卡顿/502错误top(看CPU/内存)→ ss -s(连接数)→ systemctl status php-fpm(服务状态)五、一.........二、系统基础与环境监控系统信息uname:查看系统信息uname -a # 完整信息 uname -r # 内核版本(确认Docker/Kernel兼容性)lsb_release:发行版信息lsb_release -a # 所有信息 lsb_release -c # 版本代号(适配apt/yum源)磁盘与存储df:磁盘空间df -h # 人类可读格式 df -i # inode使用情况(紧急清理时,满需删除大量小文件)du:目录大小分析du -sh * # 当前目录各项目大小 du -h --max-depth=1 /var # 一级目录分析 du -sh * \| sort -hr # 从大到小排列内存与负载free:内存监控free -h # 易读格式 free -m # MB单位 watch -n 5 "free -h" # 每5秒刷新(内存泄漏排查)uptime:系统负载uptime # 显示1/5/15分钟平均负载(负载>CPU核心数时需排查进程)高级监控iostat:磁盘IO监控iostat -x 5 # 每5秒显示IO详情(%util接近100%表示IO饱和)which/whereis:命令路径查找which php # 检查php路径 whereis mysql # 查找mysql(区分系统自带与手动安装的程序)三、文件与目录操作基本操作ls:列出内容ls -lh # 详细+大小 ls -lt # 按修改时间排序 # 现代替代:exa -l --git(带Git状态和颜色)cd:切换目录cd ~ # 家目录 cd - # 返回上一目录 # 技巧:cd .. 可简写为 ..(需配置bash)mkdir:创建目录mkdir -p app/{ctrl,model,view} # 递归创建多级目录(一次性创建项目结构)文件操作rm:删除文件 ⚠️极度危险rm file.txt # 删除文件 rm -rf dir/ # 递归强制删除目录 # ⚠️ 安全准则: # 1. 禁止执行 rm -rf / 或 rm -rf /* # 2. 删前先用 ls 确认路径:ls dir/ # 3. 替代方案:trash-put file(移到回收站,需安装trash-cli)cp:复制文件cp -a src/ dest/ # 保留权限复制 cp config.php{,.bak} # 备份(生成config.php.bak) cp *.conf{,.bak} # 批量备份(给所有conf文件加备份后缀)高级文件操作find:查找文件find ./ -name "*.php" -mtime -1 # 1天内修改的PHP文件 find ./ -name "*.log" -mtime +30 -print0 | xargs -0 rm -f # 安全批量处理(处理含空格的文件名)ln:创建链接ln -s /usr/local/php/bin/php /usr/bin/php # 创建软链接(解决命令路径问题)rsync:增量同步rsync -avz --delete ./local/ user@server:/remote/ # 镜像同步(部署代码比scp快)四、文件内容处理查看内容cat:查看文件内容cat config.php # 查看文件 # 现代替代:bat config.php(代码高亮+行号)tail:查看尾部tail -f error.log # 实时监控 tail -n 50 access.log # 最后50行 tail -F error.log # 日志轮转必备(文件重建后仍跟踪)文本处理grep:文本搜索grep -rni "数据库" ./app # 递归+行号+忽略大小写搜索 find ./ -name "*.php" | xargs grep "function getUser" # 结合find搜索sed:文本替换sed -i 's/old/new/g' file.php # 批量替换 sed -i '/^#/d' nginx.conf # 删除注释行 sed -i 's/debug=true/debug=false/g' *.php # 批量修改配置awk:按列处理awk '$9==500 {print $0}' access.log # 筛选500错误 # 统计分析黄金链: awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10 # Top 10访问IPwc:统计行数wc -l *.php # 统计PHP文件行数 grep "error" log.txt | wc -l # 错误数统计 find ./ -name "*.php" | xargs wc -l # 快速估算代码量五、进程与服务管理进程监控ps:查看进程ps aux --sort=-%cpu # 按CPU排序 ps aux | grep -v grep | grep php-fpm # 筛选特定进程top/htop:实时监控top # 基础监控 htop # 交互式增强版(支持鼠标操作) # 技巧:按P(CPU)/M(内存)排序,k键终止进程kill:终止进程kill 1234 # 正常终止 kill -9 1234 # 强制终止 pkill -f "php server.php" # 按命令名批量终止服务管理systemctl:服务管理systemctl restart nginx # 重启服务 systemctl enable mysql # 开机自启 systemctl status php-fpm -l # 查看状态及完整日志(启动失败排查)网络与调试netstat/ss:网络连接ss -lntup # 监听的端口及进程 ss -ant | grep :80 | wc -l # 统计80端口连接数lsof:文件占用lsof -i :80 # 查看80端口占用 lsof -p 1234 # 查看进程打开的文件 lsof +D /var/www # 查看目录相关进程(解决"文件被占用无法删除")strace:系统调用跟踪strace -p 1234 # 调试卡死进程(定位程序卡住原因)六、网络操作网络诊断ping:连通性测试ping -c 4 google.com # 发送4个包 # 现代替代:mtr google.com(持续跟踪丢包和延迟)curl:HTTP请求curl -X POST -d "name=test" http://api.com # POST请求 curl -I https://example.com # 仅获取头部 curl -v https://example.com # 详细输出(显示HTTPS握手过程)文件传输wget:文件下载wget -c https://file.com/big.tar.gz # 断点续传 wget -i url_list.txt # 批量下载(从文件读URL)ssh:远程登录ssh -p 2222 user@server.com # 指定端口登录 ssh user@server "command" # 远程执行命令 ssh-copy-id user@server # 免密登录(上传公钥)scp:远程传输scp -r dir/ user@server:/path/ # 递归上传目录 # 大文件传输技巧:pv file.tar.gz | ssh user@server "cat > file.tar.gz"(显示进度)nc:网络调试nc -zv 192.168.1.1 3306 # 测试MySQL端口连通性 # 临时文件传输: # 接收端:nc -l 8080 > recv.txt # 发送端:nc server 8080 < send.txt七、MySQL数据库基本操作mysql:登录数据库mysql -u root -p # 本地登录 mysql -h 10.0.0.5 -P 3307 -u user -p dbname # 远程连接 # 安全提示:生产环境禁止用root直接登录,创建专用用户mysqldump:备份数据库mysqldump -u root -p --single-transaction blog > blog.sql # 热备份(避免锁表)管理操作mysqladmin:数据库管理mysqladmin -u root -p processlist # 查看连接进程 mysqladmin -u root -p kill 123 # 杀死进程ID 123(终止慢查询)数据导入:恢复备份mysql -u root -p blog < blog.sql # ⚠️ 警告:导入前确认目标库正确,避免覆盖生产数据日志查看:调试问题tail -f /var/log/mysql/error.log # 实时错误日志 # 技巧:开启慢查询日志(临时生效): set global slow_query_log=1八、Docker容器管理镜像管理镜像操作:docker pull php:7.4-fpm # 拉取镜像 docker build -t myphp:v1 . # 构建镜像 docker image prune -a # 清理无用镜像容器管理容器操作:docker run -d -p 80:80 --name mynginx nginx # 后台运行容器 docker ps -a # 查看所有容器 docker exec -it myphp bash # 进入容器交互终端数据与网络数据卷:持久化存储docker volume create phpdata # 创建数据卷 docker run -v phpdata:/var/www/html php:7.4-fpm # 使用数据卷 # 备注:避免用 -v /host/path:/container/path(权限问题多),优先用数据卷网络管理:容器通信docker network create mynet # 创建网络 docker run --network mynet --name db mysql # 容器加入网络 # 技巧:自定义网络避免端口冲突,容器间用名称通信(如mysql://db:3306)九、Swoole扩展安装与验证安装Swoole:pecl install swoole # 安装最新版 pecl install swoole-4.8.12 # 安装指定版本(稳定版) echo "extension=swoole.so" >> php.ini # 启用扩展验证安装:php -m | grep swoole # 检查是否加载 php --ri swoole # 查看扩展信息(确认enable_coroutine等关键特性)服务管理服务管理:php server.php start # 启动服务 php server.php reload # 平滑重启(不中断连接,适合生产环境)进程监控:ps aux | grep server.php # 查看进程 netstat -tulpn | grep 9501 # 查看端口监听 # 备注:配置daemonize=1后台运行,通过ps确认进程数是否符合预期十、编程工具与环境开发工具php:PHP解释器php -l file.php # 语法检查 php -S 0.0.0.0:8000 -t public # 启动内置服务器 php -d display_errors=On index.php # 临时调整配置(显示错误)composer:依赖管理composer install --no-dev # 生产环境安装 composer dump-autoload -o # 优化自动加载 # 加速下载:切换国内镜像 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/git:版本控制git stash # 暂存修改 git bisect start # 二分查找bug git log -S "function_name" # 搜索历史提交(查找引入函数的提交)现代工具jq:JSON处理curl api.com | jq '.data[].name' # 提取数据 jq '.users[] | select(.age>18)' data.json # 条件筛选 cat messy.json | jq . # 格式化JSONag:代码搜索ag "function_name" app/ # 快速搜索 ag -G "*.php" "database" # 指定文件类型搜索 # 备注:比grep -r快10倍,自动忽略.git和vendor目录十一、压缩与归档压缩解压tar:打包/压缩tar -zcvf backup.tar.gz --exclude=vendor ./project # 打包并排除目录 tar -tf backup.tar.gz # 查看内容不解压zip/unzip:ZIP处理zip -r docs.zip ./docs -x "*.git*" # 压缩并排除Git文件 unzip -O GBK chinese.zip # 解压中文文件(避免乱码)gzip:GZIP压缩gzip large.log # 压缩文件(替换原文件) gzip -c file > file.gz # 压缩但保留原文件 gunzip file.gz # 解压十二、包管理与软件安装包管理命令系统更新软件源安装软件搜索软件实用技巧Debian/Ubuntuapt updateapt install <pkg>apt search <pkg>加速:替换国内镜像源CentOS/RHELyum updateyum install <pkg>yum search <pkg>批量安装:yum install php-fpm nginx mysql-server十三、安全警告与最佳实践操作安全rm -rf 安全准则永远不要在根目录/或系统目录执行递归删除删前用ls确认路径:ls /path/to/delete/*推荐用trash-cli(trash-put/trash-empty)替代rm,支持回收站恢复权限操作禁忌⚠️ 禁止执行chmod -R 777 /或chown -R root:root /home/,会导致系统崩溃正确权限:PHP文件644,目录755,Web可写目录属主设为www-data数据库操作安全生产环境执行DROP/TRUNCATE前必须备份禁止直接在生产库执行UPDATE/DELETE不带WHERE的SQL命令执行确认复杂命令先用echo测试:echo rm -rf /path/to/dir/*批量操作前先处理1个样本验证:find ./ -name "*.log" \| head -1 \| xargs rm -f附录:现代工具安装指南工具功能Ubuntu安装命令使用示例bat增强版catsudo apt install batbat config.php(代码高亮)exa增强版lssudo apt install exaexa -l --git(带Git状态)htop增强版topsudo apt install htophtop(交互式监控)mtr网络诊断sudo apt install mtrmtr google.com(路由追踪)jqJSON处理sudo apt install jqcurl api.com \ jq '.data'ag代码搜索sudo apt install silversearcher-agag "function" app/fzf模糊查找sudo apt install fzfCtrl+R搜索历史命令trash-cli回收站工具sudo apt install trash-clitrash-put file(安全删除)使用提示:遇到任何命令不清楚时,使用man <命令>查看详细手册,如man grep。
2025年09月10日
4 阅读
0 评论
0 点赞