在Linux终端命令上有什么选项 - (破折号)是什么意思?

时间:2015-02-03 07:22:06

标签: linux terminal command

我知道存在很多选项但是在像

这样的Linux命令中
chmod -R 777 user

-R意味着什么,我知道如何使用其中的几个,但我从教程中学到了所有这些因此如果我想学习这部分终端命令,我真的不知道该搜索什么。如果有人在终端命令中仍然有新鲜感,有任何帮助他们的消息来源,我将不胜感激。

3 个答案:

答案 0 :(得分:1)

当与chmod一起使用时,

-R标志意味着:递归应用。 这是一个非常有用的命令。

如果您想了解有关chmod命令的更多信息,可以通过输入man chmod来访问手册页,例如:

从chmod手册页:

  

-R, - recursive
               以递归方式更改文件和目录

例如,假设你有一个目录mozilla - 它有子目录和文件:

/home/user/mozilla/
├── extensions
│   └── profiles.ini
└── firefox
    └── Crash Reports
        ├── events
        ├── InstallTime20140410211200
        ├── InstallTime20150112203352
        └── InstallTime20150125222008

你运行了命令

chmod -R -v 777 /home/user/mozilla/

-R标记会将{em>所有 {/ 1}}文件夹中包含的文件和子文件夹的权限更改为mozilla文件权限。

  • 添加777标志对于向您显示已发生的更改非常有用。

答案 1 :(得分:1)

每个U * x系统都附带手册页,它们也很容易在网上找到。

man chmod记录chmod命令,包括其选项; man man记录man命令本身等。

GNU在一个名为Info的系统中提供文档,该系统不那么普遍但功能更强(用于交叉引用,脚注等的可点击链接)。通常,您会找到一个简要的手册页,它会将您引导至Info以获取完整的文档。

在Linux系统上,man intro是一个更加温和的介绍,可以帮助您开始使用系统。 (没有intro命令;手册页只是对Linux中Life的介绍。)

如果他们没有提到系统内部存在标准的,高质量的在线文档,那么您所咨询的教程似乎不太令人信服。

答案 2 :(得分:0)

每个命令都有自己的一组参数,它自己的一组选项(它们只是特殊的参数)和它自己的概要。因此,内置*资源(如联机帮助页)的重要性(正如@ michael-coleman和@tripleee在各自的答案中已经提到的那样)和info pages

然而,有一些约定,很多(但不是全部!)命令共享。 (有些只是部分。):

  • 案例通常很重要。
  • 正确的参数(未被解释为选项)不以破折号(-)开头。它们通常用于告诉程序操作哪个文件,默认情况下,许多交互式shell都提供了tab-completion。
    • 值得注意的例外:许多程序使用孤立的单个短划线(-)而不是输入或输出文件来表示标准输入(将某些内容输入程序或输入程序)应该使用交互式)或标准输出(在终端上打印输出或在某处管道输出)。
  • 选项(用作标志(开/关)或键值对键的参数)有两种形式:
    • 短选项以单个短划线开头,并且只继续使用一个字母(例如示例中的-R)。不允许选项值的简短选项(见下文)通常可以链接:-a -R -c可以缩短为-aRc
    • 长选项以两个破折号开头,然后是一个或多个单词,用单个破折号连接(如chmod' s --recursive或{{1} }' s git diff)。
  • 选项值表示键是一个选项的键值对的值。
    • 允许值的短选项通常必须在同一参数内跟随该值,即它们之间没有任何空格,例如--color-words其中ld -lc是关键字,-l是值。
    • 允许值的长选项通常必须跟随该值作为紧接着的下一个参数,即它们之间只有空格。许多命令使用的另一个约定是在选项和值(c)之间具有等号(=)。对于某些命令,两者都可以工作。
  • 子命令指定在命令具有多种功能时要执行的操作。对于某些命令,它们看起来像选项,对于其他命令(例如ld --library=c),它们看起来像是正确的参数(git的{​​{1}}部分)。

其中一些惯例甚至已被编纂,但有许多(而且相当重要的)命令don't follow

虽然一般来说,不仅是可用的选项,而且还有“同一个”的语义。选项取决于具体的命令,一些选项具有商定的语义:diff 几乎总是表示git diff,表示要处理的文件是一个目录,所有直接和间接(在子目录中)包含的文件和目录也应该被处理。当然,这并没有阻止某些命令使用-R来表达这个含义而不知道--recursive,或者(可能更罕见或更隐蔽)使用-r来完全不同语义。

*被称为“在线'在网络上互连的计算机之前很常见我猜这是指'线条'终端(屏幕 - 键盘组合)和实际计算机之间的(电缆),用于对比离线电子电子设备。 (硬拷贝纸)文档。