New Dev into Ubuntu
Tags: ubuntu, docker, beginners, cheatsheet
Published: 2021-12-07 16:55:18

> A alguns meses decidi migrar e tornar-me um Dev em Linux. Analisei várias opções e a que me pareceu mais evidente para assumir como distro oficial foi a Ubuntu.

> Mas e quanto aos programas que eu utilizava? Tem versões para Ubuntu, ou tem alternativas equivalentes? Pensando nisso eu montei o passo-a-passo dos principais programas que utilizo como usuário Linux e como instalá-los, praticamente um cheatsheet.

> Espero que seja útil para todos que, como eu, estão em processo de migração.

<hr/>

> A few months ago I decided to migrate and become a Linux Dev. I analyzed several options and the one that seemed more evident to assume as an official distro was Ubuntu.

> But what about the programs that I use? Do they have versions for Ubuntu, or do they have equivalent alternatives? With that in mind, I created the step-by-step the main programs that I use as a Linux user and how to install them, like a cheatsheet.

> I hope it will be useful for everyone who, like me, is in the process of migration.

<hr/>

- Google Chrome
    
    ```bash
    wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
    sudo apt install ./google-chrome-stable_current_amd64.deb
    ```
    
- Curl
    
    ```bash
    sudo apt install curl
    ```
    
- Imwheel

    - Programa que altera a configuração das linhas saltadas ao rodar o scroll do mouse.
    
    ```bash
    sudo apt-get install imwheel
    
    # Abra o arquivo
    gedit ~/.imwheelrc
    
    # Cole as seguintes linhas e salve
    ".*"
    None,      Up,   Button4, 3
    None,      Down, Button5, 3
    Control_L, Up,   Control_L|Button4
    Control_L, Down, Control_L|Button5
    Shift_L,   Up,   Shift_L|Button4
    Shift_L,   Down, Shift_L|Button5
    
    # Para executar, no terminal
    $ imwheel
    
    # Para encerrar
    $ kill imwheel
    ```
    
- Firacode

    - Fonte que utilizo para desenvolvimento.
    
    ```bash
    # !/usr/bin/env bash
    
    fonts_dir="${HOME}/.local/share/fonts"
    if [ ! -d "${fonts_dir}" ]; then
        echo "mkdir -p $fonts_dir"
        mkdir -p "${fonts_dir}"
    else
        echo "Found fonts dir $fonts_dir"
    fi
    
    version=5.2
    zip=Fira_Code_v${version}.zip
    curl --fail --location --show-error https://github.com/tonsky/FiraCode/releases/download/${version}/${zip} --output ${zip}
    unzip -o -q -d ${fonts_dir} ${zip}
    rm ${zip}
    
    echo "fc-cache -f"
    fc-cache -f
    ```
    
- Git
    
    ```bash
    # Intalação do GIT
    sudo apt install git-all

    # ---
    # Gerando chave ssh / generate key ssh
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    
    # exibindo ssh file
    ls -al ~/.ssh
    
    # copy ssh key created
    cat ~/.ssh/id_rsa.pub
    ```
    
- zsh

    - Terminal
    
    ```bash
    sudo apt-get update
    
    sudo apt-get install zsh
    
    # oh-my-zsh
    # Via curl
    sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
    # ou / or
    # Via wget
    sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
    ```
    
- Gogh

    - Configuração de cores e temas dos terminal gnome
    
    ```bash
    # Instalação
    # Para instalar e utilizar o Gogh é muito simples. 
    # Primeiramente certifique-se de que possui as dependências, 
    # exemplo para sistemas baseados em APT:
    sudo apt install dconf-cli uuid-runtime wget
    
    # Após isso é só escolher um dos comandos abaixo, como wget ou curl:
    bash -c  "$(wget -qO- https://git.io/vQgMr)"
    ```
    
- Snap

    - Gerenciador de instalação de pacotes.
    
    ```bash
    sudo apt update
    sudo apt install snapd
    ```
    
- Free Download Manager
    
    ```bash
    # https://www.freedownloadmanager.org/pt/
    
    wget https://dn3.freedownloadmanager.org/6/latest/freedownloadmanager.deb
    sudo dpkg -i freedownloadmanager.deb
    sudo apt install -f
    ```
    
- FreeFileSync

    - Programa que sincroniza dois diretórios.
    
    ```jsx
    wget https://freefilesync.org/download/FreeFileSync_11.14_Linux.tar.gz | bash
    ```
    
- Docker

    - Container no Ubuntu
    
    ```bash
    # Fonte
    # https://docs.docker.com/engine/install/ubuntu/
    
    # Remover versões antigas
    sudo apt-get remove docker docker-engine docker.io containerd runc
    
    # Atualizar 
    sudo apt-get update
    
    # Instalar pacotes necessários
    sudo apt-get install \
        apt-transport-https \
        ca-certificates \
        curl \
        gnupg \
        lsb-release
    
    # Adicionar o repositório
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
    # Definir a versão estável do repositório
    echo \
      "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    # Instalar Docker Engine
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    
    # Testando instalação
    sudo docker run hello-world
    
    # Rodando o docker sem precisar do "sudo" na frente / Docker with non-root user
    # https://docs.docker.com/engine/install/linux-postinstall/
    
    # 1. Create the docker group.
    sudo groupadd docker
    # 2. Add your user to the docker group.
    sudo usermod -aG docker $USER
    # 3. Log out and log back in so that your group membership is re-evaluated.
    #    If testing on a virtual machine, it may be necessary to restart the virtual machine for changes to take effect.
    #    On a desktop Linux environment such as X Windows, log out of your session completely and then log back in.
    #    On Linux, you can also run the following command to activate the changes to groups:
    newgrp docker
    # 4. Testing
    docker run hello-world
    ```
    
- Docker-compose
    
    ```bash
    # https://docs.docker.com/compose/install/
    
    # Run this command to download the current stable release of Docker Compose:
    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    
    # Apply executable permissions to the binary:
    sudo chmod +x /usr/local/bin/docker-compose
    
    ```
    
- [espanso](https://espanso.org/)

    - Programa que automatiza comandos de texto.
    
    ```bash
    # snap
    sudo apt-get update
    sudo apt-get install xclip
    sudo snap install espanso --classic
    espanso start
    
    # debian
    wget https://github.com/federico-terzi/espanso/releases/latest/download/espanso-debian-amd64.deb
    sudo apt install ./espanso-debian-amd64.deb
    espanso start
    ```
    
- Brave
    
    ```bash
    sudo apt install apt-transport-https curl
    
    sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
    
    echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main"|sudo tee /etc/apt/sources.list.d/brave-browser-release.list
    
    sudo apt update
    
    sudo apt install brave-browser
    ```
    
- Notepad++
    
    ```bash
    sudo snap install notepadqq
    ```
    
- gparted

    - Gerenciador de partições / partition manager
    
    ```bash
    sudo apt-get update
    sudo apt-get install gparted && sudo gparted
    ```
    
- swap

    - Como alterar a memória swap / changing swap memory
    
    ```bash
    # Turn swap off
    # This moves stuff in swap to the main memory and might take several minutes
    sudo swapoff -a
    
    # Create an empty swapfile
    # Note that "1G" is basically just the unit and count is an integer.
    # Together, they define the size. In this case 8GB.
    sudo dd if=/dev/zero of=/swapfile bs=12G count=8
    # Set the correct permissions
    sudo chmod 0600 /swapfile
    
    # Set up a Linux swap area
    sudo mkswap /swapfile
    # Turn the swap on
    sudo swapon /swapfile
    
    grep Swap /proc/meminfo
    
    ```
    
- Node
    
    ```bash
    # fonte: https://github.com/nodesource/distributions/blob/master/README.md
    
    # Using Ubuntu
    curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -

    sudo apt-get install -y nodejs
    
    # npm 
    sudo apt-get install -y build-essential
    ```
    
- NVM
    
    ```bash
    wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
    
    export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
    
    nvm list-remote
    nvm install Fermium 
    nvm install [version]
    nvm list

    # para ativar a versão / to activate version
    nvm use [version]
    ```
    
- Teams
    
    ```bash
    # https://www.edivaldobrito.com.br/como-instalar-o-microsoft-teams-no-linux-ubuntu-fedora-opensuse-e-derivados/
    
    uname -m
    wget "https://teams.microsoft.com/downloads/desktopurl?env=production&plat=linux&arch=x64&download=true&linuxArchiveType=deb" -O teams.deb | bash
    sudo dpkg -i teams.deb
    
    sudo apt-get install -f 
    # ou
    sudo apt install ./teams.deb
    
    # remover
    sudo apt-get remove teams*
    ```
    
- Calibre

    - Gerenciador de ebooks
    
    ```bash
    curl -L https://calibre-ebook.com/dist/src | tar xvJ 
    cd calibre* && sudo python3 setup.py install
    ```
    
- Wallch

    - Alterna os papéis de parede automaticamente
    
    ```bash
    # https://www.edivaldobrito.com.br/papel-de-parede-automatico-wallch/
    
    # Adiciona o repositório
    # sudo add-apt-repository ppa:wallch/wallch-daily
    
    # Atualiza a lista de repositório no Linux
    sudo apt-get update
    
    # Instala o Wallch
    sudo apt-get install wallch
    ```
    
- Slim PDF
    
    ```bash
    # Versão do Sistema
    uname -m
    
    # Baixar o arquivo .deb
    wget https://cdn.investintech.com/download/InstallSlimPDFReader.deb -O slim.deb
    
    # Instalar o programa
    sudo dpkg -i slim.deb
    
    sudo apt-get install -f
    
    # Remover o programa
    sudo apt-get remove slim*
    ```
    
- Open Connect (VPN)

    - Programa para VPN
    
    ```bash
    # Instalar pacotes do Open Connect
    sudo apt-get install openconnect network-manager-openconnect network-manager-openconnect-gnome
    
    # Estabelecer conexão com VPN
    sudo openconnect -u user --passwd-on-stdin vpn.example.com
    ```
    
- Flameshot

    - Programa de printscreen
    
    ```jsx
    sudo apt install flameshot
    ```
    
- NoiseTorch

    - Supressor de ruídos para Linux
    
    ```bash
    # https://github.com/lawl/NoiseTorch
    
    wget https://github.com/lawl/NoiseTorch/releases/download/0.11.4/NoiseTorch_x64.tgz | bash
    
    # Unpack the tgz file, into your home directory.
    tar -C $HOME -xzf NoiseTorch_x64.tgz
    
    # This will unpack the application, icon and desktop entry to the correct place.
    # Depending on your desktop environment you may need to wait for it to rescan for applications, or tell it to do a refresh now.
    
    # With gnome this can be done with:
    gtk-update-icon-cache
    
    # You now have a noisetorch binary and desktop entry on your system.
    # Give it the required permissions with setcap:
    sudo setcap 'CAP_SYS_RESOURCE=+ep' ~/.local/bin/noisetorch
    
    # If noisetorch doesn't start after installation, you may also have to make sure 
    # that ~/.local/bin is in your PATH. On most distributions e.g. Ubuntu, 
    # this should be the case by default. If it's not, make sure to append
    if [ -d "$HOME/.local/bin" ] ; then
        PATH="$HOME/.local/bin:$PATH"
    fi
    
    # to your ~/.profile. If you do already have that, you may have to log in and 
    # out for it to actually apply if this is the first time you're using ~/.local/bin.
    
    # ----------------
    # Removendo Noise Torch
    rm ~/.local/bin/noisetorch
    rm ~/.local/share/applications/noisetorch.desktop
    rm ~/.local/share/icons/hicolor/256x256/apps/noisetorch.png
    ```
    
- Java
    
    ```bash
    sudo apt install default-jdk
    
    java -version
    ```
    
- [VMWare](https://www.vmware.com/go/getplayer-linux)

    - Programa de Máquinas Virtuais
    
    ```bash
    # Download do arquivo
    
    sudo apt update
    sudo apt-get install gcc build-essencial
    sudo chmod u+x arquivo.bundle
    sudo ./arquivo.bundle
    ```
    
- Snap Store
    
    ```jsx
    sudo snap install snap-store
    ```

- Snap

    - Instalações de programas do snap em lote
    
    ```jsx
    sudo snap install vlc discord insomnia mailspring notion-snap telegram-desktop beekeeper-studio colorpicker-app obs-studio teams-insiders
    ```
    
- Snap Classic
    
    ```jsx
    sudo snap install code --classic
    sudo snap install slack --classic
    sudo snap install go --classic
    sudo snap install flutter --classic
    ```
    
- Discord
    
    ```jsx
    sudo snap install discord
    ```
    
- Insomnia
    
    ```bash
    sudo snap install insomnia
    ```
    
- Mailspring
    
    ```bash
    sudo snap install mailspring
    ```
    
- Notion
    
    ```bash
    sudo snap install notion-snap
    ```
    
- Telegram
    
    ```jsx
    sudo snap install telegram-desktop
    ```
    
- Slack
    
    ```jsx
    sudo snap install slack --classic
    ```
    
- xMind
    
    ```bash
    sudo snap install xmind
    ```
    
- Evince (PDF)
    
    ```bash
    sudo snap install evince
    ```