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

相关推荐
^yi12 分钟前
【Linux系统编程】对操作系统的理解
linux·运维·服务器·操作系统·系统调用·os
Kina_C28 分钟前
LVS-NAT 负载均衡实验从环境搭建到规则持久化
linux·运维·服务器·负载均衡·lvs
小肝一下41 分钟前
7. 库制作与原理
linux·c语言·操作系统·bash·shell·动静态库
Android洋芋1 小时前
PrintFriendly网页文章转PDF插件工具及技术分析
运维·服务器·pdf·网页转pdf
Elastic 中国社区官方博客1 小时前
使用重新设计的 AutoOps 更快地进行 Elasticsearch 问题排查
大数据·运维·前端·人工智能·elasticsearch·搜索引擎·全文检索
RoboWizard1 小时前
金士顿高速闪存盘 单双接口适配多元存储需求
大数据·运维·人工智能·智能手机·云计算
hkj88081 小时前
Ubuntu 20.04 安装 OpenJDK 17
linux·运维·ubuntu
huainingning1 小时前
防火墙重启后ssl登录提示证书过期临时解决方法
linux·服务器·ssl
sulikey1 小时前
服务器安装Docker教程。如何在云服务器安装Docker容器?
运维·服务器·ubuntu·docker·安装教程·云服务器
许彰午1 小时前
17-22-运维与高级主题
运维·网络