Useful Linux Command Line Stuff

From Ideasplace
Jump to navigation Jump to search

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