自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(243)
  • 收藏
  • 关注

原创 linux中的list.h(3)

内核链表的增加、删除、遍历* 相关博文:*linux中的list.h(1) ——>内核链表简介、list_entry()方法。 linux中的list.h(2) ——>内核链表的创建、LIST_HEAD()方法。

2016-11-19 15:15:18 2522

原创 linux中的list.h(2)

linux内核中链表的创建linux内核中的双链表操作非常经典。为了加深对代码的理解,我将在用户态下对里面的内容进行一些实现。 注意list.h是在内核态中用的,在用户态直接#include <linux/list.h>是不行的。不过,虽然list.h是内核代码中的头文件,但我们可以把它移植到用户空间使用。相关博文: linux中的list.h(1) ——>linux内核中链表简介,list

2016-11-19 13:07:59 1347

原创 linux中的list.h(1)

相关博文: linux中的list.h(2) ——>内核链表的创建、LIST_HEAD()方法 linux中的list.h(3) ——>内核链表的增加、删除、遍历linux内核中的链表在之前我接触的数据结构中的链表,通常的做法是在结构体的内部添加一个指向数据next节点的指针,才能串在链表中。 比如,现有一个fox数据结构:struct fox{ unsigned long weig

2016-11-18 22:23:12 1559

原创 守护进程

编写简单守护进程(1)任何一个进程都可以将自己变成守护进程。 (2)create_daemon函数要素子进程等待父进程退出子进程使用setsid创建新的会话期,脱离控制台调用chdir将当前工作目录设置为/umask设置为0以取消任何文件权限屏蔽关闭所有文件描述符将0、1、2定位到/dev/null最初的daemon_2016-10-14.c#include <stdio.h>#i

2016-10-14 21:41:31 739

原创 exec族函数

为什么需要exec函数?fork子进程是为了执行新程序(fork创建了子进程后,子进程和父进程同时被OS调度执行,因此子进程可以单独的执行一个程序,这个程序宏观上将会和父进程程序同时进行)可以直接在子进程的if中写入新程序打代码。但这样不够灵活,因为我们只能把子进程程序的源代码贴过来执行(必须知道源代码,而且源代码太长了也不好控制)。例如我们希望子进程来执行ls -la命令就不行了(没有源代码,

2016-10-13 15:13:25 856

原创 文件系统---stat函数

statstat函数主要用于获取文件的inode信息。 stat命令其实就是调用的stat函数。stat中时间的辨析atime(最近访问时间)mtime(最近更改时间):指最近修改文件内容的时间ctime(最近改动时间):指最近改动inode的时间1)chmod 777 stat_1.txt stat之后发现ctime变了。改变了文件的权限,文件权限保存在inode里面。 2)vim s

2016-10-10 20:13:34 4217

原创 文件系统---认识ext2文件系统

磁盘的物理组成:扇区为最小的物理存储单位,每个扇区为512字节。将扇区组成一个圆,那就是柱面,柱面是分区的最小单位。第一个扇区很重要,里面有硬盘主引导记录(Masterbootrecord,MBR)及分区表,其中MBR占有446字节,分区表占有64字节。各种接口的磁盘在Linux中的文件名,①/dev/sd[a-p][1-15]:为SCSI,SATA,USB,Flash等接口的磁盘文件名;②

2016-10-08 18:29:39 3369

原创 文件IO---lseek、fcntl函数

lseeklseek()用来控制文件的读写位置。(移动读写指针位置)。 每个打开的文件都记录着当前读写位置,打开文件时读写位置是0,表示文件开头,通常读写多少个字节就会将读写位置往后移多少个字节。用法:#include <sys/types.h>#include <unistd.h>off_t lseek(int fd, off_t offset, int whence);/*lseek成功返

2016-10-07 21:59:38 661

原创 sudo的配置文件/etc/sudoers

/etc/sudoers配置文件中别名的知识别名类型(Alias_Type)包括如下四种:User_Alias定义用户别名Host_Alias定义主机别名Runas_Alias定义角色别名Cmnd_Alias定义命令别名User_Alias定义用户别名:20 # User_Alias ADMINS = jsmith, mikemHost_Alias定义主机别名:13 # Host_Alia

2016-09-22 21:56:28 961

原创 用户管理(3)---su、sudo

su命令su就是切换用户身份的命令。通过su命令可以在用户之间切换,超级权限用户root向普通或虚拟用户切换不需要密码验证。其他普通用户之间或者普通用户切换到root,都需要切换用户的密码验证。su语法su [选项参数] [用户] 参数选项 说明 -,-l,–login 使一个shell成为登录的shell,如执行su - Ian时,表示该用户想改变身份为Ian,并且使用Ian用户的

2016-09-22 17:29:12 1271

原创 用户管理(2)---groupadd、passwd、userdel、groupdel、usermod

groupdd命令groupadd后面可指定用户组名称来建立新的用户组。 与groupadd命令有关的文件有:/etc/group 用户组相关文件/etc/gshadow 用户组加密相关文件/etc/login.defs groupadd语法groupadd [-g gid [-o]] [-r] [-f] group 参数选项 说明 -g gid 指定用户组GID值

2016-09-21 11:53:54 1124

原创 用户管理(1)---useradd

useradd命令useradd用户管理命令。帐号建立或更新新用户资讯的工具。当使用useradd命令不加参数选项,后面直接跟所添加的用户名时,系统首先会读取配置文件/etc/login.defs和/etc/default/useradd中所定义的参数或规则,根据设置的规则添加用户,同时会向/etc/passwd和/etc/group文件内添加新建用户和用户组记录。/etc/passwd和/etc/

2016-09-20 23:01:11 2121

原创 用户管理(4)---chage、whoami

chage命令chage用来修改用户密码有效期限。 chage - change user password expiry information.chage语法用法:chage [options] [LOGIN] 选项: chage参数选项 说明 -d,–lastday 最近日期 将最近一次密码设置时间设为“最近日期” -E,–expiredate过期日期 将账户过期时间

2016-09-19 22:48:46 1729

原创 对信号量的临界区保护

概念介绍临界区(critical section)在任意时刻只允许一个进程对共享资源进行访问。一次只允许一个进程进入的该进程的那一段代码。对于临界资源的访问必须是互斥进行的,也就是当临界资源被占用时,另一个申请临界资源的进程会被阻塞,直到其所申请的临界资源被释放。而进程内访问临界资源的代码被称为临界区。while(TURE){ 进入区 临界区 退出区 剩余区}信号量

2016-09-18 20:59:58 1323

原创 /etc/skel/目录

/etc/skel目录是用来存放新用户配置文件的目录,当我们添加新用户的时候,这个目录下的所有文件会自动被复制到新添加的用户的家目录下。 这个目录下的所有文件都是隐藏文件(以.点开头的文件)。 通过修改、添加、删除/etc/skel目录下的文件,我们可为新创建的用户提供统一的、标准的、初始化用户环境。 验证:添加新用户Lisa,发现/home/Lisa/下的文件与/etc/skel/目录下文件

2016-09-14 22:12:30 7601

原创 定时任务练案例练习

1.每隔2个小时将系统文件/etc/services 文件打包备份到/tmp下(每次备份按时间生成不同的备份包)。在目标内容的上级目录打包 打包的频率是分,包名必须精确到分 确保命令行执行正确,然后写到脚本(复制)定时任务命令或程序最好写到脚本里执行测试脚本正确性(定时任务要怎么写,命令行就怎么测试)写到定时任务的脚本路径要有规范。而且定时打包或处理其他工作,不要在屏幕输出,可以打印到日志文件

2016-09-12 23:02:30 1358

原创 Linux下的定时任务

定时任务linux系统中定时任务调度的工作可以分为两种情况:linux系统自身定期执行的任务工作:系统周期性自行执行的任务工作,如轮询系统日志、备份系统数据、清理系统缓存等。用户执行的任务工作:某个用户或系统管理员定期要做的任务工作,如每隔5分钟和互联网上时间服务器进行时间同步,每天晚上0点备份网站站点数据及数据库数据。系统的日志: 系统自动轮询任务的设置路径:服务

2016-09-11 20:26:57 1198

原创 Linux命令(17)---crontab

crontab命令crond是linux系统中用来定期执行命令或指定程序任务的一种服务或软件。而crontab命令是用户用来设置定时规则的命令。通过crontab可以在固定的间隔时间执行指定的系统指令或script脚本。用法:crontab [-u user] file crontab [-u user] [ -e | -l | -r ]-e编辑用户的crontab-l查看用户的crontab

2016-09-11 17:09:41 1026 1

原创 Linux命令(16)---chgrp、chown

chgrp命令chgrp(change group)改变文件或目录属组。 chgrp - change group ownership用法:chgrp [OPTION]... GROUP FILE... 例:chgrp inhome test.sh #改文件的所属组chgrp -R root test #改目录下所有文件的所属组[root@ianLinux test]# touch test

2016-09-09 23:05:15 1153

原创 Linux命令(15)---umask

umask命令umask控制文件或目录默认权限分配的命令。超级用户创建目录权限默认是755,创建文件默认权限是644。用户的默认权限如果用户的UID大于199,且id -gn、id -un相等,umask是002,否则umask是022。 超级用户root: uid<199[root@ianLinux ~]# umask0022[root@ianLinux ~]# id rootuid=0

2016-09-09 17:03:53 851

原创 Linux命令(14)---chmod

chmod命令chmod,change mode,改变文件或目录权限的命令。chmod来改变文件或目录的权限有两种方法:一种是通过权限字母和操作符表达式的方法,一种是使用数字方法来设置权限。chmod数字权限方法(好用)使用数字权限设置权限的命令格式如下: chmod [数字组合] 文件名r(4),w(2),x(1),-(0) 例:rwxr-xr-x 755如果想改变的仅仅是打开目录的权限,使用

2016-09-09 15:54:27 518

原创 Linux目录的权限

模拟环境:test目录的权限为rwxr-xr-xIanA用户(rwx)可读可写可执行:cd到test目录下去,就相当于执行test目录文件了。 读test目录文件。 改名,创建,删除文件,相当于对test目录文件的写操作。 IanB用户(r-x)可读不可写可执行:对于test目录文件,能cd到test目录下(可执行),能ls(可读)。不能创建文件(不可写)。test目录的权限为rw—x–x修改

2016-09-08 14:37:20 791

原创 Linux普通文件的权限

文件权限概述linux中的文件或目录的权限和用户及用户组关联很大。 linux中每个文件或目录都有一组共9个基础权限位,每三位字符被分为一组,他们分别是属主位(占三个字符)、用户组权限位(占三个字符)、其它用户权限位(占三个字符)。比如rwxr-xr-x,linux中正是这9个权限(更多权限位后面会提到)位来控制文件属主、用户组以及其它用户的权限。r(read)可读权限,对应数字4。w(wri

2016-09-08 13:04:14 1445

原创 Linux命令行下快捷键

快捷键 说明 Ctrl+a 切换到命令行开始 Ctrl+e 切换到命令行末尾 Ctrl+c 终止当前命令或脚本 Ctrl+d ①退出当前shell,相当于exit②一个个删除光标后字符 Ctrl+l 清除屏幕内容,相当于clear Ctrl+u 清除(剪切)光标之前的内容 Ctrl+k 清除(剪切)光标之后的内容 Ctrl+r 查找

2016-09-07 21:59:55 458

原创 Linux命令练习第三关(6)

10.当从root用户切到普通用户Ian时,执行ifconfig会提示:[Ian@ianLinux ~]$ ifconfig-bash:ifconfig:command not found请问这是为什么?如何解决,请给出详细解决过程。解答: 原因:这是因为普通用户Ian系统环境变量PATH路径问题导致的。ifconfig命令是超级用户的管理命令,因此CentOS5默认情况,其命令路径/sbin不

2016-09-07 21:32:56 651

原创 Linux命令练习第三关(5)

12.已知/root/data/ianTest.txt文件内容为: 请问如何把文件中的空行过滤掉。grep方法:这个方法最好: ①grep -v "^$" /root/data/ianTest.txt②grep "." /root/data/ianTest.txt sed方法: 利用sed的过滤: sed -n ‘/过滤的内容/处理的命令’ 文件^[^$]表示匹配非空行的开头,这样就是过滤非

2016-09-07 20:25:56 530

原创 Linux命令(13)---date

date命令date命令以给定的格式显示当前时间,或是设置系统日期。用法:date [OPTION]... [+FORMAT]选项:-s, –set=STRING 用指定的字符串来设置时间-d, –date=STRING 显示指定字符串所描述的时间而非当前时间格式:以给定的格式FORMAT控制着输出。%F 完整日期格式,等价于%Y-%m-%d%T 时间,等价于%H:%M:%S%Y 年份

2016-09-07 12:08:23 599

原创 Linux命令练习第三关(4)

7.执行下面命令时发现提示需要输入密码,请问提示输入的密码是哪个用户的密码。[Lisa@ianLinux ~]$ sudo su - Ian解答:当前执行命令Lisa账户的密码。 命令 说明 su - su- root 该命令是真正用户角色转化命令(默认是切到root),输入的是root密码 sudo su - 该命令是通过sudo权限进行角色转化(默认是切到root),输入的

2016-09-07 10:52:51 674

原创 Linux命令练习第三关(3)

5.查找当前目录下所有文件,并把文件中的www.etiantian.org字符串替换成www.ian.me。模拟环境: [root@ianLinux test]# cat 1.log123解答: 命令:find ./ -type f|xargs sed -i 's#www.etiantian.org#www.ian.me#g'生产环境案例:一个lamp的服务器,站点目录下所有文件均被植入了如下

2016-09-06 22:45:17 624

原创 Linux命令练习第三关(2)

3.请执行命令取出linux中eth0的IP地址(请用cut,awk,sed命令答)。cut方法:[root@ianLinux ~]# ifconfig eth0|sed -n '2p' inet addr:192.168.0.199 Bcast:192.168.0.255 Mask:255.255.255.0[root@ianLinux ~]# ifconfig eth0

2016-09-06 21:00:20 621

原创 Linux命令练习第三关(1)

1.如何取得/etc/hosts文件的权限对应的数字内容,-rw-r–r–为644,要求使用命令取得644这样的数字。解答: 思路: 1.通过stat输出包含目标的内容。 2.通过head,tail,sed,awk,grep定位到单行。(取行惯用命令) 3.通过cut,awk等设置分隔符取出需要段内容。(取列惯用命令)[root@ianLinux ~]# stat /etc/hostsawk

2016-09-05 22:57:03 833

原创 Linux通配符

通配符与正则表达式的元字符代表的意义不一样。 通配符一般用于命令行bash环境,而linux正则表达式用于grep,sed,awk场景。 通配符 意义 * 代表0个到无穷多个任意字符 ? 代表一定有一个任意字符 ; 连续命令执行分隔符 # 配置文件注释 | 管道,分隔两个管道命令的界定 ~ 用户家目录 - 上一次的目录 $ 变量

2016-09-05 21:18:43 560

原创 sed配合正则表达式应用案例

问题:利用linux正则表达式把IP取出来。 解答:[root@ianLinux ~]# ifconfig eth0|sed -n '2p'inet addr:192.168.0.199 Bcast:192.168.0.255 Mask:255.255.255.0(1)利用sed的替换功能替换: sed ‘s#想要修改的内容#新内容#g’ 文件 。把IP前面的inet addr:替换为空,

2016-09-04 18:38:14 4997

原创 Linux正则表达式

正则表达式简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,通过定义的这些特殊符号的辅助,系统管理员就可以快速过滤,替换或输出需要的字符串。linux正则表达式一般以行为单位匹配处理的。字符集LC_ALL=C。容易混淆的两个注意事项:正则表达式应用非常广泛,存在于各种语言中,例如php,python,java等。但是以下所讨论的都是linux系统运维工作中的正则表达式,即linux

2016-09-04 15:15:09 555 1

原创 用户与用户组基本概念

在linux系统中用户是分角色的,在linux系统中,由于角色不同,权限和所完成的任务也不同。对于linux系统来说,用户的角色是通过UID和GID识别的。 在linux系统中,一个UID是唯一标识一个系统用户的账号(相当于我们的身份证)。用户系统账号的名称(如Ian)其实是给人看的,linux系统能够识别的仅仅是UID和GID这样的数字。用户的UID就相当于我们的身份证一样,用户名就相当于我们的

2016-09-04 11:09:37 3408

原创 linux系统链接小结

有关文件的链接小结删除软链接文件对源文件及硬链接文件无任何影响。删除硬链接文件对源文件及软链接文件无任何影响。删除源文件,对硬链接文件没有影响,但是会导致软链接文件失效,红底白字闪烁。同时删除源文件、硬链接文件,整个文件会真正的被删除。很多硬件设备中的快照功能,就是利用了硬链接的原理。源文件和硬链接文件具有相同的索引节点号,可以认为是同一个文件或一个文件的多个入口。源文件和软链接文件索

2016-09-03 20:25:45 568

原创 linux系统链接---目录链接

之前两篇是关于文件链接的。 硬链接: http://blog.csdn.net/codetz/article/details/52414671软链接: http://blog.csdn.net/codetz/article/details/52422312这篇主要谈关于目录的硬链接和软链接。 提示: 目录不可以创建硬链接,但可以创建软链接。 目录的软链接在生产场景中更经常用到,硬

2016-09-03 20:00:22 8195 1

原创 linux系统链接---软链接

软链接软链接(Soft Link)也称为符号链接(Symbolic Link)。linux里的软链接文件就类似Windows系统中的快捷方式。linux里的软链接文件实际上是一个特殊的文件,文件类型是l。软链接文件实际上可以理解为一个文本文件,这个文件中包含有软链接指向另一源文件的位置信息内容,因此,通过访问这个“快捷方式”就可以迅速定位到软链接所指向的源文件实体。原理图: 命令: ln -s

2016-09-03 11:42:51 2012

原创 linux系统文件删除原理

linux系统下文件名是存在父目录的block里面,并指向这个文件的inode节点,这个文件的inode节点再指向存放这个文件的block数据块。 我们删除一个文件,实际上并不是清除了inode节点和block数据块。只是在这个文件的父目录里面的block中,删除了这个文件的名字,从而使这个文件名消失,并且无法指向这个文件的inode节点。 当没有文件名指向这个inode节点的时候,会同时释放i

2016-09-02 17:51:16 3644

原创 linux系统链接---硬链接

链接的概念在linux系统中,链接可分为两种:一种为硬链接(Hard Link),另一种为软链接或符号链接(Symbolic Link or Soft Link)。ln这个命令就是创建链接文件的。在默认不带参数的情况下,执行ln命令创建的链接是硬链接。如果带-s创建链接则为软链接。硬链接硬链接是指通过索引节点(inode)来进行链接。在linux(ext2,ext3,ext4)文件系统中,保存在磁盘

2016-09-02 15:59:52 1234

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除