Linux系统相关知识

查看软件包的类型

shell 复制代码
file  sougou.deb

软件源配置文件

  • 方式一:/etc/apt/sources.list
  • 方式二:软件更新器
  • 修改完后 sudo apt udpate
shell 复制代码
sudo apt install package-name         安装软件包
sudo apt remove package-name          移除软件包
sudo apt --purge remove package-name  移除软件包并删除配置
sudo apt show package_name            显示软件包的信息
sudo apt-cache depends <packages>     了解软件依赖关系
sudo apt-get check 检查软件依赖关系

dpkg 是安装离线安装软件包

链接

1、软链接

sbin -> usr/bin 有个文件是sbin,真正的文件在usr/bin下

shell 复制代码
ln -s /tmp/ceshisss abc   创建一个软链接名为abc,真正的地址在/tmp/ceshisss
cat abc 会出错的,因为不是真实存在的
rm old_link 删除一个软链接
ln -s /new/path/to new_link  创建新链接
# 强制创建,如果链接已存在则覆盖
ln -sf /new/path/to/source existing_link

2、硬链接(一个文件的两个名字,修改一个文件会影响另一个文件)

shell 复制代码

查找文件

shell 复制代码
find . -name "file" -type f  2>/dev/null 在当前目录下查找file,-type f 是普通文件
-iname  是忽略大小写的方法
2>/dev/null   报错的不要显示

查找文件内容

shell 复制代码
grep -irn "hello" .  在当前路径下查找
-i 忽略大小写的方式
-n  显示行数
-r  当前路径递归

进程的命令

shell 复制代码
ps -elf  PID 进程的ID号, PPID  父进程ID
ps -aux  PID 进程的ID号
top  实时动态显示进程信息,q 退出
pstree  树状的方式显示进程关系
kill -9 PID  杀死进程

GDB调试工具(编译的时候是调试模式)

shell 复制代码
gdb a.out  开始gdb
b 10   在第10行打断点
r  开始运行,如果不下断点,直接运行到结束
start 也是开始运行,停在程序第一行
p a 打印a的值
l  查看代码的内容
c  从断点处运行到结束或者下一个断点
n  从断点运行下一步
s 进入函数体(step into)
q 退出gdb

调试core文件

shell 复制代码
gdb a.out core 直接显示错误

调试正在运行的进程

shell 复制代码
gdb a.out -p PID  ##PID由ps aux 查到 (ps aux | grep a.out)

调试多进程程序

shell 复制代码
gdb fork_t  开启gdb
set follow-fork-mode  child/father  切换父进程或者子进程
set detach-on-forn off
info inferiors   查看跟踪的进程
inferior 1  切换父进程
inferior 2  切换子进程

调试多线程程序

shell 复制代码
gdb test  开始gdb
info thread  查询显示线程
thread xxx  切换线程
break location thread id GDB为特定线程设置断点
set scheduler-locking on/off GDB设置线程锁z
n  当前线程进行下一步,其他线程正常运行,不会卡在断点
如果设置set scheduler-locking on 一个断点就会永久卡住,能单步调试另一个线程b
b 10  两个线程同时断在第10行
如果b 6 thread 3  给第3线程在第6行打断点

添加环境变量(终端输入一些可执行文件的查找路径)

shell 复制代码
echo $PATH  打印PATH环境变量
printenv   打印所有的环境变量
PATH环境变量,在这些目录下查找文件而无需加路径
vim 
PATH=$PATH:~/local/bin/  只能在当前终端中可用
export PATH=$PATH:~/local/bin/  将PATH设置为全局的环境变量,其他终端也可以用,export是将变量提升为环境变量
相关推荐
跨境麦香鱼几秒前
Playwright vs Puppeteer:2026自动化任务与爬虫工具如何选?
运维·爬虫·自动化
洒家肉山大魔王3 分钟前
PKI/CA X.509证书的基础应用与解读
服务器·https·密码学·数字证书
xingyuzhisuan10 分钟前
Blender渲染加速:4090服务器OptiX后端性能提升50%
运维·服务器·性能优化·gpu算力
Trouvaille ~13 分钟前
【MySQL篇】数据库操作:从创建到管理
linux·数据库·mysql·oracle·xshell·ddl
2401_8396339115 分钟前
Flutter 框架跨平台鸿蒙开发 - 声音密码锁
服务器·flutter·华为·harmonyos
酸钠鈀15 分钟前
AI WB2 SDK Ubuntu 环境搭建
linux·运维·ubuntu
志栋智能17 分钟前
超自动化巡检:实现运维“事前预防”的关键拼图
大数据·运维·网络·人工智能·机器学习·自动化
Robot_Nav19 分钟前
双系统Linux死机解决方法
linux·运维·服务器
七夜zippoe24 分钟前
OpenClaw 技能开发实战:从零到一
运维·服务器·网络·openclaw·技能开发
bloglin9999929 分钟前
docker logs 如何一直监听日志输出
运维·docker·容器