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 findif [ "$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
π
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>
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)
- Suppose that you have 2 dvd iso files which contains the installation of matlab (
dvd1.iso
anddvd2.iso
) - For the activation, you have
libmwservices.so
andlicense_standalone.lic
- First, you need to extract 2 dvd iso files to a common folder named
install_matlab
in/home/thi/
- Create a new folder to install matlab called
matlabR
in/home/thi/
- Extract all files in 2 iso files to folder
install_matlab
like the instruction 38 - 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
- After the installation, copy file
license_standalone.lic
to/home/thi/matlabR/licenses/
- Copy file
libmwservices.so
to/home/thi/matlabR/bin/glnxa64/
- Try running matlab:
/home/thi/matlabR/bin/matlab
- If you have an error like
libXt.so.6: cannot open shared object file: No such file or directory
, try to installsudo apt-get install libxt6
- 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 yourmatlab
commandexport 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)
- Follow (a little bit) here.
- On the remote machine
- update and upgrade install
- install
openssh-server
- open
/etc/ssh/sshd_config
and uncomment onPort 22
and lines starting withHostkey...
- start the network:
sudo service ssh start
- stop the network:
sudo service ssh stop
- check if the network is running or not?
sudo service ssh status
- Check the current ip:
ifconfig
: look on the inet
- On the local machine
- Install the same tool and use
ssh username@remote-host
- Install the same tool and use
π
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.
- Enable plugin βMPRIS D-Bus interfaceβ.
- Add custom shortcuts keyboards as
- Play/Pause:
rhythmbox-client --play-pause
- Next:
rhythmbox-client --next
- Previous:
rhythmbox-client --previous
- Play/Pause:
π
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:
- Download and install this app.
- Change to Youtube Music interface.
- Remove all shortcut keyboards that look like the ones you wanna set in the app in Ubuntu system (Keyboard shortcuts).
- 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.
- This thread: just restart the computer.