The Useful Linux After-Install Todo List

Recommended first actions after installing a a new Linux system. The original TULAIT-list.

These steps will provide a lightweight system with a small footprint, and will make sure that most of the essentials will get installed and not forgot.

While the list is based on Debian based Linux systems, it is such a useful list that it is even useful for non-Debian based distros. It is formatted as a text file and all link URLs are spelled out in case you would want a printed version for recovery purposes.



(Edition 73) The first part of this list has the essential steps, these are probably most useful for most people. This part should be followed from top down, as some items "above" may prepare the ground for some items "below". Below that everything is suggestions: You may want to follow some of these but certainly not all of them! If there is something you do not think you will need, you probably won't. So, just skip it. Priority is on lightweight and useful, with a thought to privacy and security. While the list does not cover system hardening as such the suggestions below are at least not counter productive. ------------------------------------------------------------------------ ------------------------------------------------------------------------ Below, "#" means: Enter the rest of this line in a terminal (without the #-sign) ------------------------------------------------------------------------ ------------------------------------------------------------------------


    2. REDUCE INSTALLATION SIZE ("footprint")
    1. APPENDIX: Before you install anything, simulate
    2. APPENDIX: Installing from "backports"



------------------------------------------------------------------------ ------------------------------------------------------------------------


Configure sudo
# su -> enter pass when prompted, then: # visudo or (if visudo is not installed): # su -> enter pass when prompted, then: # nano /etc/sudoers - navigate cursor to "root line". Looks like this: root ALL=(ALL:ALL) ALL - copy root line to new line below ("cut" + two times "uncut") - replace "root" in line 2 with your user name - save+exit: [ctrl]+[o] then [ctrl]+[x] last, remember to exit 'su': # exit now, never type 'su' again please.
Configure time and date
# sudo date --set="2021-08-31 09:30:00" - check time, date, timezone # timedatectl - change timezone, if required # sudo tzselect (just follow instructions on screen) - - alternative method: # sudo timedatectl set-timezone Europe/Copenhagen (replace "Europe/Copenhagen" with your timezone)
Configure locale (languages, date-time formats etc) # sudo nano /etc/default/locale - add: LC_TIME="en_DK.UTF-8" LC_PAPER="en_DK.UTF-8" LC_MEASUREMENT="en_DK.UTF-8" Note: Replace "en_DK" with your preferred locale - then # sudo dpkg-reconfigure locales if you do not have "dpkg-reconfigure", install debconf # sudo apt install debconf - then: # sudo dpkg-reconfigure locales
Configure software sources
# sudo nano /etc/apt/sources.list example sources.list content (complete "bullseye" all inclusive): -------------------------------------------------------------------- deb bullseye-security main contrib non-free deb bullseye main contrib non-free deb bullseye-updates main contrib non-free deb bullseye-backports main contrib non-free -------------------------------------------------------------------- Note: Above "bullseye" may be replaced with "stable". But if you do that you may risk a bit of a chaotic upgrade process when the stable release changes from "bullseye" to the next version, in a few years. The update/install software (typically "apt" on Debian) will inform you that the stable version has changed when it does so.
Configure certificate settings
Disallow random software programs from installing root certificates without even asking you. You will NOT want that, as allowing random software to decide what/who your PC should trust without any kind of control is a major security risk. So: # sudo dpkg-reconfigure ca-certificates In the first step you may want to answer "Ask" in order to be, well, asked, when software tries to install certificates. Alternatively "No", to disallow it. The default setting of "Yes" is asking for trouble and, well, insane. I suspect this is a glimpse and that future systems may get a more sane default setting. Above command will also let you add/remove certificates the proper way (you may not need that right now, so reference for later). To update certificates, eg. after manual removal (not required after above command): # sudo update-ca-certificates Some starting points for research/information: - - - windows-specific, easy read (and very "tsh, no-problem"-ish), still: -
Check status for Apparmor system protection
You probably just need to check if installed and running (it should be) # sudo aa-status More info:
Firefox, initial/basic hardening
Do this now because you may want to search the www soon. This section is now a separate page in order to make this list a bit more lightweight. List: Firefox, initial/basic hardening I should add that this information is only included because Firefox is the only browser installed per default by Debian. Detailled advice on browser choice and -hardening is really outside the scope of this text. ------------------------------------------------------------------------


also see: - first check current install size and available space # df -h
Install Aptitude
In the following the software "Aptitude" will be used to display information about software on your system. If you do not have Aptitude installed, install like this: # sudo apt install aptitude If you do not want to install aptitude, as an alternative to the command "aptitude search X" you can use "apt show X" or "apt search X"
Remove irrelevant languages
Below languages Danish and English have been kept ("da" + "en"). Please adjust to your needs. If you have no need for Danish or English just remove those language and keep only the one(s) you want to use.
Manual pages
# aptitude search manpages -> then (adjust as appropriate): # sudo apt purge manpages-zh manpages-tr manpages-ro manpages-pt-br # sudo apt purge manpages-pl manpages-pl-dev manpages-nl manpages-mk # sudo apt purge manpages-ja manpages-ja-dev manpages-it manpages-hu # sudo apt purge manpages-fr manpages-es manpages-de
Spell check, dictionaries etc
# aptitude search aspell -> then: # sudo apt purge aspell # aptitude search ispell -> then: # sudo apt purge ispell (note: above process will yield temporary errors and throw up dialogs - just click accept + will also remove ispell dictionaries: ibrazilian igerman etc) # aptitude search hunspell -> then: # sudo apt purge hunspell # aptitude search hyphen -> then: # sudo apt purge hyphen-lt hyphen-hr hyphen-hu hyphen-de
Desktop language versioning
Below languages Danish and English have been kept ("da" + "en"). Please adjust to your needs. If you have no need for Danish or English just remove those language and keep only the one(s) you want to use. # aptitude search task- # sudo apt purge task-a* task-ba* task-be* task-bo* task-braz* task-bul* # sudo apt purge task-c* # sudo apt purge task-du* task-dz* task-es* task-f* task-ga* task-ge* # sudo apt purge task-gr* task-gu* task-h* task-i* task-j* task-k* # sudo apt purge task-lat* task-lit* task-m* task-n* task-p* task-r* # sudo apt purge task-s* task-t* task-u* task-v* task-w* task-xh* # sudo apt autoremove Below should already have been atoremoved (unwanted languages) -> if not, run 'apt purge' on them # aptitude search libreoffice-l10n # aptitude search libreoffice-help # aptitude search myspell # aptitude search mythes
Exotic input methods, multi language terminal etc.
# aptitude search fcitx (should be autoremoved as well) # aptitude search zhcon -> if found: # apt purge fcitx zhcon # sudo apt purge xiterm+th* # sudo apt autoremove # sudo apt purge mlterm mlterm-tiny # sudo apt autoremove # sudo apt purge im-config # sudo apt autoremove
Remove fonts
It's hard to give advice on this as some will want many fonts Your fonts directory is: /usr/share/fonts - check disk usage # du -h /usr/share/fonts/ - - sorted view # du -h --max-depth=2 /usr/share/fonts/ | sort -hr - count number of files # find /usr/share/fonts/ -type f | wc -l - you may delete folders with 'rm -r' (no example provided) - then rebuild font cache # fc-cache -rv
Font Manager and Font Viewer
For better font management you may want to install Font Manager and/or Font Viewer. Font Manager will include Font Viewer but Font Viewer may also be installed alone. # sudo apt install font-manager (for both) - or # sudo apt install font-viewer
Remove Libre Office
This may reward you with 380-450MB of extra disk space. For lightweight replacements see below. To remove Libre Office, first simulate to make sure you will not remove anything really important (chances are low, but still): # sudo apt -s purge libreoffice* - if it looks legit, repeat without the "-s". Then: # sudo apt autoremove - watch the messages afterwards. You may still have to: # sudo rm -r /etc/libreoffice/ # sudo rm -r /usr/lib/libreoffice/ # sudo rm -r /usr/share/fonts/truetype/libreoffice
Remove "accessibility tools"
You may also want to remove "accessibility tools" if you do not need them. One example is 'orca' (screen reader. If activated it will read out loud(!) whatever is on your screen): # sudo apt purge orca
Last, remove undeleted config files/folders
The deletes above may have left a lot of undeleted config files that are no longer required. - to list them: # aptitude search ~c - to delete them: # sudo aptitude purge ~c This will produce a lot of messages. Some will be like this: dpkg: warning: while removing fonts-telu-extra, directory '/usr/share/fonts/truetype/fonts-telu-extra' not empty so not removed - open a new teminal window in order to keep those messages visible - next, examine the directory contents in the new terminal # ls -la /usr/share/fonts/truetype/fonts-telu-extra - and delete # sudo rm -r /usr/share/fonts/truetype/fonts-telu-extra ------------------------------------------------------------------------


On first internet connection, run: - update package lists # sudo apt update - install bug-warnings on updates # sudo apt install apt-listbugs - below should be installed after locale configurations (see above) # sudo apt install localepurge - last: # sudo apt upgrade ------------------------------------------------------------------------ ------------------------------------------------------------------------


Everything below is suggestions only. These are not random suggestions. Only really useful stuff has been included. Note: In some cases more than one tool for the same general type of task is listed. Use judgement: You should not install everything on the list below. Several sections may be skipped entirely. General tip: To see information about a package before you install, use one of these: # apt show name-of-package # aptitude show name-of-package (you can list several pakages on one line, separated by space) ------------------------------------------------------------------------ ------------------------------------------------------------------------ EVERYTHING BELOW ARE SUGGESTIONS ONLY, NOT RECOMMENDATIONS NOTHING BELOW IS REQUIRED FOR YOUR SYSTEM TO WORK YOU MAY SAFELY SKIP ANY OR ALL OF IT IF IN DOUBT ------------------------------------------------------------------------ ------------------------------------------------------------------------


General purpose software
- vlc player (to play any kind of movie file. Caveat: 85MB) # sudo apt install vlc - midnight commander (dual-pane file-manager for terminal) # sudo apt install mc - KDE dolphin (alternative graphical file manager) - ( ) # sudo apt install dolphin - KDE Connect ( phone-to-pc communication, syncing etc) See: - alternative: GSConnect (GNOME) See: - PDF readers (a few alternatives) # sudo apt install mupdf mupdf-tools # lightweight+high resolution # sudo apt install atril # sudo apt install evince bluetooth support (if desired, and not installed) # sudo apt install bluez bluez-obexd - alternative # sudo apt install blueman pulseaudio-module-bluetooth
Office Apps (spreadsheets, documents)
If you basically just need to use spreadsheets and word-processing, install abiword and gnumeric in stead of an "Office suite". Both apps are lightweight and they will work with MS Excel and MS Word documents. # sudo apt install gnumeric abiword
Image utilities
- lightweight image manager (for gui) # sudo apt install geeqie - lightweight image viewer (for gui) - may replace Ristretto # sudo apt install gpicview (note: if on xfce, do not uninstall Ristretto as it will remove essential stuff also) - lightweight image viewer (for gui/terminal) # sudo apt install feh - take screenshot from cmdline # sudo apt install scrot - commandline/gui image editing # sudo apt install imagemagick - - and/or a faster alternative for some conversion types (see: # sudo apt install exactimage - find image duplicates # sudo apt install findimagedupes - simple drawing program, like windows paint # sudo apt install xpaint - command-line image creation / drawing tool # sudo apt install flydraw
Photo/graphics programs
Just a few suggestions (note: large programs + downloads) - gimp photo/image editing + raw format handling + extras # sudo apt install gimp rawtherapee gimp-plugin-registry gimp-data-extras (above is >80Mb download and ~350Mb on disk) - inkscape vector based drawing # sudo apt install inkscape (above is ~24Mb download and ~120 Mb on disk) - krita pixel based image manipulation # sudo apt install krita (uncompressed size: ~80Mb)
Password manager
Here are a few alternatives to choose from: bypass, cpm, gnome-passwordsafe, gokey, impass, keepassxc, pass, password-gorilla, passwordsafe, pwman3, revelation, ylva ... - check out before install: eg: # apt show revelation Make sure to select one that is simple and does not offer features that you don't know if you want or not. Just the basics please. Also, you may want to research the name in a search engine before install. You may want to run a simulated install, to check what happens before actually installing eg: # apt-get -s install revelation
Math / calculators
Graphical calculators (one per line) - Galculator ( # sudo apt install galculator - Gnome Calculator See: - Kcalc ( # sudo apt install kcalc Advanced scientific calculators - genius ( ) - extcalc ( ) - speedcrunch ( ) - qalculate ( ) Commandline calculators # sudo apt install calc # sudo apt install bc
Development Tools / IDE
- Bluefish: - Brackets: - Eclipse: - Geany: ( + optional virtual terminal "libvte9" # sudo apt install geany libvte9 - Kate (text editor w syntax highlighting): - Kakoune: - KDevelop: - Sublime Text: - VSCodium ( ): Many more options:
Version compare tools
Tools to compare files and folders - Meld ( ) # sudo apt install meld - KDiff3 ( ) # sudo apt install kdiff3 - Kompare ( ) # sudo apt install kompare Version management system: - Git ( ) # sudo apt install git # sudo apt install git-gui gitk # <- optional git add-ons ------------------------------------------------------------------------


- kill a window # sudo apt install xkill - disk mount without password # sudo apt install udevil - synaptics touchpad settings tool (only relevant if you have one) # sudo apt install xorg-driver-synaptics - archiver (access compressed folders/files like zip, rar, etc) # sudo apt install xarchiver - various file formats (for all kinds of use, eg. file managers etc) # sudo apt install mime-support file arj bzip2 unar zip unzip unrar lz4 lz4json
Desktop automation tools
- xdotool is a commandline tool to simulate keystrokes and mouse clicks. Often used in scripts, and some software may require it for eg. some window-handling operations. If you don't see your need for it don't install. Software that rely on it will tell you on install. # sudo apt install xdotool xte - xautomation: more tools to simulate keystrokes etc # sudo apt install xautomation - wmctrl is a tool to list and control open windows # sudo apt install wmctrl
Firmware updates
- on older hardware you may need firmware updates, eg to make wifi work. This may require a bit of research. Some starting points: This process will be specific to your hardware, and it may be less than straightforward. A good helper may be to input any specific error message into a search engine. Also, you may want/need to use the System information tools section.
Disk management
- 'parted' partition editor ('partx' probably already installed) # sudo apt install parted - - or: gparted # sudo apt install gparted gpart - - - or: disk tools # sudo apt install fdisk - - - - or full system utilities collection (includes 'fdisk') # sudo apt install linux-utils - backup partitions into a compressed image file # sudo apt install partimage
Software installers
- aptitude # sudo apt install aptitude - debian package installer # sudo apt install gdebi - synaptic graphical package manager # sudo apt install synaptic - extrepo ( # sudo apt install extrepo - FlatPak ( # sudo apt install flatpak - Snap ( # sudo apt install snapd - Discover ( (has backends for flatpak+snap+fwupd) # sudo apt install plasma-discover - AppImage ( - - dl:
Enhanced terminals
- tilda: top-of-screen terminal ( # sudo apt install tilda - terminator ( # sudo apt install terminator - tmux terminal multiplexer ( # sudo apt install tmux
Alternative terminals
- zsh shell ( # sudo apt install zsh - fish shell ( # sudo apt install fish
System information tools
- inxi: config info ( # sudo apt install inxi - hardware info GUI tool (a.k.a. "System profiler and benchmark") - - - - # sudo apt install hardinfo - alternatives # sudo apt install hwinfo lshw - cpu info # sudo apt install cpuid
System monitors and top variants
- processes and system # sudo apt install iotop htop atop - glances (general monitoring) ( # sudo apt install glances - conky: desktop live monitor ( # sudo apt install conky (on some systems it is "conky-all")
System Protection
This topic is really too big for this list. If you are used to working with these things you may already have your own favourites (or, your job may require something specific): - firejail sandboxing ( # sudo apt install firejail - check for rootkits (chkrootkit + rootkit hunter) # sudo apt install chkrootkit - usage: # sudo chkrootkit # sudo apt install rkhunter - usage: # sudo rkhunter -c - AIDE (Advanced Intrusion Detection Environment) # sudo apt install aide You will find more suggestions if you search for terms like "virtual machines" / "VMs", "sandboxing", "provisioning and orchestration", "firewall", "system hardening" ... This may easily lead to lots of time spent, though. ------------------------------------------------------------------------


- net-tools (eg 'ifconfig' -deprecated, now replaced by 'ip') # sudo apt install net-tools - 'whois', 'ping', etc... # sudo apt install whois iputils-ping iputils-tracepath traceroute - 'dig' and 'nslookup' # sudo apt install dnsutils
Network/connection analysis tools (skip if in doubt)
Note: These are separate tools, put on one line for brevity only. # netcat arp-scan arping tcpdump nmap zenmap ncat
Mobile broadband, wifi, ethernet
-for mobile broadband use "network-manager" + "modemmanager" + "ppp" - it will work with Wi-Fi and cable as well # sudo apt install network-manager modemmanager ppp optional: mac address changer for privacy # sudo apt install macchanger
Interface- and network monitors
# sudo apt install ifstat # sudo apt install iftop # sudo apt install nethogs # sudo apt install iptraf-ng # sudo apt install jnettop
Firewall, antivirus, etc
- antivirus # sudo apt install clamav - simple firewall and GUI - (works on top of "iptables" which should be installed by default) # sudo apt install iptables ufw gufw - after install, enable by going to "Settings" > "Firewall Configuration" in your menu
- deluge bittorent client (note: there are alternatives and this is not the most lightweight) # sudo apt install deluge - 'curl' and 'wget' # sudo apt install curl # sudo apt install wget - graphical FTP client # sudo apt install filezilla
Localhost Web Server
Install web server (Lighttpd or Apache)
To keep the system lightweight, install the web server Lighttpd. Besides being lightweight it is also easy to configure. It will do anything you expect a web server to do on a local PC, and fast. - to install Lighttpd (with PHP installed and enabled): # sudo apt-get install lighttpd php-common php-cgi # sudo lighty-enable-mod fastcgi-php If you need to install Apache2 in stead the process is more complicated, see the separate guide: Install and Configure Apache on a Linux PC (as localhost) apache-linux-localhost.php
Add your user to the group "www-data"
- first, check if you are in that group already # groups - in below line replace "user" with your user name # sudo usermod -a -G www-data user - you may have to reboot or log out and then in for the group change to take effect.
Configure localhost folders
-set user, group # sudo chown -R www-data:www-data /var/www/ - set permissions # sudo chmod -R ug=rwx /var/www/ - - or # sudo chmod -R 770 /var/www/ -link phpMyAdmin into folder, if installed: # sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin - control # ls -lh /var/www/ A fast and simple way to serve a folder of web content on localhost is by using a symbolic link: Say you have a web site in your folder "~/website", then below line will make your "~/website" folder appear in a browser on the URL "http://localhost/website/": # ln -s /home/username/website /var/www/html/website (Note: "username" should be your user name, replace it first)
Alternative Web Servers
Below a list of stable well-performing and reasonably lightweight web servers - Caddy - Cherokee - G-WAN App. server - H2O - Hiawatha - Mongoose - NGINX - OpenLiteSpeed - RWASA - thttpd - uHTTPd (from OpenWRT)
PHP, MariaDB, and PhpMyAdmin
# sudo apt install php # sudo apt install mariadb-common mariadb-server php-mysql # sudo apt install phpmyadmin - useful PHP extensions (some may be recommends or required by above) # sudo apt install php-pear php-json php-mbstring php-intl # sudo apt install mcrypt libmcrypt-dev php-imagick libmagickcore-6.q16-6-extra # sudo apt install php-gmp php-gd NOTE: The PHP installation will probably also install the Apache Web Server
Configure PHP and mysql/mariadb
(Optional line for working with international character sets etc.) # sudo phpenmod intl Enable mysql (MariaDB) in PHP # sudo phpenmod mysqli Setup MariaDB installation # sudo mysql_secure_installation # sudo service mysql restart # sudo service mysqld restart
Set SQL admin password (if not already set)
- - login # mysql -u root - - or # sudo mysql -u root - - when logged in > SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your password'); > flush privileges; > \q
Login to SQL, check everything went okay.
# sudo mysql -u root -p - or # mysqladmin -u root -p (above will just display help text and exit) check status of mysql service # sudo systemctl status mysql.service
Alternative web browsers
This section is now a separate page in order to make this list a bit more lightweight. List: Alternative Browsers for Linux (for Lightweight and Privacy)
This section is now a separate page in order to make this list a bit more lightweight. List: Alternative Email Clients for Linux ------------------------------------------------------------------------ ------------------------------------------------------------------------


------------------------------------------------------------------------ ------------------------------------------------------------------------

APPENDIX: Before you install anything, simulate

Before you do an install, run a simulated install to get an idea of what will happen. Just a tip. These two works the same way (shows complete process, but no download or disk usage sizes) # sudo apt install -s example_software_name # sudo apt-get install -s example_software_name This one provides download size and disk usage size (but does not show suggested packages) # sudo aptitude install -s example_software_name
Install "apt-listbugs"
You will want to be notified of grave bugs before you install some package that ruins your system. This was already mentioned above, under "Essential Installs", so to repeat: # sudo apt install apt-listbugs This package gives you the option to abort the install process before you ruin your system.

APPENDIX: Installing from "backports"

If a package is not yet available in the stable version, it may be available in "backports". Assuming you have added "backports" to your "sources.list" file, this is how to search and install packages. The package "wicd" is used as an example: # sudo apt update # aptitude -t bullseye-backports search wicd - or # apt -t bullseye-backports search wicd - if found, install: # sudo apt -t bullseye-backports install wicd (Note: "wicd" is a network manager. Do not install it if you use mobile broadband, as it will not work with that.) ------------------------------------------------------------------------ ------------------------------------------------------------------------


This would be a good time to actually USE that 'partimage' utility you read about above, but forgot to install. But then you could also 'dd', 'rsync', or whatever you prefer. ------------------------------------------------------------------------ At this point you should install your favorite media players, games, special purpose programs, desktop environments, window managers, and whatnot. These types of things are not included. The focus is on quickly getting a basic lightweight work-ready system up and running. After finishing this list you will be able to get things done. (Top of list) (Table of Contents)



Document URL: