Ubuntu Server CLI专业提示

基础

网络

获取所有接口的IP地址
networkctl status

显示主机的所有IP地址
hostname -I

启用/禁用接口
ip link set <interface> up
ip link set <interface> down

显示路线
ip route

将使用哪条路线到达主机
ip route get <IP>

安全

显示已登录的用户
w

获取用户密码到期日期
chage -l <user>

设置用户密码到期日期
sudo chage <user>

锁定用户帐户
sudo passwd -l <user>

解锁用户密码
sudo passwd -u <user>

自动检测并禁止滥用IP地址
sudo apt install fail2ban

显示被禁止的IP地址
sudo fail2ban-client status
sudo fail2ban-client status <jail>

将使用哪条路线到达主机
ip route get <IP>

列出打开的端口和关联的进程
sudo ss -tulpn

管理防火墙规则

开启防火墙 sudo ufw enable

列出规则 sudo ufw status

允许端口 sudo ufw allow <port>

拒绝端口 sudo ufw deny <port>

通过SSH远程连接
ssh <user>@<host IP>

Ubuntu服务

启用Ubuntu服务。

访问 ubuntu.com/advantage,获得最多3台机器的免费代币(如果你是ubuntu社区的官方成员,则为50台)。
sudo ua attach <token>

查看Ubuntu Advantage服务的可用性和权利
sudo ua status

启用或禁用服务
sudo ua enable <service>
sudo ua disable <service>

修复CVE/USN
sudo ua fix <cve/usn>

查看软件包更新系统的可用性状态
sudo ubuntu-security-status

查看Livepatch已修补的CVE
canonical-livepatch status --verbose

软件包

搜索程序包
apt search <string>
snap find <string>

列出可用的软件包版本
apt-cache policy <package>

列出可用更新
apt list --upgradable

应用所有可用的更新
sudo apt update && sudo apt upgrade

从Ubuntu归档安装
sudo apt install <package>

从Snap Store安装
sudo snap install <package>

卸载软件
sudo apt remove <package>

删除程序包及其所有配置文件
sudo apt purge <package>

重新安装损坏的包装
sudo apt install -f --reinstall <package>

此软件包提供哪些文件?
dpkg-query -L <package>

哪个包提供了此文件?
dpkg-query -S <path>

文件

列出具有权限和日期的文件
ll

常见文件操作

创建空文件 touch <filename>

创建制定大小文件 fallocate -l <size> <filename>

使用内容创建 echo "<content>" > <filename>

快速文件搜索
locate <filename>

在文件中搜索字符串
grep <string> <filename>

在目录中递归搜索字符串
grep -Iris <string> <directory>

高级

文件

查找最近分钟内修改的文件
find <directory> -mmin -<n> -type f
eg. find . -mmin -5 -type f

仅显示第n列
col<n> "<separator>" <filename>
eg. col2 "," foo.csv

显示分页的文件
less <filename>

显示前行
head -n <n> <filename>

显示最后行
tail -n <n> <filename>

随着文件内容的增加而显示
tail -f <filename>

将目录打包到存档中

tar.gz tar cvzf <target>.tar.gz <source dir>

zip zip -r <target> <source dir>

打开归档文件的包装

tar.gz tar xf <tar.gz file>

zip unzip <zip file>

将文件复制到远程服务器
rsync <filename> <user@server>:<destination>
eg. rsync config.yaml
admin@192.0.0.0:/config

从远程服务器递归复制目录
rsync -avruz <user@server>:<source> <destination>
eg. rsync -avruz admin@192.0.0.0:/
config /tmp

系统

显示内核版本 uname -r

获取根磁盘使用情况 df -h

获取内存使用情况 cat /proc/meminfo

获取系统时间 timedatectl status

设置系统时区
timedatectl list-timezones
sudo timedatectl set-timezone <zone>

获取所有正在运行/失败的服务
systemctl --state running
systemctl --state failed

启动、停止或重新启动服务
systemctl start/stop/restart <service>

获取系统服务的全部内容
systemctl cat <service>

编辑系统服务避免与程序包更新发生冲突
systemctl edit <service>

监视服务的新日志
journalctl -u <service> --since now -f

自启动以来监视所有日志 journalctl --boot 0

获取最近登录的列表 last

显示正在运行的进程 htop

按id终止进程 kill <process id>

按名称终止进程 pkill <process name>

在后台运行命令 <command> &

挂断并登录到文件后仍然活着

nohup <command> >> /var/log/yourcommand.log 2>&1 &

显示后台命令 jobs

将命令 置于前台 fg <n>

工作站上的Ubuntu虚拟机

安装Multipass并启动Ubuntu虚拟机
sudo snap install multipass
multipass launch <image> --name <VM name>

省略 将使用最新的Ubuntu LTS启动虚拟机

查找可用镜像
multipass find

列出现有虚拟机
multipass list

在虚拟机中获取外壳
multipass shell <VM name>

更多帮助在 discourse.ubuntu.com

Micro clouds

启动LXD容器
lxd init
lxc launch ubuntu:18.04 <container name>

或者另一个发行版
lxc launch images:centos/8/amd64 <container name>

将外壳放入LXD容器
lxc exec <name> bash

将文件推送到LXD容器
lxc file push <filename> <container name>/<path>

从LXD容器中提取文件
lxc file pull <destination> <container name>/<file path>

启动LXD虚拟机
lxc launch images:ubuntu/20.04 <vm name> --vm

在LXD虚拟机中获取外壳
lxc exec <name> bash

更多帮助在 linuxcontainers.org/lxd

裸机资源调配

使用MAAS演示启动虚拟机
wget -qO- https://raw.githubusercontent.com/canonical/maas-multipass/main/maas.yml | multipass launch --name maas -c4 -m8GB -d32GB --cloud-init -

查找MAAS演示服务器的IP地址
multipass list | grep maas | awk '{print $3}'

使用多路径列表中的IP访问MAAS仪表板
http://10.x.x.x:5240/
Default username and password is admin:admin

更多帮助在 maas.io

Kubernetes

安装MicroK8并列出可用的附加组件
sudo snap install microk8s --classic
microk8s.status --wait-ready

使用MicroK8s加载项启用辅助Kubernetes服务
microk8s enable <add-ons>

查看MicroK8s节点和正在运行的服务
microk8s.kubectl get nodes
microk8s.kubectl get services

更多帮助在 microk8s.io/docs

架构

安装MicroStack并启动测试实例
sudo snap install microstack --devmode --beta
sudo microstack.init --auto --control
microstack.launch cirros -n test

获取管理员密码
sudo snap get microstack config.credentials.
keystone-password

Access Horizon面板
https://10.20.20.1

更多帮助在 microstack.run/docs

相关推荐
志栋智能2 小时前
超自动化运维如何支持合规审计?
运维·自动化
小诗懂技术2 小时前
【网络通信UDP】基础 进程间不同主机的通信
运维·服务器·网络
名字还没想好☜2 小时前
Docker 容器安全加固实战:非 root、只读根文件系统、drop capabilities 与最小攻击面
运维·安全·docker·容器·kubernetes
琥珀色糖3 小时前
Linux守护进程
linux·终端·守护进程·会话·进程组
鹤落晴春3 小时前
有状态应用 vs 无状态应用
运维·云原生·k8s
starzy19905 小时前
虚拟化解决方案全景:软件虚拟化、硬件虚拟化与 Docker 的位置
运维·docker·容器
Neighbor_OldY5 小时前
云上安全配置审计与误配置修复实战:从安全组、OSS、RAM到数据库的全栈排查复盘
大数据·运维·安全·云计算
开心大爆炸6 小时前
xrdp 连接 登录对话框输入密码后闪退
linux·运维·服务器
oushaojun27 小时前
大厂 C++ 面试:深度剖析 Linux Signal 信号机制(转)
linux
苏生Susheng8 小时前
【软件实施】Linux系统Shell脚本教程
linux·运维·服务器·chrome·spring boot·学习·实施