Useful Linux Command Line Stuff: Difference between revisions

From Ideasplace
Jump to navigation Jump to search
Line 198: Line 198:


==Virtualisation==
==Virtualisation==
Install Multipass and launch
====Install Multipass and launch an Ubuntu VM====
an Ubuntu VM
:<code>sudo snap install multipass --classic</code>
sudo snap install multipass --classic
:<code>multipass launch <image> --name <VM name></code>
multipass launch <image> --name <VM name>
::Omitting <image> will launch a VM withthe latest Ubuntu LTS
Omitting <image> will launch a VM with
====Find available images====
the latest Ubuntu LTS
:<code>multipass find</code>
Find available images
multipass find


List existing VMs
====List existing VMs====
multipass list
:<code>multipass list</code>
Get a shell inside a VM
====Get a shell inside a VM====
multipass shell <VM name>
:<code>multipass shell <VM name></code>
More Multipass help at
discourse.ubuntu.com


==OpenStack==
==OpenStack==

Revision as of 11:11, 10 July 2024

From the Ubuntu Server Pro Tips guide:

Networking

Get the IP address of all interfaces

networkctl status

Display all IP addresses of the host

hostname -I

Enable/disable interface

ip link set <interface> up
ip link set <interface> down

Manage firewall rules

enable firewall: sudo ufw enable
list rules: sudo ufw status
allow port: sudo ufw allow <port>
deny port: sudo ufw deny <port>

Connect remotely through SSH

ssh <user>@<host IP>


Packages

Search for packages

apt search <string>
snap find <string>

List available updates

apt list --upgradable

Apply all available updates

sudo apt update && sudo apt upgrade

Install from the Ubuntu archive:

sudo apt install <package>

Install from the snap store:

sudo snap install <package>

Which package provides this file?

sudo apt install apt-file
sudo apt-file update
apt-file <filename or command>

Files

List files

ls

List files with permissions and dates

ls -al

Common file operations

create empty

touch <filename>

create with content

echo "<content>" > <filename>

append content

echo "<content>" >> <filename>

display a text file

cat <file>

copy

cp <file> <target filename>

move/rename

mv <file> <target directory/filename>

delete

rm <file>

Create a directory

mkdir <directory>

Create directories recursively

mkdir -p <directory1>/<directory2>

Delete a directory recursively

rm -r <directory>

Quick file search

locate

Search string in file

grep <string> <filename>

Search string recursively in directory

grep -Iris <string> <directory>

Find files modified in the last n minutes

find <directory> -mmin -<n> -type f
eg. find . -mmin -5 -type f

Show only the nth column

col<n> “<separator>” <filename>
eg. col2 “,” foo.csv

Display file paginated

less <filename>

Display first n lines

head -n <n> <filename>

Display last n lines

tail -n <n> <filename>

Follow file content as it increases

tail -f <filename>

Pack a directory into an archive

zip - zip -r <target> <source dir>
tar.gz - tar cvzf <target>.tar.gz <source dir>

Unpack an archive

zip - unzip <zip file>
tar.gz - tar xf <tar.gz file>

Copy file to remote server

scp <filename> <user@server>====<destination>
eg. scp config.yaml admin@192.0.0.0====/config

Copy directory recursively from remote server

scp -r <user@server>====<source> <destination>
eg. scp -r admin@192.0.0.0====/config /tmp

Security

Show which users are logged in

w

Get password expiration date for <user>

chage -l <user>

Set password expiration date for <user>

sudo chage <user>

Lock a user account

sudo passwd -l <user>

Unlock a user account

sudo passwd -u <user>

List open ports and associated processes

sudo netstat -tulpn

Automatically detect and ban abusive IP addresses

sudo apt install fail2ban

Show banned IP addresses

sudo fail2ban-client status
sudo fail2ban-client status <jail>

Get the support status for installed packages

ubuntu-support-status

Enable kernel live patching:

sudo snap install canonical-livepatch
sudo canonical-livepatch enable <token>

Visit ubuntu.com/livepatch to get a free token for up to 3 machines.

System

Display kernel version

uname -r

Get disk usage

df -h

Get memory usage

cat /proc/meminfo

Get system time

timedatectl status

Set system timezone

timedatectl list-timezones
sudo timedatectl set-timezone <zone>

Get all running services

systemctl --state running

Start or stop a service

service <service> start/stop

Monitor new logs for a service

journalctl -u <service> --since now -f

System

Display kernel version

uname -r

Get disk usage

df -h

Get memory usage

cat /proc/meminfo

Get system time

timedatectl status

Set system timezone

timedatectl list-timezones
sudo timedatectl set-timezone <zone>

Get all running services

systemctl --state running

Start or stop a service

service <service> start/stop

Monitor new logs for a service

journalctl -u <service> --since now -f

Kubernetes and containers

Install MicroK8s and list available add-ons

sudo snap install microk8s --classic
microk8s.status --wait-ready

Enable a MicroK8s add-on

microk8s.enable <service>

View MicroK8s nodes and running services

microk8s.kubectl get nodes
microk8s.kubectl get services

Launch a LXD container

lxd init
lxc launch ubuntu:18.04 <container name>

Or another distro

lxc launch images:centos/8/amd64 <container name>

Get a shell inside a LXD container

lxc exec <name> -- /bin/bash

Push a file to a LXD container

lxc file push <filename> <container name>/<path>

Pull a file from a LXD container

lxc file pull <destination> <container name>/<file path>

Virtualisation

Install Multipass and launch an Ubuntu VM

sudo snap install multipass --classic
multipass launch <image> --name <VM name>
Omitting <image> will launch a VM withthe latest Ubuntu LTS

Find available images

multipass find

List existing VMs

multipass list

Get a shell inside a VM

multipass shell <VM name>

OpenStack

Install OpenStack and launch an instance sudo snap install microstack --classic sudo microstack.init microstack.launch The Horizon dashboard is available at 10.20.20.1 Default credentials: admin / keystone More MicroStack help at microstack.run/docs