Google Colab - invocando comandos do sistema

O Jupyter inclui atalhos para muitas operações comuns do sistema. A célula do código Colab suporta este recurso.

Comandos Simples

Insira o código a seguir na célula Código que usa o eco de comando do sistema.

message = 'A Great Tutorial on Colab by Tutorialspoint!'
greeting = !echo -e '$message\n$message'
greeting

Agora, se você executar a célula, verá a seguinte saída -

['A Great Tutorial on Colab by Tutorialspoint!', 'A Great Tutorial on Colab by Tutorialspoint!']

Obtendo Dados Remotos

Vejamos outro exemplo que carrega o conjunto de dados de um servidor remoto. Digite o seguinte comando em sua célula de código -

!wget http://mlr.cs.umass.edu/ml/machine-learning-databases/adult/adult.data -P "/content/drive/My Drive/app"

Se você executar o código, verá a seguinte saída -

--2019-06-20 10:09:53-- http://mlr.cs.umass.edu/ml/machine-learning-databases/adult/adult.data
Resolving mlr.cs.umass.edu (mlr.cs.umass.edu)... 128.119.246.96
Connecting to mlr.cs.umass.edu (mlr.cs.umass.edu)|128.119.246.96|:80... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: 3974305 (3.8M) [text/plain] 
Saving to: ‘/content/drive/My Drive/app/adult.data.1’

adult.data.1 100%[===================>] 3.79M 1.74MB/s in 2.2s

2019-06-20 10:09:56 (1.74 MB/s) - ‘/content/drive/My Drive/app/adult.data.1’ saved [3974305/3974305]

Como diz a mensagem, o adult.data.1arquivo agora está adicionado à sua unidade. Você pode verificar isso examinando o conteúdo da pasta de sua unidade. Como alternativa, digite o seguinte código em uma nova célula de código -

import pandas as pd
data = pd.read_csv("/content/drive/My Drive/app/adult.data.1")
data.head(5)

Execute o código agora e você verá a seguinte saída -

Da mesma forma, a maioria dos comandos do sistema podem ser chamados em sua célula de código, acrescentando um ponto de exclamação (!) Ao comando. Vejamos outro exemplo antes de fornecer a lista completa de comandos que você pode invocar.

Clonando Repositório Git

Você pode clonar todo o repositório GitHub no Colab usando o gitcomando. Por exemplo, para clonar o tutorial keras, digite o seguinte comando na célula Código -

!git clone https://github.com/wxs/keras-mnist-tutorial.git

Após uma execução bem-sucedida do comando, você veria a seguinte saída -

Cloning into 'keras-mnist-tutorial'...
remote: Enumerating objects: 26, done.
remote: Total 26 (delta 0), reused 0 (delta 0), pack-reused 26
Unpacking objects: 100% (26/26), done.

Depois que o repo for clonado, localize um projeto Jupyter (por exemplo, MINST em keras.ipyab) nele, clique com o botão direito no nome do arquivo e selecione Open With / Colaboratory opção de menu para abrir o projeto no Colab.

Aliases de sistema

Para obter uma lista de atalhos para operações comuns, execute o seguinte comando -

!ls /bin

Você verá a lista na janela de saída conforme mostrado abaixo -

bash*             journalctl*       sync*
bunzip2*          kill*             systemctl*
bzcat*            kmod*             systemd@
bzcmp@            less*             systemd-ask-password*
bzdiff*           lessecho*         systemd-escape*
bzegrep@          lessfile@         systemd-hwdb*
bzexe*            lesskey*          systemd-inhibit*
bzfgrep@          lesspipe*         systemd-machine-id-setup*
bzgrep*           ln*               systemd-notify*
bzip2*            login*            systemd-sysusers*
bzip2recover*     loginctl*         systemd-tmpfiles*
bzless@           ls*               systemd-tty-ask-password-agent*
bzmore*           lsblk*            tar*
cat*              lsmod@            tempfile*
chgrp*            mkdir*            touch*
chmod*            mknod*            true*
chown*            mktemp*           udevadm*
cp*               more*             ulockmgr_server*
dash*             mount*            umount*
date*             mountpoint*       uname*
dd*               mv*               uncompress*
df*               networkctl*       vdir*
dir*              nisdomainname@    wdctl*
dmesg*            pidof@            which*
dnsdomainname@    ps*               ypdomainname@
domainname@       pwd*              zcat*
echo*             rbash@            zcmp*
egrep*            readlink*         zdiff*
false*            rm*               zegrep*
fgrep*            rmdir*            zfgrep*
findmnt*          run-parts*        zforce*
fusermount*       sed*              zgrep*
grep*             sh@               zless*
gunzip*           sh.distrib@       zmore*
gzexe*            sleep*            znew*
gzip*             stty*
hostname*         su*

Execute qualquer um desses comandos como fizemos para echo e wget. No próximo capítulo, veremos como executar o código Python criado anteriormente.