
linux
zzti_bsj
没有可以抵达的巅峰
展开
-
[linux] 拥有目录的wx权限,即可删除目录中的文件
linux的灵魂 -> “一切皆文件”删除test目录下的test.txt文件结果显示,除我以外,其他人没有test目录的任何权限ls -ald-wx------ 3 bsj staff 96 5 29 13:49 test不具备目录的r权限,没有查看test目录下文件列表的权限ls test ls: test: Permission denied但我事先知道test下具有test.txt文件,我已经获得test的wx权限,所有我可以进入test目录,以及删除tes原创 2021-05-29 14:10:50 · 359 阅读 · 0 评论 -
Linux -设备的三种文件描述符
在Linux中,一切皆文件,所以操作一个设备的时候,也会有相对的文件描述符,如下是设备的三种文件描述符:文件描述符0:标准输入设备文件描述符1:标准输出设备文件描述符2:标准错误输出设备...原创 2020-03-29 13:28:14 · 919 阅读 · 0 评论 -
Linux - 静态库和动态库的优缺点
静态库 静态库在程序编译时,直接将库中的代码链接到可执行程序中。优点:可执行程序直接运行,不需要额外链接,运行速度快缺点:加入多个程序共同使用同一个静态库,相当于把多段相同的代码保存在不同的可执行程序中,在空间上有一定浪费。1.使可执行程序运行速度快2.浪费一定的空间动态库 可执行程序只保存对应的函数引用表,只有程序执行时,再链接对应的库。优点:多个可执行程序共用同一...转载 2020-03-29 13:19:56 · 1170 阅读 · 0 评论 -
linux配置网络代理
linux配置网络代理在shell的配置文件中添加网络代理打开shell配置文件vim ~/.bashrc在文件末尾添加代理(不加方括号)http_proxy=[你要设置的代理]https_proxy=[你要设置的代理]proxy=[你要设置的代理]...原创 2020-12-28 16:36:35 · 1746 阅读 · 0 评论 -
yum配置代理
yum配置代理编辑yum配置文件vim /etc/yum/conf添加代理ip(不加方括号)proxy=[你要设置的代理]保存,退出,ok原创 2020-12-28 16:28:34 · 1185 阅读 · 0 评论 -
杀死占用端口的进程
查看端口占用情况netstat -ntlp //查看当前所有tcp端口netstat -ntulp | grep 80 //查看所有80端口使用情况杀死 - killkill -9 PID以为执行完这一步就万事大吉了。但是再去查看的时候如果发现该进程还在!那么它可能是作为一个服务被启动的:此时查看服务的状态,并且关闭它。查看服务状态systemctl status [service-name]启动服务systemctl enable [service-name]杀死服务sy原创 2020-12-07 16:40:58 · 174 阅读 · 0 评论 -
Command “/usr/bin/python -u -c “import setuptools, tokenize;__file__=‘/tmp/pip-build-f8m_zq/statsmod
pip安装工具时报错提醒:Command "/usr/bin/python -u -c "import setuptools, tokenize;file=’/tmp/pip-build-f8m_zq/statsmod原因是安装工具包时需要抓取网页因而要处理 https,而处理 https 又依赖加解密算法(即 cryptography 包),而 cryptography 又依赖傅立叶变换的算法以及相应的编译环境。Ubuntu 16.04 默认没有安装 libffi-dev 和 libssl-dev,gc转载 2020-10-21 10:24:28 · 2588 阅读 · 1 评论 -
centos7安装python-pip
centos7安装python-pip当执行yum install -y epel-release python-pip则会报错:没有可用的包于是分开执行yum install -y epel-releaseyum installl -y python-pip在docker构建镜像时,通常构建一层开发环境层镜像,然后基于该层构建项目所在镜像。在docker构建开发层时,无需使用RUN跑两层容器,只需如下构建即可RUN yum install -y epel-release \原创 2020-08-19 20:50:37 · 201 阅读 · 0 评论 -
linux source命令的作用
sourcesource <file_path>在当前bash中,读取文件执行文件中的脚本。声明周期和当前bash一样。原创 2020-07-29 20:28:03 · 297 阅读 · 0 评论 -
线程同步机制 - 互斥关系和合作关系
线程同步和互斥共存的典例 当线程A和线程B都需要访问临界资源a,此时,是线程A先访问呢?还是线程B先访问呢?假如线程A和线程B按一定的次序协同完成一个工作,这就牵扯到了线程同步的问题,如果线程B需要某个特定的条件才能够访问临界资源,而线程A在访问临界资源时才能够触发线程B所需的条件,这个条件就是条件变量。由线程A访问了临界资源时,触发条件变量,访问临界资源结束后,线程B满足条件变量,访问临界资...原创 2020-03-26 15:31:14 · 453 阅读 · 0 评论 -
wait/waitpid - 获取子进程状态
子进程状态 当进程运行的时候,可能会关注进程的状态,父进程可以选择忽略这些状态或者根据这些状态作相应的处理。 当一个进程发生特定的状态变化(暂停、终止、恢复)时,内核向其父进程发送SIGCHLD信号。wait/waitpid函数 作用:等待子进程状态改变,并获取子进程的状态信息。僵尸进程 进程在退出之前会释放掉用户空间的所有资源,但是不会释放PCB等内核资源,这个时候需要父进程...原创 2020-03-22 15:43:19 · 1898 阅读 · 0 评论 -
创建进程
创建进程的两种方式在shell中执行命令或者可执行文件,此时由shell进程调用fork函数创建子进程在代码中调用fork函数创建子进程创建子进程pid_t fork(void)fork函数被正确调用之后,将会在子进程和父进程中分别返回;在子进程中返回0(不合法的PID);在父进程中返回子进程PID,出错则返回-1。根据fork返回值的不同,可以判断当前是在子进程中运行代码还是在父...原创 2020-03-22 15:01:42 · 256 阅读 · 0 评论 -
进程的生命周期
1. 进程创建 由fork()创建进程。在之前所学的知识中可知,PID=0的进程创建了init(PID=1)进程,而init进程是所有进程的父进程。在一个进程中,调用fork()创建的子进程会返回两个值,一个是子进程PID,另一个是0(当返回0的时候,表示当前运行的是子进程)。2. 进程启动 在Linux下使用C语言开发应用,C程序的启动函数时main,进程的启动也时从main函数入口。...原创 2020-03-22 14:39:26 · 1770 阅读 · 0 评论 -
进程空间 - 进程环境
进程空间内核空间用户空间用户空间的各部分栈:支撑函数调用、存放参数、局部变量等堆:动态分配空间未初始化数据:没有明确赋值的变量初始化数据:赋值的变量正文:代码段进程环境命令行参数通过shell执行的命令一般都是 [命令] -[参数] 文件名/其他的形式环境变量表这个表声明了进行执行所需的一些环境变量,每个进程都会有自己的环境变量表,这个表可能来自父进程或者...原创 2020-03-22 14:32:03 · 143 阅读 · 0 评论 -
exec系列函数 - 在进程中运行可执行文件
父进程与子进程 父进程创建子进程,两进程的关系(两种):父子进程执行不同的代码段:父进程希望子进程继承自己的代码段并且拷贝数据段,继承打开的文件以及创建时的状态,然后父子进程执行不同的代码段。创建一个全新进程:父进程希望在子进程当中执行另外一个可执行文件,从而达到创建一个全新进程的目的。exec系列函数 exec函数在进程中是一系列函数,其作用是在进程中执行可执行文件。根据其不同...原创 2020-03-22 13:05:03 · 2114 阅读 · 0 评论 -
进程属性 - 修改文件所有者权限,为什么Linux系统用户能够修改自己的密码
修改文件的所有者权限 进程在创建的时候,会生成与进程相关的进程属性,包括进程的权限、进程的有效用户(组)、真实用户(组)。实验:修改...原创 2020-03-20 14:19:28 · 411 阅读 · 0 评论 -
进程属性 - 有效用户id和真实用户id
进程属性查看当前运行进程状态ps -auxps是process status进程状态的意思,这个命令是查看当前运行进程的状态,u:按照用户名和启动时间的顺序显示,x:显示无控制中断进程。进程的整个生命周期,pid不会更改。获取进程id(pid)pid_t getpid(void)头文件:/usr/include/unistd.h返回类型:pid_t,是一个整形的类型如果执行成功,...原创 2020-03-20 13:31:03 · 916 阅读 · 0 评论 -
进程在内核中的组织
进程和程序的区别程序是可执行的代码以及执行时需要的数据等信息,存放在磁盘上的介质。当程序被操作系统装载到内存并分配给它一定的资源后,此时可以称为进程。程序是静态存储的概念,进程是动态加载以及执行的概念。程序被加载到内存成为进程的流程: 程序被cpu载入到内存,然后利用fork创建进程;而后,cpu初始化进程、调度进程执行。进程的组织形式——进程控制块 进程在内核中以 进程控...原创 2020-03-15 18:38:36 · 487 阅读 · 0 评论 -
Unix/Linux文件系统
Unix/Linux文件系统什么是文件系统? 文件系统是以合理有效的层次结构组织的文件和目录的集合。Linux系统特性“一切皆是文件”,在Linux系统中,无论是普通文件、目录、设备(字符设备、块设备)、套接字,都是文件。类型不同的文件都通过相同的API操作。Unix/Linux允许不同的文件系统共存,常见的文件系统(ext2/ext3/ext4/xfs/btrfs)跨文件系统c...原创 2020-03-09 22:50:02 · 293 阅读 · 0 评论 -
linux编译运行程序
linux编译运行程序gcc的编译过程 如下图所示,ggc工具在编译一个代码文件的时候,要经过以下的步骤,最终链接成可执行文件。gcc命令gcc命令编译程序,用法gcc <文件名> -[参数]常用参数-o filename:该选项不在乎gcc产生什么输出,无论是目标文件、汇编文件、可执行文件还是预处理之后的C代码,示例:gcc main.c -o main-D...原创 2020-03-08 01:28:07 · 902 阅读 · 0 评论 -
常用的linux/unix系统命令
常用的linux/unix系统命令 命令的格式,一般是:命令[参数]<文件/目录名>或者其他参数如:ls -dl run (查看run文件夹目录的详细结构)文件目录类命令浏览目录类命令ls命令list,显示当前文件夹下的文件及文件夹,用法ls -[参数] <目录名称>(位置可调)。常用参数:-a(显示徐所有文件夹下的文件及目录)、-l(现实详细的...原创 2020-03-08 00:21:07 · 315 阅读 · 0 评论 -
系统调用和库函数
系统调用和库函数 这一部分主要是为了用户能够方便的和操作系统交互,由此操作系统提供了用户接口,让用户或者开发人员通过这些接口方便的与系统进行交互。用户接口 用户接口分为三部分:命令接口(windows中为cmd命令行,linux中为terminal,用户可以通过执行命令完成相应的任务)、程序接口(系统程序是取得操作系统服务的唯一途径,每一个系统调用都是一个能够完成特定的功能的子程序,用户...原创 2020-03-07 03:18:48 · 253 阅读 · 0 评论 -
1. Unix/Linux体系结构 -内核的功能
内核的功能 linux操作系统的层面分为用户层、内核层(两个子系统:文件系统和进程系统)、物理层。这里主要学习内核层。 内核对操作系统的管理,分为四个管理方面:内存管理、进程管理、文件管理、设备管理。内存管理 内存管理分为四个部分:分别为内存分配调用、内存保护、地址映射、内存扩充。内存分配 内存分配有两种方式:静态分配和动态分配。 所谓的动态分配是指在程序运行的过程中,...原创 2020-03-07 02:24:56 · 357 阅读 · 0 评论