Linux
zpznba
日日行,不怕千万里。常常做,不怕千万事。
展开
-
Linux中的EXT2文件系统
1.分区分区是为了方便操作系统在一块硬盘上进行数据访问,即去哪里读取数据。分区的要点是记录每一个分区的起始和结束柱面。这个数据存在MBR的分区表中。MBR只能存四个分区的记忆,可以是四个主分区或三个主分区一个扩展分区。(3P+1E或4P)2.文件系统对分区进行格式化是为了在分区上建立文件系统。一个分区通常只能格式化为一个文件系统,但是磁盘阵列等技术可以将一个分区格式化为多个文件系统...原创 2019-01-11 16:04:11 · 2145 阅读 · 1 评论 -
【linux基础】 find的用法
1. 根据文件名查找:如查找当前目录下名为"programer"的文件:2.根据文件类型查找如下是查当前目录下的目录:3.根据文件大小查找查找当前目录下大于4k小于10k的文件:4.按日期查询:5.高级用法(和管道相结合)find ~ -type d | xargs ls -l查找家目录中目录文件的详细信息。【注意】和grep的区...原创 2019-05-31 22:00:43 · 373 阅读 · 0 评论 -
gcc工作流程和参数
gcc只是做了编译那部分的工作,其余的预处理、汇编、链接都是调用的其他工具完成的:gcc参数:-v : 查看版本-I :编译时指定头文件的目录-c : 生成二进制文件xxx.o-O : 指定生成文件的名字-g : 用于gdb调试-D :添加宏-Wall : 添加警告信息...原创 2019-06-06 17:54:35 · 241 阅读 · 0 评论 -
Linux中压缩工具tar、rar、zip的用法
一.Linux中常见的压缩格式有两种:.gz --是用gzip压缩工具压缩的 .bz2 --是用bzip2压缩的二.常用压缩命令1.tar参数:c -- 创建压缩文件 x -- 释放压缩文件 v -- 打印提示信息(可不写) f -- 指定压缩包的名字 z -- 使用gzip压缩文件 (为方便区分,将文件压缩名写成 xxx.tar.gz) ...原创 2019-06-03 14:39:25 · 568 阅读 · 0 评论 -
linux下的静态库和动态库
一. 静态库的制作和使用1. 命名规则: libtest.a (test为静态库的名字)2. 制作步骤:先由源代码.cpp或.c文件生成.o文件:gcc a.c b.c -c 将.o文件用ar工具打包成静态库: ar rcs libtest.a a.o b.o3. 使用gcc test.c -I ./ -L./lib -ltest -o app第一个是 -I...原创 2019-06-09 22:13:58 · 175 阅读 · 0 评论 -
Linux中软件的安装和卸载
一、rpm包安装方式步骤:1、找到相应的软件包,比如soft.version.rpm,下载到本机某个目录;2、打开一个终端,su -成root用户;3、cd soft.version.rpm所在的目录;4、输入rpm -ivh soft.version.rpm详细介绍:1. 安装: rpm –ivh rpm的软件包名2. 卸载: rpm –e 软件名2.用y...原创 2019-06-04 15:53:44 · 248 阅读 · 0 评论 -
Vim命令模式下一些技巧
1.保存退出: ZZ2.代码缩紧格式整理: gg=G3.光标移动 : H(左)J (下) K (上) L(右)当前行首 : 0当前行尾 : $当前文件头部 : gg当前文件尾部 : G指定行数 : 如跳转到123行 : 123G从当前行向后跳n行 : n + 回车4.删除删除字符: 删除光标后 : x 删除光标前 : X删除单词:...原创 2019-06-04 18:02:45 · 176 阅读 · 0 评论 -
关于Linux文件中的阻塞和非阻塞
阻塞与否是文件的属性普通文件默认不阻塞 终端设备:/dev/tty 默认阻塞 管道、套接字默认阻塞举个栗子,下面利用非阻塞模式打开文件,然后不断循环读取缓冲区中的数据,如果没有数据则循环等待;#include<unistd.h>#include<fcntl.h>#include<errno.h>#include<stdio.h>...原创 2019-07-13 11:45:37 · 929 阅读 · 0 评论 -
linux 用stat 函数来查看文件大小
stat 函数讲解表头文件: #include <sys/stat.h> #include <unistd.h>定义函数: int stat(const char *file_name, struct stat *buf);函数说明: 通过文件名filename获取文件信息,并保存在buf所指的结构体stat中...原创 2019-07-13 12:02:54 · 2373 阅读 · 0 评论 -
用stat函数获取文件信息
前面我们初步认识了stat这个函数,并用它学会了查看文件的大小:linux 用stat 函数来查看文件大小;现在我们来再看看stat 结构体中的st_mode 成员,st_mode 其实是2byte的16bit的数,下面是用八进制表示的st_mode ,总共包含了下面这些情况: S_IFMT 0170000 掩码 S_IFSOCK 0140000 套接字...原创 2019-07-13 16:59:52 · 739 阅读 · 0 评论 -
lstat函数、fstat函数和stat函数获取文件属性的区别
1.lstat 和 stat 的区别当我们用ln -s 去软链接一个文件时,如果用stat 去查看这个链接文件的属性,则它指向的是链接文件指向的原文件的属性;而用lstat 则可以读取到链接文件本身的属性。2. fstat 和 stat 的区别int fstat(int fd,struct stat *buf);int stat(const char *pathname,st...原创 2019-07-13 17:18:12 · 888 阅读 · 0 评论 -
标准c库函数与Linux下系统函数库 区别 (有无缓冲区引起的效率变化)
我们都知道,C语言在UNIX/Linux系统下有一套系统调用(系统函数),比如文件操作open()、close()、write()、read()等,而标准C语言的库函数中也有一套对文件的操作函数fopen()、fclose()、fwrite()、fread()等.。那么同样是对文件的操作函数,标C与UC有什么区别呢?是标C效率高还是UC效率高呢?今天就让我们来一探究竟。程序作用:将0~9999...转载 2019-06-30 20:27:39 · 1174 阅读 · 0 评论 -
vim中的分屏功能
一、将当前文件的进行分屏1.水平分屏命令模式下 : sp2.垂直分屏命令模式下 : vsp3. 分屏切换 :Ctrl + w + w (连续两次w)4.关闭所有qall5.保存所有wall二、在当前文件中打开其他文件并分屏查看sp 或 vsp 的后面加上需要打开的文件三、在shell 中直接分屏多个文件1.水平分屏vim -o main....原创 2019-06-05 15:44:13 · 182 阅读 · 0 评论 -
vim末行模式下的替换操作
先切换到末行模式,在 : 后面加命令:1.替换当前行的元素s/old/new/gcg : 替换所以 c : 替换时添加提示信息2.替换22-28行的某一元素:22,28s/old/new/g3.替换整个文件中的某一元素%s/old/new/g...原创 2019-06-05 15:24:52 · 2091 阅读 · 0 评论 -
linux中的硬链接和软链接
硬链接:指向同一个索引节点,进而指向同一个物理文件。只要有一个硬链接存在,物理文件就不会被清除。硬链接和原文件是“平等”的,只删除一个不能使文件真正被删除。软链接:指向一个新的索引节点,该节点指向的空间存的是文件的路径,根据路径找到物理文件。如果软链接创建时指定的那个目录被“删除”,则无法访问物理文件。软链接是附属于原文件的,删除、更改原文件路径后软链接将失效如图,file是原文件,硬链接...原创 2019-01-13 11:31:49 · 277 阅读 · 0 评论 -
Linux中PATH环境变量的查看和修改
【问题】平时我们在linux环境下安装软件时会习惯的安装在/usr/local/目录下,shell脚本可能会存放在/usr/local/bin/ 目录下,但是可能因为不同系统的原因。/usr/local/bin/可能不在环境变量中,导致不能在全局执行shell脚本。 解决办法 查看现有PATH 这里是现有的PATH,执行某一个命令时,会根据PATH设置的顺序一个一个目录的去寻找...原创 2019-01-09 21:22:24 · 435 阅读 · 0 评论 -
vim 的三个模式
一般指令模式(Command mode):VIM 的默认模式,可以用于移动游标查看内容; 编辑模式(Insert mode):按下 "i" 等按键之后进入,可以对文本进行编辑; 指令列模式(Bottom-line mode):按下 ":" 按键之后进入,用于保存退出等操作。在指令列模式下,有以下命令用于离开或者保存文件。命令 作用 :w 写入磁盘 :w! 当...原创 2019-01-09 21:31:05 · 795 阅读 · 0 评论 -
Linux磁盘分区
一.磁盘组成磁盘主要由盘面(也叫盘片)、磁头臂(也叫机械手臂)、读写头(也叫磁头)与转轴组成,盘面又可以分为磁道、柱面,扇区磁盘的基本构成如下: 盘面:磁盘是由一叠磁盘面组成磁头(Heads):每个磁头对应一个磁盘面,负责该磁盘面上的数据的读写。磁头臂:磁头臂具有伸展性,负责读写头在盘片上进行读写操作转轴:让盘面转动在盘面上,整个盘面上面好像有多个同心圆绘制的饼...原创 2019-01-10 10:58:06 · 424 阅读 · 0 评论 -
vim中的查找和替换
查找在normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车。 Vim会跳转到第一个匹配。按下n查找下一个,按下N查找上一个。Vim查找支持正则表达式,例如/vim$匹配行尾的"vim"。 需要查找特殊字符需要转义,例如/vim\$匹配"vim$"。注意查找回车应当用\n,而替换为回车应当用\r(相当于<CR>)。大小写敏感查找在查找模式中加入\...原创 2019-03-08 22:18:10 · 145 阅读 · 0 评论 -
linux中echo的使用方法
1.echo命令我们经常使用的选项有两个,一个是-n,表示输出之后不换行。echo -n 不换行输出$echo -n "123"$echo "456"最终输出 123456而不是123456另外一个是-e,表示对于转义字符按对应的方式处理,假设不加-e那么对于转义字符会按普通字符处理。echo -e "OK! \n" # -e 开启转义echo "It i...转载 2019-04-10 14:43:52 · 330 阅读 · 0 评论 -
如何在linux下写静态链接库并卖给别人?
今天, 我们我们来说说如何在linux下写静态链接库并卖给别人。步骤一:写test.h文件, 内容为:void print();写test.c文件, 内容为:#include <stdio.h>#include "test.h"void print(){ printf("I am a little bit hungry now.\n");...原创 2019-05-09 18:04:33 · 144 阅读 · 0 评论 -
静态库和动态库的区别
1.动态链接库有利于进程间资源共享当某个程序在运行中要调用某个动态链接库函数的时候,操作系统首先会查看所有正在运行的程序,看在内存中是否已经有此库函数的拷贝了。如果有,则共享这个拷贝,如果没有时才链接载入。这样可以节省一些内存资源。C语言的标准库就是动态链接库,也就是说系统中所有运行的程序共享着同一个C语言标准库的代码段。对于静态库来说, 如果系统中多个程序都要调用某个静态链接库的函数时,则每...原创 2019-05-20 09:59:47 · 616 阅读 · 0 评论 -
如何在linux下写动态链接库并卖给别人?
前面我们讨论了linux下的静态链接库, 现在是该说说linux下的动态链接库了。 在本文中, 我们不讲动态链接库有哪些好处, 你去网上搜, 一搜一大堆。 我们仅仅来说说, 如何在linux下写动态链接库, 如何卖掉。卖方步骤一:写test.h文件:void print();写test.c文件:#include <stdio.h>#include "te...转载 2019-05-15 17:58:27 · 118 阅读 · 0 评论 -
malloc原理和内存分配
当一个进程发生缺页中断的时候,进程会陷入内核态,执行以下操作:1、检查要访问的虚拟地址是否合法2、查找/分配一个物理页3、填充物理页内容(读取磁盘,或者直接置0,或者啥也不干)4、建立映射关系(虚拟地址到物理地址)重新执行发生缺页中断的那条指令如果第3步,需要读取磁盘,那么这次缺页中断就是majflt,否则就是minflt。内存分配的原理从操作系统角度来看,进程分配内存有...转载 2019-05-22 15:45:17 · 1389 阅读 · 0 评论 -
Vim中的模式切换
1.命令模式进入编辑模式:a:从光标后面的位置去插入A:从光标所在行的行尾进行插入i:从光标前的位置插入I:从光标所在行的行首开始插入o:光标切到下一行插入O:光标切到上一行插入s:删除光标盖住的字符S:删除光标所在行2.命令模式切换到末行模式输入 : 即可3.切换回命令模式两次ESC即可...原创 2019-06-05 15:15:54 · 1699 阅读 · 0 评论 -
【linux系统编程】dup和dup2函数
dup()函数和dup2()函数书上在文件操作那一章,已经讲过了,这周看重定向这块,发现它挺重要,就再看了回,记录下。1、 dup函数头文件及函数定义:#include <unistd.h>int dup(int oldfd);dup用来复制参数oldfd所指的文件描述符。当复制成功时,返回最小的尚未被使用过的文件描述符,若有错误则返回-1.错误代码存入errno中...原创 2019-07-25 21:31:27 · 254 阅读 · 0 评论