网络
获取所有端口的IP地址
networkctl status
显示所有域名的IP地址
hostname -I
启用/禁用端口
ip link set <interface> up
ip link set <interface> down
管理防火墙规则
启用防火墙:sudo ufw enable
列出规则:sudo ufw status
允许端口:sudo ufw allow <port>
禁用端口:sudo ufw deny <port>
通过ssh远程连接
ssh <user>@<host IP>
包管理
搜索包
apt search <string>
snap find <string>
列出可用的更新
apt list --upgradable
应用所有可用更新
sudo apt update && sudo apt upgrade
安装Ubuntu档案
sudo apt install <package>
从snap商店安装
sudo snap install <package>
哪个包提供了这个文件
sudo apt install apt-file
sudo apt-file update
apt-file <filename or command>
文件
列出文件
ls
列出文件包含权限和日期
ls -al
常用文件操作
创建空文件:touch <filename>
创建有内容的文件:echo "<content>" > <filename>
添加内容:echo "<content>" >> <filename>
展示文字:cat file
复制:cp <file> <target filename>
移动/重命名:mv <file> <target directory/filename>
删除:rm <file>
创建目录
mkdir <directory>
创建多层目录
mkdir -p <directory1>/<directory2>
删除多层目录
rm -r <directory>
快速文件查找
locate <q>
在文件中查找字符串
grep <string> <filename>
在目录中搜索字符串
grep -Iris <string> <directory>
查找最后几分钟修改的文件
find <directory> -mmin -<n> -type f
eg. find . -mmin -5 -type f
只展示第几列
col<n> "<separator>" <filename>
eg. col2 "," foo.csv
展示分页文件
less <filename>
展示文件前几行
head -n <n> <filename>
展示文件后几行
tail -n <n> <filename>
展示不断增加内容的文件
tail -f <filename>
打包一个目录到档案中
zip: zip -r <target> <source dir>
tar.gz:tar cvzf <target>.tar.gz <source dir>
解压一个档案
zip: unzip <zip file>
tar.gz: tar xf <tar.gz file>
复制文件到远程服务器
scp <filename> <user@server>:<destination>
eg. scp config.yaml admin@192.0.0.0:/config
从远程服务器复制一个目录
scp -r <user@server>:<source> <destination>
eg. scp -r admin@192.168.0.0:/config /tmp
安全
显示当前登录的用户
w
获取用户的密码过期日期
chage -l <user>
为用户设置密码过期日期
sudo chage <user>
锁定用户账号
sudo passwd -l <user>
解锁用户账号
sudo passwd -u <user>
列出打开的端口和关联的进程
sudo netstat -tulpn
自动检测和禁用滥用的IP地址
sudo apt install fail2ban
显示禁用的IP地址
sudo fail2ban-client status
sudo fail2ban-client status <jail>
为安装的包获取支持
ubuntu-support status
启用内核实时修补
sudo snap install canonical-livepatch
sudo canonical-livepatch enable <token>
系统
展示内核版本
uname -r
获取磁盘使用情况
df -h
获取内存使用情况
cat /proc/meninfo
获取系统时间
timedatectl status
获取系统时区
timedatectl list-timezones
sudo timedatectl set-timezone <zone>
获取所有运行的服务
systemctl --state running
启动或停止一个服务
service <service> start/stop
监控一个服务的新日志
journalctl -u <service> --since now -f
获取最近登录的列表
last
获取运行的进程
htop
根据id杀死进程
kill <process id>
根据名称杀死进程
pkill <process name>
在后台执行名称
<command> &
展示后台名称
jobs
将名称
fg <n>
Kubernetes和容器
安装MicroK8s并列出附件
sudo snap install microk8s --classic
microk8s.status --wait-ready
启用一个MicroK8s附件
microk8s enable <service>
查看MicroK8s节点和运行服务
microk8s.kubectl get nodes
microk8s.kubectl get services
启动一个LXD容器
lxd init
lxc launch ubuntu:18.04 <container name>
或者另一个磁盘
lxc launch images:centos/8/amd64 <container name>
在LXD容器内部获取一个shell
lxc exec <name> -- /bin/bash
推送一个文件到一个LXD容器
lxc file push <filename> <container name>/<path>
从LXD容器中获取一个文件
lxc file pull <destination> <container name>/<file path>
虚拟化
安装Multipass并启动一个Ubuntu VM
sudo snap install multipass --classic
multipass launch <image> --name <VM name>
Omtting <image> will launch a VM with the latest Ubuntu LTS
查找可用镜像
multipass find
列出可用虚拟机
multipass list
从虚拟机里获取一个shell
multipass shell <VM name>
OpenStack
安装OpenStack并启动一个实例
sudo snap install microstack --classic
sudo microstack.init
microstack.launch
The Horizon dashboard is available at 10.20.20.1
Default credentials: admin / keystone