bash的语法一般是:
$ 可执行程序 --修饰词 对象/参数
转换成人类语言的话有点类似于:
$ 谓语 --状语 宾语
或者:
$ 动词 --副词 名词
这几个东西之间用空格分离。
就拿你图片里面的命令举例:
# deluser --remove-home fish
就是:“remove home”地“deluser”,对象是“fish”。
翻译成人话就是删除用户“fish”并且删除它的家目录。
之所以“--remove-home”的“remove”和“home”之间使用横杠连接是因为这整个“--remove-home”就是个修饰的选项。
还有:
# echo "peguin ALL=(ALL) ALL" >> /etc/sudoers
(你应该已经知道一般情况下 echo 会返回它被给予的命令,而“>>”会将它前面的命令的标准输出重定向并添加到它后面的文件最后。)
这里面之所以“"peguin ALL=(ALL) ALL"”中间可以随便加空格是因为它加了引号,所以 bash 不会将其理解为分离的参数传递给程序,而是直接作为同一个参数传递过去。实际上,如果你把引号去掉然后把它中间所有的空格前面加个反斜杠效果也是一样的,比如:“peguin\ ALL=(ALL)\ ALL”。
$ 可执行程序 --修饰词 对象/参数
转换成人类语言的话有点类似于:
$ 谓语 --状语 宾语
或者:
$ 动词 --副词 名词
这几个东西之间用空格分离。
就拿你图片里面的命令举例:
# deluser --remove-home fish
就是:“remove home”地“deluser”,对象是“fish”。
翻译成人话就是删除用户“fish”并且删除它的家目录。
之所以“--remove-home”的“remove”和“home”之间使用横杠连接是因为这整个“--remove-home”就是个修饰的选项。
还有:
# echo "peguin ALL=(ALL) ALL" >> /etc/sudoers
(你应该已经知道一般情况下 echo 会返回它被给予的命令,而“>>”会将它前面的命令的标准输出重定向并添加到它后面的文件最后。)
这里面之所以“"peguin ALL=(ALL) ALL"”中间可以随便加空格是因为它加了引号,所以 bash 不会将其理解为分离的参数传递给程序,而是直接作为同一个参数传递过去。实际上,如果你把引号去掉然后把它中间所有的空格前面加个反斜杠效果也是一样的,比如:“peguin\ ALL=(ALL)\ ALL”。