Encontrarei apenas ferramentas de linha de comando GNU no Ubuntu?

3

Existem algumas ferramentas conhecidas de linha de comando em várias versões, dependendo o sabor do Unix (como sed, find, ld).

Eu queria saber quais versões estão disponíveis no Ubuntu (eu suponho que o GNU para todos, mas eu gostaria de confirmar isso)?

    
por Sylvain Pineau 28.04.2014 / 10:31

4 respostas

3

Existem algumas formas de interpretar a sua pergunta, pelo que serei explícito nas minhas respostas.

Todos os aplicativos de linha de comando estão em projetos do Ubuntu GNU?

Claro que não, você pode instalar o que quiser e há muitas coisas que fazem parte do Ubuntu ou do Debian diretamente que não são upstream.

E quanto mais os aplicativos de linha de comando que acompanham o Ubuntu?

coreutils compõe um vasto leque destes (e este é um projeto GNU - é o que o GNU no GNU / Linux representa) mas para ser compatível com POSIX, um sistema precisa de mais do que apenas coreutils . / p>

Caso você esteja se perguntando o que o coreutils cobre, aqui está a descrição do pacote:

 This package contains the basic file, shell and text manipulation
 utilities which are expected to exist on every operating system.

 Specifically, this package includes: arch base64 basename cat chcon chgrp
 chmod chown chroot cksum comm cp csplit cut date dd df dir dircolors
 dirname du echo env expand expr factor false flock fmt fold groups head
 hostid id install join link ln logname ls md5sum mkdir mkfifo mknod mktemp
 mv nice nl nohup nproc od paste pathchk pinky pr printenv printf ptx pwd
 readlink rm rmdir runcon sha*sum seq shred sleep sort split stat stty sum
 sync tac tail tee test timeout touch tr true truncate tsort tty uname
 unexpand uniq unlink users vdir wc who whoami yes

Então todos os comandos POSIX são GNU?

Não. Embora o Ubuntu use o GNU, ele depende de muitos projetos não-GNU para sua conformidade POSIX.

Cobri quais comandos são POSIX antes . Com essa lista, podemos gerar rapidamente uma lista de pacotes e em seguida, pegue todos os URLs da página do projeto desses pacotes. Mesmo sem visitar as URLs, você pode ver que elas não são GNU (algumas são até mesmo não-GNU).

$ apt-cache show $(for c in "admin alias ar asa at awk basename batch bc bg break c99 cal cat cd cflow chgrp chmod chown cksum cmp colon comm command compress continue cp crontab csplit ctags cut cxref date dd delta df diff dirname dot du echo ed env eval ex exec exit expand export expr false fc fg file find fold fort77 fuser gencat get getconf getopts grep hash head iconv id ipcrm ipcs jobs join kill lex link ln locale localedef logger logname lp ls m4 mailx make man mesg mkdir mkfifo more mv newgrp nice nl nm nohup od paste patch pathchk pax pr printf prs ps pwd qalter qdel qhold qmove qmsg qrerun qrls qselect qsig qstat qsub read readonly renice return rm rmdel rmdir sact sccs sed set sh shift sleep sort split strings strip stty tabs tail talk tee test time times touch tput tr trap true tsort tty type ulimit umask unalias uname uncompress unexpand unget uniq unlink unset uucp uudecode uuencode uustat uux val vi wait wc what who write xargs yacc zcat"; do dpkg -S $(readlink -f $(which $c)); done | awk -F: '{print }' | sort -u) | awk '/Package|Homepage/'

Package: at
Package: bc
Homepage: http://ftp.gnu.org/gnu/bc/
Package: binutils
Package: bison
Homepage: http://www.gnu.org/software/bison/
Package: bsdmainutils
Package: bsdutils
Homepage: http://userweb.kernel.org/~kzak/util-linux/
Package: coreutils
Homepage: http://gnu.org/software/coreutils
Package: cron
Homepage: http://ftp.isc.org/isc/cron/
Package: cups-client
Homepage: http://www.cups.org
Package: dash
Homepage: http://gondor.apana.org.au/~herbert/dash/
Package: diffutils
Homepage: http://www.gnu.org/software/diffutils/
Package: ed
Homepage: http://www.gnu.org/software/ed/
Package: file
Homepage: http://www.darwinsys.com/file/
Package: findutils
Homepage: http://savannah.gnu.org/projects/findutils/
Package: flex
Homepage: http://flex.sf.net/
Package: gawk
Homepage: http://www.gnu.org/software/gawk/
Package: gcc
Package: graphviz
Homepage: http://www.graphviz.org/
Package: grep
Homepage: http://www.gnu.org/software/grep/
Package: gzip
Package: heirloom-mailx
Homepage: http://heirloom.sourceforge.net/mailx.html
Package: libc-bin
Homepage: http://www.eglibc.org
Package: libc-dev-bin
Homepage: http://www.eglibc.org
Package: login
Homepage: http://pkg-shadow.alioth.debian.org/
Package: m4
Homepage: http://www.gnu.org/software/m4/
Package: make
Homepage: http://www.gnu.org/software/make/
Package: man-db
Homepage: http://man-db.nongnu.org/
Package: ncurses-bin
Homepage: http://invisible-island.net/ncurses/
Package: patch
Package: pax
Package: procps
Homepage: http://gitorious.org/procps
Package: psmisc
Homepage: http://psmisc.sf.net/
Package: sed
Homepage: http://www.gnu.org/software/sed/
Package: sharutils
Homepage: http://www.gnu.org/software/sharutils/
Package: sysvinit-utils
Homepage: http://savannah.nongnu.org/projects/sysvinit
Package: time
Homepage: http://www.gnu.org/software/time
Package: util-linux
Homepage: http://userweb.kernel.org/~kzak/util-linux/
Package: vim-tiny
Homepage: http://www.vim.org/
    
por Oli 28.04.2014 / 11:11
2

Você pode ver o usuário "GNU" a partir da Wikipedia -.

Então, os comandos GNU estão disponíveis para o Ubuntu. Para ver os comandos disponíveis, consulte Lista de pacotes GNU .

E para um comando específico (Ex: encontrar ): findutils do Projeto GNU

    
por Pandya 28.04.2014 / 10:56
1

Quase todos os comandos Unix existem com versões diferentes, dependendo do sistema operacional usado.

Existem diferenças significativas, geralmente extensões GNU para o padrão POSIX.

No Ubuntu, você pode esperar que a versão GNU seja o padrão para a maioria desses comandos, mas não necessariamente para todos.

O exemplo mais óbvio é /bin/sh , que é um link para dash no Ubuntu e não mais bash como costumava ser.

Enquanto bash faz parte do projeto GNU, dash vem originalmente de um netBSD.

    
por jlliagre 28.04.2014 / 10:43
0

Pela minha experiência, as implementações GNU de ferramentas Unix são geralmente mais ricas em opções disponíveis. No entanto, provavelmente existem exceções. Às vezes, também existem diferenças no comportamento padrão. Por exemplo, o GNU "find" executado sem um diretório pressupõe implicitamente a execução no diretório atual. No SunOS, isso está incorreto e você tem que digitar "encontrar". para obter o mesmo resultado.

    
por pkalinow 28.04.2014 / 10:51