linux学习之一些琐碎知识点
一、python
问:django中project和app之间到底有什么不同?
答:他们的区别就是一个是配置,另一个是代码。
一个project包含很多个django app以及对它们的配置。技术上,project的作用是提供配置文件,比方说哪里定义数据库连接信息,安装的app列表,TEMPLATE_DIRS等等。
一个app是一套django功能的集合,通常包括模型和视图,按python的包结构的方式存在。例如:django本身内建有一些app,例如注释系统和自动管理界面。app的一个关键点是他们是很容易移植到其他project和被多个project复用。
Note:django中使用模型对象更改字段值,并不是只更新修改过的那个字段,所有的字段都会被更新。这个操作有可能引起竞态条件,这取决于你的应用程序。
二、linux命令
问:install和cp的区别
答:根据man的解释:intall --copy files and set attributes
cp --copy files and directories
这两个命令很类似,都可以将文件、目录拷贝到指定的地点。但是,install允许你控制目标文件的属性。install通常用于程序的makefile,使用它来将程序拷贝到目标(安装)目录。
install命令会恰当的处理文件权限的问题。比如说 ,install -c会把目标文件的权限设置为755
install命令可以打印出更多更合适的debug信息,还会自动处理selinux上下文的问题
重要的一点,如果目标文件存在,cp会先清空文件后往里写入新文件,而install则会先删除掉原先的文件,然后写入新文件。这是因为往正在使用中的文件写入内容可能会导致一些问题,比如说写入正在执行的文件可能失败,比如说往已经在持续写入的文件句柄中写入新文件会产生错误的文件。而使用install先删除后写入(会生成新的文件句柄)的方式去安装就能避免这些问题了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?