Primeiro de tudo, você pode instalar vários sabores em sua máquina. Portanto, a resposta depende de quantos sabores você instalou e de qual comando você digitou.
netcat-traditional
e netcat-openbsd
está disponível para ser instalado através do gerenciador de pacotes apt
no Ubuntu. No meu caso, eu também construo a partir da fonte para instalar o GNU netcat
flavor através do site oficial .
Para o sabor "openbsd", você pode descobrir o nome binário do local com dpkg -L
< package-name > (Pesquisando-se para encontrar o equivalente a dpkg L
se seu gerenciador de pacotes não for apt
):
$ dpkg -L netcat-openbsd | grep /bin /bin /bin/nc.openbsd
Em seguida, use type -a
para confirmar que o nome binário nc.openbsd
é pesquisável em $PATH
e interpretado como comando:
$ type -a nc.openbsd
nc.openbsd is /bin/nc.openbsd
nc.openbsd is /bin/nc.openbsd
Para o sabor "tradicional" é o mesmo:
$ dpkg -L netcat-traditional | grep /bin
/bin
/bin/nc.traditional
$ type -a nc.traditional
nc.traditional is /bin/nc.traditional
nc.traditional is /bin/nc.traditional
Isso significa que posso emitir o comando nc.openbsd
para executar a ferramenta netcat-openbsd
e também o comando nc.traditional
para executar a ferramenta netcat-traditional
. (Pode confundir onde o comando contém '.', Mas o nome do pacote contém '-')
Parece que há 3 versões para instalar via apt
:
$ apt-cache search netcat --names-only
netcat-openbsd - TCP/IP swiss army knife
netcat - TCP/IP swiss army knife -- transitional package
netcat-traditional - TCP/IP swiss army knife
Mas, na verdade, netcat
é apenas pacote fictício:
$ apt-cache show netcat | grep Description-en -A 2
Description-en: TCP/IP swiss army knife -- transitional package
This is a "dummy" package that depends on lenny's default version of
netcat, to ease upgrades. It may be safely removed.
Você só pode instalar netcat-openbsd
e netcat-traditional
via apt
se quiser:
sudo apt-get install netcat-openbsd
sudo apt-get install netcat-traditional
Como sobre os comandos nc
e netcat
? Eles podem ser vinculados a diversos tipos pesquisáveis por $PATH
, um dos caminhos será executado se você digitar nc
ou netcat
. Novamente, você pode usar type -a
para verificar, enquanto a prioridade é a primeira linha (como negrito abaixo):
$ type -a nc nc is /usr/local/bin/nc nc is /bin/nc nc is /usr/local/bin/nc nc is /bin/nc $ type -a netcat netcat is /usr/local/bin/netcat netcat is /bin/netcat netcat is /usr/local/bin/netcat netcat is /bin/netcat
Você pode usar realpath
para descobrir o caminho resolvido deles:
$ realpath /usr/local/bin/netcat /usr/local/bin/netcat $ realpath /bin/netcat /bin/nc.openbsd $ realpath /usr/local/bin/nc /usr/local/bin/netcat $ realpath /bin/nc /bin/nc.openbsd
4 deles apenas 2 caminhos são únicos no meu sistema, um é "GNU" e o outro é "openbsd":
$ /usr/local/bin/netcat --version | head -1
netcat (The GNU Netcat) 0.7.1
$ /bin/nc.openbsd -h |& head -1
OpenBSD netcat (Debian patchlevel 1.130-3)
Isso significa que, se eu digitar nc
OR netcat
, ele executará /usr/local/bin/netcat
, que é "GNU Netcat".
Você pode tentar update-alternatives
para ajustar o caminho da ligação simbólica resolvida:
$ realpath /bin/nc
/bin/nc.openbsd
$ realpath /bin/netcat
/bin/nc.openbsd
$ sudo update-alternatives --config nc
There are 2 choices for the alternative nc (providing /bin/nc).
Selection Path Priority Status
------------------------------------------------------------
0 /bin/nc.openbsd 50 auto mode
* 1 /bin/nc.openbsd 50 manual mode
2 /bin/nc.traditional 10 manual mode
Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /bin/nc.traditional to provide /bin/nc (nc) in manual mode
$ realpath /bin/nc
/bin/nc.traditional
$ realpath /bin/netcat
/bin/nc.traditional
Ele alterou /bin/nc
e /bin/netcat
symlink¹ resolvido para /bin/nc.traditional
, mas ainda assim não alterou o sabor se eu digitar nc
OR netcat
, pois /usr/local/bin/
ainda tem maior precedência sobre /bin
no meu $PATH
:
$ /bin/nc -h |& head -1
[v1.10-41]
$ nc -h |& head -1
GNU netcat 0.7.1, a rewrite of the famous networking tool.
$ type -a nc | head -1
nc is /usr/local/bin/nc
Observe que há mais sabores de netcat, por exemplo ncat , socat , sbd , netcat6 , pnetcat e cryptcat .
¹ O link simbólico atual foi atualizado em /etc/alternatives/nc
e /etc/alternatives/netcat
, que /bin/nc
e /bin/netcat
já tinham link simbólico para /etc/alternatives/nc
e /etc/alternatives/netcat
, respectivamente.