设置服务器仓库(Bare)

Git 本地仓库上传到服务器裸仓库完整流程 目标 本地已有完整 Git 仓库(包含提交历史) 服务器上创建裸仓库(bare repository) 将本地仓库上传到服务器,保留历史提交 以后可以正常 clone、push、pull 1. 在服务器上创建裸仓库 SSH 登录服务器: ssh user@server 创建裸仓库目录: mkdir -p ~/repos cd ~/repos git init --bare project.git 说明: project.git 是裸仓库目录名,.git 后缀是惯例,可选 裸仓库没有工作区,只存储 Git 对象和 refs 2. 在本地添加远程仓库 进入本地仓库目录: cd ~/myproject 添加远程: git remote add origin user@server:~/repos/project.git 验证远程: git remote -v 输出示例: origin user@server:~/repos/project.git (fetch) origin user@server:~/repos/project.git (push) 3. 上传本地仓库到服务器 推送主分支 git push -u origin master 推送所有分支 git push --all origin 推送所有标签 git push --tags 4. 新机器或恢复项目 直接 clone 裸仓库: ...

十二月 2, 2025 · 1 分钟 · RanFR

恢复Linux通用文件与文件夹权限

恢复 Linux 通用文件与文件夹权限 权限说明 针对文件和文件夹,分别设置644和755的权限。 文件 角色 权限 二进制 含义 所有者(user) rw- 6 可读、可写 所属组(group) r-- 4 只读 其他人(others) r-- 4 只读 文件夹 角色 权限 二进制 含义 所有者(user) rwx 7 可读、可写、可执行 所属组(group) r-x 5 可读、可执行 其他人(others) r-x 5 只读、可执行 其他文件 针对其他文件,例如脚本文件、Python 文件等等,需要额外设置可执行权限。这部分参考文件夹权限说明即可。 权限设置 首先,进入需要修改权限的文件夹中。依次输入以下命令,以修改权限。 修改文件权限: # 所有文件默认可读写(rw-r--r--) find . -type f -exec chmod 644 {} \; 修改文件夹权限: # 所有目录可进入执行(rwxr-xr-x) find . -type d -exec chmod 755 {} \; 如果有额外文件可执行需求,可以按需输入以下命令: # 如果你有脚本或可执行程序,再单独修复执行权限 find . -name "*.sh" -exec chmod +x {} \; # 如果有多个需要添加执行权限,可以使用-o参数,如下所示 # find . -name "*.sh" -o -name "*.py" -o -name "*.pl" -exec chmod +x {} \;

十月 27, 2025 · 1 分钟 · RanFR

Claude Code配置

Claude Code 配置 原始的配置说明可以参考Claude Code 设置。 模型配置 配置 Claude Code 调用智谱大模型服务(基于 API)。 在 Claude Code 的全局配置文件~/.claude/settings.json中,输入以下内容: { "env": { "ANTHROPIC_BASE_URL": "https://open.bigmodel.cn/api/anthropic", "ANTHROPIC_AUTH_TOKEN": "your_zhipu_api", "ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-4.5-air", "ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-4.5", "ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-4.6" } } 权限配置 配置 Claude Code 禁止读取某个文件夹,例如 build 文件夹: { "permissions": { "deny": ["Read(./build/**)"] } }

十月 14, 2025 · 1 分钟 · RanFR

Journal操作

Journal 命令 开启持久化日志记录 创建持久化目录 sudo mkdir -p /var/log/journal sudo systemd-tmpfiles --create --prefix /var/log/journal 配置 journald 编辑配置文件: sudo nvim /etc/systemd/journald.conf 修改或者添加以下内容。 [Journal] Storage=persistent # 开启持久化 Compress=yes # 启用日志压缩,节省空间 SystemMaxUse=2G # 系统日志最多占用 2GB(可根据需要调整) SystemKeepFree=50M # 保留至少 50MB 空闲空间 SystemMaxFileSize=200M # 单个日志文件最大 200MB SystemMaxFiles=50 # 保留最多 50 个文件 MaxRetentionSec=30d # 最多保留 30 天的日志 解释: SystemKeepFree 表示如果没有达到 SystemMaxUse 的使用量,也会为系统保留的空间大小。 Compress=yes可节省 50-70%的空间。 如果希望更加长期保留日志文件,可以适当增大SystemMaxUse或者MaxRetentionSec。 重启 journald sudo systemctl restart systemd-journald 验证 journalctl --disk-usage # 查看日志占用空间 journalctl --list-boots # 查看已记录的启动信息 ls -lh /var/log/journal 配置完成后,即可开启持久化日志,并且控制日志不会无限占满系统盘。 ...

九月 2, 2025 · 1 分钟 · RanFR

NeoVim配置

NeoVim 配置 配置文件 在~/.config/nvim中创建init.lua,并将配置文件内容输入即可。NeoVim 会自动从 GitHub 上下载插件并安装运行。 注意,基于 lazy 的插件需求 NeoVim 版本大于 0.8.0。 配置文件如下: -- ============================== -- 基础设置 -- ============================== vim.g.mapleader = " " -- 设置 <leader> 键为空格 vim.o.number = true -- 显示行号 vim.o.relativenumber = true -- 相对行号 vim.o.expandtab = true -- Tab 转换为空格 vim.o.tabstop = 4 -- 一个 Tab 显示为 4 空格 vim.o.shiftwidth = 4 -- 自动缩进 4 空格 vim.o.softtabstop = 4 -- 编辑时 Tab = 4 空格 vim.o.smartindent = true -- 智能缩进 vim.o.wrap = false -- 不自动换行 vim.o.ignorecase = true -- 搜索忽略大小写 vim.o.smartcase = true -- 如果有大写,则大小写敏感 vim.o.termguicolors = true -- 开启真彩色 vim.o.cursorline = true -- 高亮当前行 -- ============================== -- 插件管理(lazy.nvim) -- ============================== local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_stat(lazypath) then vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath, }) end vim.opt.rtp:prepend(lazypath) require("lazy").setup({ -- 主题 { "ellisonleao/gruvbox.nvim", priority = 1000, config = true }, -- 状态栏 { "nvim-lualine/lualine.nvim", dependencies = { "nvim-tree/nvim-web-devicons" }, config = function() require("lualine").setup { options = { theme = "gruvbox" } } end }, -- 文件树 { "nvim-tree/nvim-tree.lua", dependencies = { "nvim-tree/nvim-web-devicons" }, config = function() require("nvim-tree").setup {} vim.keymap.set("n", "<leader>e", ":NvimTreeToggle<CR>", { desc = "切换文件树" }) end }, -- 模糊搜索 { "nvim-telescope/telescope.nvim", tag = "0.1.6", dependencies = { "nvim-lua/plenary.nvim" }, config = function() local builtin = require("telescope.builtin") vim.keymap.set("n", "<leader>ff", builtin.find_files, { desc = "查找文件" }) vim.keymap.set("n", "<leader>fg", builtin.live_grep, { desc = "搜索内容" }) vim.keymap.set("n", "<leader>fb", builtin.buffers, { desc = "切换缓冲区" }) end }, -- 语法高亮 { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate", config = function() require("nvim-treesitter.configs").setup { ensure_installed = { "lua", "python", "cpp", "bash", "markdown" }, highlight = { enable = true }, } end }, }) -- ============================== -- 主题设置 -- ============================== vim.cmd.colorscheme("gruvbox") -- ============================== -- 快捷键增强 -- ============================== -- 保存 & 退出 vim.keymap.set("n", "<leader>w", ":w<CR>", { desc = "保存文件" }) vim.keymap.set("n", "<leader>q", ":q<CR>", { desc = "退出文件" }) -- 快速窗口移动 vim.keymap.set("n", "<C-h>", "<C-w>h", { desc = "左窗口" }) vim.keymap.set("n", "<C-l>", "<C-w>l", { desc = "右窗口" }) vim.keymap.set("n", "<C-j>", "<C-w>j", { desc = "下窗口" }) vim.keymap.set("n", "<C-k>", "<C-w>k", { desc = "上窗口" }) 详细说明 未完待续。 ...

八月 20, 2025 · 2 分钟 · RanFR