From c8ac7b472c2b20f6a9b4c50b9a595ee330eecf06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AF=BB=E8=A7=85?= Date: Tue, 4 Jun 2024 11:19:32 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=20=E4=BC=98=E5=8C=96sudo?= =?UTF-8?q?=E7=89=B9=E6=9D=83=E4=BD=BF=E7=94=A8=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 公共/包管.zsh | 20 ++++++++++---------- 安装.zsh | 26 ++++++++++++++++---------- 配置/vimrc | 3 --- 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/公共/包管.zsh b/公共/包管.zsh index f2bd3e5..4573fc5 100644 --- a/公共/包管.zsh +++ b/公共/包管.zsh @@ -17,14 +17,14 @@ # 实例 `包管_更新 -n`; `包管_更新 -确认` 包管一更新() { if [ -x "$(command -v oma)" ]; then -# sudo oma refresh - sudo oma update -y +# ${特权} oma refresh + ${特权} oma update -y elif [ -x "$(command -v apt)" ]; then - sudo apt-get update -qq + ${特权} apt-get update -qq elif [ -x "$(command -v yum)" ]; then - sudo yum update + ${特权} yum update elif [ -x "$(command -v pacman)"]; then - sudo pacman -Syu + ${特权} pacman -Syu fi } @@ -34,14 +34,14 @@ if [ -x "$(command -v oma)" ]; then # 解决oma找不到软件包返回值还是0的问题, 先搜索一下软件包 # 神奇的oma居然不走标准输出(2>&1, 将错误输出重定向到标准输出, 方便管道符处理), 坑人啊 - sudo oma search $1 2>&1 | head -n 1 | grep -q '\[完整匹配\]' || return 1 - sudo oma install -y $1 + ${特权} oma search $1 2>&1 | head -n 1 | grep -q '\[完整匹配\]' || return 1 + ${特权} oma install -y $1 elif [ -x "$(command -v apt)" ]; then - sudo apt -y install $1 + ${特权} apt -y install $1 elif [ -x "$(command -v yum)" ]; then - sudo yum install -y $1 + ${特权} yum install -y $1 elif [ -x "$(command -v pacman)" ]; then - sudo pacman -Sy --needed $1 + ${特权} pacman -Sy --needed $1 else return 1 fi diff --git a/安装.zsh b/安装.zsh index 4b1d03d..77dbc6e 100755 --- a/安装.zsh +++ b/安装.zsh @@ -15,7 +15,7 @@ readonly 言灵一版本="v1.0.1" # 全局变量 # ############################################################################### -typeset -a 通用一包列表=('wget' 'curl' 'git' 'vim' 'ctag' 'sudo') +typeset -a 通用一包列表=('wget' 'curl' 'git' 'vim' 'ctag') typeset -a 架构一包列表=() typeset -a 系统一包列表=() readonly CPU一架构="$(uname -m)" @@ -28,6 +28,12 @@ readonly 系统一发行版一名称=$(echo "${NAME}") # 龙架构区分新旧世界的标志位 世界一类型="旧世界" +if command -v sudo >/dev/null 2>&1; then + 特权="sudo" +else + 特权="" +fi + ############################################################################### # 函数/方法 # ############################################################################### @@ -45,12 +51,12 @@ readonly 系统一发行版一名称=$(echo "${NAME}") } # 从git镜像仓库获取依赖 -# *-* -> 位置参数 1 <- 拉去`作者/仓库名` +# *-* -> 位置参数 1 <- 拉取`作者/仓库名` # *-* -> 位置参数 2 <- 保存地址, 保存到本地的哪个路径 获取一git(){ git镜像="https://gitcode.com/mirrors" 色彩一灰色 - 输出 2 "正在拉去 $1 ..." + 输出 2 "正在拉取 $1 ..." git clone --depth 1 -q ${git镜像}/$1.git $2 色彩一清除 } @@ -145,7 +151,7 @@ readonly 系统一发行版一名称=$(echo "${NAME}") # 下载zsh扩展 色彩一灰色 配置一路径=${言灵一路径}/oh-my-zsh - sudo rm -vrf ${配置一路径} + ${特权} rm -vrf ${配置一路径} 获取一git ohmyzsh/ohmyzsh ${配置一路径} 获取一git zsh-users/zsh-autosuggestions ${配置一路径}/custom/plugins/zsh-autosuggestions 获取一git zsh-users/zsh-syntax-highlighting ${配置一路径}/custom/plugins/zsh-syntax-highlighting @@ -155,7 +161,7 @@ readonly 系统一发行版一名称=$(echo "${NAME}") fi cp -v ${目录一根}/配置/zshrc $HOME/.zshrc sed -i "s:export ZSH=/etc/oh-my-zsh:export ZSH=${配置一路径}:" $HOME/.zshrc - 是否 "是否需要将zsh预设配置赋予所有新用户" && sudo cp $HOME/.zshrc /etc/skel/.zshrc + 是否 "是否需要将zsh预设配置赋予所有新用户" && ${特权} cp $HOME/.zshrc /etc/skel/.zshrc if 是否 "将Zsh设置为默认命令行"; then chsh -s /usr/bin/zsh 输出 0 "已将zsh设置为默认命令行,此设置主要适用于ssh和tty如终端不生效则需要在可视化设置中手动配置启动时加载 '/usr/bin/zsh' " @@ -216,7 +222,7 @@ readonly 系统一发行版一名称=$(echo "${NAME}") fi cargo install "lsd" fi - sudo ln -vs $HOME/.cargo/bin/lsd /usr/bin/lsd + ${特权} ln -vs $HOME/.cargo/bin/lsd /usr/bin/lsd 色彩一清除 if 是否 "将lsd使用别名的方式替代ls"; then 别名='alias ls="lsd"' @@ -230,9 +236,9 @@ readonly 系统一发行版一名称=$(echo "${NAME}") xmtop版本="v4.2.1" 输出 2 "开始下载 xmtop-${xmtop版本}-${世界一类型}" xmtop_url="https://gitea.whlug.cn/xunmi/xmtop/releases/download/${xmtop版本}/xmtop_${世界一类型}" - sudo wget -t 3 -q --show-progress -c ${xmtop_url} || 输出 5 "无法下载程序包" - sudo mv -v xmtop_${世界一类型} /usr/bin/xmtop - sudo chmod 755 /usr/bin/xmtop + ${特权} wget -t 3 -q --show-progress -c ${xmtop_url} || 输出 5 "无法下载程序包" + ${特权} mv -v xmtop_${世界一类型} /usr/bin/xmtop + ${特权} chmod 755 /usr/bin/xmtop else 输出 2 "${主机一架构} 架构, 暂未适配top优化, 推荐手动安装gotop, btop等代替top" fi @@ -246,7 +252,7 @@ readonly 系统一发行版一名称=$(echo "${NAME}") git config --global core.editor "vim" typeset -A 列表=( - ["zsh"]="添加omyzsh, zsh自动补齐, 快速添加sudo, 便捷操作目录, 优化命令行提示符等" + ["zsh"]="添加omyzsh, zsh自动补齐, 快速添加${特权}, 便捷操作目录, 优化命令行提示符等" ["vim"]="添加常用配置项(允许复制 添加行号 显式当前行等), 常用插件(目录 语法检测)" ["ls"]="使用lsd替代老旧的ls, (lsd是rust编写的兼容ls的目录查看工具, 其丰富的配色和图标可有效增加目录的可读性)" #["cat"]="使用bat替代cat" diff --git a/配置/vimrc b/配置/vimrc index 2b4086a..5f48e4a 100644 --- a/配置/vimrc +++ b/配置/vimrc @@ -43,9 +43,6 @@ nnoremap :NERDTreeToggle nnoremap :NERDTreeFind " 如果目录是最后一个窗口则自动退出vim autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif -" 防止缓冲区目录冲突 -autocmd BufEnter * if winnr() == winnr('h') && bufname('#') =~ 'NERD_tree_\d\+' && bufname('%') !~ 'NERD_tree_\d\+' && winnr('$') > 1 | - \ let buf=bufnr() | buffer# | execute "normal! \w" | execute 'buffer'.buf | endif let g:NERDTreeFileLines = 1 " 显示文件行 " 标签生成器(ludovicchabant/vim-gutentags): 在特定目录下自动调用ctags生成标签