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是将变量提升为环境变量
相关推荐
wangjialelele14 分钟前
Linux下的IO操作以及ext系列文件系统
linux·运维·服务器·c语言·c++·个人开发
HypoxiaDream31 分钟前
LINUX-Ext系列⽂件系统
linux·运维·服务器
小毛驴85031 分钟前
Linux curl 命令用法
linux·运维·chrome
李斯啦果38 分钟前
【Linux】Linux目录配置
linux·运维·服务器
AI+程序员在路上39 分钟前
linux下线程中pthread_detach与pthread_join区别
linux·运维·服务器
代码游侠40 分钟前
C语言核心概念复习——C语言基础阶段
linux·开发语言·c++·学习
logocode_li41 分钟前
说透 Linux Shell:命令与语法的底层执行逻辑
linux·运维·ssh
CHENKONG_CK1 小时前
晨控CK-LR08-E00与汇川H5U系列PLC配置MODBUSTCP通讯连接手册
linux·服务器·网络
LongQ30ZZ1 小时前
Linux-基础IO
linux
来鸟 鸣间1 小时前
Linux下3个so库之间的关系
linux·运维