ubuntu常用命令

创建日期:2024-06-21
更新日期:2024-12-14

网络

获取所有端口的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