Preciso de uma distribuição Linux para aprender a linha de comando ou o OS X seria suficiente?

12

Vou aprender a usar a linha de comando. Especificamente, usarei o livro: "A linha de comando do Linux: uma introdução completa" . Agora, preciso usar uma distribuição Linux para ler o livro ou o OS X seria suficiente?

Se eu precisar de uma distribuição Linux, usá-la por meio de uma VM será suficiente ou preciso instalá-la nativamente?

Utku
fonte
8
O único motivo pelo qual você precisaria instalar um sistema operacional no hardware físico e não uma VM seria o desempenho. Se você está apenas tentando aprender procedimentos básicos, isso não será um problema. Provavelmente é preferível executar algo como o Arch em uma VM.
Bratchley 2/10
mesma discussão em apple.stackexchange.com/q/208692/7057
glenn jackman
4
A linha de comando é apenas um link entre você e o sistema. A sintaxe do shell bash pode ser a mesma, mas quando você precisar lidar com partes específicas do sistema, haverá diferenças. Por exemplo, o OS X não possui /procsistema de arquivos, as unidades USB tendem a aparecer /Volumesnão /media/usernamecomo no Ubuntu. O CentOS possui um dhclient.confarquivo diferente . E assim por diante e assim por diante
Sergiy Kolodyazhnyy
4
A duplicata proposta entre sites é claramente uma pergunta diferente sobre o desempenho da virtualização nos MacBooks. A pergunta não tem postagem cruzada.
Michael Homer
2
@ Utku Eu acho que o que poderia ajudar seria separar alguns conceitos: usando uma linha de comando e o sistema operacional em que você a usa. Se você deseja conhecer sua linha de comando, o OS X funcionaria, bem como o Linux, o BSD ou o Windows com algum esforço. Se você deseja conhecer o UNIX ou Linux, a linha de comando é apenas uma pequena parte disso - é apenas a interface através da qual você interagirá com o sistema operacional. Eu acho que esclarecer o que você está indo para também irá torná-lo mais fácil de aprender :)
rickcnagy

Respostas:

33

Eu recomendo executar o Linux em uma VM. Todo o software está disponível gratuitamente para download e não há diferença prática entre a execução em uma VM e a execução nativa com o objetivo de aprender a linha de comando.

Além disso, a linha de comando do Linux consiste principalmente em bash + GNU coreutils , que é muito diferente do BSD Unix (e o OS X é um sucessor do BSD Unix). Há uma grande diferença de preferências na escrita de argumentos no BSD Unix e GNU Linux. Você pode se morder mesmo como não novato, com opções diferentes para utilitários padrão como pse tarse você trabalha nos dois sistemas.

O uso do OS X quando seu livro é específico para Linux gera regularmente inconsistências e diferenças que parecerão superficiais quando você tiver mais experiência, mas simplesmente ficarão confusas quando estiver aprendendo. Mantenha as coisas fáceis para si mesmo.

Isso também permitirá que você experimente sem a preocupação de quebrar sua máquina, excluindo ou alterando arquivos importantes.

E por último, embora certamente não menos importante, ele permitirá que você configure uma conexão SSH com a sua VM a partir do seu OS X Terminal, para que você possa se acostumar com o uso de chaves SSH e com a idéia de que não faz diferença se o seu servidor Linux é uma máquina nativa, uma VM local ou está acabando na AWS ou no Digital Ocean: tudo funciona da mesma maneira!

seumasmac
fonte
A propósito, terei a mesma estrutura de diretórios em uma VM versus um Linux nativo também?
Ut15
3
Sim. Para seus propósitos, é exatamente o mesmo que uma instalação nativa.
Seumasmac
Essa é a resposta mais segura, mas, dependendo do livro, eu presumiria que uma introdução ao livro da linha de comando não mostraria muitas (se houver) das diferenças. Após uma olhada no manual, a única coisa que me chamou atenção seria a explicação da estrutura de diretórios.
pllee
1
@Utku Se / dev / sda ou / dev / hda for mencionado no livro e você não conseguir encontrá-lo em sua instalação, tente procurar por / dev / vda. Esta é a única diferença possível em que consigo pensar que seria importante para você.
Kimmax
1
Você nem precisa usar uma VM, também é possível usar um CD ao vivo se não quiser ocupar muito espaço no seu HD. Também pode ser inicializado a partir de uma unidade flash, e a criação de uma unidade flash CD / inicializável leva muito pouco tempo.
Chris Cirefice 4/10
18

O OS X é suficiente para aprender a linha de comando, pois é um UNIX certificado e está em conformidade com o POSIX. Se você estiver olhando para o livro de linha de comando específico do Linux, lembre-se de que as ferramentas da terra do usuário no OS X são derivadas do BSD, enquanto as ferramentas do Linux são GNU e existem algumas diferenças sutis (e não tão sutis) entre elas.

Se você deseja aprender com as ferramentas GNU, pode instalar uma terra de usuário GNU através de macports ou homebrew, ou pode fazer uma instalação completa do Linux em uma VM.

Casey
fonte
Então, acho que não há livro "genérico" na linha de comando? Um livro usará as ferramentas GNU ou BSD. Isso está certo?
Utku
1
Se você tem um livro em um shell (por exemplo bash), ele se adequa a praticamente qualquer sistema que o execute. Isso varia quando você começa a usar os recursos do sistema operacional ou ferramentas específicas fora do shell.
Teppic #
1
@teppic Mas quão útil é um shell por si só ? AFAIK, um shell por si só é inútil, pois não possui nenhum comando para executar. Mesmo os comandos mais básicos como lsdevem ser do GNU ou BSD (corrija se estiver errado). Então, acho que isso significa que preciso escolher uma cadeia de ferramentas (ou ambiente) e começar a aprender a linha de comando. Isso está certo?
Ut15
@Utku os comandos são os mesmos (na maior parte), mas as opções e a saída podem diferir (geralmente porque o GNU implementa muitas extensões). É fácil alternar entre as ferramentas BSD e GNU.
quer
@casey Então, eu posso apenas começar com o livro no OS X. Então, se eu encontrar um comportamento não descrito no livro, posso experimentá-lo no Linux ou apenas olhar a variante BSD do mesmo comando?
Utku
9

Algumas boas respostas até agora, mas mais um motivo para ficar longe das ferramentas de linha de comando padrão do OS X é que elas são versões muito antigas. Por exemplo, o OS X grepé de 2004 e bashde 2007! O motivo é que a Apple se recusa a enviar ferramentas licenciadas sob a GPL3.

Se você não quiser instalar o Linux corretamente, poderá instalar manualmente as versões mais recentes (talvez por meio de um sistema de portas como MacPorts, Fink ou Homebrew).

Sparhawk
fonte
3

Primeira diferença:

ls * -lah

Funciona no linux, falha no mac (os parâmetros devem vir primeiro). Use uma VM ou obtenha um livro para mac os. Você deve aprender o que usará mais tarde e depois as diferenças.

user136809
fonte
3
Você deve dizer que ls * -lahfunciona no Linux da mesma maneira que funciona no Linux e no OS X da mesma maneira que no OS X. A maneira de funcionar no OS X está correta de acordo com o POSIX (12. Convenções de utilidades / 12.2 Diretrizes de sintaxe para utilitários / Diretriz 9) : “Todas as opções devem preceder operandos na linha de comando.” Conforme descrito em getopt (3) : “Se… a variável de ambiente POSIXLY_CORRECT estiver configurada, o processamento da opção será interrompido assim que um argumento de não opção for encontrado.”
G-Man diz 'Reinstate Monica'
3

A melhor maneira de aprender o unix é ter um trabalho real a ver com isso. Eu diria que vale a pena encontrar as diferenças entre os exemplos específicos do Linux em seu livro e as versões Mac das ferramentas padrão, apenas para poder trabalhar com seus próprios arquivos e dados no seu ambiente de trabalho normal (OS X).

Encontrar as diferenças também será uma experiência valiosa de aprendizado, mesmo que às vezes seja frustrante.

Ter uma VM Linux também para praticar (especialmente para comandos potencialmente perigosos) também é útil, mas nada supera o uso do mundo real para aprendizado.

cas
fonte