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是将变量提升为环境变量
相关推荐
sdm0704271 小时前
yum和开发工具vim/gcc
linux·服务器·centos
zhaoyufei1331 小时前
RK3568-11.0 设置WiFi p2p静态IP
服务器·tcp/ip·p2p
Leinwin6 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
2401_865382506 小时前
信息化项目运维与运营的区别
运维·运营·信息化项目·政务信息化
漠北的哈士奇7 小时前
VMware Workstation导入ova文件时出现闪退但是没有报错信息
运维·vmware·虚拟机·闪退·ova
如意.7597 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
Thera7777 小时前
C++ 高性能时间轮定时器:从单例设计到 Linux timerfd 深度优化
linux·开发语言·c++
运维小欣7 小时前
智能体选型实战指南
运维·人工智能
yy55277 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ8 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器