Ubuntu
Shell commands
Enable root account (not recommended):
$sudo passwd root
Disable root account you lock root account:
$sudo passwd -l root
Want to use root @ console:
$sudo -i
Windows Dual Boot page
Recovering Ubuntu After Windows Install
Grub2 on Ubuntu wiki
Grub2 GUI Customizer
For support-related question you can use Launchpad. You can also search the complete history of questions and answers.
Grub 2 basics
Enable SSH server
apt-get install openssh-server
Secure SSH server using /etc/hosts.allow
Add a User
Example adding a user with username johndoe. Follow the instructions provided by the command.
sudo adduser johndoe
sudo group stuff
Add user to sudo group
sudo usermod -aG sudo <USER_NAME>
Verify user belongs to sudo group
groups <USER_NAME>
Verify sudo access
su - <USER_NAME>
Remove user from sudo group
sudo deluser <USER_NAME> sudo
Networking utilities
See IP address information
ip a
Configure hostname
How to change hostname on Ubuntu 18 04
systemctl
Verify which processes run on Ubuntu 18.04 start up use $ sudo systemctl list-unit-files
.
Check version of Ubuntu
$ cat /etc/os-release
CLI Software Management
Synchronize package index from Internet. Location of repositories /etc/apt/sources.list
sudo apt update
Install newest versions of all software packages
sudo apt upgrade
Update distribution
sudo apt-get dist-upgrade
Install package (if already installed, will attempt to update package)
apt-get install package-name
List installed packages
apt list --installed
List installed packages that start with 'python'
$ apt list -a --installed python*
To upgrade Ubuntu release, see How To Upgrade Your Release
Python on Ubuntu Notes
See My Python Notes for information not specific to Ubuntu and Python.
Verify Python 3 is installed
anon@hammerhead:~$ python --version Command 'python' not found, but can be installed with: sudo apt install python3 sudo apt install python sudo apt install python-minimal You also have python3 installed, you can run 'python3' instead. anon@hammerhead:~$ python3 --version <----- Python 3 installed. Python 3.6.7 <----- Version 3.6.7
Verify Python 3 PIP installed
$ pip3 --version pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
To install Python 3 PIP
$ sudo apt-get install -y python3-pip
I use Python virtual environments. Verify Python venv module is installed
$ apt list -a --installed *venv* <----- If nothing with Python 3 venv comes back then you most install venv module
To install Python 3 venv module
$ sudo apt-get install -y python3-venv
Create virtual environment. I keep my Python virtual environments in a single directory. To create directory $ mkdir python-venv
Switch do directory $ cd python-venv/
Create virtual environment
$ python3 -m venv udmey-django
Activate virtual environment
$ source udmey-django/bin/activate
Prompt changes to reflect virtual environment
(udmey-django) anon@hammerhead:~/python-venv$
Note: Within virtual environment, you can use the command python instead of python3, and pip instead of pip3.
Deactivate virtual environment and prompt returns to normal
$ deactivate
mongoDB
PostgreSQL
Install PostgreSQL
$ sudo apt install postgresql postgresql-contrib ... Success. You can now start the database server using: /usr/lib/postgresql/10/bin/pg_ctl -D /var/lib/postgresql/10/main -l logfile start Ver Cluster Port Status Owner Data directory Log file 10 main 5432 down postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log update-alternatives: using /usr/share/postgresql/10/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode Setting up postgresql (10+190) ... Setting up postgresql-contrib (10+190) ... Processing triggers for systemd (237-3ubuntu10.11) ... Processing triggers for ureadahead (0.100.0-20) ...
Use PostgreSQL
Switch to postgres account
sudo -i postgres
Access PostgreSQL prompt
psql
Exit PostgreSQL prompt
\q
Log directly into PostgreSQL prompt with postgres user
sudo -u postgres psql
Add user (username must be same as PostgreSQL role and database)
sudo adduser user_name
Check current connection information
\conninfo
While logged in as postgres user...
Create a new role. Use man createuser
for more information.
createuser --interactive
Create new database
createdb db_name
Same user connect to different database
psql -d postgres
Nginx
Install Nginx with virtual hosts and SSL certificates
Apache 2
Resources
Ubuntu Certificates and Security
SSL Certificate HOWTO not Ubuntu specific
Configure Apache for SSL client certificate authentication
Installation
Update all your software and install Apache 2
# apt-get update # apt-get upgrade # apt install apache2
Verify Apache is running
# systemctl status apache2 ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Sun 2018-10-21 14:44:30 CDT; 11min ago Main PID: 17131 (apache2) Tasks: 55 (limit: 4181) CGroup: /system.slice/apache2.service ├─17131 /usr/sbin/apache2 -k start ├─17132 /usr/sbin/apache2 -k start └─17134 /usr/sbin/apache2 -k start Oct 21 14:44:30 apu02 systemd[1]: Starting The Apache HTTP Server... Oct 21 14:44:30 apu02 apachectl[17120]: AH00558: apache2: Could not reliably determine the server's Oct 21 14:44:30 apu02 systemd[1]: Started The Apache HTTP Server.
Firewall
Update firewall to allow only port 443 (default HTTPS TCP port)
# ufw app list Available applications: Apache Apache Full Apache Secure OpenSSH # ufw allow 'Apache Secure' # ufw status verbose | grep 443 443/tcp (Apache Secure) ALLOW IN Anywhere 443/tcp (Apache Secure (v6)) ALLOW IN Anywhere (v6)
Teamspeak 3 setup on Ubuntu 16.04 and 18.x via command line
Followed steps at How to install Teamspeak 3 server on Ubuntu 16.04 64-bit to install Teamspeak 3 and get basic server running.
If you want to customize the server port follow next steps.
Install simple command-line program named sqlite3. How to use sqlite
robot00@apu00:~$ sudo apt install sqlite3
Launch sqlite3 using Teamspeak 3 sqlite database file:
robot00@apu00:~$ sudo sqlite3 /home/teamspeak/ts3server.sqlitedb SQLite version 3.11.0 2016-02-15 17:29:24 Enter ".help" for usage hints.
Update port command:
sqlite> update servers set server_port=<CUSTOM UDP Port>;
Restart Teamspeak 3 server
robot00@apu00:~$ systemctl restart teamspeak.service
Test your connection using the <CUSTOM UDP Port>
Upgrade Teamspeak3 server
Login to SSH as root
Stop your current Teamspeak 3 Server systemctl stop teamspeak.service
Change to your teamspeak user cd /home/teamspeak/;su teamspeak
Download Teamspeak, extract it, update and tidy up.
wget https://files.teamspeak-services.com/releases/server/3.9.1/teamspeak3-server_linux_amd64-3.9.1.tar.bz2 tar xvfj teamspeak3-server_linux_amd64-3.9.1.tar.bz2 cd teamspeak3-server_linux_amd64 cp * -R /home/teamspeak cd .. rm -r teamspeak3-server_linux_amd64 rm teamspeak3-server_linux_amd64-3.9.1.tar.bz2
Return to root and start the Teamspeak server
exit systemctl start teamspeak.service
Check to make you can connect to Teamspeak 3 server
Factorio Headless Setup
Hardware
Identify video card:
paul@congo:~$ lspci -nn | grep VGA 01:00.0 VGA compatible controller [0300]: nVidia Corporation G92 [GeForce 8800 GT] [10de:0611] (rev a2)
Verify interface speed
cat /sys/class/net/<interface>/speed
replace <interface> with name of your NIC (e.g. eth0)
Resizing logical volume
Background
A 2 TB SSD was physically installed in the system ox and after installation, the LVM used 100 GB.
Reference How To Make ubuntu-vg-ubuntu-lv Use 100% Free Disc Space
anon@ox:~$ sudo pvs PV VG Fmt Attr PSize PFree /dev/nvme0n1p3 ubuntu-vg lvm2 a-- <1.82t <1.72t anon@ox:~$ sudo vgs VG #PV #LV #SN Attr VSize VFree ubuntu-vg 1 1 0 wz--n- <1.82t <1.72t anon@ox:~$ sudo lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert ubuntu-lv ubuntu-vg -wi-ao---- 100.00g # <----------- This shows 100 GB and I want 1.8T. anon@ox:~$ sudo lvresize -l +100%FREE /dev/ubuntu-vg/ubuntu-lv Size of logical volume ubuntu-vg/ubuntu-lv changed from 100.00 GiB (25600 extents) to <1.82 TiB (476150 extents). Logical volume ubuntu-vg/ubuntu-lv successfully resized. anon@ox:~$ sudo resize2fs /dev/ubuntu-vg/ubuntu-lv resize2fs 1.46.5 (30-Dec-2021) Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required old_desc_blocks = 13, new_desc_blocks = 233 The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 487577600 (4k) blocks long. anon@ox:~$ sudo pvs PV VG Fmt Attr PSize PFree /dev/nvme0n1p3 ubuntu-vg lvm2 a-- <1.82t 0 anon@ox:~$ sudo vgs VG #PV #LV #SN Attr VSize VFree ubuntu-vg 1 1 0 wz--n- <1.82t 0 anon@ox:~$ sudo lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert ubuntu-lv ubuntu-vg -wi-ao---- <1.82t # <----------- This was 100 GB Size, now it's 1.8T. anon@ox:~$ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 6.3G 1.9M 6.3G 1% /run /dev/mapper/ubuntu--vg-ubuntu--lv 1.8T 37G 1.7T 3% / # <----------- This was 100 GB Size, now it's 1.8T. tmpfs 32G 200K 32G 1% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/nvme0n1p2 2.0G 252M 1.6G 14% /boot /dev/nvme0n1p1 1.1G 6.1M 1.1G 1% /boot/efi tmpfs 6.3G 4.0K 6.3G 1% /run/user/1001 tmpfs 6.3G 4.0K 6.3G 1% /run/user/1000