Ubuntu 一键安装/卸载 LAMP 环境

LAMP = Linux + Apache + MySQL + PHP 安装 sudo tasksel install lamp-server 安装过程中会提示设置 MySQL root 密码。 卸载 sudo tasksel remove lamp-server ⚠️ 卸载后务必更新系统,防止误删系统组件: sudo apt-get update sudo apt-get upgrade 验证 # 检查 Apache apache2 -v curl http://localhost # 检查 MySQL mysql --version # 检查 PHP php -v 单独安装各组件 sudo apt-get install apache2 sudo apt-get install mysql-server sudo apt-get install php libapache2-mod-php php-mysql

2015年5月10日 · 1 分钟 · Jid

声明模板类为友元类

如题,要将模板类(template class)声明为友元类,需要注意两点: (1)模板类本身的声明要足够早,我指的是在被声明为友元类之前就进行了模板类的声明。 比如: template<typename T> class AA { public: …… private: …… }; class BB { public: template<typename T> friend class AA; …… }; (2)友元类声明时的格式,应该是这样: template<typename T> friend class AA; AA是之前已经声明的模板类。 格式必须是这样,不然一定出错。 下面列出源代码,及源代码下载: //friend.h #include <iostream> using namespace std; template<typename T> class AA { public: AA(T vl):val(vl){}; void funcA(); private: T val; }; class BB { public: BB(int d=0):tmp(d){}; template<typename T> friend class AA; private: void funcB(); int tmp; }; template<typename T> void AA<T>::funcA() { BB bb(100); bb.funcB(); } void BB::funcB() { cout<< tmp <<endl; } //friendmain.cpp #include "friend.h" using namespace std; int main() { AA<int> aa(9); aa.funcA(); return 0; } //欢迎交流 备注: ...

2015年5月10日 · 1 分钟 · Jid

在 SciTE 中用 AStyle 格式化代码

安装 AStyle 从 astyle.sourceforge.net 下载 将 AStyle.exe 复制到 C:\Windows\(或任意 PATH 目录) 配置 SciTE 编辑 cpp.properties(或用户配置文件),添加: # Ctrl+0 格式化当前文件 command.name.0.*.cpp=Format Code command.0.*.cpp=astyle --style=ansi $(FileNameExt) # 同样适用于 .c 文件 command.name.0.*.c=Format Code command.0.*.c=astyle --style=ansi $(FileNameExt) 使用 Ctrl+0:格式化整个文件 先选中文本再按 Ctrl+0:格式化选中部分 AStyle 常用风格 astyle --style=ansi file.c # ANSI 风格(推荐) astyle --style=kr file.c # K&R 风格 astyle --style=linux file.c # Linux 内核风格 astyle --style=google file.c # Google 风格 命令行直接用: astyle --style=ansi *.c *.cpp # 批量格式化

2015年5月10日 · 1 分钟 · Jid

Linux 下文件编码查看与转换

查看文件编码 Vim 中查看 :set fileencoding " 显示当前文件编码,如 utf-8 或 cp936 命令行查看 file -i filename enca -L zh_CN filename # 需安装 enca 文件编码转换 方法一:Vim 内转换 :e file.txt :set fenc=utf-8 " 设置目标编码 :w " 保存 方法二:iconv 命令 # GBK → UTF-8 iconv -f GBK -t UTF-8 file_gbk.txt -o file_utf8.txt # UTF-8 → GBK iconv -f UTF-8 -t GBK file_utf8.txt -o file_gbk.txt # 查看支持的编码 iconv -l 文件名编码转换 Windows 中文文件名用 GBK,Linux 用 UTF-8,拷贝后文件名可能乱码。 # 安装 convmv sudo apt-get install convmv # Debian/Ubuntu sudo yum install convmv # CentOS/RHEL # 预览转换(不实际操作) convmv -f UTF-8 -t GBK 文件名 # 实际转换 convmv -f UTF-8 -t GBK --notest 文件名 # 递归处理目录 convmv -r -f GBK -t UTF-8 --notest /path/to/dir/ Vim 推荐编码配置 在 ~/.vimrc 中添加: ...

2015年5月9日 · 1 分钟 · Jid

Ubuntu 安装和卸载图形桌面

安装桌面环境 桌面 安装命令 特点 GNOME sudo apt-get install ubuntu-desktop Ubuntu 默认,功能全面 KDE sudo apt-get install kubuntu-desktop 类 Windows 风格,高度可定制 XFCE sudo apt-get install xubuntu-desktop 轻量,适合旧硬件 LXDE sudo apt-get install lubuntu-desktop 更轻量 安装后在登录界面可选择桌面环境。 卸载桌面环境 # 卸载 GNOME sudo apt-get --purge remove liborbit2 sudo apt-get autoremove # 卸载 KDE sudo apt-get --purge remove kdelibs4c2a libarts1c2a sudo apt-get autoremove # 卸载 XFCE sudo apt-get --purge remove xfce4 xfconf sudo apt-get autoremove 卸载后重启即可进入纯命令行模式。 ...

2015年5月9日 · 1 分钟 · Jid

Vim 中文编码配置指南

编码相关选项 选项 缩写 作用 encoding enc Vim 内部编码(Buffer、消息文字) fileencodings fencs 打开文件时尝试的编码列表(按顺序猜测) fileencoding fenc 当前文件的编码(保存时使用) termencoding tenc 终端编码(终端模式下使用) 编码转换流程 打开文件:按 fileencodings 列表猜测编码 → 转换为 encoding 保存文件:从 encoding 转换为 fileencoding 终端显示:termencoding ↔ encoding 确保 Vim 编译时包含 +multi_byte 和 +iconv(:version 查看)。 常用配置 只编辑 UTF-8 文件 set encoding=utf-8 set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5 set fileencoding=utf-8 Windows 环境(混合编码) set encoding=cp936 set fileencodings=ucs-bom,utf-8,cp936,gb18030 set fileencoding=utf-8 终端环境额外设置 set termencoding=cp936 " 或 utf-8,与终端编码一致 常见问题 Q: 为什么一次只能删除半个汉字? encoding 设置错误。确保 encoding=utf-8 或 encoding=cp936。 Q: 如何将 GBK 文件另存为 UTF-8? :e file.txt " 打开文件 :set fenc=utf-8 " 设置目标编码 :w " 保存 Q: 为什么提示"不能转换"? ...

2015年5月9日 · 1 分钟 · Jid

配置 SciTE 编辑器用于 C/C++ 开发

前置准备 1. 安装 GCC 安装 MinGW 或 Dev-C++,确保 gcc 在 PATH 中: gcc --version 2. 安装 AStyle(代码格式化) 从 AStyle 官网 下载,放入 PATH。 配置 SciTE 打开 选项 → 用户配置文件(或编辑 SciTEUser.properties),添加: # 自动补全 autocompleteword.automatic=1 # 字体设置 font.base=font:Consolas,size:12 font.monospace=font:Consolas,size:12 # 括号匹配 braces.sloppy=1 # C 程序:按 F5 自动编译并运行 command.go.needs.*.c=gcc -std=c99 "$(FileNameExt)" -o "$(FileName)" command.go.*.c="$(FileName)" # C++ 程序 command.go.needs.*.cpp=g++ -std=c++11 "$(FileNameExt)" -o "$(FileName)" command.go.*.cpp="$(FileName)" # 编译命令(Ctrl+F7) command.compile.*.c=gcc -std=c99 -Wall "$(FileNameExt)" -o "$(FileName)" command.compile.*.cpp=g++ -std=c++11 -Wall "$(FileNameExt)" -o "$(FileName)" 快捷键 快捷键 功能 F5 编译并运行 Ctrl+F5 运行(不编译) Ctrl+F7 仅编译 Ctrl+I AStyle 格式化代码 Ctrl+D 复制当前行 Ctrl+Shift+↑/↓ 移动当前行

2015年5月8日 · 1 分钟 · Jid

Ubuntu 系统优化三招

一、加速 DNS 解析(dnsmasq) 网页打开慢,通常是 DNS 解析耗时。用 dnsmasq 做本地 DNS 缓存: # 1. 安装 sudo apt-get install dnsmasq # 2. 编辑配置 sudo vi /etc/dnsmasq.conf # 找到 #resolv-file=,改为: resolv-file=/etc/resolv.dnsmasq.conf # 3. 复制当前 DNS 配置 sudo cp /etc/resolv.conf /etc/resolv.dnsmasq.conf # 4. 将系统 DNS 指向本地 sudo vi /etc/resolv.conf # 去掉原有的 nameserver,添加: nameserver 127.0.0.1 # 5. 防止 PPPoE 覆盖(如果用拨号上网) sudo vi /etc/ppp/peers/wvdial # 在 usepeerdns 前加 # # 6. 重启系统 sudo reboot 二、管理启动服务(sysv-rc-conf) 关闭不必要的启动服务,加快开机速度: ...

2015年5月7日 · 1 分钟 · Jid

Matlab 最小化安装指南

问题 Matlab 完整安装动辄 10GB+,对于只需要基本功能的用户来说太臃肿了。 最小安装 安装时选择"自定义安装",只勾选以下组件: MATLAB — 核心运行环境,必须 MATLAB Compiler — 编译 .m 文件为独立程序 Symbolic Math Toolbox — 符号运算(求导、积分、方程求解等) 其余工具箱(信号处理、图像处理、Simulink 等)按需安装。 提示 不确定是否需要的组件先不装,后续可通过安装程序追加 典型最小安装约 2-3GB

2015年5月6日 · 1 分钟 · Jid

Ubuntu 安装最新版 Firefox

方法一:PPA(旧版 Ubuntu) sudo add-apt-repository ppa:mozillateam/firefox-stable sudo apt-get update sudo apt-get upgrade 方法二:直接安装(推荐,新版 Ubuntu) sudo apt-get update sudo apt-get install firefox Ubuntu 22.04+ 的仓库会跟随最新稳定版,无需额外 PPA。 方法三:Snap 版 sudo snap install firefox Ubuntu 22.04+ 默认使用 Snap 安装 Firefox,自动更新。

2015年5月5日 · 1 分钟 · Jid