linux
只要你在
这个作者很懒,什么都没留下…
展开
-
Linux Core文件
设置core文件大小ulimit -c 结果为0则不能生成ps:ulimit -a 用来显示当前的各种用户进程限制临时设置(如下设置2G,单位为kbyte):如果生成的信息超过此大小,将会被裁剪,最终生成一个不完整的core文件。在调试此core文 件的时候,gdb会提示错误。# ulimit -c 4194304永久设置:# echo" * soft core 4194304">> /etc/securi...原创 2021-03-31 19:35:43 · 282 阅读 · 1 评论 -
linux下同步与互斥
锁主要有两个用途:1 解决互斥访问资源2 解决一个任务对另一个任务的依赖关于linux内核:linux内核只提供了轻量进程的支持,未实现线程模型。Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。1、互斥锁1.1 普通互斥锁这里普通互斥锁指的是非递归互斥锁。为了保护共享资源,使我们线程可以单独使用某个共享资源,使用之前先上锁,当其他进程要使用的时候,就需要等待到这个线程用完之后,再开锁...原创 2020-08-10 12:31:45 · 885 阅读 · 0 评论 -
linux 之 shell中$0,$?,$!等
linux shell下的特殊用法及参数的说明:变量说明:$$Shell本身的PID(ProcessID)$!Shell最后运行的后台Process的PID$?最后运行的命令的结束代码(返回值)$-使用Set命令设定的Flag一览$*所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。$@所有参数列表。如"$@"用「"」括起来的...转载 2020-03-11 14:07:15 · 135 阅读 · 0 评论 -
linux 之 echo -e 和 echo -n
echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。-e:激活转义字符•\a 发出警告声;•\b 删除前一个字符;•\c 最后不加上换行符号;•\f 换行但光标仍旧停留在原来的位置;•\n 换行且光标移至行首;•\r 光标移至行首,但不换行;•\t 插入tab;•\v 与\f相同;•\\ 插入\字符;•\nnn 插入nnn(八进制)所代表...原创 2020-03-11 11:23:06 · 780 阅读 · 0 评论 -
linux 之 head 和 tail 的使用
1. 如果你只想看文件的前5行,可以使用head命令,如:head -5 /etc/passwd2. 如果你想查看文件的后10行,可以使用tail命令,如:tail -10 /etc/passwdtail -f /var/log/messages参数-f使tail不停地去读最新的内容,这样有实时监视的效果3.关于head 和 tail 的 -n解释:head -...原创 2020-03-04 14:34:40 · 1033 阅读 · 0 评论 -
linux gdb 调试多线程
1 用 kill 命令产生 core dump文件: kill -11 pid用信号11杀掉它,会让进程产生一个 Segmentation Fault,从而产生一个 core dump,得到一个 core 文件,里面包含了死锁的时候,进程的内存镜像。2 gdb 打开这个 core 文件,然后 thread apply all bt意思是让所有的线程执行bt命令是:thr...原创 2020-03-03 20:07:38 · 770 阅读 · 0 评论 -
Linux Signal
进程表的表项中有一个软中断信号域,进程对不同的信号可以同时保留,但对于同一个信号,进程并不知道在处理之前来过多少个。内 核给一个进程发送软中断信号的方法,是在进程所在的进程表项的信号域设置对应于该信号的位。这里要补充的是,如果信号发送给一个正在睡眠的进程,那么要看 该进程进入睡眠的优先级,如果进程睡眠在可被中断的优先级上,则唤醒进程;否则仅设置进程表中信号域相应的位,而不唤醒进程。这一...原创 2020-03-03 13:53:26 · 158 阅读 · 0 评论 -
linux 之 Deamon进程
Linux Daemon(守护进程)是运行在后台的一种特殊进程。Linux系统的大多数服务器就是通过守护进程实现的。常见的守护进程包括系统日志进程syslogd、 web服务器httpd、邮件服务器sendmail和数据库服务器mysqld等。一个守护进程的父进程是init进程,因为它真正的父进程在fork出子进程后就先于子进程exit退出了,所以它是一个由init继承的孤儿进程。守护进程...原创 2020-03-02 23:31:14 · 394 阅读 · 0 评论 -
linux gdb 调试 基础知识
1 首先为了让程序可调试,需要在gcc编译步骤的时候加参数-g2 启动gdb:gdb3 启动gdb并调试可自行文件:gdb test4 p 查看变量 p file::varialble 或者 p function::variable参考:https://zhinan.sogou.com/guide/detail/?id=316513778920...原创 2020-03-02 14:37:29 · 338 阅读 · 0 评论 -
linux which,whereis,locate,find的区别
find就不用多说了,就是递归遍历文件夹。which:有时候可能在多个路径下存在相同的命令,该命令可用于查找当前所执行的命令到底是哪一个位置处的命令。whereis:是在数据库中查找文件,在数据库(var/lib/slocate/slocate.db)中查找与文件名相匹配的二进 制文件、源文件和帮助手册文件,使用之前可以使用up...原创 2020-03-01 23:45:44 · 236 阅读 · 0 评论 -
linux中使用locate搜索文件方法记录
在linux中,有时用apt或者yum等软件包管理工具直接安装软件的时候,不知道软件到底安装到哪里去了,配置文件放哪里?这个时候就可以使用搜索命令locate来找到这些文件。海词上locate翻译为找出的意思,非常形象了。1、命令格式locate -bic 关键词(可以是正则表达式)各参数表示含义如下:-b:basename,只搜索文件名包含关键词的的文件 -c:count,统...转载 2020-02-29 23:58:41 · 286 阅读 · 0 评论 -
linux find 命令实例
实例1:查找指定时间内修改过的文件 命令: find -atime -2 查找48小时内修改过的文件 时间选项有三种atime、mtime、ctime解释:* -atime[+|-]time/-amin[+|-]time 以访问时间(天/分钟)查找* -mtime[+|-]time/-mmin[+|-]time 以数据修改时间(天/分钟)查找* -...原创 2020-02-29 23:34:10 · 354 阅读 · 0 评论 -
Linux内核和发行版本的关系 基础
查看内核版本的命令:cat /proc/versionuname -runame -a查看发行版本的命令cat /etc/redhat-releaseLinux的发行版本可以大体分为两类:一类是商业公司维护的发行版本 一类是社区组织维护的发行版本 前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。CentOS系统很多网站站...原创 2020-02-29 18:04:40 · 401 阅读 · 0 评论 -
vim 修改二进制文件
1 vim以二进制格式打开需要编辑或查看的文件vim -b xxx.dat2 用xxd把文件转换成十六进制格式:%!xxd转化后显示类似如下3 像对待普通文本一样查看和编辑二进制文件4 修改完成使用xxd把十六进制转换回二进制::%!xxd -r只有十六进制的修改会生效。...原创 2020-02-29 16:39:51 · 1114 阅读 · 0 评论 -
linux 磁盘挂载 和 目录
安装Windows时,我们可以选择把系统安装在哪一个分区,把系统挂载到分区上。而在Linux中则相反,我们要把分区挂载到系统中。/home 目录相当于Windows的MyDocuments# df -lhFilesystem Size Used Avail Use% Mounted on/dev/mapper/vg_djwanpc-lv_roo...原创 2020-02-29 15:51:39 · 2294 阅读 · 0 评论 -
linux tar命令
把常用的tar解压命令总结下,当作备忘:tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的...转载 2020-02-26 17:37:23 · 548 阅读 · 0 评论 -
linux sed命令
strem editor 流编辑器sed 编辑器是一行一行的处理文件内容的sed可以用来 增 删 改常用用法:对一行执行自己写的scriptsed -e 4a\newLine testfile 在testfile文件的第四行后添加一行,并将结果输出到标准输出其中 -e<script>或--expression=<script> ...原创 2020-02-25 22:12:30 · 89 阅读 · 0 评论 -
linux 硬链接与软链接
链接的访问软链接实际上只是一段文字,产生一个新文件(这个文件内容,实际上就是记当要链接原文件路径的信息),这个文件指向另一个文件的位置,里面包含着它所指向的文件的名字,系统看到软链接后自动跳到对应的文件位置处进行处理;创建软链接:ln -s filename [linkname]在同一个分区下创建文件f1的软链接文件f2,通过观察二者的节点编号和元数据、时间戳都不同,所以软链接和原文...原创 2020-02-20 11:04:10 · 192 阅读 · 0 评论 -
Linux文件系统 基础知识
Linux文件系统分配策略块分配(blockallocation)和扩展分配(extentallocation):块分配:磁盘上的文件块根据需要分配给文件,避免了存储空间的浪费。但当文件扩充时,会造成文件中文件块的不连续,从而导致过多的磁盘寻道时间。扩展分配:文件创建时,一次性分配一连串连续的块,当文件扩展时,也一次分配很多块。扩展分配采用成组分配块的方式,减少了SCSI设备写数据的时...原创 2020-02-19 16:31:38 · 243 阅读 · 0 评论 -
离线编译安装lrzsz
1.# wget https://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz--2020-02-18 23:22:26-- https://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz正在解析主机 ohse.de... 116.202.157.76正在连接 ohse.de|116.202.157.76|...原创 2020-02-19 10:56:30 · 271 阅读 · 0 评论 -
Makefile 基础
很早以前写的培训用的Makefile文档,整理好分享给大家。本文用Linux服务器下编写C程序来讲解Makefile,主要实现两个目标:自己能写简单的Makefile,玩转Linux编程。 看懂大神写的Makefile。写个简单的Makefile做开场白需要说明一下,文档目录结构是用户目录HOME下有src incl bin lib。src:源码incl:头文件bi...转载 2020-02-17 17:54:00 · 162 阅读 · 1 评论 -
gcc: error trying to exec 'cc1plus': execvp: 没有那个文件或目录
cc1 和 gcc 什么关系?GCC的编译有多个阶段,每个阶段都使用不同的内部命令。特别是C,首先使用cpp进行预处理,然后编译为汇编,汇编为机器语言,然后链接在一起。cc1是内部命令,用于获取预处理的C语言文件并将其转换为程序集。它是编译C的实际部分。对于C ++,有cc1plus和其他用于不同语言的内部命令。第一,你没有安装g++第二,你的gcc的版本和g++版本不相符合...原创 2020-02-17 15:17:31 · 7109 阅读 · 0 评论 -
.bashrc 文件
如果你运行一个基于 Unix 或者类 Unix 的操作系统,bash 很有可能是作为默认终端被安装的。它在一定程度上支持使用脚本来定制功能,这时候就要用到.bashrc了。为了加载你的配置,bash 在每次启动时都会加载.bashrc文件的内容。它用来存储并加载你的终端配置和环境变量。最常见的,.bashrc文件包含用户想要用的别名。别名允许用户通过更短的名字或替代的名...原创 2020-02-17 11:30:06 · 459 阅读 · 0 评论 -
sftp 基础知识
当我们需要传输文件到Linux的服务器当中,很多人习惯用FTP来传输,其实Linux的默认是不提供FTP的,需要你额外安装FTP服务器。在网上找到的SFTP代替FTP有一些好处: 一,可以不用额外安装任何服务器端程序,适合不方便安装服务器的情形。 二,会更省系统资源。 三,SFTP使用加密传输认证信息和传输数据,相对来说会更安全。 四,...原创 2020-02-16 11:23:50 · 856 阅读 · 0 评论 -
yum安装软件包提示Error: rpmdb open failed
使用yum命令安装软件包时候报错:系统:centosrpmdb: Thread/process 6539/140448388269824 failed: Thread died in Berkeley DB libraryerror: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, ru...原创 2020-02-13 23:10:02 · 154 阅读 · 0 评论 -
Linux 编译c++程序 简单的makefile例子
1.$ g++ helloworld.cpp编译源代码文件生成对象文件(object file),链接对象文件和 libstd c++ 库中的函数得到可执行程序。然后删除对象文件。由于命令行中未指定可执行程序的文件名,编译器采用默认的 a.out。程序可以这样来运行:$ ./a.outhello, world2.普遍的做法是通过 -o 选项指定可执行程序的文件名。下...原创 2020-02-12 17:36:28 · 707 阅读 · 0 评论 -
linux日志分析脚本例子
#!/bin/bash#进入当前脚本目录SELFPATH=$(cd$(dirname"$0");pwd)#设置路径LOGGERAPATH= XXXLOGGERBPATH= XXXLOGGERCPATH= XXX#LOGPATH="${GLOGGERPATH}"#本sh路径#BO的路径这里是sh脚本的上一层#FatalLO...原创 2019-07-02 00:57:47 · 765 阅读 · 0 评论 -
linux进程地址空间
目录 结构示意图:一个C程序组成:发生段错误的例子:结构示意图: ]$ size XXX text data bss dec hex filename17540970 32112 1606136 19179218 124a6d2 XXX text是放...原创 2018-08-19 21:27:26 · 299 阅读 · 0 评论 -
sudo
sudo -V 显示版本编号 -h 会显示版本编号及指令的使用方式说明 -l 显示出自己(执行 sudo 的使用者)的权限 -v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果...原创 2018-06-10 12:38:28 · 996 阅读 · 0 评论 -
linux scp
scp local_file remote_username@remote_ip:remote_folder scp local_file remote_username@remote_ip:remote_file 或者 scp local_file remote_ip:remote_folder scp local_file remote_ip:remote_file 没...原创 2018-08-18 21:45:11 · 463 阅读 · 0 评论 -
GDB查看指定内存地址处的内容
命令格式:x/nfu <addr>如:(gdb)x/1xb 0x7fffffffd708 x : examine 的缩写 n : 表示要显示的内存单元个数f : 表示显示方式, 可取如下值x 按十六进制格式显示变量。d 按十进制格式显示变量。u 按十进制格式显示无符号整型。o 按八进制格式显示变量。t 按二进制格式显示变量。a 按十六进...转载 2018-08-17 23:39:50 · 12339 阅读 · 0 评论