![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 58
davidsu33
这个作者很懒,什么都没留下…
展开
-
Shell脚本中判断文件,目录是否存在或者具有权限
shell判断文件,目录是否存在或者具有权限#!/bin/shNovaPath=”/var/log/httpd/”NovaFile=”/var /log/httpd/access.log”#这里的-x 参数判断$NovaPath是否存在并且是否具有可执行权限if [ ! -x "$NovaPath"]; thenmkdir “$NovaPath”fi#这原创 2013-09-10 15:38:43 · 2084 阅读 · 0 评论 -
Linux中SIGPIPE信号说明
当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。我写了一个服务器程序,在Linux下测试,然后用C++写了客户端用千万级别数量的短链接进行压力测试. 但是服务器总是莫名退出,没有core文件.最后问题确转载 2017-01-22 15:53:24 · 1888 阅读 · 0 评论 -
CentOS安装字体
1.将字体文件(*.ttf)文件拷贝至 /usr/share/fonts/ 目录下2.将当前终端用户切换为超级用户3.在终端下切换至字体文件的所在目录位置4.执行如下命令 mkfontscale mkfontdir fc-cache -fv原创 2017-01-22 16:08:15 · 572 阅读 · 0 评论 -
awk调用函数
#!/usr/bin/awk -f#例子程序,针对用户名,从/et/passwd中来自动进行查找,并输出相关的信息#awk甚至可以直接定义全局变量g_counter=0;function finduser(name){ posname=5; posdir=7; split($0, s, ":"); for(i in s){原创 2017-02-22 11:13:38 · 2137 阅读 · 0 评论 -
linux shellIO重定向
、基本概念 a、I/O重定向通常与 FD有关,shell的FD通常为10个,即 0~9; b、常用FD有3个,为0(stdin,标准输入)、1(stdout,标准输出)、2(stderr,标准错误输出),默认与keyboard、monitor、monitor有关; c、用 d、用 > 来改变送出的数据信道(stdout, stderr),使之输出到指定的档案; e、转载 2017-03-02 14:02:10 · 373 阅读 · 0 评论 -
bash脚本实现fabnacci函数
#!/bin/bashARGCOUNT=1if [ ! $# -eq $ARGCOUNT ];then echo "请输入Fibnacci的项数,并自动求和.用法$0 N"fifunction fib(){ one=1 two=1 #bash的循环支持continue语句和break语句 for i in `原创 2017-02-24 11:26:10 · 362 阅读 · 0 评论 -
linux下clock计时为0的问题?
使用linux的select函数作为定时器,发现调用clock进行计时,每次得到的结果都是0,原因是因为clock的函数定义是指从程序启动到cpu所占用的时间,这个很重要,如果调用的函数并未占用cpu的时间,这个是不计时的,包括调用sleep之类的,也是不会计入cpu的耗时的,所以在select的循环中直接调用clock是没有意义的,如果需要计量时间,只能是调用time了。原创 2017-02-03 15:41:56 · 2883 阅读 · 0 评论 -
bash中if条件语句的使用及bash返回值的注意事项
#!/bin/bash#bash函数以及返回值的注意事项function showgrade(){ if [ ! -z "$1" ];then echo "Your grade is $1" else echo "Invalid call $FUNCNAME" fi}#学生成绩分类echo "Pl原创 2017-02-27 09:49:39 · 2276 阅读 · 0 评论 -
bash下. : () {} [] [[]] (())的解释
bash下有很多像{}、[]等一些符号命令,下面是我对一些常用的符号命令的学习笔记,若有错误或纰漏望各位兄弟指正。一、.(source).(点)与source命令一样,从文件中读取并执行命令,无论该文件是否都有可执行权限都能够正确的执行。且是在当前shell下执行,而不是产生一个子shell来执行(我们通常使用“./filename.sh”去执行一个文件是在当前shell下产生一个子s转载 2017-02-27 14:34:35 · 323 阅读 · 0 评论 -
使用bash编写图片爬虫
#!/bin/bashLINKFORMAT="http://img1.mm131.com/pic/%d/%d.jpg"MAX_COUONT=100#download mm gallery,to stop if can't downloadfunction download_gallery(){ if [ ! -d "$1" ];then #if原创 2017-03-14 09:12:53 · 1216 阅读 · 0 评论 -
windows系统下安装linux双系统(问题解决)
这几天重新安装系统,在安装过程中出现了各种问题,在则里逐一进行记录并说明1.双系统的安装顺序,必须先安装windows,然后在安装linux。2.windows的磁盘分区不能是动态分区,必须是基本分区,否在在linux安装的时候是看不到独立的分区的。(被我碰到了)3.windows的主分区不要超过三个,因为最多目前只能识别4个主分区。(除了windows的c盘之外就不要再分配主分区了)原创 2017-05-17 13:06:19 · 884 阅读 · 0 评论 -
二叉树的创建和递归遍历
/*! 二叉树的学习以及使用 1.使用字符串构造二叉树 2.二叉树的遍历 made by davidsu33*/#include #include #include #include #include #include using namespace std;struct BNode{ int m_data {-1}原创 2017-06-01 11:22:46 · 653 阅读 · 0 评论 -
解决ubuntu安装库总是不兼容的问题
因为不小心 apt-get install -f ,导致ubutnu的大量库和组件直接被删除掉,但是发现我安装的ubuntu 16总是安装不了一些库,例如libgl1-mesa-dev libglu1-mesa-dev等等,各种找原因,发现原来是需要更新Ubuntu的源,然后更新apt-get,我现在的源配置如下:# deb-src http://security.ubuntu.com/u原创 2017-06-28 15:56:56 · 1328 阅读 · 0 评论 -
linux中动态库的编译和加载的查找顺序
Glibc安装的库中有一个名为ld-Linux.so.X其中X为一个数字(版本),在不同的平台上可以通过ldd查看$ldd /bin/catlinux-vdso.so.1 => (0x00007fff9176f000)libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f16424d4000)/lib64/ld-linux转载 2017-07-11 16:40:32 · 2488 阅读 · 0 评论 -
linux下svn环境的搭建
1.下载svn,ubuntu下直接 apt-get install subversion2.创建svn的仓库,新建一个目录例如/home/user/svn_repository,3.在该目录下执行svnadmin create svnwork, 创建一个svn的版本仓库,创建完成之后,svnwork会被创建,svnwork下的目录结构如下 svnwork |原创 2017-07-04 09:10:57 · 930 阅读 · 0 评论 -
计算机系统结构-延迟转移
#include #include #include #include /*! *延迟转移:CPU在执行条件判断的时候为了保证管线的流水,会 * 对指定进行预判执行,如果判断成功则流程继续,否则判断失败 * 会从条件判断正确的地方加载代码到流水管线中执行 * (从数据可见,有时候我们在for循环中使用判断逻辑的时候,如果 * 能增加判断概率是可以提高性能的,原创 2017-07-13 09:17:10 · 2610 阅读 · 0 评论 -
linux下fread/read和fwrite/write
1,fread是带缓冲的,read不带缓冲.2,fopen是标准c里定义的,open是POSIX中定义的.3,fread可以读一个结构.read在linux/unix中读二进制与普通文件没有区别.4,fopen不能指定要创建文件的权限.open可以指定权限.5,fopen返回指针,open返回文件描述符(整数).6,linux/unix中任何设备都是文件,都可以用open,read.如果文件的大小...转载 2018-03-09 14:57:49 · 1494 阅读 · 1 评论 -
ctags的使用
Ctags递归生成C++标签的命令ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++CTags递归生成C标签的命令(Linux /usr/include)ctags -R --sort=yes --c-kinds=+l+x+p --fields=+ls -I __T原创 2017-01-20 11:11:44 · 626 阅读 · 0 评论 -
ubuntu将man修改为中文版
1) 终端输入sudo apt-get install manpages-zh2) 安装后修改配置文件sudo gedit /etc/manpath.config3) 将所有的/usr/share/man替换为/usr/share/man/zh_CN (替换方法见我上一篇4) 保存即可。原创 2014-08-30 17:34:50 · 1364 阅读 · 0 评论 -
linux shell脚本参数简要说明
$0 ---- 当前程序的名称,实际上是一个内部参数,不同于$1,$2....因为它必须有!$# ---- 传递给程序的总的参数数目,也就是那个传说中的数组大小$? ---- 上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。$* ---- 传递给程序的所有参数组成的字符串。$@ ---- 以"参数1" "参数2" ... 形式保存所有参数原创 2013-09-10 14:29:15 · 908 阅读 · 0 评论 -
linux打包目录下的所有文件 ,不包含目录本身
tar zcvf /test/data.tar.gz -C /some/files .注意最后的空格和点原创 2013-09-10 16:07:01 · 3376 阅读 · 1 评论 -
linux的制作自解压缩包,并运行程序
基本思路是创建一个文件,前半部分是一个Shell脚本,后半部分则是tar建立的压缩文件。Shell脚本调用tar解压文件的后半部分,再调用解压后的安装文件。本文给出的方法比较灵活,对安装脚本的行数没有要求。先建立一个脚本文件,内容如下,存为inst_script.sh。注意将程序中间./installer一行修改为你的程序的安装程序地址。注意: 文件末尾不要添加更多的空行。转载 2013-09-10 14:32:35 · 2316 阅读 · 0 评论 -
linux脚本判断输入参数
if [ $# != 1 ] ; then echo "USAGE: $0 TABNAME" echo " e.g.: $0 CDR_CALL_20040701" exit 1; fi 位置参数 $1, $2,..., $N,$#代表了命令行的参数数量, $0代表了脚本的名字 -ne 不等于 ----------------------- shell原创 2013-09-10 15:37:34 · 2074 阅读 · 0 评论 -
vim编辑
1、 按屏幕移动(1) 最常用的几个命令如下:Ctrl + f // 向前(往行号大的方向移动)移动一屏,想来F代表ForwardCtrl + b // 向后移动一屏,B的话应该是Before吧Ctrl + d // 向前移动半屏,D指DownCtrl + u转载 2014-01-04 11:27:20 · 610 阅读 · 0 评论 -
自己动手编写Makefile
最近开始慢慢接触Linux编程,系统能对Linux的网络编程能重点学习,Linux的熟练程序恐怕跟你使用shell的熟练程序成正比的,所以本人也是一步步的慢慢学习,刚刚学习了如何使用VIM,现在开始学习如何编写Makefile文件,不得不说Makefile还是很强大的,给了一些预定义的宏,而且还可以在里面使用函数,Makefile其实说白了就一句话,基于目标、依赖项和命令的一个组合。我感觉写Mak原创 2014-01-05 16:56:53 · 805 阅读 · 0 评论 -
Makefile中的常用函数
在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。一、函数的调用语法函数调用,很像变量的使用,也是以“$”来标识的,其语法如下: $()或是 ${}这里,就是函数名,make支持的函数不多。是函数的参数,参数间以逗转载 2014-01-05 15:52:01 · 643 阅读 · 0 评论 -
Linux 文件系统-硬链接 软链接
详细的介绍: 硬连接指向的是节点(inode),是已存在文件的另一个名字,修改其中一个,与其连接的文件同时被修改;对硬链接文件进行读写和删除操作时候,效果和软链接相同。但如果我们删除硬链接文件的源文件, 硬链接文件仍然存在,而且保留了原有的内容。这时,系统就“忘记”了它曾经是硬链接文件,而把他当成一个普通文件。 硬链接文件有两个限制: 1、不允许给目录创建硬链接; 2、只有在同一文件系统中的文转载 2014-01-06 19:04:07 · 823 阅读 · 0 评论 -
ubuntu su 密码
Ubuntu刚安装后,不能在terminal中运行su命令,因为root没有默认密码,需要手动设定。以安装ubuntu时输入的用户名登陆,该用户在admin组中,有权限给root设定密码。给root用户设置密码的具体步骤:1. 打开一个terminal,然后输入下面的命令sudo passwd root 回车后会出现让你输入原始密码,新密码和确认密码,转载 2014-01-06 19:52:42 · 1874 阅读 · 0 评论 -
Linux的cat命令总结
cat主要有三大功能:1.一次显示整个文件。$ cat filename2.从键盘创建一个文件。$ cat > filename 只能创建新文件,不能编辑已有文件.3.将几个文件合并为一个文件: $cat file1 file2 > file参数:-n 或 --number 由 1 开始对所有输出的行数编号-b 或 --number-nonblank 和 -n原创 2014-01-07 17:39:55 · 814 阅读 · 0 评论 -
linux的proc目录功能
1. /proc目录Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文转载 2014-01-07 17:55:49 · 1065 阅读 · 0 评论 -
Linux VIM增加代码浏览功能
linux VIM虽然说有很强大的编辑和处理功能,但是在源代码的浏览上还是不行,所以我最近在网上仔细查了一下关于如何增强VIM编辑器的功能的方法,用得比较多的就是采用VIM+ctags+taglist+cscope的组合。至于具体如何安装,大家可以在网上搜素一下,这方面的资料还是很多的。原创 2014-01-09 14:24:25 · 895 阅读 · 0 评论 -
Linux VIM多窗口的使用方法
vim多窗口使用技巧1、打开多个窗口打开多个窗口的命令以下几个:横向切割窗口:new+窗口名(保存后就是文件名):split+窗口名,也可以简写为:sp+窗口名纵向切割窗口名:vsplit+窗口名,也可以简写为:vsp+窗口名2、关闭多窗口可以用:q!,也可以使用:close,最后一个窗口不能使用close关闭。使用close只是暂时关闭窗口,其转载 2014-01-09 14:35:43 · 1461 阅读 · 0 评论 -
debian下的QT4配置
最近愈发的觉得在redhat下学习QT是一种折磨,尤其是在gnome桌面环境下编写,很多效果都无法展示,安装KDE后,仍然感觉不是很舒服,最终决定以后的开发转向ubuntu系列来做Qt的开发。记得前几天安装Qt折腾了一大批英雄好汉,不过大多数人是因为环境变量设置不正确导致出错。这也是用源码包安装的不方便之处。为了避免遇到那样的事情,这次索性采用ubuntu下的软件管理工具apt—get进行安装。安转载 2014-01-10 21:47:45 · 2608 阅读 · 0 评论 -
ubuntu使用tasksel安装服务套件
本来Ubuntu下架建LAMP,需要apt安装很多包,记住那些包的名字是一件非常痛苦的事情,这里介绍另外一个简单方便的方法,使用tasksel安装LAMP套件。先说说什么是Tasksel,它是一个Debian下的安装任务套件,如果你为了使你的系统完成某一种常规功能,而需要安装多个软件包时,我们就可以使用它了。这句话是什么意思呢?比如说,我们需要安装LAMP架设一个web服务器,为了完成这个原创 2014-08-29 22:21:05 · 1522 阅读 · 0 评论 -
vim替换带路径的、vim命令中拷贝粘贴
vim替换路径命令 vim命令: %s#/home/szs/stb/stsdk/A36/rpmbuild/BUILD#/home/yinjiabin/qt#g 解释: www.2cto.com 将/home/szs/stb/stsdk/A36/rpmbuild/BUILD 替换为/home/yhinjiabin/q原创 2014-08-30 17:29:46 · 2655 阅读 · 0 评论 -
Linux兼容内核(Linux Unified Kernel,亦称 Longene)
Linux兼容内核(Linux Unified Kernel,亦称 Longene),是一个二进制兼容Windows和Linux应用软件和设备驱动程序的计算机操作系统内核。它试图在Linux内核的基础上利用Linux内核材料构建MS Windows内核功能模块从而扩充Linux内核的支持能力使之同时支持Linux和Windows的应用程序和设备驱动。兼容内核主要以C语言编写,以GNU通转载 2014-08-31 11:08:44 · 1000 阅读 · 0 评论 -
apt-get install失败后强制跳过的方法,修改/var/lib/dpkg/info下的安装前后shell脚本
使用apt-get出现问题,错误信息大概如下The package <package-name> needs to be reinstalled, but I can't find an archive for it.用 apt-get install -f 无法修复.考虑一下报错信息,应该是apt对之前失败的某次安装A念念不忘,并且在安装其他东西之前会重新安装这个程序A.(这个和正常...转载 2018-02-24 11:18:33 · 6106 阅读 · 0 评论