Linux系统运维常用命令大全

系统信息

cat /etc/system-release    # 检查系统发布信息
cat /etc/os-release        # 检查操作系统信息

date                       # 查看日期时间



sudo groupadd username                # 添加用户
sudo useradd -g usergroup -m username # 加入用户组
sudo passwd username                  # 添加用户密码
sudo visudo                           # 添加免密使用sudo命令的权限文件末尾添加:avg  ALL=(ALL)  NOPASSWD:ALL
sudo chown usergroup:username /path   # 修改文件夹的组和用户属性
sudo chmod 775 /path                  # 修改文件/文件夹的读/写/执行权限

echo 'username:password' | sudo chpasswd  # 也可以这样修改用户名密码


运行

nohup /root/runoob.sh > runoob.log 2>&1 &  # 启动后台程序 日志定向输出

# 在Shell/Bash脚本中
#!/bin/bash                                # 告诉编译器用bash shell执行(存在前缀'#'符号)
./test.sh  arg1 arg2                       # $0="./test.sh" $1="arg1"   $2="arg2"

# eval 是bash中的一个内置命令,用于将字符串作为Shell命令执行,可能不安全
eval "echo 'Hello, World!'"                # 输出: Hello, World!

rpm -ivh package.rpm                       # 使用 rpm 命令来安装程序包

镜像源

cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup          # 备份原有源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 下载新的源,并命名为CentOS-Base.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 或者这样,用的都是阿里的镜像

yum clean all              # 清除系统所有的yum缓存
yum makecache              # 生成yum缓存

Cmake

project(cppzmq-demo CXX)

set(CMAKE_CXX_STANDARD 11)           
set(CMAKE_CXX_STANDARD_REQUIRED ON)  # 这两行指定C++11编译器

环境变量

vim ~/.bashrc                                              # 用户环境变量配置文件
source ~/.bashrc                                           # 配置文件生效

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/your/lib  # 临时添加库路径

stty erase ^H                                              # 将Backspace键(^H)作为删除键

网络

# 1. 查看网络状态
netstat
# -a 显示 所有活动连接 和监听端口(包括 TCP/UDP)
# -t 仅显示 TCP 协议相关的连接
# -u 仅显示 UDP 协议相关的连接
# -n 禁用域名解析,直接显示 IP 地址和端口号(加快输出速度)
# -p 显示占用端口的 进程名和 PID(需管理员权限)
# -l 仅显示 监听(LISTEN)状态 的端口
netstat -tulnp  # 显示所有 TCP/UDP 监听端口及进程信息
netstat -antp   # 显示所有 TCP 连接及进程信息
netstat -natupl # 较全信息

# 2. Tcpdump 抓包
sudo tcpdump -i any host 119.188.3.12 and port 20000 -w temp.pcap
# -i 指定物理/虚拟网口 any:所有
# host     目的主机
# and port 目的端口
# -w 写入文件名,pcap 文件可用于可视化分析

# 3. 检查UDP端口连通性
nc -uvz IP Port

# 4. 检查TCP端口连通性
telnet IP Port
# IP1:Port1监听: nc -l Port1
# IP2:Port2连接: telnet IP1 Port1

# 5. DNS服务器
cat /etc/resolv.conf      # 查看DNS
nmcli connection show     # 查询连接
sudo nmcli connection modify <连接名> ipv4.dns "8.8.8.8, 114.114.114.114"     # 修改DNS
sudo nmcli connection down   <连接名> && sudo nmcli connection up <连接名>     # 应用更改
cat /etc/resolv.conf      # 验证DNS

邮件

echo "content" | mail -s "title" -a test.txt someone@emil.com
#     内容                 标题       附件      收件箱
mail -s "title" -a test.txt someone@emil.com < content.txt
#        标题       附件      收件箱              内容

数据库

# sqlite3 语句
create table new_table as select * from old_table where ... or ...;          # 查询数据作为 new_table 表
drop table if exists old_table;                                              # 删除表 old_table 
alter table new_table rename to table_name;                                  # 修改表名

# sqlite3 指令
VACUUM;                                                                      # 清理未使用的空间
PRAGMA integrity_check;                                                      # 数据库一致性检查 ok->一致
PRAGMA table_info(table_name);                                               # 查看table_name表字段信息
# 操作数据库
sqlite3 Database.db .dump > dump.sql                                         # 导出建表语句和数据
sqlite3 Database.db       < dump.sql                                         # 用旧数据库dump数据创建新数据库

程序

#include <time>
// C++程序,便捷获取当前时间
char* timestamp_to_date(time_t timestamp) {
    struct tm* tm_info = localtime(&timestamp);
    static char buffer[80];
    strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", tm_info);
    return buffer;
}
char* ts = timestamp_to_date(time(NULL));
std::cout << ts << std::endl;                // 2025-12-29 14:20:00
// GDB 调试
gdb ./your_program core.xxxx
(gdb) bt                                        // 查看调用栈
(gdb) frame N                                   // 切换到相关帧
(gdb) print str                                 // 检查字符串对象
(gdb) print str.c_str()                         // 检查字符串内容
(gdb) x/s str.c_str()                           // 以字符串形式查看内存
(gdb) print _vecdataAccess._M_impl._M_start[0]  // 检查vector
(gdb) print m_shared_ptr._M_ptr                 // 检查共享指针指向的对象
posted @ 2025-12-16 09:16  北纬31是条纬线哦  阅读(6)  评论(0)    收藏  举报