Useful Linux Command Line Stuff

From Ideasplace
Jump to navigation Jump to search

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 More MicroK8s help at microk8s.io/docs 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> More LXD help at linuxcontainers.org/lxd

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 with the latest Ubuntu LTS Find available images multipass find

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

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