Skip to content

Useful Ubuntu Commands

Shamik edited this page Mar 3, 2024 · 6 revisions

Useful Ubuntu Commands

To configure a default Ubuntu editor

sudo update-alternatives --config editor

Environment variables

Checking and adding environment variables.

To print all environment variables

printenv

To print a specific environment variable(HOME)

printenv HOME
echo $HOME

To print a specific environment variable(PATH)

printenv PATH
echo $PATH

To print a multiple environment variables(HOME & PATH)

printenv HOME PATH

Adding a specific path to the $PATH environment variable

# replace my username with yours in the command below
export PATH="/home/shamik/.local/bin:$PATH"

To set an envrionment permanently

In order to configure a new environment variable to be persistent, we’ll need to edit the Bash configuration files. This can be done through three different files, depending on exactly how you plan to access the environment variable.

  • ~/.bashrc – Variables stored here will reside in the user’s home directory and are only accessible by that user. The variables get loaded any time a new shell is opened.
  • /etc/profile – Variables stored here will be accessible by all users and are loaded whenever a new shell is opened.
  • /etc/environment – Variables stored here are accessible system-wide.

Add it to ~/.bashrc, accessible only by the user

# replace my username with yours in the command below
export PATH="/home/shamik/.local/bin:$PATH"

Add it to /etc/profile, accessible to all users

# replace my username with yours in the command below
export PATH="/home/shamik/.local/bin:$PATH"

Add it to /etc/environment, accessible system-wide

# replace my username with yours in the command below
PATH="/home/shamik/.local/bin:$PATH"

Delete Multiple files without removing the directory

rm -r <path of the folder>

Error:argument list is too long

This happens because of the number of files being too many so the following will work:

find <path of the folder> -type f -exec rm {} +

List all available disks

sudo lsblk

Generally sda will be the boot disk and if you have only one disk, which can be attached then it will be sdb. However, if you have multiple disks, which can be attached it will be autoincremented to sdc,sdd,... In case you detach and then re-attach the disk then the disk name will be autoincremented too e.g., for sdb it will become sdc as there's only one disk.

To mount a particular disk

sudo mkdir /mnt/disks/<name of your choice>
sudo mount -o discard,defaults /dev/sdb /mnt/disks/<name of your choice>

Compress PDFs with Ghostscript

Adobe link

  1. Install Ghostscript with the command sudo apt install ghostscript.
  2. Once installed, you can use this command to compress PDF file sizes:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
  1. In the command, replace output.pdf and input.pdf with your chosen filenames. The dPDFSETTINGS is where you’ll choose the file size. Change the suffix =/screen to suit your needs:
  • -dPDFSETTINGS=/screen — Low quality and small size at 72dpi.
  • -dPDFSETTINGS=/ebook — Slightly better quality but also a larger file size at 150dpi.
  • -dPDFSETTINGS=/prepress — High quality and large size at 300 dpi.
  • -dPDFSETTINGS=/default — System chooses the best output, which can create larger PDF files.
  1. Once you input your preferences, simply run the command. Your new compressed PDF will be saved in the same folder as the original.

Find a piece of text within multiple pdfs without opening them

find ./ -name '*.pdf' -exec sh -c 'pdftotext "{}" - | grep --with-filename --label="{}" --color "pattern"' \;

Clone this wiki locally