Linux运维必备:30个实用命令全解析
Linux运维
文章目录
前言
目前大部分服务器都是用的Linux,程序员对linux系统的了解也成了必要条件。下面内容是根据我个人在开发中用到的Linux相关知识进行一个分类分享
dump配置
一、dump 安装
1.1 在ubuntu系统上安装dotnet sdk和运行时
执行以下命令
安装sdk
sudo apt install dotnet-sdk-8.0
安装运行时
sudo apt install dotnet-runtime-8.0

安装好了之后环境变量文件会增加以下配置
通过以下命令查看,它处于文件末尾
vi ~/.bashrc

1.2 安装dotnet dump
执行以下命令进行安装
dotnet tool install dotnet-dump -g

1.3 检查是否安装成功
执行以下命令
dotnet tool list -g

1.4 配置环境变量
编辑环境变量文件
vim ~/.bashrc
把以下内容添加至文件末尾
export DOTNET_ROOT=/usr/lib/dotnet
export PATH="$HOME/.dotnet:$HOME/.dotnet/tools:$PATH"
刷新配置文件信息
执行以下命令
source ~/.bashrc
检查是否配置完成
执行以下命令
dotnet-dump -help

二、dump 的使用
2.1对指定进程进行dump转为文件
执行以下命令
120298为pid
dotnet-dump collect --process-id 120298

接下来它会生成一个dump文件,就可以把dump文件放入windbg里进行分析了。
系统配置相关命令
磁盘挂载
为方便后续操作可执行 sudo su 切换到 root 权限
1、查看未挂载磁盘
1.1 使用命令 lsblk 命令列出所有块设备,可以看到未挂载的磁盘 sdb 100GB
1.2 执行 blkid /dev/sdb 若无返回则表明无文件系统,需要格式化磁盘
1.3 执行命令 mkfs.ext4 /dev/sdb 格式化磁盘,若未格式化磁盘无法挂载
2、创建挂载点
2.1 创建一个空文件夹作为该磁盘挂载点,如 mkdir /mnt/mytek
2.2 执行命令 mount /dev/sdb /mount/mytek 将磁盘挂载到挂载点上
2.3 设置开机自动挂载执行
blkid
获取磁盘的UUID,如 UUID=“86d3fb1d-11da-4758-971c-a623cc703335”
2.4 然后编辑 /etc/fstab 文件,新增一行如:(UUID中去除引号)
UUID=86d3fb1d-11da-4758-971c-a623cc703335 /mnt/your_mount_point ext4 defaults 0 2
3、查看挂载详情
查看磁盘剩余容量和使用情况
df-h
查看执行权限
ls -lh
查看文件所属权限
ls -alh
修改用户所属权限
chown 账户 ./*
授予文件执行权限
chmod -x 文件名称
按创建日期降序查看文件
ls -ltr
按创建日期升序查看文件
ls -lt
设置系统时区
sudo timedatectl set-timezone Asia/Shanghai
查看系统当前时间
date
查看系统当前时区
timedatectl
复制粘贴文件
sudo cp -r 被复制文件 新的文件地址
复制文件夹中的文件与该文件夹同级
sudo cp -r 被复制文件夹 .
cp -rf source_folder/* .
日志分析相关命令
查找文件是否存在
find . -name "log-20250603*.gz"
查找文件里的是否包含某个内容
grep 3135373330343136383531 2025-03-12-18.log
如果是压缩包里查找的话
zcat 2025-03-12-18.log | grep 3135373330343136383531
文件倒叙查看(tac )
tac yourfile.txt | more
文件倒叙查看( less)
less +G your_log_file.log
-
+G:在打开文件时直接跳转到文件末尾。 -
your_log_file.log:日志文件的路径。
在 less 中,你可以使用以下快捷键:
-
Ctrl+R:反向滚动(从后往前查看)。 -
Ctrl+F:正向滚动(从前往后查看)。 -
G:跳转到文件末尾。 -
gg:跳转到文件开头。 -
q:退出less。
实时查看文件变化
tail -f yourfile.txt
实时查看服务异常
journalctl -u 服务名称 -f
docker相关命令
docker 查看正在运行的容器
docker ps
docker 查看所有的容器
docker ps -a
docker安装clickhouse
# docker run -d \
# --name clickhouse-server \
# -p 18123:8123 \ # HTTP API端口
# -p 19000:9000 \ # TCP协议端口
# -e CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1 \ # 启用访问控制
# -e CLICKHOUSE_USER=default \ # 管理员用户名
# -e CLICKHOUSE_PASSWORD=SihEct9deWrA9txQ \ # 设置密码
# --ulimit nofile=262144:262144 \
# clickhouse/clickhouse-server
docker run -d --name clickhouse-server -p 18123:8123 -p 19000:9000 -e CLICKHOUSE_USER=default -e CLICKHOUSE_PASSWORD=SihEct9deWrA9txQ clickhouse/clickhouse-server
验证是否安装成功
curl "http://localhost:18123/?user=default&password=SihEct9deWrA9txQ" --data "SELECT 1"
重启容器
docker restart 64e
检查容器
docker inspect 64e
docker设置开机自启
sudo systemctl enable docker
查看docker是否开启开机自启
sudo systemctl is-enabled docker
rabbitmq相关命令
1.查看所有用户
rabbitmqctl list_users
2.创建新用户
rabbitmqctl add_user 用户名 密码
3.创建虚拟机
rabbitmqctl add_vhost 虚拟机名称(示例:/或者/test)
4.授权用户
rabbitmqctl set_permissions -p 虚拟主机 用户名 ".*" ".*" ".*"
5. 授予账户网页端登录权限
rabbitmqctl set_user_tags 用户名 administrator
6.修改rabbitMq用户密码
rabbitmqadmin change_password username 'newpasswd'
7.查看rabbitmq里队列里的数据量
sudo rabbitmqctl list_queues --vhost 虚拟主机名 name messages
8.删除指定vhost下的所有队列
rabbitmqctl list_queues name -p 虚拟主机名 --quiet | xargs -I {} rabbitmqctl delete_queue -p 虚拟主机名 "{}"
mysql相关命令
修改MySQL 配置允许远程访问
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
找到 bind-address 配置项。默II认值通常是 127.0.0.1,表示只允许本地访问。将其修改为 0.0.0.0,表示允许所有外部 IP 访问:
bind-address = 0.0.0.0
配置防火墙
如果你的 Ubuntu 系统启用了防火墙(如 ufw),需要允许外部机器访问 MySQL 的默认端口(3306)。
允许 MySQL 端口通过防火墙:
sudo ufw allow 3306/tcp
检查防火墙状态,确保规则已生效:
sudo ufw status
重启mysql服务
sudo systemctl restart mysql
连接数据库
执行后需要输入对应账户的密码
mysql -h 服务器IP -u 账户-p
用户授予远程访问权限
假设你的用户名是 your_user,密码是 your_password,可以运行以下命令
ALTER USER 'your_user'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';
-- 【非必须】创建一个新用户,允许从任何 IP 地址访问。
CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password';
-- 授予该用户对所有数据库的所有权限。
GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%' WITH GRANT OPTION;
-- 刷新权限,使更改生效。
FLUSH PRIVILEGES;
查看所有库
show databases
切换库
use 库名
查看所有表
show tables;
查看表结构
desc 表名
开启mysql执行sql日志
以下命令是在查找问题是使用,使用后需关闭
查看日志开启状态
SHOW VARIABLES LIKE 'general_log';
开启日志
SET GLOBAL general_log = 'ON';
查看日志保存路径
SHOW VARIABLES LIKE 'general_log_file';
后续直接用相关shell命令查看日志里的信息就可以了
磁盘性能检查(fio)
安装
apt install fio -y
写入速度测试
并发顺序写入:写入100GB数据,1MB块大小,8线程并发
fio --name=heavy-sequential-write --rw=write --direct=1 --ioengine=libaio \
--bs=1M --size=100G --numjobs=8 --iodepth=64 --group_reporting \
--output=heavy_seq_write.txt
读取速度测试
创建用于读取的文件
dd if=/dev/zero of=testfile bs=1G count=100 status=progress
并发顺序读取:1MB块大小,8线程并发
fio --name=heavy-sequential-read --rw=read --direct=1 --ioengine=libaio \
--bs=1M --size=100G --numjobs=8 --iodepth=64 --group_reporting \
--time_based --runtime=300 --output=heavy_seq_read.txt
磁盘使用情况查看(ncdu)
安装
apt install ncdu
扫描指定目录
ncdu /path/to/directory
更多操作
导航操作
- ↑↓ 或 j/k - 上下移动光标
- → 或 l - 进入目录
- ← 或 h - 返回上级目录
- n - 按文件名排序
- s - 按文件大小排序
- C - 按项目数排序
- M - 按修改时间排序
- g - 显示大小百分比条
- ^R (Ctrl+R) - 重新计算当前目录
文件操作
- d - 删除选中的文件/目录
- i - 显示文件/目录信息
- r - 刷新当前目录大小
- t - 切换显示目录/文件
- m - 切换显示模式(大小/项目数)
视图控制
- + - 展开所有子目录
- - - 折叠所有子目录
- a - 在磁盘使用和分配大小间切换
- q - 退出 ncdu
性能监控(Netdata)
安装
官方一键安装脚本
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
使用
安装成功之后通过服务器ip:19999可访问它的网页段
点击【Skip and use the dashboard anonymously】 跳过登录
效果如下
它除了管理端页面意外还提供了webAPI接口,可以获取相关数据
总结
这写命令和软件都是靠经常使用累计的,并非死记硬背,也没必要去背,要用的时候问ai或者网上找也基本能找到。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)