Exe*_*n-G 0 permissions bash root
我倾向于使用sudo arp-scan --localnet --interface wlan0
很多,但我发现每次都输入它很麻烦。为了加快速度,我创建了一个名为 的脚本arp-lw-scan
,它应该为我执行此操作。
内容~/Scripts/arp-lw-scan
:
#!/bin/bash
arp-scan --localnet --interface wlan0
Run Code Online (Sandbox Code Playgroud)
我已添加~/Scripts
到我的$PATH
in 中~/.profile
,因此该文件夹中的每个脚本都可以从任何位置执行,只需在终端中输入其名称即可。
但是,我无法arp-lw-scan
以简单的方式执行,因为它需要 root 访问权限。只是arp-lw-scan
在我的主目录中输入时会出现关于没有 root 权限的错误。我可以打字sudo ~/Scripts/arp-lw-scan
,这很有效,但仍然需要打字。我希望能够只输入sudo arp-lw-scan
来执行给定的脚本。
我怎样才能做到这一点?
别名是命令行中的快捷方式。常规外壳 Bash 允许您创建自己的别名。
要尝试一下(不永久保存它们),请尝试以下操作:
alias myalias='gksudo gparted'
myalias
Run Code Online (Sandbox Code Playgroud)
要永久保存它们,请创建如下文件~/.bash_aliases
:
alias myalias='gksudo gparted'
alias edsources='gksudo gedit /etc/apt/sources.list'
Run Code Online (Sandbox Code Playgroud)
~/.bashrc
在 Ubuntu 中为用户安装的默认文件将~/.bash_aliases
默认为该文件的来源。
别名允许您附加更多参数并“否决”当前命令。一个常见的用例是
alias rm='rm -i'
Run Code Online (Sandbox Code Playgroud)
要获取您尝试删除的所有内容的确认消息rm
。
如果您想通过运行原始命令来“转义”别名,请在其前面加上反斜杠。所以,rm
举个例子,就做
\rm myfile
Run Code Online (Sandbox Code Playgroud)
在没有-i
别名强制选项的情况下删除文件。
关于您当前的方法,您应该能够在单行脚本中使用sudo
(或gksudo
)预先添加命令。