欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

用大写字母输入 Linux 命令,实现以 sudo 用户权限运行

程序员文章站 2022-08-19 21:46:45
我们知道,一些 Linux 命令是要通过 sudo 权限才能运行的,这需要我们每次使用这些命令时在前面加一个 sudo ,十分繁琐。今天给大家介绍一个好用的工具 ,它只需要我们用大写字母键入 Linux 命令,然后它就会自动地以 sudo 权限运行,非常方便不是吗? 安装 SUDO 首先,使用 命令 ......

我们知道,一些 linux 命令是要通过 sudo 权限才能运行的,这需要我们每次使用这些命令时在前面加一个 sudo ,十分繁琐。今天给大家介绍一个好用的工具 sudo ,它只需要我们用大写字母键入 linux 命令,然后它就会自动地以 sudo 权限运行,非常方便不是吗?

用大写字母输入 Linux 命令,实现以 sudo 用户权限运行

安装 sudo

首先,使用 git clone 命令下载 sudo 源码。

$ git clone https://github.com/jthistle/sudo.git

上面的命令会自动克隆 sudo git 仓库中的内容,并保存在当前路径下名为 sudo 的目录中。

cloning into 'sudo'...
remote: enumerating objects: 42, done.
remote: counting objects: 100% (42/42), done.
remote: compressing objects: 100% (29/29), done.
remote: total 42 (delta 17), reused 30 (delta 12), pack-reused 0
unpacking objects: 100% (42/42), done.

然后,我们再切换到 sudo 目录。

$ cd sudo/

再使用以下命令安装 sudu 工具。

$ ./install.sh

上面的命令会在 ~/.bashrc 文件中添加以下信息。

[...]
# sudo - shout at bash to su commands
# distributed under gnu gplv2, @jthistle on github

shopt -s expand_aliases

ifs_=${ifs}
ifs=":" read -ra paths <<< "$path"

for i in "${paths[@]}"; do
    for j in $( ls "$i" ); do
        if [ ${j^^} != $j ] && [ $j != "sudo" ]; then
            alias ${j^^}="sudo $j"
        fi      
    done
done

alias sudo='sudo $(history -p !!)'

ifs=${ifs_}

# end sudo

为了防止意外情况发生,它还会自动备份 ~/.bashrc 并将其保存为 ~/.bashrc.old ,以便于意外发生时可以恢复。

最后,使用以下命令生效对 ~/.bashrc 文件的更改。

$ source ~/.bashrc

输入大写字母的命令,以 sudo 用户运行

一般来说,在根目录下创建目录时,我们需要在命令前使用 sudo ,如下:

$ sudo mkdir /test_dir

安装 sudo 后,对于需要使用 sudo 的命令我们可以直接用大写的形式实现相同的效果,如下所示。

$ mkdir /test_dir
$ touch /ostechnix/test.txt
$ ls /ostechnix

用大写字母输入 Linux 命令,实现以 sudo 用户权限运行

注意,sudo 不会绕过 sudo 密码,我们仍然需要输入 sudo 密码才能执行给定的命令。

当然,如果你觉得在命令前面输入 sudo 也完全可以接受,你也可以不使用sudo 工具,只要你自己用得舒服就好。
-----------------

我是良许,世界500强外企 linux 开发工程师,专业生产 linux 干货。欢迎关注我的公众号「良许linux」,里面分享了 linux入门、基础、进阶 等系列教程,同时也有 git、vim、开源项目 等技术干货。公众号后台回复「1024」获取最新最全的技术资料,回复「入群」进入高手如云技术交流群。

用大写字母输入 Linux 命令,实现以 sudo 用户权限运行