Linux基础学习
文章平均质量分 60
du_lijun
这个作者很懒,什么都没留下…
展开
-
linux 下的init 0,1,2,3,4,5,6
一. init是Linux系统操作中不可缺少的程序之一。 所谓的init进程,它是一个由内核启动的用户级进程。 内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。 内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失原创 2021-04-27 17:04:42 · 394 阅读 · 1 评论 -
Linux(入门基础):23---查看一个进程占用物理内存
一、status 文件cat /proc/pid/status使用 ps aux | grep 进程名称 查找进程pid号。cat /proc/pid/statusVmRSS对应的值就是物理内存占用,大约为38M和刚才一致二、 ps aux | grep 进程名称第一个标注的地方是CPU和内存占用率,后面的38400是物理内存使用量,单位是k,此时mgd进程大约占用38M内存三、top -p pid栗子:top -p 2883...原创 2021-04-02 16:54:38 · 2205 阅读 · 0 评论 -
Linux(入门基础):22---进程的管理(kill、killall),杀死进程N种方法
1.linux查看一个进程的方法ps -ef 或者 ps aux2.kill -9kill -s 9 15572其中,-s 9 制定了传递给进程的信号是9,即强制、尽快终止进程。 15572则是上面ps查到进程的PID。注意:kill -9, 这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。当使用此命令时,一定要通过ps -ef确认没有剩下任何僵尸进程。只能通过终止父进程来消除僵尸进...原创 2021-03-30 18:03:05 · 456 阅读 · 1 评论 -
Linux(入门基础):21---查看已安装的软件与卸载yum、rpm
根据安装类型分类查找:一、rpmrpm包安装的,可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa | grep “软件或者包的名字”。栗子:二、deb包以deb包安装的,可以用dpkg -l能看到。如果是查找指定软件包,用dpkg -l | grep “软件或者包的名字”;三、yumyum方法安装的,可以用yum list installed查找,如果是查找指定包,命令后加 | grep “软件名或者包名”;四、源码包.tar.gz或者..原创 2021-03-30 16:39:33 · 714 阅读 · 1 评论 -
Linux(入门基础):21---centos7安装图形化界面(安装 GNOME 图形化为例)
之前直接执行下面程序报错,yum groupinstall -y "GNOME Desktop"注意:如果你的centos7是最小化安装的那默认都是不带X WINDOWS的,那在安装图形化界面之前,你得先安装一下X WINDOWSyum groupinstall "X Window System"在安装图形化界面:yum groupinstall -y "GNOME Desktop"等待。。。。。。二、安装报错1.查找资料:执行yum update gr原创 2021-03-30 10:46:24 · 1260 阅读 · 1 评论 -
Linux(入门基础):20---LINUX单调时间函数
https://www.cnblogs.com/wenqiang/p/5678451.html一、time该函数返回的是自1970年以来的秒数,精度不够,不能使用二、gettimeofday该函数返回的是自1970年以来的秒数和微秒数,精度显然是够了。我想有很多程序员也是用的这个函数来计算相对时间的,如果说系统时间因为ntp等原因发生时间跳变,那么用这个函数来计算相对时间是不是就会出问题了。所以说这个函数也不能使用三、clock_gettime四、syscall五、关于.原创 2020-11-24 10:22:20 · 282 阅读 · 0 评论 -
Linux(入门基础):19---信号(4)交替数数SIGUSR1、SIGUSR2
我单位法原创 2020-11-24 09:59:40 · 403 阅读 · 0 评论 -
Linux(入门基础):18---Linux下sleep函数与usleep函数
时钟换算:1s = 1000ms1ms = 1000μs1μs = 1000ns1ns = 1000ps一、sleep头文件: #include <unistd.h> 功 能: 执行挂起指定的秒数语 法: unsigned sleep(unsigned seconds);举例:void father(){ int i; for(i = 0 ;i < 3;i++) { printf("father\n"); sleep(1); }}.原创 2020-11-24 09:58:03 · 3030 阅读 · 0 评论 -
Linux(入门基础):17---信号(3)alarm、ualarm定时函数、pause
一、alarm函数#include <unistd.h>unsigned int alarm(unsigned int seconds);功能:闹钟,当执行到该函数之后开始计时,超时时产生SIGALRM信号。如果不忽略或不捕捉此信号,则其默认动作是终止该进程 参数: seconds的值是产生SIGALRM需要经过的时钟秒数 如果秒为零,则取消任何挂起的警报。在任何情况下,任何先前设置的报警都会被取消返回值: 成功:第一次调用返回0,不是第一次调用返回以前设置原创 2020-11-17 14:53:09 · 995 阅读 · 0 评论 -
Linux(入门基础):16---信号(2)定义、种类、signal、SIGCLD、kill、raise
不存在编号为0的信号kill函数对信号编号为0有特殊的应用一、产生信号的条件(2) SIGINT ctrl +c 终止信号(3) ctrl +\ 暂停信号,放入后台 (4) 非法指令(5) abort 进程异常终止(7) SIGBUS (虚实关系建立) 总线错误(从写的位置到物理内存,操作系统没有将磁盘的开始位置到物理内存之间建立 联系 mmap(把虚拟内存和磁盘文件的原创 2020-11-17 14:41:05 · 425 阅读 · 0 评论 -
Linux(入门基础):15---信号(1)getitimer、setitimer函数
一、getitimer#include <sys/time.h>int getitimer(int which, struct itimerval *curr_value);**功能:**计时器的当前值填写在curr_value指向的结构体中备注:定时器由ITIMER_REAL、ITIMER_VIRTUAL或ITIMER_PROF之一指定curr_value结构中的it_value字段被设置为计时器上剩余的时间量,如果计时器被禁用,则为零。类似地,it_interval被设置为重置原创 2020-11-17 11:22:56 · 503 阅读 · 0 评论 -
Linux(入门基础):14---文件挂载
https://www.linuxprobe.com/mount-detail-parameters.html原创 2020-11-13 17:18:23 · 85 阅读 · 0 评论 -
Linux:库文件(针对于Linux)
库文件1) 什么是库文件1) 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。提前写好的某些功能的实现(函数)的集合。库是提供给用户使用的,不能单独执行。实现库文件时都必须没有main函数。2 ) 库的种类:linux下的库有两种:Windows的静态库的扩展名为.lib ;动态库为 .DLLLinux的静态库文件扩展名为 .a;动态库为.so.二者的不同点在...原创 2019-07-25 10:33:45 · 148 阅读 · 0 评论 -
Linux:线程同步(条件变量、读写锁、互斥锁、信号量)
参考:https://blog.csdn.net/daaikuaichuan/article/details/82950711#font_size5font_21)同步与互斥的概念:现代操作系统基本都是多任务操作系统,即同时有大量可调度实体在运行。在多任务操作系统中,同时运行的多个任务可能:都需要访问/使用同一种资源;多个任务之间有依赖关系,某个任务的运行依赖于另一个任务。【同...原创 2019-07-25 10:31:27 · 186 阅读 · 0 评论 -
Linux :并发和并行,多线程和多进程,同步和异步的关系
1.进程、线程(1)进程概念进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,从来没有统一的标准定义。进程一般由程序,数据集合和进程控制块三部分组成。程序用于描述进程要完成的功能,是控制进程执行的指令集;数据集合是程序在执行时所需要的数据和工作区;程序控制块包含进程的描述信息和控制信息...原创 2019-07-25 10:07:33 · 1322 阅读 · 0 评论 -
Linux :线程三种实现方式(用户级线程、内核级线程、组合线程)
一、线程的3种实现方式1.用户级线程(1)线程的用户级线程实现方式有关线程管理的所有工作都由应用程序完成,内核意识不到多线程的存在。用户级线程仅存在于用户空间中,此类线程的创建、撤销、线程之间的同步与通信功能,都无法利用系统调用来实现。应用程序需要通过使用线程库来控制线程。 通常,应用程序从单线程起始,在该线程中开始运行,在其运行的任何时刻,可以通过调用线程库中的派生创建一个在...原创 2019-07-24 19:46:37 · 2949 阅读 · 0 评论 -
Linux :进程与线程的异同以及进程间通信方式
1.进程与线程(1)进程:进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,从来没有统一的标准定义。进程一般由程序,数据集合和进程控制块三部分组成。程序用于描述进程要完成的功能,是控制进程执行的指令集;数据集合是程序在执行时所需要的数据和工作区;程序控制块包含进程的描述信息和控制信息是...原创 2019-07-23 20:44:23 · 269 阅读 · 0 评论 -
Linux(入门基础):18---进程间通讯
一、全双工、半双工、单工全双工: 全双工是指在通信的任意时刻,线路上可以同时存在A到B和B到A的双向信号传输。在全双工方式下,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在两个方向上传送。半双工: 半双工即Half duplex Communication,是指在通信过程的任意时刻,信息既可由A传到B,又能由B传A,但只能有一个方向上的传输存在。单工: ...原创 2019-07-24 20:11:37 · 185 阅读 · 0 评论 -
LINUX :(面试题)三次握手、四次挥手的过程
一、三次握手过程(每一次都携带了什么数据?ACK为什么加一?)首先来看一下TCP的头部:其中标志位分别为:序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。 确认号ack:占4个字节,期待收到...原创 2019-07-22 23:43:59 · 530 阅读 · 1 评论 -
LINUX:make命令、makefile 文件
一、联系&区别make是一个命令,makefile是一个文件,当makefile文件写好后,只需要一个make 命令就可以将makefile文件运行起来。二、make 命令make命令是GNU的工程化编译工具,它用于编译大量互相关联的源代码,使用它可以实现项目的工程化管理,提高开发效率。make命令不仅仅用于编译程序,无论何时,当需要通过多个输入文件来生成输出文件时,你都可...原创 2019-07-22 22:25:47 · 285 阅读 · 0 评论 -
Linux(入门基础):10---查看文件内容
一、locatenm原创 2020-11-13 14:54:23 · 134 阅读 · 0 评论 -
Linux(入门基础):13---route、查看MAC与ARP table、端口、dmesg、配置文件
一、router原创 2020-11-13 14:43:27 · 807 阅读 · 0 评论 -
Linux(入门基础):12---exec函数簇
一、exec函数簇int execl(const char *path, const char *arg, ...);2 int execlp(const char *file, const char *arg, ...);3 int execle(const char *path, const char *arg, ..., char * const envp[]);4 int execv(const char *path, char *const argv[]);5 int execvp(co原创 2020-11-12 17:17:14 · 227 阅读 · 0 评论 -
Linux(入门基础):11---dup( )和dup2( )
一、dup()头文件及函数定义:#include <unistd.h>int dup(int oldfd);调用dup(oldfd)等效于fcntl(oldfd, F_DUPFD, 0)#include<stdio.h>#include<sys/stat.h>#include<fcntl.h>#include<unistd.h>int main(int argc, char* argv[]){ int fd=o原创 2020-11-12 15:00:24 · 148 阅读 · 0 评论 -
Linux(入门基础):09---Linux系统的关机、重启、睡眠(shutdown、reboot、halt、poweroff)
命令一、shutdown二、reboot三、halt四、poweroff五、systemctl注意:查看网络联机状态、后台可执行程序查看一下两样东西,可以让你稍微了解主机目前的使用状态查看网络联机状态:netstat -a查看后台执行的程序:ps -aux2.数据同步写入磁盘:sync一、shutdown立刻关机:shutdown -h now系统将在20:25关机:shutdown -h 20:25系统立刻重启:shutdown -r now提示系统将在30原创 2020-09-24 15:58:54 · 572 阅读 · 0 评论 -
log模块学习
一、linux 共享内存shm_open实现进程间大数据交互linux下,每个进程都有自己拥有的内存区域,进程的内存总是私有的。共享内存是从系统的空闲内存池中分配的,希望访问它的每个进程连接它。这个连接过程称为映射。基本流程:编译时要加库文件-lrtshm_id=shm_open(argv[1],O_RDWR|O_CREAT,0644);/*创建共享内存区*/ftruncate(shm_id,100);/*修改共享区大小*/fstat(shm_id,&buf);ptr=mmap(NUL原创 2020-09-24 15:37:45 · 264 阅读 · 0 评论 -
Linux(入门基础):08---gdb
一、gdb1.第一种gdb program也就是可执行文件2.第二种gdb corefilesize表示core文件的大小,改为unlimited表示无限制ulimit -c size3.第三种gdb attach PID查看当前一次显示多少行:show listsize设置一次显示多少行:set listsize LineNumps aux | grep snmgdb –p 进程号 挂进程 gdb attch 5951b mgd_sec_policy_e原创 2020-09-18 15:12:09 · 120 阅读 · 0 评论 -
Linux(入门基础):07---终端语言设置、date、cal、timedatectl、ntpdate
一、语系设置设置语系只在本次命令行操作中生效,退出命令行后失效,下次进入命令行需要重新设置LC_ALL代表同步所有语系的设置值设置所有的语系一致:export LC_ALL=xxx设置单独一项的语系:LC_xx=xxx列出当前各项支持的语系:locale二、date1.显示日期和时间2.格式显示日期时间:date格式化日期时间:date +格式化格式3.例子date +%Y/%m/%ddate +%H%M%S三、cal1.功能显示日历2.格式显示当前月原创 2020-09-18 14:44:17 · 448 阅读 · 0 评论 -
Linux(入门基础):06---硬件在Linux中的文件名
一、硬件在Linux中的文件名原创 2020-09-18 11:22:56 · 112 阅读 · 0 评论 -
Linux(入门基础):05---shell命令解释器详解
一、shell命令执行流程1.例如我们在Terminal中输入pwd命令①输入pwd命令并回车,此命令会传送给一个应用程序==>shell程序②根据命令字符串去找命令(去哪找?如果没有指定路径的话,在默认的环境变量path中找。指定路径就在指定路径中找)③找到命令后启动此命令,实现相应功能重点(命令本质上也是一个可执行的应用程序):例如 ls /home/book(后面的/home/book作为一个参数传递给前面的ls应用程序,然后执行相应功能)2.在环境变量中添加自己的命令①添原创 2020-09-18 11:15:41 · 202 阅读 · 0 评论 -
Linux(入门基础):04---文件的压缩、解压、打包(gzip、bzip2、xz、tar)
.tar解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)———————————————.gz解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName.tar.gz 和 .tgz解压:tar zxvf FileName.tar.gz压缩:tar zcvf FileName.tar.gz DirName——————————————.原创 2020-09-18 11:01:32 · 359 阅读 · 0 评论 -
Linux(入门基础):03---命令与文件查找命令:which、whereis、locate、updatedb、find、grep
一、which1.功能脚本文件的查找、查找执行文件,which命令是根据PATH这个环境变量所规范的路径去查找执行文件的文件名 echo $PATHwhich [-a] filename …2.相关选项-a:将所有由PATH目录中可以找到的命令均列出来,而不止第一个被找到的命令名称二、whereis1.功能:查找一个命令的二进制、源代码和手册页文件2.特点:whereis是在某些特定的目录下查找,查找速度较快whereis显示的内容包含:/bin/sbin下面的执行文件,该可原创 2020-09-18 10:59:21 · 137 阅读 · 0 评论 -
Linux(入门基础):02---文件、目录基础命令:mkdir、rmdir、gedit、rm、mv、cp
出生地原创 2020-09-18 10:06:29 · 275 阅读 · 0 评论 -
Linux(入门基础):01---基础命令:pwd、ls、cd、clear、reset
一、pwd1.功能: 查看当前路径(print working dirrctory)2.格式:pwd [选项]3.选项-LP:显示真正的路径,而非使用链接路径二、ls1.功能: 查看当前/指定路径的所有文件、目录(默认不显示隐藏文件)2.格式:ls [选项] [颜色] [时间] 文件/目录名3.选项:-a :显示所有文件、目录(包括隐藏文件),(Linux中隐藏文件以.开头)-A:显示所有文件、目录(包括隐藏文件),但不包括.与…这两个目录-d:仅列出目原创 2020-09-17 17:57:34 · 657 阅读 · 0 评论