- 博客(72)
- 资源 (5)
- 收藏
- 关注
原创 linux: 僵尸进程
上一篇文章(http://blog.csdn.net/qingsong3333/article/details/77756042)讲了如何使用fork()函数产生一个的子进程,如果控制不好子进程与父进程的关系,则可能产生僵尸进程1. 如果父进程先于子进程结束,那么子进程的PPID就会变为1,直到子进程结束,子进程的状态正常。下面的例子中,子进程运行15s,父进程运行3s:qingson
2017-08-31 22:59:12 337
原创 linux/unix编程:启动新进程
这里介绍三种启动新进程的方法: system()库函数、exec()家族函数、fork()函数1. 启动另外一个进程可以通过库函数system完成,它会启动一个新的shell,并在新的shell里启动一个进程。效率比较低#include int system (const char * string);示例如下:顺序启动了两个qingsong@db2a:~/linu
2017-08-31 22:19:08 1164
原创 linux中的SUID和SBIT 权限
关于SUID,需要先参考上一篇文章:http://blog.csdn.net/qingsong3333/article/details/77726074SUIDSUID权限和SGID是作用类似的,不过SUID不是针对二进制程序的owner起作用,而是对所属组起作用。当其他用户执行此文件时,会暂时获得文件所属组的权限。现在把wordcount的SUID权限改为SGID,效
2017-08-30 22:14:26 854 1
原创 Linux: 通过SUID权限来实现“封装”
Java中有“封装”的概念,简单来讲,就是把类的属性和方法设置为private/protected,这样只能在类的内部访问这些属性和方法,并提供public方法来调用private方法或者获取/修改private属性。在linux权限中,有时也会遇到类似的问题,比如你希望其他用户能够对你的文件做一些统计工作,但又不想让他们获取文件的内容,这时候就可以写一个程序来进行统计工作,让其他用户调用
2017-08-30 22:01:33 450
原创 linux:使用shell读写MySQL数据库
linux:使用shell读写MySQL数据库本文用一个示例,简单演示了如何使用shell脚本读写MySQL数据库。主要工作如下:1. 创建数据库samplecreate database sample;2. 创建表employeedrop table if exists employee;create table employee(EMPNO char(6
2017-08-27 23:12:34 1501
原创 linux: 找到磁盘/目录中最大的n个文件
linux: 找到磁盘/目录中最大的n个文件du加上了-a选项,可以看到所有的目录和文件大小,按照大小排序,就可以得到最大的n个文件了:下面的例子中du的-k选项表示文件大小显示为KB,之后按照大小排序,显示前n行:root@db2a:~# du -ak /tmp | sort -nrk 1 | head -n 10275210 /tmp53060 /tmp/test2
2017-08-27 23:08:43 3861
原创 linux shell:使用trap来处理信号
linux shell:使用trap来处理信号shell脚本可以使用trap来处理信号命令语法如下: trap 'signal_handler_function_name' SIGNAL LISTSIGNAL LIST以空格分隔,它可以是信号编号或者信号名称。下面的例子中,三个函数分别处理信号SIGINT、SIGTSTP和SIGTERM,qingsong@
2017-08-27 23:06:13 2957
原创 Linux shell 中的关联数组
Linux shell中的关联数组关联数组是这样的数组,它的每个数据元素与一个键相对配对,该键用于识别数据元素。由于散列函数用来创建关联数组中的指定元素,并在关联数组中查找指定元素,因此关联数组通常称为散列。比如想设置一个数组,名为age,根据人名可以查找对应的年龄LiLei 28HanMeimei 27Lily 26Lucy 26声明qingsong@
2017-08-27 23:03:43 735
原创 Linux shell:文本的按行逆序和字符串逆序
Linux shell:文本的按行逆序和字符串逆序假定有以下文件:qingsong@db2a:/tmp$ cat file.txt abcde hello,world12345!按行逆序即第一行和最后一行交换、第2行和倒数第2行交换,以些类推。方法1,使用tactac命令是cat命令的反写,效果也正好相反,从最后一行开始打印文件qingsong@db2a
2017-08-27 22:55:52 12362 4
原创 linux上使用ftp,sftp,rsync,scp,套接字 来通过网络传输文件
linux上使用ftp,sftp,rsync,scp,套接字 来通过网络传输文件计算机联网的主要目的就是资源共享。在资源共享方面,使用最多的是文件共享。有多种方法可以用来在网络中传输文件,本文介绍了ftp,sftp,rsync,scp,套接字这5种方法:假设目标是把db2a主机上的/tmp/db2a.filea拷贝到db2b主机的/tmp目录里,或者把db2b主机的/tmp/db2
2017-08-27 22:51:45 1793
原创 linux,使用ping和fping找出网络上的活动主机
linux,使用ping和fping找出网络上的活动主机网络中有多个主机时,有时需要检查所有不活动的主机,或者活动的主机。这时候可以使用ping或者fping命令1. ping命令使用ping命令编写脚本,挨个检查qingsong@db2a:/tmp$ cat ping.sh #!/bin/bashfor i in 192.168.16.{1..255}do
2017-08-27 22:45:55 4902
原创 Linux:awk常用语法介绍
Linux:awk常用语法介绍awk脚本的结构基本如下所示,awk脚本通常由3部分组成。BEGIN,END和带模式匹配选项的常见语句块。这3个部分都是可选项,在脚本中可省略任意部分:awk ' BEGIN{ print "start" } pattern { commands } END{ print "end" } ' fileawk命令的工作方式(1) 执行BEGIN
2017-08-26 23:37:02 547
原创 linux:使用pstree和tree查看进程树和目录树
linux:使用pstree和tree查看进程树和目录树pstree工具可以查看进程的树型结构,tree工具可以查看目录的树形结构1. pstree1.1 pstree查看进程树:qingsong@db2a:/tmp$ pstreeinit-+-atd |-cron |-db2fmcd |-db2syscr-+-db2fmp---4*
2017-08-26 23:27:48 26271
原创 linux:使用seq命令产生数字序列
有些场景下,需要一个数字的序列,这时可以使得seq命令来产生NAME seq - print a sequence of numbersSYNOPSIS seq [OPTION]... LAST seq [OPTION]... FIRST LAST seq [OPTION]... FIRST INCREMENT LASTDESCR
2017-08-26 23:20:51 2981
原创 linux shell, 三行命令:查找并删除重复的文件
需求:查找并删除某个目录下重复的文件(如果md5sum相同,则认为是相同的文件)。思路如下:1. 先计算所有文件的md5sum,并按照md5sum排序,结果放到文件allfiles里2. 使用uniq命令,去掉allfiles里md5sum相同的记录,结果放到文件uniqfiles里,这样uniqfiles里就是所有不重复的文件列表3. 比较allfiles和uniqfiles
2017-08-26 14:20:55 8103 3
原创 Linux: shell拆分浮点数的整数和小数部分 && 拆分文件的文件名和扩展名
Linux: shell拆分浮点数的整数和小数部分 && 拆分文件的文件名和扩展名目地:分别获取一个浮点数的整数和小数部分,或者将一个文件的文件名和扩展名拆分开。可以考虑使用cut或者awkcutqingsong@db2a:/tmp$ num1=3.1415qingsong@db2a:/tmp$ echo $num1 | cut -d '.' -f13qings
2017-08-26 14:15:06 5579
原创 linux:使用comm命令比较两个文件:交集、差
comm命令可以按行比较两个排序好的文件,输出有3列:第一列是file1独有的、第二列是file2独有的,第三列是两者都有的,简单语法如下:NAME comm - compare two sorted files line by lineSYNOPSIS comm [OPTION]... FILE1 FILE2DESCRIPTION Compa
2017-08-26 14:00:12 7797
原创 Linux:使用mktemp创建临时文件/目录
mktemp的作用是创建临时文件/目录,并返回文件名,简单的语法如下:NAME mktemp - create a temporary file or directorySYNOPSIS mktemp [OPTION]... [TEMPLATE]DESCRIPTION Create a temporary file or director
2017-08-26 13:53:29 7734
原创 linux: xargs处理参数时,文件名中包含空格的解决方法
xargs处理参数时,文件名中包含空格的解决方法xargs之前已经讲过。处理参数时,文件名中如果有空格,则需要单独处理。如果参数是find命令的结果,那么可以在find命令加上print0选项,xargs命令加上-0选项。参考:http://blog.csdn.net/qingsong3333/article/details/77587400如果参数是从文件中读取的呢?比如
2017-08-26 13:50:10 5831
原创 Linux计算md5sum(md5校验和) && 使用crypt和gpg加密/解密文件
Linux计算md5sum(md5校验和) && 使用crypt和gpg加密/解密文件1. md5sum判断两个文件是否相同,可以使用校验和(checksum),检验和一样,则两个文件相同。这里介绍使用md5sum命令计算md5sum:qingsong@db2a:/tmp$ md5sum file1.data d41d8cd98f00b204e9800998ecf842
2017-08-25 22:26:30 4375
原创 Linux:使用xargs为其他命令提供参数
Linux:使用xargs为其他命令提供参数xargs命令的作用就是从stdin接收到的数据重新格式化,再将其作为参数提供给其他命令(xargs - build and execute command lines from standard input)。说直接一点,就是为其他命令提供参数的。多个参数时,默认的分割符是空格。如果不指定命令,则默认的命令是echo最简单的一个例子
2017-08-25 22:19:51 10800
原创 linux用shell脚本模拟时钟 && 脚本录制
下面的脚本可以模拟一个时钟,“实时”显示系统的当前时间:#!/bin/bash# This is a clock, it will display time once a second, in the same position# File name: clock.shtput scwhile truedo echo -n `date` sleep
2017-08-25 22:13:47 1935
原创 shell:当你运行while true的时候,你实际在做什么?
shell当你运行while true的时候,你在做什么?在写shell死循环时,可能会经常用到下面的方式while truedodo something heredone其实,这里的true是一个/bin下面的可执行文件,同样的,false也是。 true什么也不做,返回一个表示成功的值。false什么也不做,返回一个表示错误的值:qingsong@db2
2017-08-25 22:08:49 43305 4
原创 UNIX/Linux中的文件描述符 && 为何删除DB2的容器之后表空间仍然可以访问
大多数UNIX文件I/O只需用到5个函数open,read,write,lseek,close。当使用open或者create函数打开或创建一个新文件时,内核向进程返回一个文件描述符,文件描述符是一个非负整数(也就是open/create函数的返回值,如果小于0,则出错)。当读、写文件时,read/write函数使用参数的是文件描述符,而非文件名。UNIX/LINUX shell中,文件描述符0代
2017-08-24 22:59:26 1034
原创 Linux使用mdadm模拟RAID5磁盘阵列
Linux使用mdadm模拟RAID5磁盘阵列RAID 磁盘阵列RAID可以通过一个技术(软件或硬件),将多个较小的磁盘整合成为一个较大的磁盘,除了数据存储之外,还有数据保护的功能,这里简介一下RAID 0, 1, 5,并模拟RAID 5RAID-0 (等量模式, stripe):性能最佳数据平均分布到多个磁盘中, 没有冗余,任何一个磁盘坏掉都会导致数据永久丢失。但性能
2017-08-24 22:45:36 2947
原创 shell中的算术运算
linux: bash shell中的算术运算1. letlet可以执行基本的操作,变量前不用加$。仅支持整数qingsong@db2a:/tmp$ nb1=4qingsong@db2a:/tmp$ nb2=5qingsong@db2a:/tmp$ let result=nb1+nb2 qingsong@db2a:/tmp$ let result++qingso
2017-08-24 22:36:41 2016
原创 shell脚本:不显示输入的密码
shell脚本:不显示输入的密码在linux shell脚本中,如果想要不显示输入的内容,比如“密码”,可以使用stty的-echo选项,表示禁止将输出发送到终端。最后的stty echo一定要加,否则即使执行完shell之后,什么输入也都看不到。#!/bin/bashecho -n "Please enter your password:"stty -echoread pa
2017-08-24 22:29:52 7774
原创 Linux使用sed对文档进行增、删、改、查
Linux使用sed对文档进行增、删、改、查qingsong@db2a:/tmp$ cat test.txt This is line 1This is line 2This is line 3This is line 5This is line 6This is line eightThis is line 9This is line 10
2017-08-23 21:46:50 1595
原创 Linux: find命令 ‘/proc/xxxx/task/xxxx/fd/y’: No such file or directory 解决办法
问题描述:find命令查找系统中大于50M的文件时,有几行报错: No such file or directoryroot@ubuntu:~# find / -size +50M/proc/kcorefind: ‘/proc/6377/task/6377/fd/6’: No such file or directoryfind: ‘/proc/6377/task/6377/f
2017-08-22 23:33:50 20322
原创 linux的dd命令:文件复制与备份、快速生成大文件、大小写转换
dd的意思是covert and copy a file,也就是转换和复制一个文件,它除了用来备份之外,还可以转换文件。这里介绍几种最常见的用法,包括单个文件的复制、单个文件系统的复制、快速生成一个大文件、大小写转换NAME dd - convert and copy a fileSYNOPSIS dd [OPERAND]... dd OPTION
2017-08-22 19:43:13 5877
原创 Linux里新建文件/目录的默认权限
Linux里新建文件/目录的默认权限新建文件默认权限为666,新建目录默认权限为777。但是要"减去" umask的值,umask的值可以使用umask命令看到,一般情况下,root用户的为022,普通用户为002。这里的"减"并非数字上相减,而是减去相应的权限。如果umask为022,则表示:user不减权限,group减掉write权限,other减掉write权限;如果umask为2
2017-08-22 19:33:25 11616 1
原创 Linux 使用chattr设置文件属性
文件的普通属性可以通过ls -l来查看,但还有一些“高级”的文件属性,可以通过chattr来设置、lsattr来查看。这些属性包括 文件是否被自动压缩、文件是否允许修改、删除等。简单的语法如下:NAME chattr - change file attributes on a Linux file systemSYNOPSIS chattr [ -RVf ]
2017-08-22 19:28:43 5543
原创 Linux 使用tar命令打包/解压文件
tar命令的第一个参数必须是一个函数名(或者简写),而且只能有一个函数,常见语法如下:NAME tar -- The GNU version of the tar archiving utilitySYNOPSIS tar [-] A --catenate --concatenate | c --create | d --diff --compare | --delet
2017-08-22 19:14:23 1414
原创 Linux中使用gzip来压缩/解压 *.gz文件
gzip 是linux中常见的压缩/解压工具,最常见的使用对象是*.gz格式的文件,这里简单介绍下它最常见的用法,GZIP(1) General Commands Manual GZIP(1)NAME gzip, gunzip, zcat - compress or expand filesSYNOPSIS gzip [ -acdfhklLnNrtv
2017-08-21 23:41:47 202776 2
原创 Linux空白行:行号显示、空白行数统计、删除空白行
这里的空白行,泛指只有一个换行符的行。空白行的行号显示:cat -b 选项,可以不在空行前面加行号。nl命令也能实现类似的效果:root@db2a:/tmp# cat -b count.sh 1 #!/bin/bash 2 for i in u g o a 3 do 4 for j in + - = 5
2017-08-20 23:01:48 17192
原创 Linux中的atime, ctime, mtime
含义:mtime: modification time,指内容被修改时间ctime: status change time, 文件inode节点发生变化,包括属性被修改时间,比如owner或者权限的改变,内容被修改也会导致ctime变化。 注意:ctime不是create time,linux中貌似无法看到create time。atime: access time, 访问时间
2017-08-20 22:58:25 430
原创 shell脚本: 查看linux用户组,以及每个组中有哪些用户
下面的脚本可以用来查看linux中每个组中的用户,它依次读取/etc/group每一行,对于其中每一行,都去遍历一遍/etc/passwd,如果group id匹配,打打印出组名和用户名。#!/bin/sh#! This script will print all groups and all users in each group.while read glinedo groupn
2017-08-20 22:50:53 5155 4
原创 Linux中,使用lvm快照(snapshot)来快速备份数据
Linux中,使用lvm快照(snapshot)来快速备份数据lv快照的工作原理是建立一个快照区,如果原来的数据发生变化,那么就把变化前的数据放到快照区,借用鸟哥的图:也就是说,原来数据的修改量,不能超过快照区的大小,否则这个快照,就不能用了:示例:原本有一个1G的LV,mysqllv1,上面的文件系统挂载在目录/root/mysqldata下:root@db2a:~#
2017-08-19 23:45:49 13784
原创 Linux的作业管理:前台作业、后台作业
Linux的作业管理:前台作业、后台作业比如有以下脚本,打印5次信息:root@db2a:~# cat job1.sh #!/bin/bashfor i in 1 2 3 4 5doecho "This is "$i"th running"sleep 3done1. 普通作业普通情况,进行作业:root@db2a:~# ./job1.sh
2017-08-19 23:22:37 6068
原创 Linux中的定时任务:at 和 crontab
1. 一次性定时任务:at1.1 设置定时任务at 命令可以用来执行一次性任务,任务的命令是可以手工输入,也可以从文件读取,语法如下:NAMEat, batch, atq, atrm - queue, examine or delete jobs for later executionSYNOPSISat [-V] [-q queue] [-f file] [-
2017-08-19 23:15:14 3954
2011年全国硕士研究生入学考试计算机基础综合考试大纲|计算机考研大纲
2011-03-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人