Como saber quais opções cada comando possui?

1

Eu tenho usado o linux já há algum tempo e tenho uma pergunta queimando na minha cabeça. Vou usar o comando mount como exemplo.

Quando você vê os manpages do mount, ele diz que você usa o comando da seguinte forma: mount $type $drive $dir onde $ drive é a unidade que você deseja montar $ type é o tipo da unidade e $ dir é o diretório onde você irá montá-lo.

No que diz respeito às variáveis $ drive e $ dir, é fácil perceber. Agora na variável $ type você não pode simplesmente colocar o que quiser, porque o sistema não vai entender. Você tem que usar palavras pré-produzidas como vfat, ext3, auto etc.

E aqui está a minha pergunta: para cada comando que requer esse tipo de palavras prontas para preencher um espaço variável, como eu sei quais opções eu tenho? Onde posso ver uma lista de todas as opções que tenho para este tipo de variáveis?

E o monte é apenas um comando, há inúmeros outros como este que requerem uma palavra de um conjunto de palavras prontas para funcionar. Tanto quanto eu posso dizer, não existe essa lista nas páginas de manual ou em algum site óbvio.

    
por The Gramm 28.01.2016 / 17:27

3 respostas

2

Normalmente você tem duas opções:

  1. Uma é estudar a fonte de cada comando que você quer saber, o que provavelmente não seria uma boa ideia (na verdade, é se você quiser conhecer o funcionamento interno, mas sabe, no tempo;)) desde que demoramos incontáveis horas.

  2. A segunda e mais viável opção é estudar o manual usando man ou info , o que poderia fornecer uma explicação detalhada de todas as opções e parâmetros.

por Hamed Momeni 28.01.2016 / 17:44
4

Não há um caminho geral, especialmente para programas extensíveis como mount .

Para mount , a opção -t foo informa mount para executar o comando mount.foo . Isso depende do que você instalou. Por exemplo, posso usar as seguintes opções para mount :

ceph  cifs  fuse  fuse.ceph  lowntfs-3g  nfs  nfs4  ntfs  ntfs-3g

Por quê? Porque eu tenho os seguintes ajudantes para mount instalado:

$ ls /sbin/mount.*
/sbin/mount.ceph       /sbin/mount.cifs        /sbin/mount.fuse
/sbin/mount.fuse.ceph  /sbin/mount.lowntfs-3g  /sbin/mount.nfs
/sbin/mount.nfs4       /sbin/mount.ntfs        /sbin/mount.ntfs-3g

Em geral, no entanto, não há como saber o que você pode executar para um determinado comando, especialmente se ele puder fazer uso de programas externos como mount .

    
por muru 28.01.2016 / 18:41
1
  

Tanto quanto eu posso dizer, não existe tal lista nas páginas de manual (...).

Mesmo no caso muito especial do mount ( muru explica por quê ), na verdade, a manpage ajuda muito:

-t, --types fstype
  The argument following the -t is used to indicate the filesystem type.
  The filesystem types which are currently  supported depend on the running
  kernel. See /proc/filesystems and /lib/modules/$(uname -r)/kernel/fs for
  a complete list of the filesystems. The most common are ext2, ext3, ext4,
  xfs, btrfs, vfat, sysfs, proc, nfs and cifs.

Ele não apenas lista os argumentos mais comuns , mas também pontos para /proc/filesystems (que é um arquivo, por isso usaremos cat ) e /lib/modules/$(uname -r)/kernel/fs (que é um diretório, então usaremos ls ). Combinado isso fornece a lista completa de argumentos utilizáveis em seu sistema específico.

Normalmente, man e / ou info contêm a lista completa de argumentos possíveis para uma opção ou (como no seu exemplo) direcionam você para outras fontes onde você obtém essas informações. Para procurar uma opção em uma manpage extensa, a função de pesquisa é útil, apenas digite, e. /--types , tecle Digite para procurar pela primeira ocorrência e N para percorrer os seguintes.

    
por dessert 30.10.2017 / 19:14