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是将变量提升为环境变量
相关推荐
QT 小鲜肉2 小时前
【Linux命令大全】001.文件管理之gitview命令(实操篇)
linux·运维·服务器·chrome·笔记
Gofarlic_oms12 小时前
集中式 vs 分布式许可:跨地域企业的管控架构选择
大数据·运维·人工智能·分布式·架构·数据挖掘·需求分析
澄江静如练_2 小时前
表单输入绑定
服务器·前端·javascript
DeeplyMind2 小时前
Linux MMU Notifier 机制与应用系列目录
linux·驱动开发·mmu notifier
摇滚侠2 小时前
40分钟的Docker实战攻略,一期视频精通Docker
运维·docker·容器
G_H_S_3_2 小时前
【网络运维】OpenStack 块存储与对象存储:Cinder 与 Swift 篇
linux·运维·网络·openstack
2301_800050992 小时前
OpenStack 管理
运维·openstack
一点晖光3 小时前
MongoDB特殊查询语句
linux·mongodb
采云 AI3 小时前
小程序订单接单超时时间功能解释
服务器·小程序·apache