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是将变量提升为环境变量
相关推荐
AOwhisky1 小时前
Python 学习笔记(第十四期)——运维自动化(下·中篇):远程文件传输——paramiko进阶篇
运维·python·学习·云原生·自动化·文件传输·paramiko
imc.112 小时前
linux基础IO
linux·运维·服务器
躺不平的理查德2 小时前
让Ubuntu 的第二块网卡 ens37 永久固定为 192.168.30.111
运维·服务器
bitbrowser2 小时前
Facebook 验证反复回到原页面,应该从哪里排查
运维·服务器·facebook
Land03293 小时前
AI网页元素变化无法自动修复?自带元素自愈的自动化解决方案
运维·人工智能·ai·自动化·rpa
fengyehongWorld3 小时前
Jenkins 安装与简单配置
运维·jenkins
云智慧AIOps社区3 小时前
2026 国产化 ITSM 替代指南:横向测评 ServiceNow、轻帆云、Jira等五款主流IT服务管理平台
运维·人工智能·运维开发·it服务管理·itsm平台
糖果店的幽灵3 小时前
langgraph的分支结构之 - 静态分支详解
java·服务器·数据库·langgraph
虹科网络安全3 小时前
艾体宝新闻|从 SQL 注入到服务器接管:CVE-2026-57517 暴露 Web 管理面板的供应链与安全编码风险
服务器·前端·sql
Urbano3 小时前
针织卫衣全流程生产工序科普:自动化替代、产能优化与设备选型实战方案
运维·自动化