Last modified on 01 Oct 2021.

Quick tips / references for using Linux / Ubuntu.

πŸ‘‰ Fresh installation Ubuntu note.
πŸ‘‰ Bash

General

πŸ”… Run MacOS apps on Linux, use Darling.

πŸ”… Run Android apps on Linux, use Anbox.

πŸ”… Find in linux with command lines β‡Ύ link

πŸ”… Cannot move files to the trash/wrong owner β‡Ύ link

πŸ”… Gnome screenshot β‡Ύ link

πŸ”… Windows shrink drive in windows β‡Ύ link (partition, resize disk drive, hard disk)

πŸ”… Type Vietnamese in SublimeText, install vn ime (exactly like that). Press F2 for using.

πŸ”… Look and kill an app process:

ps ax | grep teamviewer # check the id
kill -9 <pid> # kill some process

πŸ”… Install file .bin, .run

chmod +x file-name.run
./file-name.run

πŸ”… Make a script executable: chmod a+x script_file

πŸ”… Unzip a file,

sudo apt-get install unzip
unzip <file>
unzip <file> -d <destination>

πŸ”… Terminal multi windows:

sudo apt-get install terminator

πŸ”… Add bookmark for evince (default pdf reader)

  • F9: hide/show sidebar
  • Menu on the top right > Add bookmarks
  • Click on bookmark and rename it
  • Ctrl + Shift + S to save (instead of Ctrl + S)

πŸ”… Remove PPA from ubuntu by terminal. For example, The repository β€˜http://ppa.launchpad.net/b-eltzner/qpdfview/ubuntu artful Release’ does not have a Release file. Remove the file b-eltzner-qpdfview-ubuntu from directory /etc/apt/sources.list.d

sudo rm /etc/apt/sources.list.d/<file>

Or using below command lines

# install
sudo add-apt-repository ppa:name

# remove
sudo add-apt-repository --remove ppa:name

πŸ”… Get ip address: ifconfig

Settings

πŸ”… Make Monday as the start of the week:

sudo -H gedit /usr/share/i18n/locales/en_GB
# change to 1
first_weekday 1
# save and restart the system

πŸ”… Add / Remove / Manage app icon in launcher: sudo apt-get install alacarte.

πŸ”… Change ubuntu logo in settings: replace

/usr/share/icons/hicolor/256x256/apps/ubuntu-logo-icon.png

πŸ”… Turn off animation open and minimize windows on ubuntu 17.10 and later (gnome desktop): Gnome Tweak Tools > Apperance > Animations OFF

πŸ”… Choose between β€œlightdm” and β€œgdm3” (ref):

sudo apt install lightdm
dpkg-reconfigure lightdm
# current config
lightdm --show-config

πŸ”… Save / Load dconf ([ref] ): ~/.config/dconf/user

# save guake configs to a file
dconf dump / > dconf-settings.ini

# load
dconf load / < dconf-settings.ini
# or
cat dconf-settings.ini | dconf load /

πŸ”… Save / load custom keyboard shortcuts (ref)

# keybindings
dconf dump /org/gnome/desktop/wm/keybindings/ > keybindings.dconf
# media keys
dconf dump /org/gnome/settings-daemon/plugins/media-keys/ > media-keys.dconf

# load
dconf load /org/gnome/desktop/wm/keybindings/ < keybindings.dconf
dconf load /org/gnome/settings-daemon/plugins/media-keys/ < keybindings.dconf

Applications

πŸ”… Completely remove LibreOffice,

# zsh uses \*
sudo apt-get remove --purge libreoffice*
sudo apt-get clean
sudo apt-get autoremove

πŸ”… Remove snap store

sudo apt autoremove --purge snapd

πŸ”… Uninstall snap applications

sudo snap remove <app_name>

πŸ”… Convert office’s files to pdf

# install first
sudo apt install libreoffice
# pptx -> pdf
soffice --headless --convert-to pdf prezentacja.pptx

Nautilus / Files management

πŸ”… Force Unity Dash to index all files on Home

sudo updatedb

πŸ”… Sync one folder to another (more info)

# A -> B/A
rsync -avu --delete "/home/user/A" "/home/user/B"

# A/* -> B/A
rsync -avu --delete "/home/user/A/" "/home/user/B/A"

# A, C -> B/A, B/C
rsync -avu --delete "/home/user/A" "/home/user/C" "/home/user/B"
  • -a Do the sync preserving all filesystem attributes
  • -v run verbosely
  • -u only copy files with a newer modification time (or size difference if the times are equal)
  • --delete delete the files in target folder that do not exist in the source
# exclude
rsync -a --exclude 'dir1' src_directory/ dst_directory/
rsync -a --exclude={'file1.txt','dir1/*','dir2'} src_directory/ dst_directory/

πŸ”… Make a shortcut link to a folder/file in linux terminal β‡Ύ link

πŸ”… Shortcut to a folder in linux β‡Ύ link

πŸ”… Thumbnail nautilus: go to setting, set and apply this line

sudo chown -R yourusername:yourusername ~/.cache/thumbnails

πŸ”… Shorten directory in terminal

  • Temporarily, just enter PS1='\u:\W\$ ' en press enter.
  • Permanently, open sudo gedit ~/.bashrc and find
    if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
    else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    fi
    
  • Remove @\h and replace \w by \W so that it becomes,
    if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '
    else
    PS1='${debian_chroot:+($debian_chroot)}\u:\W\$ '
    fi
    
  • Save, exit, close terminal and start another to see the result.

πŸ”… Right click nautilus β€œOpen as Administrator”:

sudo apt-get install nautilus-admin
nautilus -q # restart nautilus

πŸ”… Mount iso file on linux

sudo mount -o loop <image>.iso /mnt/<folder>

If you mount another iso file to the same , it will replace the current one.

πŸ”… Extract a iso file: first, mount it like in 37 to folder named iso then copy all the contents in iso to some folder you want.

cp -r /mnt/iso <directory>

πŸ”… Sync files with mega right on terminal

  • Install megatools: sudo apt-get install megatools
  • Using megatools, cf the main website.
  • Create a condig file which stores your login information (be careful, everyone can see your pass)
    sudo apt-get install vim # in case that you don't have vim on your system
    vim .megarc # create a file named .megarc
    
  • vim opens and type
    [Login]
    Username = your@email
    Password = yourpassword
    

    If you have back slash in your password, you must escape it with another backslash

  • Quit vim and save the file by pressing ESC and then :wq!
  • Upload a file: megaput --path /Root/<folder> file
  • See the list of file on remote: megals
  • Upload a folder: megacopy --local <folder> --remote <folder>
  • Download from link: megadl <mega-link>
  • Download a single file: megaget <file>
    megaget /Root/Apps/matlab17b/R2017b_glnxa64_dvd2.iso
    
  • Download from uploaded directory:
    megacopy --local <folder> --remote <folder-to-download> --download
    

πŸ”… Save a directory a $PATH of local profile.

sudo gedit ~/.profile
# copy and paste following line (should change the path)
export PATH=/home/thi/anaconda3/bin:$PATH
# save and close .profile and then apply following line to get instant update
source ~/.profile

πŸ”… Copy files from ubuntu to iPhone iOS iPad

  • Don’t need to install any files if one needs to copy photos/videos from iphone to ubuntu, one can use gThumb to do this or just use file manager to copy.
  • If one wants to copy files to iphone. Follow this one

πŸ”… Check the current path: pwd

Surface

πŸ”… Tweaks for ubuntu on surface book β‡Ύ link

πŸ”… App linux-surface.

User / Group / Ownership

πŸ”… How to add existing user to an existing group[ref]

sudo usermod -a -G groupName userName

πŸ”… Change ownership of a folder and its children

# folder and its children
chown -R thi:root folder
# a file
chown <user>:<group> file

πŸ”… Check the permission of curent directory:

ls -l
ls -l <file>

check ll

Matlab

πŸ”… Scale matlab: need to install matleb version >= R2017b

s = settings;s.matlab.desktop.DisplayScaleFactor
s.matlab.desktop.DisplayScaleFactor.PersonalValue = 2

πŸ”… Launching matlab without graphic ui[ref]

matlab -nodesktop

πŸ”… Cannot open matlab without sudo: change the owner permission of folder /home/thi/.matlab to thi*

Another solution: suppose that matlab is installed on a user’s directory and you have already add this to the $PATH. IT’s only work if you use matlab (not sudo matlab). Then do

sudo env "PATH=$PATH"

from this, you can sudo matlab

πŸ”… Matlab drive connector: after installing, run

~/bin/MATLABConnector toggle

πŸ”… How to install matlab silently (only with command lines) on linux? (if below doesn’t work, you can check here, my method is different from this one)

  1. Suppose that you have 2 dvd iso files which contains the installation of matlab (dvd1.iso and dvd2.iso)
  2. For the activation, you have libmwservices.so and license_standalone.lic
  3. First, you need to extract 2 dvd iso files to a common folder named install_matlab in /home/thi/
  4. Create a new folder to install matlab called matlabR in /home/thi/
  5. Extract all files in 2 iso files to folder install_matlab like the instruction 38
  6. Run below command line
    sudo /home/thi/matlab_install/install -agreeToLicense yes -mode silent -destinationFolder /home/thi/matlabR -fileInstallationKey xxxxx-xxxxx-xxxxx  -outputFile /home/matlab_install.log
    
  7. After the installation, copy file license_standalone.lic to /home/thi/matlabR/licenses/
  8. Copy file libmwservices.so to /home/thi/matlabR/bin/glnxa64/
  9. Try running matlab: /home/thi/matlabR/bin/matlab
  10. If you have an error like libXt.so.6: cannot open shared object file: No such file or directory, try to install
    sudo apt-get install libxt6
    
  11. Make linux recognize your matlab command matlab like in the instruction 40.

πŸ”… Make linux recognize matlab command

  • Suppose that you have installed matlab on /home/thi/matlabR
  • You need to add above directory to the $PATH so that the system can recognize your matlab command
    export PATH=$PATH:/home/thi/matlabR/bin
    
  • You can use echo $PATH to check if the path is located in it or not.

πŸ”… Remove matlab on linux: simply rm -rf <matlab-folder>

Network

πŸ”… Don’t show β€œTurn on wifi hotspot…” for clicking => try: click on β€œNetwork” and then β€œWifi” in Settings.

πŸ”… Share terminal for other (via SSH): using Teleconsole,

# install
curl https://www.teleconsole.com/get.sh | sh

# share current terminal
teleconsole

# choose to connect via web browser
# or via terminal
teleconsole join <id>

# stop broadcasting
exit

# port forwarding
# suppose that a port is open at 3000 on your machine and you
# wanna share it with your friend
teleconsole -f localhost:3000

πŸ”… Download a direct link by terminal

wget <direct-link> -O <name-of-file>.<file-extension>

πŸ”… Download from google drive by terminal

  • Download as usual without terminal by a web browser
  • Open Downloads windows of the browser and then copy the download link.
  • Stop the download process
  • Use the command link in 33 where <direct-link> is the link copied above.

πŸ”… Use ssh to get access to another computer in the same network (LAN)

  1. Follow (a little bit) here.
  2. On the remote machine
    1. update and upgrade install
    2. install openssh-server
    3. open /etc/ssh/sshd_config and uncomment on Port 22 and lines starting with Hostkey...
    4. start the network: sudo service ssh start
    5. stop the network: sudo service ssh stop
    6. check if the network is running or not? sudo service ssh status
    7. Check the current ip: ifconfig: look on the inet
  3. On the local machine
    1. Install the same tool and use ssh username@remote-host

πŸ”… Connect ssh to a virtual machine (the same network)

  • Install openssh for both client and server machine
    sudo apt-get install openssh-client
    sudo apt-get install openssh-server
    
  • On server machine, check ssh is running or not
    ps -A | grep sshd
    # return [number] ?  00:00:00 sshd then it works
    

πŸ”… Download playlist audio youtube, using youtube-dl

sudo apt-get install curl -y (cΓ i curl nαΊΏu chΖ°a cΓ i)
sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl

# update 11/11/20: not working with playlist but single song!
youtube-dl --extract-audio --audio-format mp3 -o "%(title)s.%(ext)s" <link-playlist>

Free VPN

Using vpnbook and its tutorial. Note that, at the last step, we need to run with sudo! Note: very low speed!

Media / Photo / Music

πŸ”… Add shortcut keys for Rhythmbox Music Player -> read this.

  1. Enable plugin β€œMPRIS D-Bus interface”.
  2. Add custom shortcuts keyboards as
    • Play/Pause: rhythmbox-client --play-pause
    • Next: rhythmbox-client --next
    • Previous: rhythmbox-client --previous

πŸ”… Convert .ts videos to .mp4

sudo apt install ffmpeg
ffmpeg -i input.ts -c:v libx264 -c:a aac output.mp4

πŸ”… Mp3 tag editor:

sudo apt install exfalso  # Ex Falso

πŸ”… Spotify controller shortcut keyboards on Ubuntu (ref): using below commands for controlling playbacks in spotify, put them in a shortcut keys on ubuntu:

# play/puase
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause

# next track
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next

# previous track
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous

πŸ”… Resize multiple photos (keep the ratio/scale) (more options):

πŸ”… Youtube Music Controller for Linux:

  1. Download and install this app.
  2. Change to Youtube Music interface.
  3. Remove all shortcut keyboards that look like the ones you wanna set in the app in Ubuntu system (Keyboard shortcuts).
  4. On taskbar, right click on the You Tube Music app > Desktop settings > Hotkeys > Set your keyboards (eg. Ctrl+Shift+> for next track, Ctrl+Shift+< for previous track, Ctrl+Shift+Space for play/pause track).
# install
sudo apt-get install imagemagick
# resize but keep the ratio (save to jpg)
mogrify -resize 50% -format jpg *
# resize keep the extension
mogrify -resize 50% *
# with a specific size (save to jpg)
mogrify -resize 800x600 -format jpg *
# just the width (save to jpg)
mogrify -resize 800x -format jpg *
# only resize images bigger than 1000px width
mogrify -resize 1000x\> *

Game

πŸ”… Game platforms: Steam, Lutris.

πŸ”… Xbox Controller on Ubuntu:

# for bluetooth recognize
sudo apt-get install xboxdrv

# for GUI testing app
sudo apt-get install jstest-gtk

System

πŸ”… System monitor in terminal: vtop

sudo apt install nodejs
sudo apt install npm
sudo npm install -g vtop

Errors

πŸ”… Problem save file as root user and cannot open later β‡Ύ link

πŸ”… Prevent bluetooth devices disconnected after sleep β‡Ύ link

πŸ”… Failed to load module β€˜canberra-gtk-module

sudo apt install libcanberra-gtk-module libcanberra-gtk3-module

πŸ”… nvidia docker signatures invalid. The following signatures were invalid: EXPKEYSIG

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

πŸ”… bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)

echo "LC_ALL=en_US.UTF-8" >> /etc/environment
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf
locale-gen en_US.UTF-8

πŸ”… dpkg: error processing package install-info

sudo mv /var/lib/dpkg/info/install-info.postinst /var/lib/dpkg/info/install-info.postinst.bad

πŸ”… APT had planned for dpkg to do more than it reported back

dpkg --configure -a
apt-get install -f

GPU-NVDIA problems

πŸ”… Problems with pytorch versions: check this.

πŸ”… RuntimeError: cuda runtime error (804) : forward compatibility was attempted on non supported HW at /pytorch/aten/src/THC/THCGeneral.cpp:47 (after update system including nvdia-cli, maybe) => The same problem with below, need to restart the computer.

πŸ”… nvidia-smi: Failed to initialize NVML: Driver/library version mismatch.