{"id":714,"date":"2020-05-15T08:50:02","date_gmt":"2020-05-15T11:50:02","guid":{"rendered":"https:\/\/www.blindtec.com.br\/blog\/?p=714"},"modified":"2020-05-15T08:59:11","modified_gmt":"2020-05-15T11:59:11","slug":"programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iv","status":"publish","type":"post","link":"https:\/\/www.blindtec.com.br\/blog\/2020\/05\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iv\/","title":{"rendered":"Programando \u00e0s cegas: utilizando Windows e Linux juntos para aumentar sua produtividade parte IV"},"content":{"rendered":"<p>Salve, galera!<\/p>\n<p>Este \u00e9 o quarto e \u00faltimo artigo de nossa s\u00e9rie sobre como usar ambientes Windows e Linux juntos para uma maior produtividade em ambientes de desenvolvimento.<\/p>\n<ul>\n<li><a href=\"https:\/\/www.blindtec.com.br\/blog\/2020\/04\/programando-as-cegas-utilizando-windows-e-Linux-juntos-para-aumentar-sua-produtividade-parte-i\/\">parte I<\/a> &#8211; Introdu\u00e7\u00e3o<\/li>\n<li><a href=\"https:\/\/www.blindtec.com.br\/blog\/2020\/04\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-ii\/\">parte II<\/a> &#8211; Instalando a m\u00e1quina virtual<\/li>\n<li><a href=\"https:\/\/www.blindtec.com.br\/blog\/2020\/05\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iii\/\">parte III<\/a> &#8211; Instalando o Arch Linux<\/li>\n<li>Parte IV &#8211; integrando Linux e Windows<\/li>\n<\/ul>\n<p>No <a href=\"https:\/\/www.blindtec.com.br\/blog\/2020\/05\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iii\/\">artigo anterior<\/a>, instalamos o Arch Linux com acessibilidade.<\/p>\n<p>Agora, cuidaremos da integra\u00e7\u00e3o da m\u00e1quina virtual com o Windows.<\/p>\n<h2>Tirando um snapshot da m\u00e1quina<\/h2>\n<p>Para come\u00e7ar, vamos garantir que, independentemente do que fizermos, poderemos trazer a m\u00e1quina ao estado atual, caso precisemos.<\/p>\n<p>Para isso, utilizaremos um recurso chamado de snapshot, que \u00e9 uma esp\u00e9cie de backup inteligente de m\u00e1quinas virtuais. Quando tiramos um snapshot salvamos a m\u00e1quina da maneira que est\u00e1, com todos os seus arquivos, configura\u00e7\u00f5es e assim sucessivamente.<\/p>\n<p>Agora, temos uma m\u00e1quina sem configura\u00e7\u00e3o alguma, mas que liga e funciona.<\/p>\n<p>Se errarmos nas configura\u00e7\u00f5es futuras, poderemos voltar ao ponto em que as coisas estavam e tentar novamente o que deu errado at\u00e9 acertarmos as configura\u00e7\u00f5es.<\/p>\n<ol>\n<li>\n<p>Se sua m\u00e1quina virtual estiver ligada, desligue com o comando<\/p>\n<pre><code>shutdown -h now\n<\/code><\/pre>\n<p>Voc\u00ea notar\u00e1 que a conex\u00e3o SSH \u00e9 fechada e a janela do VirtualBox onde a m\u00e1quina estava ligada tamb\u00e9m vai fechar.<\/p>\n<\/li>\n<li>\n<p>Feche e abra a janela principal do VirtualBox. N\u00e3o mova as setas, pois nenhuma m\u00e1quina pode estar selecionada neste ponto.<\/p>\n<\/li>\n<li>\n<p>ALT para ir at\u00e9 a barra de menus, seta para a direita at\u00e9 m\u00e1quina, seta para baixo at\u00e9 ferramentas, seta para a direita e depois seta para baixo at\u00e9 snapshots. Pressione enter para marcar.<\/p>\n<ul>\n<li>3.1&#46; Se a op\u00e7\u00e3o ferramentas n\u00e3o aparecer, isso significa que uma das m\u00e1quinas est\u00e1 selecionada. Tente reiniciar seu computador e repetir os passos acima. Isso \u00e9 bem tedioso, mas precisar\u00e1 ser feito apenas uma vez, pois quando os snapshots estiverem habilitados aparecer\u00e3o para a (s) m\u00e1quina (s) virtual (is) sem mais complica\u00e7\u00f5es.<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Selecione a sua m\u00e1quina virtual na lista de m\u00e1quinas na janela principal do VirtualBox.<\/p>\n<\/li>\n<li>Selecione na barra de menus o menu snapshot e v\u00e1 em criar.<\/li>\n<li>Preencha o nome do snapshot. N\u00e3o pressione tab, de outra forma voc\u00ea cair\u00e1 em um campo de descri\u00e7\u00e3o do qual n\u00e3o conseguir\u00e1 sair. Em vez disso, pressione shift + tab at\u00e9 o bot\u00e3o ok e aperte enter.<\/li>\n<li>O VirtualBox n\u00e3o te dir\u00e1 nada. A acessibilidade deste produto \u00e9 sofr\u00edvel para dizer o m\u00ednimo.<\/li>\n<li>\n<p>Entretanto, se andar com tabs voc\u00ea vai chegar agora a uma lista de snapshots da m\u00e1quina atual. Esta lista \u00e9 bem verbosa, mas setas para cima e para baixo te permitem navegar pelos snapshots. Um deles, chamado estado atual, deve sempre estar selecionado se voc\u00ea quiser continuar usando sua m\u00e1quina no estado atual.<\/p>\n<p>Se precisarmos restaurar, selecionamos o snapshot desejado e no menu snapshot podemos restaur\u00e1-lo.<\/p>\n<\/li>\n<li>\n<p>Estamos fazendo a coisa certa e, como quase sempre acontece, o VirtualBox nos pune por isso.<\/p>\n<p>Como somos desenvolvedores, ignoramos a luta que o produto imp\u00f5e contra quem depende de sua acessibilidade. Se os menus contextuais sumirem, voc\u00ea precisar\u00e1 utilizar a barra de menus no menu m\u00e1quina para iniiciar sua m\u00e1quina virtual.<\/p>\n<p>Por vezes, apenas reiniciar o NVDA far\u00e1 com que os menus de contexto voltem a funcionar, ao menos por mais algum tempo, quando precisaremos fazer isto novamente.<\/p>\n<\/li>\n<\/ol>\n<h2>habilitando SWAP<\/h2>\n<p>No <a href=\"https:\/\/www.blindtec.com.br\/blog\/2020\/05\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iii\/\">artigo anterior<\/a>, criamos a parti\u00e7\u00e3o SWAP mas nos esquecemos de mont\u00e1-la quando o sistema inicia.<\/p>\n<p>Cuidaremos disso agora. Fa\u00e7a o comando<\/p>\n<pre><code>echo \"\/dev\/sda2 none swap sw 0 0\" &gt;&gt; \/etc\/fstab\n<\/code><\/pre>\n<p>Este comando usa o echo e o redirecionamento de arquivo para adicionar seu conte\u00fado ao arquivo \/etc\/fstab. O duplo maior ** >> ** faz com que o eco seja adicionado ao arquivo sem sobrescrev\u00ea-lo.<\/p>\n<h2>Configurando NTP<\/h2>\n<p>Da mesma forma que na instala\u00e7\u00e3o, vamos configurar a m\u00e1quina para sincronizar seu hor\u00e1rio com um servidor NTP. Fa\u00e7a o comando<\/p>\n<pre><code>timedatectl set-ntp true\n<\/code><\/pre>\n<h2>Atualizando o sistema<\/h2>\n<p>O Arch Linux exige que atualizemos o sistema periodicamente, ao menos se quisermos instalar novos pacotes.<\/p>\n<p>Como uma distribui\u00e7\u00e3o avan\u00e7ada, novos pacotes s\u00e3o disponibilizados t\u00e3o logo quanto seus desenvolvedores os atualizem. Isto significa que voc\u00ea ser\u00e1 for\u00e7ado a sempre andar no limiar da inova\u00e7\u00e3o, o que quer dizer que seu sistema ser\u00e1 sempre moderno, mas tamb\u00e9m sempre estar\u00e1 arriscado a quebrar.<\/p>\n<p>Embora, ao menos comigo, com um uso muito intenso do sistema isso nunca tenha acontecido, a prud\u00eancia sempre deve operar quando voc\u00ea depende de uma m\u00e1quina para o seu trabalho di\u00e1rio.<\/p>\n<p>Assim, sempre que fizermos um upgrade geral de sistema, devemos antes tirar um snapshot da m\u00e1quina.<\/p>\n<p>No momento, estamos com um sistema rec\u00e9m instalado. Faz sentido atualiz\u00e1-lo e, para isso, ligue sua m\u00e1quina virtual e descubra seu IP, como j\u00e1 fizemos algumas vezes.<\/p>\n<p>Depois, se conecte via SSH no sistema e fa\u00e7a o comando<\/p>\n<pre><code>pacman -Syu\n<\/code><\/pre>\n<p>Uma lista de pacotes ser\u00e1 mostrada e uma confirma\u00e7\u00e3o ser\u00e1 solicitada. Responda com y e aguarde o sistema atualizar.<\/p>\n<p>Ap\u00f3s a atualiza\u00e7\u00e3o, fa\u00e7a o comando<\/p>\n<pre><code>reboot\n<\/code><\/pre>\n<p>para reiniciar a m\u00e1quina.<\/p>\n<p>Embora n\u00e3o seja necess\u00e1rio, sempre gosto de subir a m\u00e1quina novamente para garantir que nada quebrou. Se o sistema reiniciar, nada quebrou.<\/p>\n<h2>Designando um IP fixo<\/h2>\n<h3>Problema<\/h3>\n<p>Voc\u00ea sabe que, como as coisas est\u00e3o, precisaremos executar<\/p>\n<pre><code>ip a | grep 192.168\n<\/code><\/pre>\n<p>para descobrirmos qual IP o VirtualBox associou \u00e0 nossa m\u00e1quina sempre que a ligarmos, isso porque usamos o servi\u00e7o DHCPCD para solicitar IPs para as nossas duas placas de rede, tanto a que se conecta via rede NAT com a internet quanto a rede Host Only que usamos para permitir nossa conex\u00e3o a partir do Windows.<\/p>\n<p>Entretanto, isso nos causa um inconveniente, j\u00e1 que o primeiro D do servi\u00e7o DHCPCD significa din\u00e2mico.<\/p>\n<p>Se voc\u00ea parar para pensar, isso faz sentido: quando voc\u00ea se conecta na internet, n\u00e3o recebe um envelope da sua operadora contendo instru\u00e7\u00f5es para configurar seu IP, voc\u00ea apenas liga o modem e a m\u00e1gica acontece. Mas, sabendo que todos precisamos de um IP para nos conectarmos, como isso acontece?<\/p>\n<p>Acontece, sem tirar nem por, exatamente o mesmo que com sua m\u00e1quina virtual: seu modem pede a um servidor DHCP que um IP dispon\u00edvel na rede seja associado a ele.<\/p>\n<p>O servidor DHCP olha em uma lista de IPs dispon\u00edveis na rede que ele gerencia e associa um deles para seu modem. Entretanto, por design, ele n\u00e3o reserva nenhum endere\u00e7o IP para seu modem, se n\u00e3o voc\u00ea poderia ficar dois meses longe da internet e aquele IP ficaria sem uso. Em vez disso, cada vez que seu modem solicita um endere\u00e7o IP ao servidor de DHCP, um dos IPs livres no momento \u00e9 associado e reservado.<\/p>\n<p>Mas isso nos tr\u00e1s novamente ao problema aqui: se nossa m\u00e1quina solicita IPs ao VirtualBox sempre que liga, vamos ter que ficar descobrindo qual endere\u00e7o IP ela tem toda vez que a ligamos para podermos nos conectar via SSH, j\u00e1 que, como vimos, o servidor DHCP do VirtualBox, como qualquer outro servidor DHCP, n\u00e3o garante que o IP associado para a m\u00e1quina ser\u00e1 sempre o mesmo.<\/p>\n<h3>Solu\u00e7\u00e3o<\/h3>\n<p>A maneira ent\u00e3o vai ser usar um IP fixo, ao menos na placa de rede com conex\u00e3o host only. Na placa de rede com conex\u00e3o NAT n\u00f3s n\u00e3o precisamos e nem queremos saber o IP, pois sua fun\u00e7\u00e3o \u00e9 prover conex\u00e3o com a internet, ent\u00e3o desde que funcione est\u00e1 bom demais.<\/p>\n<p>Mas, na placa de rede com conex\u00e3o host only, precisaremos configurar o cliente DHCP para n\u00e3o pedir um IP para o servidor DHCP, se n\u00e3o ele vai ficar variando e, em consequ\u00eancia, vamos ter que ficar descobrindo o IP toda vez que a m\u00e1quina reiniciar.<\/p>\n<p>A coisa certa a fazer seria usar um gerenciador de rede individual para cada placa de rede: uma (a NAT) vai continuar a obter seu IP dinamicamente. A outra (a host only) vai usar um IP fixo que configuraremos, para podermos nos conectar na m\u00e1quina sempre com o mesmo endere\u00e7o.<\/p>\n<p>Usar gerenciadores de rede aqui daria um certo trabalho. Entretanto, o cliente DHCP que estamos usando, chamado de DHCPCD, nos d\u00e1 uma ajudinha, j\u00e1 que podemos configurar algumas exce\u00e7\u00f5es.<\/p>\n<p>Funciona assim: instru\u00edmos o cliente DHCPCD a pedir um IP din\u00e2mico para o servidor DHCP para todas as placas de rede, menos para aquelas que a gente quer configurar manualmente. Para essas, instru\u00edmos o pr\u00f3prio cliente DHCPCD sobre qual IP e demais configura\u00e7\u00f5es devem ser associadas e, mesmo sem ser a obriga\u00e7\u00e3o dele, ele nos ajuda com isso, de modo que n\u00e3o nos preocupamos com outras configura\u00e7\u00f5es de rede.<\/p>\n<h4>descobrindo o nome da nossas placas de rede<\/h4>\n<p>Pela \u00faltima vez (assim esperamos), descubra o IP que sua m\u00e1quina virtual tem e se conecte nela via SSH.<\/p>\n<p>Uma vez no shell execute o comando<\/p>\n<pre><code>ip -o link\n<\/code><\/pre>\n<p>A sa\u00edda ser\u00e1 algo como:<\/p>\n<pre><code>1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000\\\u00a0\u00a0\u00a0 link\/loopba\nck 00:00:00:00:00:00 brd 00:00:00:00:00:00\n2: enp0s3: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000\\\u00a0\u00a0\u00a0 l\nink\/ether 08:00:27:c4:40:43 brd ff:ff:ff:ff:ff:ff\n3: enp0s8: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000\\\u00a0\u00a0\u00a0 l\nink\/ether 08:00:27:70:16:f1 brd ff:ff:ff:ff:ff:ff\n<\/code><\/pre>\n<p>Este comando mostra uma lista numerada de placas de rede, que a partir de agora chamaremos de interfaces.<\/p>\n<p>Neste exemplo, temos tr\u00eas interfaces, o que faz sentido, pois temos duas placas de rede configuradas e tamb\u00e9m a interface de loopback, que \u00e9 sempre a primeira e \u00e9 sempre padr\u00e3o na grande maioria dos sistemas operacionais.<\/p>\n<p>Assim, neste exemplo, descobrimos que temos as interfaces<\/p>\n<ul>\n<li>lo<\/li>\n<li>enp0s3<\/li>\n<li>enp0s8<\/li>\n<\/ul>\n<h4>Descobrindo qual das interfaces precisamos configurar<\/h4>\n<p>Pela descri\u00e7\u00e3o de cada interface, descobrimos que a interface chamada lo \u00e9 a interface de loopback. Nos resta, portanto, as outras duas.<\/p>\n<p>Vamos, novamente, consultar nossos IPs executando o comando<\/p>\n<pre><code>ip a | grep enp0s\n<\/code><\/pre>\n<p>Aqui, usamos o grep para filtrar apenas linhas que contenham o trecho enp0s, j\u00e1 que os nomes das duas interfaces que estamos interessados cont\u00e9m este trecho. Assim, filtramos apenas informa\u00e7\u00f5es nas quais estamos interessados.<\/p>\n<p>O comando ir\u00e1 mostrar algo similar a isto (valores podem mudar):<\/p>\n<pre><code>2: enp0s3: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000\n\u00a0\u00a0\u00a0 inet 10.0.2.15\/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3\n3: enp0s8: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000\n\u00a0\u00a0\u00a0 inet 192.168.56.114\/24 brd 192.168.56.255 scope global dynamic noprefixroute enp0s8\n<\/code><\/pre>\n<p>Certo, parece que a interface configurada para a rede host only, neste caso, \u00e9 a enp0s8. Sabemos disso porque \u00e9 ela que cont\u00e9m o IP que usamos para nos conectar na m\u00e1quina virtual, ent\u00e3o obviamente precisamos configurar o IP fixo nela.<\/p>\n<h4>Configurando a interface<\/h4>\n<ol>\n<li>\n<p>Edite o arquivo de configura\u00e7\u00e3o do servi\u00e7o DHCPCD afim de configurarmos a exce\u00e7\u00e3o para a interface que queremos:<\/p>\n<pre><code>nano \/etc\/dhcpcd.conf\n<\/code><\/pre>\n<\/li>\n<li>\n<p>V\u00e1 at\u00e9 o fim do arquivo e digite essas linhas. Aten\u00e7\u00e3o que o nome da suas interfaces pode mudar, use os daqui apenas como exemplo:<\/p>\n<pre><code>interface enp0s8\nstatic ip_address=192.168.56.[x]\nstatic routers=192.168.56.1\nstatic domain_name_servers=192.168.56.1\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>Nenhum segredo aqui, apenas anotamos o nome da interface para a qual queremos configurar os atributos manualmente e, abaixo, colocamos as configura\u00e7\u00f5es que, de outra forma, seriam solicitadas ao servidor DHCP.<\/p>\n<p>Mas O que coloco no lugar de [x]?<\/p>\n<h5>Configurando IP<\/h5>\n<p>Em [x] voc\u00ea precisar\u00e1 colocar qualquer valor entre 2 e 99. O restante do IP precisa ser 192.168.56, pois esta \u00e9 a fam\u00edlia de IPs que o VirtualBox disponibiliza em sua rede host only entre a m\u00e1quina virtual e a m\u00e1quina f\u00edsica.<br \/>\nN\u00e3o sem raz\u00e3o, configuramos como o gateway, ou seja, o supervisor da rede, o endere\u00e7o 192.168.56.1, que seria onde o roteador virtual providenciado pelo VirtualBox est\u00e1 configurado.<\/p>\n<p>Mas, Marlon, se esta \u00e9 a fam\u00edlia de IPs, porque precisa ser entre 2 e 99 e n\u00e3o pode ser entre 2 e 254?<\/p>\n<p>Porque o servidor DHCP rodando nesta rede est\u00e1 no endere\u00e7o final 100 e usa endere\u00e7os entre final 101 e 254 como IPs a serem associados dinamicamente para m\u00e1quinas que utilizem o servi\u00e7o. Portanto, \u00e9 bom que nossas m\u00e1quinas com IP est\u00e1ticos n\u00e3o disputem esses endere\u00e7os com o servidor DHCP, do contr\u00e1rio as chances de termos um conflito de IPs na rede s\u00e3o altas.<\/p>\n<p>E como voc\u00ea sabe de tudo isso?<\/p>\n<p>Pesquisando bastante na documenta\u00e7\u00e3o do produto e tamb\u00e9m acessando, no VirtualBox, as configura\u00e7\u00f5es no menu arquivo > host network manager.<\/p>\n<p>Pressione CTRL + x para sair, confirme que quer salvar o arquivo com y e pressione enter.<\/p>\n<h4>Verificando se funciona<\/h4>\n<p>Esta parte \u00e9 cr\u00edtica, pois se houve alguma configura\u00e7\u00e3o errada, voc\u00ea pode muito bem n\u00e3o conseguir mais se conectar na m\u00e1quina e ter que alterar novamente a partir do VirtualBox, algo que queremos evitar.<\/p>\n<p>Assim, para testar, vamos reiniciar o servi\u00e7o DHCPCD e ver o que acontece. Fa\u00e7a os comandos<\/p>\n<pre><code>systemctl restart dhcpcd\nip a | grep [nome da sua interface de rede host only]\n<\/code><\/pre>\n<p>onde [nome da sua interface de rede host only] deve ser substitu\u00eddo pelo nome da interface que se conecta com a rede host only, que voc\u00ea descobriu acima, no meu caso a enp0s8<\/p>\n<p>Voc\u00ea ver\u00e1 algo interessante: A sa\u00edda do IP a ser\u00e1 algo como (valores podem mudar)<\/p>\n<pre><code>3: enp0s8: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000\n\u00a0\u00a0\u00a0 inet 192.168.56.[ip din\u00e3mico pelo qual voc\u00ea se conectou]\/24 brd 192.168.56.255 scope global dynamic noprefixroute enp0s8\n\u00a0\u00a0\u00a0 inet 192.168.56.[ip est\u00e1tico que voc\u00ea configurou]\/24 brd 192.168.56.255 scope global secondary noprefixroute enp0s8\n<\/code><\/pre>\n<p>O que isso significa?<\/p>\n<p>Significa que o servi\u00e7o n\u00e3o abriu m\u00e3o do IP din\u00e2mico que tinha sido associado a placa de rede, mas associou um segundo IP, exatamente o IP est\u00e1tico que voc\u00ea configurou, a ela. Em resumo, significa que sua configura\u00e7\u00e3o funcionou.<\/p>\n<p>Quando a m\u00e1quina for reiniciada, o IP din\u00e2mico n\u00e3o mais ser\u00e1 solicitado, e o IP est\u00e1tico ser\u00e1 o \u00fanico que ela usar\u00e1.<\/p>\n<p>Ali\u00e1s, por falar nisso, hora de reiniciar o equipamento.<\/p>\n<p>Fa\u00e7a o comando<\/p>\n<pre><code>reboot\n<\/code><\/pre>\n<p>Agora, fa\u00e7a o comando<\/p>\n<pre><code>ssh root@[ip_est\u00e1tico_que_voc\u00ea_configurou]\n<\/code><\/pre>\n<p>onde [ip_est\u00e1tico_que_voc\u00ea_configurou] deve ser substitu\u00eddo pelo IP est\u00e1tico que voc\u00ea configurou.<\/p>\n<p>Confirme a autenticidade do servidor digitando yes e parab\u00e9ns, voc\u00ea nunca mais vai precisar descobrir o IP desta m\u00e1quina.<\/p>\n<h2>desforra<\/h2>\n<p>N\u00e3o h\u00e1 como descrever o sentimento agora. A partir deste momento, nos livraremos completamente do VirtualBox, nem sequer nos lembraremos de que ele existe.<\/p>\n<ol>\n<li>\n<p>Fa\u00e7a o comando<\/p>\n<pre><code>shutdown -h now\n<\/code><\/pre>\n<p>para desligar a m\u00e1quina.<\/p>\n<\/li>\n<li>\n<p>Na janela do VirtualBox, selecione a sua m\u00e1quina na lista de m\u00e1quinas virtuais.<\/p>\n<\/li>\n<li>V\u00e1 at\u00e9 o menu m\u00e1quina, seta para baixo at\u00e9 iniciar, seta para a direita, seta para baixo at\u00e9 in\u00edcio headless e aperte enter.<\/li>\n<li>Feche a janela do VirtualBox.<\/li>\n<\/ol>\n<p>Voc\u00ea perceber\u00e1 que nenhuma janela com a m\u00e1quina virtual se abril, o que \u00e9 exatamente o que queremos, j\u00e1 que vamos usar a m\u00e1quina apenas via SSH.<\/p>\n<p>Mais do que isso, a p\u00e9ssima janela principal do VirtualBox tamb\u00e9m n\u00e3o precisa mais nos incomodar.<\/p>\n<p>Agora que voc\u00ea j\u00e1 sabe o IP fixo de sua m\u00e1quina, conecte-se a ela via SSH para avan\u00e7armos para o pr\u00f3ximo passo, que tornar\u00e1 as coisas ainda melhores.<\/p>\n<h2>Navegando nas pastas do servidor atrav\u00e9s do Windows e atribuindo um nome para a m\u00e1quina na rede<\/h2>\n<p>Agora, precisamos fazer com que a rede Windows enxergue nossa m\u00e1quina por nome, pois esta, apesar de estar na rede e poder ser acessada via IP, ainda n\u00e3o aparece como algo que o sistema Windows reconhe\u00e7a.<\/p>\n<p>O pacote samba, desde h\u00e1 muitos anos, tem provido compatibilidade entre m\u00e1quinas Windows e Linux na mesma rede. Ele, em minha opini\u00e3o, \u00e9 a prova de que, com boa vontade, podemos estabelecer um eco sistema em que cada equipamento \u00e9 usado para o que \u00e9 melhor e em que m\u00faltiplos equipamentos podem ser usados juntos para atender aos usu\u00e1rios.<\/p>\n<p>Em suma, o desenvolvedor do pacote e eu pensamos da mesma maneira, que, lamentavelmente, n\u00e3o parece ser a maneira padr\u00e3o de se pensar de muitos desenvolvedores e administradores de sistema.<\/p>\n<p>Sendo o Arch Linux uma distribui\u00e7\u00e3o cl\u00e1ssica, a instala\u00e7\u00e3o do Samba nele n\u00e3o \u00e9 muito simples, n\u00e3o ao menos tanto quando poderia ser.<\/p>\n<p>Por isso, n\u00f3s aqui damos uma for\u00e7a para que, no caso de quem l\u00ea este artigo, a instala\u00e7\u00e3o seja t\u00e3o simples quanto deveria ser.<\/p>\n<h3>Instalando o samba<\/h3>\n<p>execute o comando<\/p>\n<pre><code>pacman -S samba\n<\/code><\/pre>\n<p>Confirme com y quando solicitado.<\/p>\n<h3>Configurando o samba<\/h3>\n<h4>Obtendo configura\u00e7\u00f5es padr\u00e3o<\/h4>\n<p>Aqui, o Arch Linux \u00e9 meio chato, pois seu pacote de instala\u00e7\u00e3o do Samba n\u00e3o cont\u00e9m um arquivo de configura\u00e7\u00e3o j\u00e1 constru\u00eddo e precisaremos fazer isso n\u00f3s pr\u00f3prios.<\/p>\n<p>Para simplificar, vamos baixar o arquivo de configura\u00e7\u00e3o de exemplo distribu\u00eddo com outras vers\u00f5es do Linux que hospedamos com o comando curl, que \u00e9 um cliente HTTP de linha de comandos.<\/p>\n<p>Execute o comando<\/p>\n<pre><code>curl https:\/\/www.blindtec.com.br\/smb.conf.default --output \/etc\/samba\/smb.conf\n<\/code><\/pre>\n<p>Este comando vai baixar o arquivo especificado na URL e salvar em \/etc\/samba\/smb.conf, que \u00e9 o endere\u00e7o final do arquivo de configura\u00e7\u00f5es do samba.<\/p>\n<p>O arquivo smb.conf \u00e9 muito grande, complexo e tem um formato \u00fanico, mesclando origens de arquivos conf Unix e ini Windows. N\u00f3s j\u00e1 deixamos configurados os principais compartilhamentos, e agora voc\u00ea precisar\u00e1 apenas parametrizar coisas espec\u00edficas da sua m\u00e1quina.<\/p>\n<p>Para seguir, portanto, com a configura\u00e7\u00e3o, fa\u00e7a o comando<\/p>\n<pre><code>nano \/etc\/samba\/smb.conf\n<\/code><\/pre>\n<h4>Configurando grupo de trabalho<\/h4>\n<p>Se vamos querer acessar nossa m\u00e1quina Linux na rede, precisamos saber em qual grupo de trabalho estamos. Em uma janela do prompt de comandos (tecla Windows + r, cmd, enter) digite<\/p>\n<pre><code>net config workstation\n<\/code><\/pre>\n<p>Voc\u00ea ler\u00e1, na sa\u00edda do comando, entre outras coisas, algo do tipo:<\/p>\n<pre><code>dom\u00ednio de esta\u00e7\u00e3o de trabalho [nome do grupo de trabalho]\n<\/code><\/pre>\n<p>onde [nome do grupo de trabalho] \u00e9 o nome do grupo de trabalho exibido.<\/p>\n<p>Copie ou anote o nome do seu grupo de trabalho, pois configuraremos o Samba neste mesmo grupo.<\/p>\n<p>De volta na janela onde o smb.conf est\u00e1 aberto, digite CTRL + w e procure por nome_grupo_trabalho. N\u00e3o se esque\u00e7a de teclar enter para realizar a busca.<\/p>\n<p>Voc\u00ea achar\u00e1 a linha<\/p>\n<pre><code>workgroup = [nome_grupo_trabalho]\n<\/code><\/pre>\n<p>Substitua [nome_grupo_trabalho] pelo nome do seu grupo de trabalho no Windows.<\/p>\n<h4>Configurando o nome da m\u00e1quina na rede<\/h4>\n<p>digite CTRL + w e procure por nome_computador. N\u00e3o se esque\u00e7a de teclar enter para realizar a busca.<\/p>\n<p>Voc\u00ea achar\u00e1 a linha<\/p>\n<pre><code>netbios name = [nome_computador]\n<\/code><\/pre>\n<p>Substitua [nome_computador] pelo nome do computador na rede.<\/p>\n<p>Este \u00e9 o nome pelo qual voc\u00ea vai se referir \u00e0 m\u00e1quina virtual (ou voc\u00ea achou mesmo que a gente ia ficar usando esses endere\u00e7os IPs chatos)?<\/p>\n<p>Ele pode ser o mesmo nome que voc\u00ea configurou em \/etc\/hostname ou pode ser outro, a \u00fanica restri\u00e7\u00e3o \u00e9 que n\u00e3o pode ter mais de 15 caracteres e deve ser composto de letras e n\u00fameros, com o primeiro caracter sendo necessariamente uma letra.<\/p>\n<h4>configurando compartilhamentos<\/h4>\n<p>Os compartilhamentos ficam no final do arquivo. Existem alguns j\u00e1 configurados e criar outros a partir deles n\u00e3o \u00e9 dif\u00edcil.<\/p>\n<p>Para ir at\u00e9 o fim do arquivo rapidamente, use ALT + \/<\/p>\n<p>Voc\u00ea poder\u00e1 conferir que j\u00e1 temos compartilhamentos para as pastas:<\/p>\n<ul>\n<li>etc<\/li>\n<li>home<\/li>\n<li>opt<\/li>\n<li>root<\/li>\n<li>usr<\/li>\n<li>var<\/li>\n<\/ul>\n<p>Com isso, poderemos, assim que o Samba estiver em p\u00e9, alterar praticamente qualquer configura\u00e7\u00e3o ou arquivo que quisermos no sistema, diretamente a partir do Windows.<\/p>\n<p>Caso seja necess\u00e1rio adicionar algum outro compartilhamento, poderemos fazer isso agora ou posteriormente.<\/p>\n<h4>terminando a configura\u00e7\u00e3o<\/h4>\n<p>Pressione CTRL + x para sair, confirme com y a op\u00e7\u00e3o de salvar e pressione enter.<\/p>\n<p>Agora, fa\u00e7a o comando<\/p>\n<pre><code>chmod 777 \/etc\/samba\/smb.conf\n<\/code><\/pre>\n<p>Para dar a outros usu\u00e1rios diferentes do root permiss\u00e3o de leitura, escrita e execu\u00e7\u00e3o no arquivo.<\/p>\n<p>Por fim, fa\u00e7a o comando<\/p>\n<pre><code>testparm\n<\/code><\/pre>\n<p>para verificar se h\u00e1 erros na configura\u00e7\u00e3o.<\/p>\n<p>Se tudo correu bem, ele deve te mostrar algo como<\/p>\n<pre><code>Load smb config files from \/etc\/samba\/smb.conf\n\nLoaded services file OK.\n\nServer role: ROLE_STANDALONE\n\nPress enter to see a dump of your service definitions\n\n<\/code><\/pre>\n<p>No texto acima, nem um erro ou aviso \u00e9 exibido.<\/p>\n<p>Se a sa\u00edda for diferente, voc\u00ea precisar\u00e1 refazer a configura\u00e7\u00e3o do samba. Os erros indicam onde o problema est\u00e1, ent\u00e3o \u00e9 s\u00f3 seguir as instru\u00e7\u00f5es.<\/p>\n<p>Por \u00faltimo, o sistema solicita que voc\u00ea pressione enter e exibe um resumo de todos os compartilhamentos configurados no arquivo.<\/p>\n<h3>criando um usu\u00e1rio samba<\/h3>\n<p>O samba utiliza sua pr\u00f3pria autentica\u00e7\u00e3o. Para criarmos um usu\u00e1rio e senha, fazemos o seguinte:<\/p>\n<p>Execute o comando<\/p>\n<pre><code>smbpasswd -a root\n<\/code><\/pre>\n<p>para adicionar o usu\u00e1rio root na lista de usu\u00e1rios autorizados a fazer logon via samba.<\/p>\n<p>O sistema solicitar\u00e1 a configura\u00e7\u00e3o de uma senha que, com quanto n\u00e3o seja a senha do usu\u00e1rio root, ser\u00e1 a senha utilizada para voc\u00ea se logar nos compartilhamentos. A decis\u00e3o de manter a mesma senha do root ou n\u00e3o \u00e9 sua.<\/p>\n<p>Se criar senhas diferentes, precisar\u00e1 lembrar das duas.<\/p>\n<p>Do ponto de vista de seguran\u00e7a, esta t\u00e3o pouco \u00e9 uma boa pr\u00e1tica. Entretanto, como j\u00e1 dissemos em artigos anteriores, estamos buscando a efici\u00eancia m\u00e1xima na integra\u00e7\u00e3o e esta m\u00e1quina deve apenas ser acessada via rede host only com a sua m\u00e1quina Windows.<\/p>\n<p>Se tiver curiosidade de ler o arquivo \/etc\/samba\/smb.conf, vai perceber que h\u00e1 uma linha chamada hosts allow que deixa apenas m\u00e1quinas da rede loopback e da rede host only acessarem os compartilhamentos.<\/p>\n<p>Mesmo assim, como j\u00e1 dito anteriormente &#8230; nosso cen\u00e1rio de uso \u00e9 o atual, e n\u00e3o nos responsabilizamos por eventuais falhas de seguran\u00e7a, principalmente se essas configura\u00e7\u00f5es forem utilizadas em outros contextos.<\/p>\n<h4>habilitando o servi\u00e7o<\/h4>\n<p>Fa\u00e7a o comando<\/p>\n<pre><code>systemctl enable smb nmb\n<\/code><\/pre>\n<h3>Por fim<\/h3>\n<p>Para terminar, fa\u00e7a o comando<\/p>\n<pre><code>shutdown -h now\n<\/code><\/pre>\n<p>Para desligar a m\u00e1quina virtual. Neste momento, ser\u00e1 aconselh\u00e1vel tamb\u00e9m reiniciar a m\u00e1quina Windows.<\/p>\n<h3>testando a conex\u00e3o<\/h3>\n<p>Ligue novamente a m\u00e1quina virtual via in\u00edcio headless e se livre da janela do VirtualBox.<\/p>\n<p>Abra o prompt de comandos e digite<\/p>\n<pre><code>ping [nome-da-m\u00e1quina-que-voc\u00ea-configurou-no-samba]\n<\/code><\/pre>\n<p>onde [nome-da-m\u00e1quina-que-voc\u00ea-configurou-no-samba] deve ser substitu\u00eddo pelo nome que voc\u00ea configurou no Samba.<\/p>\n<p>Aqui, dependendo da sua configura\u00e7\u00e3o de Windows, pode haver tr\u00eas possibilidades:<\/p>\n<ol>\n<li>O IP retornado corresponde ao IP da m\u00e1quina virtual que voc\u00ea configurou.<\/li>\n<li>Um IP, normalmente na fam\u00edlia 172.x.x.x \u00e9 retornado.<\/li>\n<li>Nenhum IP \u00e9 retornado.<\/li>\n<\/ol>\n<h4>Configura\u00e7\u00e3o de nome via hosts<\/h4>\n<p>Se sua resposta no teste acima foi a primeira (o mais comum), ent\u00e3o siga para o pr\u00f3ximo t\u00f3pico.<\/p>\n<p>Caso tenha sido uma das outras duas, suas permiss\u00f5es de rede n\u00e3o permitem que a m\u00e1quina se registre ou houve configura\u00e7\u00e3o errada no samba.<\/p>\n<ol>\n<li>Realize uma conex\u00e3o SSH usando o IP que voc\u00ea configurou em sua m\u00e1quina virtual para ter a certeza de que voc\u00ea pode se comunicar com ela.<\/li>\n<li>Confira se o nome net bios que voc\u00ea digitou em \/etc\/samba\/smb.conf est\u00e1 correto e que voc\u00ea est\u00e1 tentando utiliz\u00e1-lo corretamente no Windows.<\/li>\n<li>\n<p>Estando tudo certo e o nome da m\u00e1quina ainda n\u00e3o tendo sido reconhecido, voc\u00ea precisar\u00e1 acessar o prompt de comandos como administrador, algo que est\u00e1vamos tentando evitar pois nem sempre \u00e9 poss\u00edvel.<\/p>\n<ul>\n<li>3.1&#46; digite a tecla Windows e escreva cmd. N\u00e3o aperte enter.<\/li>\n<li>3.2&#46; Pressione a tecla de menu contextual, e selecione executar como administrador.<\/li>\n<li>3.3&#46; Por vezes, ser\u00e1 necess\u00e1rio ativar o modo de foco do NVDA com a tecla NVDA + espa\u00e7o para que o enter abra o prompt de comandos.<\/li>\n<li>3.4&#46; confirme o acesso (sua senha talvez seja solicitada).<\/li>\n<li>3.5&#46; Digite o comando nbtstat -RR e pressione enter.<\/li>\n<li>3.6&#46; Volte aos testes iniciais e veja se, agora, \u00e9 poss\u00edvel se conectar via SSH usando o nome da m\u00e1quina que voc\u00ea configurou no samba. Caso n\u00e3o seja, continue lendo.<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Abra o menu executar (tecla Windows + r) e digite %windir%\\system32\\drivers\\etc<\/p>\n<\/li>\n<li>Uma pasta se abrir\u00e1. Selecione o arquivo hosts (n\u00e3o tem extens\u00e3o) e copie para outro local. N\u00e3o feche esta pasta.<\/li>\n<li>\n<p>No local em que voc\u00ea colou o arquivo, abra-o e digite, em sua \u00faltima linha o seguinte.<\/p>\n<pre><code>[ip-da-maquina-virtual] [nome-da-maquina-virtual]\n<\/code><\/pre>\n<p>onde [ip-da-maquina-virtual] deve ser substitu\u00eddo pelo ip da m\u00e1quina virtual que voc\u00ea configurou e [nome-da-maquina-virtual] deve ser substitu\u00eddo pelo nome que voc\u00ea deu para a m\u00e1quina virtual.<\/p>\n<p>Neste caso, o IP da m\u00e1quina virtual precisa estar configurado de maneira est\u00e1tica.<\/p>\n<\/li>\n<li>\n<p>Salve o arquivo e o copie de volta para a pasta do qual voc\u00ea o retirou. Confirme a sua substitui\u00e7\u00e3o e confirme a opera\u00e7\u00e3o como administrador. Sua senha pode ser solicitada.<\/p>\n<\/li>\n<li>Retorne aos testes. Agora sim dever\u00e3o funcionar.<\/li>\n<li>Caso n\u00e3o funcionem (extremamente improv\u00e1vel) acostume-se a usar o IP, afinal ele est\u00e1 configurado de maneira est\u00e1tica e n\u00e3o ir\u00e1 mudar.<\/li>\n<\/ol>\n<p>Por fim, se conecte na m\u00e1quina virtual com o comando<\/p>\n<pre><code>ssh root@[nome-da-m\u00e1quina-que-voc\u00ea-configurou-no-samba] (ou IP se tudo o mais falhar)\n<\/code><\/pre>\n<p>onde [nome-da-m\u00e1quina-que-voc\u00ea-configurou-no-samba] deve ser substitu\u00eddo pelo nome que voc\u00ea configurou no Samba.<\/p>\n<p>Confirme a autenticidade do servidor com yes e parab\u00e9ns, IPs chatos para se referir a esta m\u00e1quina nunca mais.<\/p>\n<h3>Navegando via Windows<\/h3>\n<ol>\n<li>Pressione as teclas Windows + r.<\/li>\n<li>\n<p>Digite<\/p>\n<pre><code>\\\\[nome-da-m\u00e1quina-que-voc\u00ea-configurou-no-samba] (ou IP se o item acima falhou)\n<\/code><\/pre>\n<p>onde [nome-da-m\u00e1quina-que-voc\u00ea-configurou-no-samba] deve ser substitu\u00eddo pelo nome que voc\u00ea configurou no Samba. Pressione enter.<\/p>\n<\/li>\n<li>\n<p>Um di\u00e1logo de logon na rede vai aparecer, igual ao que aparece quando voc\u00ea tenta se conectar em uma m\u00e1quina Windows. Como nome de usu\u00e1rio escreva root e como senha use a senha que voc\u00ea configurou no samba.<\/p>\n<\/li>\n<li>A partir da\u00ed, voc\u00ea navegar\u00e1 pelos compartilhamentos e poder\u00e1 alterar, criar, apagar ou fazer o que mais desejar com pastas e arquivos.<\/li>\n<\/ol>\n<h2>Edi\u00e7\u00e3o de arquivos de texto<\/h2>\n<p>Falta, apenas, uma quest\u00e3o a ser abordada:<\/p>\n<p>Os finais de linha entre arquivos Windows e Linux t\u00eam diferen\u00e7as, ent\u00e3o n\u00e3o use o bloco de notas para editar arquivos via Windows.<\/p>\n<p>Editores como o notepad plus plus e o Visual Studio Code (n\u00e3o \u00e9 o Visual Studio) j\u00e1 s\u00e3o capazes de, automaticamente, detectar e respeitar os finais de linha utilizados em um arquivo e seguir a mesma regra.<\/p>\n<p>De fato, baixar esses dois editores e aprender a utiliz\u00e1-los far\u00e1 muito bem a qualquer desenvolvedor.<\/p>\n<p>IDE&#8217;s mais complexas como o Eclipse e o pr\u00f3prio Visual Studio tamb\u00e9m s\u00e3o capazes de fazer esta detec\u00e7\u00e3o.<\/p>\n<p>Se voc\u00ea come\u00e7ar um projeto do in\u00edcio e estiver rodando o c\u00f3digo na m\u00e1quina Linux, tamb\u00e9m h\u00e1 como configurar os finais de linha como padr\u00e3o Unix nos editores e ambientes de desenvolvimento mais comuns.<\/p>\n<h2>pacotes que eu utilizo<\/h2>\n<p>A seguir, mostro pacotes que eu utilizo. Voc\u00ea n\u00e3o precisar\u00e1 talvez de todos e, certamente, precisar\u00e1 de alguns que eu n\u00e3o preciso, mas vou deixar para registro tudo o que eu instalei (a configura\u00e7\u00e3o, se for necess\u00e1ria, deixo por sua conta).<\/p>\n<p>Para instalar, \u00e9 s\u00f3 digitar pacman -S e o nome do pacote<\/p>\n<ul>\n<li>apache<\/li>\n<li>bash-completion<\/li>\n<li>docker<\/li>\n<li>docker-compose<\/li>\n<li>dotnet-sdk<\/li>\n<li>elixir<\/li>\n<li>git<\/li>\n<li>go<\/li>\n<li>gradle<\/li>\n<li>jdk-openjdk<\/li>\n<li>mariadb<\/li>\n<li>maven<\/li>\n<li>mod_fcgid<\/li>\n<li>nodejs<\/li>\n<li>npm<\/li>\n<li>php<\/li>\n<li>php-cgi<\/li>\n<li>typescript (via yarn global add typescript)<\/li>\n<li>yarn<\/li>\n<\/ul>\n<h2>Agradecimentos<\/h2>\n<p>Como tudo o que fazemos, neste portal ou fora dele, agradecemos em primeiro lugar a Deus por ter permitido e aben\u00e7oado a escrita destas palavras que, esperamos, ir\u00e3o ajudar a muitas pessoas.<\/p>\n<p>Em segundo lugar, um agradecimento ao Thiago Seus do grupo WhatsApp dos cegos programadores e ao Jos\u00e9 Vilmar Est\u00e1cio de Souza da lista de cegos_programadores pelas sugest\u00f5es e apoio na revis\u00e3o e experimenta\u00e7\u00e3o com estes artigos.<\/p>\n<p>Agradecemos, tamb\u00e9m, a todas as pessoas que doam parte de seu tempo, muitas vezes uma grande parte dele, para produzir, escrever, testar, revisar, documentar e utilizar software livre, dos quais o Linux, o WordPress, o Audacity, o Speakup e o NVDA, entre outros, s\u00e3o exemplos.<\/p>\n<p>Gra\u00e7as a dedica\u00e7\u00e3o destes, todos n\u00f3s fazemos coisas que possivelmente n\u00e3o far\u00edamos ou, de contr\u00e1rio, as fazemos de formas muito mais c\u00f4modas do que far\u00edamos, se eles n\u00e3o tivessem gasto tempo e recursos de suas vidas para que n\u00f3s n\u00e3o precis\u00e1ssemos gastar tempo e recurso das nossas.<\/p>\n<p>Por fim, se voc\u00ea gostou destes artigos, os divulgue e contribua como puder, muitas vezes com pequenas quantias de tempo ou dinheiro, para um ou mais projetos de c\u00f3digo aberto.<\/p>\n<p>Sempre pesquise. Lembre-se que uma pergunta feita a um desenvolvedor cuja resposta pode ser encontrada facilmente tomar\u00e1 o pouco tempo que ele tem para continuar a desenvolver os projetos dos quais voc\u00ea se beneficia.<\/p>\n<p>Por \u00faltimo, agradecemos a todos os que leram esta s\u00e9rie, pois ela procura abrir possibilidades e viabilizar tarefas. Se voc\u00ea chegou aqui, existe uma grande chance de querer evoluir. Ent\u00e3o, continue ligado ou ligada porque, se Deus permitir, vem muito, muito mais em seguida.<\/p>\n<h2>considera\u00e7\u00f5es finais<\/h2>\n<p>A partir daqui, voc\u00ea tem uma m\u00e1quina Windows e uma m\u00e1quina Arch &#8211; uma das melhores e mais robustas distribui\u00e7\u00f5es do Linux &#8211; completamente integradas.<\/p>\n<p>O que far\u00e1 vai depender de suas necessidades, mas qualquer editor de c\u00f3digo (VS Code, Eclipse, Notepad++, etc) poder\u00e1 ser utilizado para, a partir do Windows, escrever c\u00f3digo diretamente na m\u00e1quina Linux.<\/p>\n<p>O SSH via cliente do Windows 10 te d\u00e1 o controle total da m\u00e1quina Linux, e pode ser utilizado em conjunto com complementos do NVDA tais como o explora\u00e7\u00e3o Virtual e outros, que te permitir\u00e3o ler sa\u00eddas, copiar trechos entre outros com total conveni\u00eancia.<\/p>\n<p>O Arch Linux \u00e9 extremamente bem documentado e existem pacotes pr\u00e9 configurados para praticamente qualquer coisa que voc\u00ea consiga imaginar.<\/p>\n<p>Pessoalmente, agrade\u00e7o a Deus por ter sido capaz de passar, nesta primeira s\u00e9rie, da melhor maneira que pude, tudo o que aprendi sobre a utiliza\u00e7\u00e3o da integra\u00e7\u00e3o entre os dois principais sistemas operacionais usados no mundo da forma mais eficiente poss\u00edvel para quem, como eu, tem defici\u00eancia visual.<\/p>\n<p>A confec\u00e7\u00e3o deste artigo envolveu testes, estudos e muitas, muitas horas de trabalho para garantir que a informa\u00e7\u00e3o chegasse de maneira mais transparente e direta poss\u00edvel a voc\u00eas.<\/p>\n<p>Ainda falaremos mais de programa\u00e7\u00e3o \u00e0s cegas em outros artigos.<\/p>\n<p>Fiquem ligados para mais novidades!<\/p>\n<h2>Artigos da s\u00e9rie<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.blindtec.com.br\/blog\/2020\/04\/programando-as-cegas-utilizando-windows-e-Linux-juntos-para-aumentar-sua-produtividade-parte-i\/\">parte I<\/a> &#8211; Introdu\u00e7\u00e3o<\/li>\n<li><a href=\"https:\/\/www.blindtec.com.br\/blog\/2020\/04\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-ii\/\">parte II<\/a> &#8211; Instalando a m\u00e1quina virtual<\/li>\n<li><a href=\"https:\/\/www.blindtec.com.br\/blog\/2020\/05\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iii\/\">Parte III<\/a> &#8211; Instalando o Arch Linux<\/li>\n<li>Parte IV &#8211; integrando Linux e Windows<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Salve, galera! Este \u00e9 o quarto e \u00faltimo artigo de nossa s\u00e9rie sobre como usar ambientes Windows e Linux juntos para uma maior produtividade em ambientes de desenvolvimento. parte I &#8211; Introdu\u00e7\u00e3o parte II &#8211; Instalando a m\u00e1quina virtual parte III &#8211; Instalando o Arch Linux Parte IV &#8211; integrando Linux e Windows No artigo anterior, instalamos o Arch Linux<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[162,5,16,264,269,4],"tags":[46,115,271,267,270,76,266,265,124],"class_list":["post-714","post","type-post","status-publish","format-standard","hentry","category-artigos","category-linux","category-nvda","category-programacao","category-speakup","category-windows","tag-acessibilidade","tag-configuracao","tag-integracao","tag-linux","tag-maquina-virtual","tag-produtividade","tag-programacao","tag-programando-as-cegas","tag-windows"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Programando \u00e0s cegas: utilizando Windows e Linux juntos para aumentar sua produtividade parte IV - BlindTec<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.blindtec.com.br\/blog\/2020\/05\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iv\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Programando \u00e0s cegas: utilizando Windows e Linux juntos para aumentar sua produtividade parte IV - BlindTec\" \/>\n<meta property=\"og:description\" content=\"Salve, galera! Este \u00e9 o quarto e \u00faltimo artigo de nossa s\u00e9rie sobre como usar ambientes Windows e Linux juntos para uma maior produtividade em ambientes de desenvolvimento. parte I &#8211; Introdu\u00e7\u00e3o parte II &#8211; Instalando a m\u00e1quina virtual parte III &#8211; Instalando o Arch Linux Parte IV &#8211; integrando Linux e Windows No artigo anterior, instalamos o Arch Linux\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.blindtec.com.br\/blog\/2020\/05\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iv\/\" \/>\n<meta property=\"og:site_name\" content=\"BlindTec\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/oficialBlindtec\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/marlon.brandaodesousa\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-15T11:50:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-05-15T11:59:11+00:00\" \/>\n<meta name=\"author\" content=\"Marlon Brand\u00e3o de Sousa\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@twitter\" \/>\n<meta name=\"twitter:site\" content=\"@oficialBlindtec\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marlon Brand\u00e3o de Sousa\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"26 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.blindtec.com.br\/blog\/2020\/05\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iv\/\",\"url\":\"https:\/\/www.blindtec.com.br\/blog\/2020\/05\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iv\/\",\"name\":\"Programando \u00e0s cegas: utilizando Windows e Linux juntos para aumentar sua produtividade parte IV - BlindTec\",\"isPartOf\":{\"@id\":\"https:\/\/www.blindtec.com.br\/blog\/en\/#website\"},\"datePublished\":\"2020-05-15T11:50:02+00:00\",\"dateModified\":\"2020-05-15T11:59:11+00:00\",\"author\":{\"@id\":\"https:\/\/www.blindtec.com.br\/blog\/en\/#\/schema\/person\/cec5894d9a4927ea9ef65745353511bf\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.blindtec.com.br\/blog\/2020\/05\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iv\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.blindtec.com.br\/blog\/2020\/05\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iv\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.blindtec.com.br\/blog\/2020\/05\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iv\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/www.blindtec.com.br\/blog\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Programando \u00e0s cegas: utilizando Windows e Linux juntos para aumentar sua produtividade parte IV\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.blindtec.com.br\/blog\/en\/#website\",\"url\":\"https:\/\/www.blindtec.com.br\/blog\/en\/\",\"name\":\"BlindTec\",\"description\":\"A tecnologia assistiva ao alcance de todos\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.blindtec.com.br\/blog\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.blindtec.com.br\/blog\/en\/#\/schema\/person\/cec5894d9a4927ea9ef65745353511bf\",\"name\":\"Marlon Brand\u00e3o de Sousa\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.blindtec.com.br\/blog\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/83010b6ef5076436b9ce0bedaf8038d9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/83010b6ef5076436b9ce0bedaf8038d9?s=96&d=mm&r=g\",\"caption\":\"Marlon Brand\u00e3o de Sousa\"},\"description\":\"Ol\u00e1, Meu Nome \u00e9 Marlon Sousa e sou fundador e editor chefe do portal BlindTec. Sou formado em Processamento de dados pela Escola T\u00e9cnica Estadual Lauro Gomes em S\u00e3o Bernardo do campo SP, em Gest\u00e3o de Tecnologia da Informa\u00e7\u00e3o pela Unisul de Santa Catarina e atualmente curso MBA em desenvolvimento de aplicativos m\u00f3veis e games na FIAP, em S\u00e3o Paulo. No mercado de tecnologia desde 2003, atuei em empresas de grande porte nos ramos de comunica\u00e7\u00e3o e consultoria e, atualmente, trabalho em uma empresa no ramo financeiro. Como experi\u00eancia profissional, durante minha carreira exerci fun\u00e7\u00f5es de desenvolvimento de software, quality assurance e controle de processos e an\u00e1lise de sistemas. Sou um entusiasta do trabalho em equipe e acredito que um + um, quando existe un objetivo em comum, \u00e9 sempre maior do que dois! Na vida pessoal, gosto de boa companhia, bons papos, bons amigos e boa arte. Ou\u00e7o uma vasta gama de estilos musicais, sou um leitor inveterado e gosto de conhecer novos lugares, novos modos de pensar, novas pessoas. Al\u00e9m disso, sou apaixonado por tecnologia como um todo e, dentro desse universo, em especial por uma \u00e1rea chamada tecnologia assistiva, cuja principal fun\u00e7\u00e3o \u00e9 empoderar e ajudar pessoas. E isso, certamente, \u00e9 um grande compromisso e uma miss\u00e3o para mim. Se voc\u00ea n\u00e3o conhece o conceito de tecnologia assistiva e como isso \u00e9 importante, clique aqui e veja a defini\u00e7\u00e3o da BlindTec sobre o assunto.\",\"sameAs\":[\"https:\/\/www.blindtec.com.br\",\"https:\/\/www.facebook.com\/marlon.brandaodesousa\",\"https:\/\/x.com\/twitter\"],\"url\":\"https:\/\/www.blindtec.com.br\/blog\/author\/marlonsousa\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Programando \u00e0s cegas: utilizando Windows e Linux juntos para aumentar sua produtividade parte IV - BlindTec","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.blindtec.com.br\/blog\/2020\/05\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iv\/","og_locale":"pt_BR","og_type":"article","og_title":"Programando \u00e0s cegas: utilizando Windows e Linux juntos para aumentar sua produtividade parte IV - BlindTec","og_description":"Salve, galera! Este \u00e9 o quarto e \u00faltimo artigo de nossa s\u00e9rie sobre como usar ambientes Windows e Linux juntos para uma maior produtividade em ambientes de desenvolvimento. parte I &#8211; Introdu\u00e7\u00e3o parte II &#8211; Instalando a m\u00e1quina virtual parte III &#8211; Instalando o Arch Linux Parte IV &#8211; integrando Linux e Windows No artigo anterior, instalamos o Arch Linux","og_url":"https:\/\/www.blindtec.com.br\/blog\/2020\/05\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iv\/","og_site_name":"BlindTec","article_publisher":"https:\/\/www.facebook.com\/oficialBlindtec","article_author":"https:\/\/www.facebook.com\/marlon.brandaodesousa","article_published_time":"2020-05-15T11:50:02+00:00","article_modified_time":"2020-05-15T11:59:11+00:00","author":"Marlon Brand\u00e3o de Sousa","twitter_card":"summary_large_image","twitter_creator":"@twitter","twitter_site":"@oficialBlindtec","twitter_misc":{"Escrito por":"Marlon Brand\u00e3o de Sousa","Est. tempo de leitura":"26 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.blindtec.com.br\/blog\/2020\/05\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iv\/","url":"https:\/\/www.blindtec.com.br\/blog\/2020\/05\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iv\/","name":"Programando \u00e0s cegas: utilizando Windows e Linux juntos para aumentar sua produtividade parte IV - BlindTec","isPartOf":{"@id":"https:\/\/www.blindtec.com.br\/blog\/en\/#website"},"datePublished":"2020-05-15T11:50:02+00:00","dateModified":"2020-05-15T11:59:11+00:00","author":{"@id":"https:\/\/www.blindtec.com.br\/blog\/en\/#\/schema\/person\/cec5894d9a4927ea9ef65745353511bf"},"breadcrumb":{"@id":"https:\/\/www.blindtec.com.br\/blog\/2020\/05\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iv\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.blindtec.com.br\/blog\/2020\/05\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iv\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.blindtec.com.br\/blog\/2020\/05\/programando-as-cegas-utilizando-windows-e-linux-juntos-para-aumentar-sua-produtividade-parte-iv\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.blindtec.com.br\/blog\/en\/"},{"@type":"ListItem","position":2,"name":"Programando \u00e0s cegas: utilizando Windows e Linux juntos para aumentar sua produtividade parte IV"}]},{"@type":"WebSite","@id":"https:\/\/www.blindtec.com.br\/blog\/en\/#website","url":"https:\/\/www.blindtec.com.br\/blog\/en\/","name":"BlindTec","description":"A tecnologia assistiva ao alcance de todos","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.blindtec.com.br\/blog\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/www.blindtec.com.br\/blog\/en\/#\/schema\/person\/cec5894d9a4927ea9ef65745353511bf","name":"Marlon Brand\u00e3o de Sousa","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.blindtec.com.br\/blog\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/83010b6ef5076436b9ce0bedaf8038d9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/83010b6ef5076436b9ce0bedaf8038d9?s=96&d=mm&r=g","caption":"Marlon Brand\u00e3o de Sousa"},"description":"Ol\u00e1, Meu Nome \u00e9 Marlon Sousa e sou fundador e editor chefe do portal BlindTec. Sou formado em Processamento de dados pela Escola T\u00e9cnica Estadual Lauro Gomes em S\u00e3o Bernardo do campo SP, em Gest\u00e3o de Tecnologia da Informa\u00e7\u00e3o pela Unisul de Santa Catarina e atualmente curso MBA em desenvolvimento de aplicativos m\u00f3veis e games na FIAP, em S\u00e3o Paulo. No mercado de tecnologia desde 2003, atuei em empresas de grande porte nos ramos de comunica\u00e7\u00e3o e consultoria e, atualmente, trabalho em uma empresa no ramo financeiro. Como experi\u00eancia profissional, durante minha carreira exerci fun\u00e7\u00f5es de desenvolvimento de software, quality assurance e controle de processos e an\u00e1lise de sistemas. Sou um entusiasta do trabalho em equipe e acredito que um + um, quando existe un objetivo em comum, \u00e9 sempre maior do que dois! Na vida pessoal, gosto de boa companhia, bons papos, bons amigos e boa arte. Ou\u00e7o uma vasta gama de estilos musicais, sou um leitor inveterado e gosto de conhecer novos lugares, novos modos de pensar, novas pessoas. Al\u00e9m disso, sou apaixonado por tecnologia como um todo e, dentro desse universo, em especial por uma \u00e1rea chamada tecnologia assistiva, cuja principal fun\u00e7\u00e3o \u00e9 empoderar e ajudar pessoas. E isso, certamente, \u00e9 um grande compromisso e uma miss\u00e3o para mim. Se voc\u00ea n\u00e3o conhece o conceito de tecnologia assistiva e como isso \u00e9 importante, clique aqui e veja a defini\u00e7\u00e3o da BlindTec sobre o assunto.","sameAs":["https:\/\/www.blindtec.com.br","https:\/\/www.facebook.com\/marlon.brandaodesousa","https:\/\/x.com\/twitter"],"url":"https:\/\/www.blindtec.com.br\/blog\/author\/marlonsousa\/"}]}},"_links":{"self":[{"href":"https:\/\/www.blindtec.com.br\/blog\/wp-json\/wp\/v2\/posts\/714"}],"collection":[{"href":"https:\/\/www.blindtec.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blindtec.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blindtec.com.br\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blindtec.com.br\/blog\/wp-json\/wp\/v2\/comments?post=714"}],"version-history":[{"count":4,"href":"https:\/\/www.blindtec.com.br\/blog\/wp-json\/wp\/v2\/posts\/714\/revisions"}],"predecessor-version":[{"id":719,"href":"https:\/\/www.blindtec.com.br\/blog\/wp-json\/wp\/v2\/posts\/714\/revisions\/719"}],"wp:attachment":[{"href":"https:\/\/www.blindtec.com.br\/blog\/wp-json\/wp\/v2\/media?parent=714"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blindtec.com.br\/blog\/wp-json\/wp\/v2\/categories?post=714"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blindtec.com.br\/blog\/wp-json\/wp\/v2\/tags?post=714"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}