Ubuntu

From GotOpinion
Jump to navigation Jump to search

Shell commands[edit | edit source]

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.

Ubuntu web forums

Grub 2 basics

Enable SSH server[edit | edit source]

apt-get install openssh-server

Secure SSH server using /etc/hosts.allow

Add a User[edit | edit source]

Example adding a user with username johndoe. Follow the instructions provided by the command.

sudo adduser johndoe

sudo group stuff[edit | edit source]

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[edit | edit source]

See IP address information

ip a

Configure hostname[edit | edit source]

How to change hostname on Ubuntu 18 04

systemctl[edit | edit source]

Verify which processes run on Ubuntu 18.04 start up use $ sudo systemctl list-unit-files.

Check version of Ubuntu[edit | edit source]

$ cat /etc/os-release

CLI Software Management[edit | edit source]

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[edit | edit source]

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[edit | edit source]

My MongoDB notes

PostgreSQL[edit | edit source]

Install PostgreSQL[edit | edit source]

$ 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[edit | edit source]

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[edit | edit source]

My Nginx notes

Install Nginx with virtual hosts and SSL certificates

Apache 2[edit | edit source]

Resources[edit | edit source]

Ubuntu server guide to HTTPD

Ubuntu Open SSL guide

Ubuntu Certificates and Security

SSL Certificate HOWTO not Ubuntu specific

Configure Apache for SSL client certificate authentication

Installation[edit | edit source]

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[edit | edit source]

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[edit | edit source]

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[edit | edit source]

original steps

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[edit | edit source]

My Factorio Info

Hardware[edit | edit source]

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)

Ubuntu video card

Resizing logical volume[edit | edit source]

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
To Linux