<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[_今已亭亭如盖矣]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/codeTZ</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; codeTZ]]></copyright><item><title><![CDATA[linux中的list.h(3)]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/53229439</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/53229439</guid><author>codeTZ</author><pubDate>Sat, 19 Nov 2016 15:15:18 +0800</pubDate><description><![CDATA[内核链表的增加、删除、遍历

* 相关博文：*

linux中的list.h(1) ——>内核链表简介、list_entry()方法。 
linux中的list.h(2) ——>内核链表的创建、LIST_HEAD()方法。]]></description><category></category></item><item><title><![CDATA[linux中的list.h(2)]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/53229351</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/53229351</guid><author>codeTZ</author><pubDate>Sat, 19 Nov 2016 13:07:59 +0800</pubDate><description><![CDATA[linux内核中链表的创建linux内核中的双链表操作非常经典。为了加深对代码的理解，我将在用户态下对里面的内容进行一些实现。 
注意list.h是在内核态中用的，在用户态直接#include <linux/list.h>是不行的。不过，虽然list.h是内核代码中的头文件，但我们可以把它移植到用户空间使用。相关博文： 
 linux中的list.h(1)  ——>linux内核中链表简介，list]]></description><category></category></item><item><title><![CDATA[linux中的list.h(1)]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/53224208</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/53224208</guid><author>codeTZ</author><pubDate>Fri, 18 Nov 2016 22:23:12 +0800</pubDate><description><![CDATA[相关博文： 
linux中的list.h(2) ——>内核链表的创建、LIST_HEAD()方法 
 linux中的list.h(3) ——>内核链表的增加、删除、遍历linux内核中的链表在之前我接触的数据结构中的链表，通常的做法是在结构体的内部添加一个指向数据next节点的指针，才能串在链表中。 
比如，现有一个fox数据结构：struct fox{
    unsigned long weig]]></description><category></category></item><item><title><![CDATA[守护进程]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/52816551</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/52816551</guid><author>codeTZ</author><pubDate>Fri, 14 Oct 2016 21:41:31 +0800</pubDate><description><![CDATA[编写简单守护进程（1）任何一个进程都可以将自己变成守护进程。 
（2）create_daemon函数要素
子进程等待父进程退出
子进程使用setsid创建新的会话期，脱离控制台
调用chdir将当前工作目录设置为/
umask设置为0以取消任何文件权限屏蔽
关闭所有文件描述符
将0、1、2定位到/dev/null
最初的daemon_2016-10-14.c#include <stdio.h>
#i]]></description><category></category></item><item><title><![CDATA[exec族函数]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/52807138</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/52807138</guid><author>codeTZ</author><pubDate>Thu, 13 Oct 2016 15:13:25 +0800</pubDate><description><![CDATA[为什么需要exec函数？
fork子进程是为了执行新程序（fork创建了子进程后，子进程和父进程同时被OS调度执行，因此子进程可以单独的执行一个程序，这个程序宏观上将会和父进程程序同时进行）
可以直接在子进程的if中写入新程序打代码。但这样不够灵活，因为我们只能把子进程程序的源代码贴过来执行（必须知道源代码，而且源代码太长了也不好控制）。例如我们希望子进程来执行ls -la命令就不行了（没有源代码，]]></description><category></category></item><item><title><![CDATA[文件系统---stat函数]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/52760382</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/52760382</guid><author>codeTZ</author><pubDate>Mon, 10 Oct 2016 20:13:34 +0800</pubDate><description><![CDATA[statstat函数主要用于获取文件的inode信息。 
stat命令其实就是调用的stat函数。stat中时间的辨析
atime(最近访问时间)
mtime(最近更改时间):指最近修改文件内容的时间
ctime(最近改动时间)：指最近改动inode的时间
1）chmod 777 stat_1.txt stat之后发现ctime变了。改变了文件的权限，文件权限保存在inode里面。 
2）vim s]]></description><category></category></item><item><title><![CDATA[文件系统---认识ext2文件系统]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/52759553</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/52759553</guid><author>codeTZ</author><pubDate>Sat, 08 Oct 2016 18:29:39 +0800</pubDate><description><![CDATA[磁盘的物理组成：
扇区为最小的物理存储单位，每个扇区为512字节。
将扇区组成一个圆，那就是柱面，柱面是分区的最小单位。
第一个扇区很重要，里面有硬盘主引导记录（Masterbootrecord,MBR）及分区表，其中MBR占有446字节，分区表占有64字节。
各种接口的磁盘在Linux中的文件名，①/dev/sd[a-p][1-15]:为SCSI，SATA，USB，Flash等接口的磁盘文件名；②]]></description><category></category></item><item><title><![CDATA[文件IO---lseek、fcntl函数]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/52749669</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/52749669</guid><author>codeTZ</author><pubDate>Fri, 07 Oct 2016 21:59:38 +0800</pubDate><description><![CDATA[lseeklseek()用来控制文件的读写位置。（移动读写指针位置）。 
每个打开的文件都记录着当前读写位置，打开文件时读写位置是0，表示文件开头，通常读写多少个字节就会将读写位置往后移多少个字节。用法：#include <sys/types.h>
#include <unistd.h>off_t lseek(int fd, off_t offset, int whence);
/*lseek成功返]]></description><category></category></item><item><title><![CDATA[sudo的配置文件/etc/sudoers]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/52626682</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/52626682</guid><author>codeTZ</author><pubDate>Thu, 22 Sep 2016 21:56:28 +0800</pubDate><description><![CDATA[/etc/sudoers配置文件中别名的知识别名类型（Alias_Type）包括如下四种：
User_Alias定义用户别名
Host_Alias定义主机别名
Runas_Alias定义角色别名
Cmnd_Alias定义命令别名
User_Alias定义用户别名：20 # User_Alias ADMINS = jsmith, mikemHost_Alias定义主机别名：13 # Host_Alia]]></description><category></category></item><item><title><![CDATA[用户管理(3)---su、sudo]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/52620617</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/52620617</guid><author>codeTZ</author><pubDate>Thu, 22 Sep 2016 17:29:12 +0800</pubDate><description><![CDATA[su命令su就是切换用户身份的命令。通过su命令可以在用户之间切换，超级权限用户root向普通或虚拟用户切换不需要密码验证。其他普通用户之间或者普通用户切换到root，都需要切换用户的密码验证。su语法su [选项参数] [用户]
  参数选项
  说明   -,-l,–login
  使一个shell成为登录的shell，如执行su - Ian时，表示该用户想改变身份为Ian，并且使用Ian用户的]]></description><category></category></item><item><title><![CDATA[用户管理(2)---groupadd、passwd、userdel、groupdel、usermod]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/52606206</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/52606206</guid><author>codeTZ</author><pubDate>Wed, 21 Sep 2016 11:53:54 +0800</pubDate><description><![CDATA[groupdd命令groupadd后面可指定用户组名称来建立新的用户组。 
与groupadd命令有关的文件有：
/etc/group  用户组相关文件
/etc/gshadow 用户组加密相关文件
/etc/login.defs 
groupadd语法groupadd [-g gid [-o]] [-r] [-f] group
  参数选项
  说明   -g gid
  指定用户组GID值]]></description><category></category></item><item><title><![CDATA[用户管理(1)---useradd]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/52599524</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/52599524</guid><author>codeTZ</author><pubDate>Tue, 20 Sep 2016 23:01:11 +0800</pubDate><description><![CDATA[useradd命令useradd用户管理命令。帐号建立或更新新用户资讯的工具。当使用useradd命令不加参数选项，后面直接跟所添加的用户名时，系统首先会读取配置文件/etc/login.defs和/etc/default/useradd中所定义的参数或规则，根据设置的规则添加用户，同时会向/etc/passwd和/etc/group文件内添加新建用户和用户组记录。/etc/passwd和/etc/]]></description><category></category></item><item><title><![CDATA[用户管理(4)---chage、whoami]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/52589049</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/52589049</guid><author>codeTZ</author><pubDate>Mon, 19 Sep 2016 22:48:46 +0800</pubDate><description><![CDATA[chage命令chage用来修改用户密码有效期限。 
chage - change user password expiry information.chage语法用法:chage [options] [LOGIN] 选项：
  chage参数选项
  说明  -d,–lastday 最近日期
  将最近一次密码设置时间设为“最近日期”
   -E,–expiredate过期日期
  将账户过期时间]]></description><category></category></item><item><title><![CDATA[对信号量的临界区保护]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/52565634</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/52565634</guid><author>codeTZ</author><pubDate>Sun, 18 Sep 2016 20:59:58 +0800</pubDate><description><![CDATA[概念介绍临界区(critical section)在任意时刻只允许一个进程对共享资源进行访问。一次只允许一个进程进入的该进程的那一段代码。对于临界资源的访问必须是互斥进行的，也就是当临界资源被占用时，另一个申请临界资源的进程会被阻塞，直到其所申请的临界资源被释放。而进程内访问临界资源的代码被称为临界区。while(TURE){
    进入区
    临界区
    退出区
    剩余区
}信号量]]></description><category></category></item><item><title><![CDATA[/etc/skel/目录]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/52541780</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/52541780</guid><author>codeTZ</author><pubDate>Wed, 14 Sep 2016 22:12:30 +0800</pubDate><description><![CDATA[/etc/skel目录是用来存放新用户配置文件的目录，当我们添加新用户的时候，这个目录下的所有文件会自动被复制到新添加的用户的家目录下。 
这个目录下的所有文件都是隐藏文件（以.点开头的文件）。 
通过修改、添加、删除/etc/skel目录下的文件，我们可为新创建的用户提供统一的、标准的、初始化用户环境。 
验证：添加新用户Lisa，发现/home/Lisa/下的文件与/etc/skel/目录下文件]]></description><category></category></item><item><title><![CDATA[定时任务练案例练习]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/52518462</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/52518462</guid><author>codeTZ</author><pubDate>Mon, 12 Sep 2016 23:02:30 +0800</pubDate><description><![CDATA[1.每隔2个小时将系统文件/etc/services 文件打包备份到/tmp下（每次备份按时间生成不同的备份包）。
在目标内容的上级目录打包 打包的频率是分，包名必须精确到分 确保命令行执行正确，然后写到脚本(复制)定时任务命令或程序最好写到脚本里执行
测试脚本正确性（定时任务要怎么写，命令行就怎么测试）
写到定时任务的脚本路径要有规范。而且定时打包或处理其他工作，不要在屏幕输出，可以打印到日志文件]]></description><category></category></item><item><title><![CDATA[Linux下的定时任务]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/52504736</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/52504736</guid><author>codeTZ</author><pubDate>Sun, 11 Sep 2016 20:26:57 +0800</pubDate><description><![CDATA[定时任务

linux系统中定时任务调度的工作可以分为两种情况：


linux系统自身定期执行的任务工作：系统周期性自行执行的任务工作，如轮询系统日志、备份系统数据、清理系统缓存等。
用户执行的任务工作：某个用户或系统管理员定期要做的任务工作，如每隔5分钟和互联网上时间服务器进行时间同步，每天晚上0点备份网站站点数据及数据库数据。


系统的日志： 


系统自动轮询任务的设置路径：



服务]]></description><category></category></item><item><title><![CDATA[Linux命令(17)---crontab]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/52504778</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/52504778</guid><author>codeTZ</author><pubDate>Sun, 11 Sep 2016 17:09:41 +0800</pubDate><description><![CDATA[crontab命令crond是linux系统中用来定期执行命令或指定程序任务的一种服务或软件。而crontab命令是用户用来设置定时规则的命令。通过crontab可以在固定的间隔时间执行指定的系统指令或script脚本。用法：crontab [-u user] file 
crontab [-u user] [ -e | -l | -r ]
-e编辑用户的crontab
-l查看用户的crontab]]></description><category></category></item><item><title><![CDATA[Linux命令(16)---chgrp、chown]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/52491160</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/52491160</guid><author>codeTZ</author><pubDate>Fri, 09 Sep 2016 23:05:15 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[Linux命令(15)---umask]]></title><link>https://blog.youkuaiyun.com/codeTZ/article/details/52488875</link><guid>https://blog.youkuaiyun.com/codeTZ/article/details/52488875</guid><author>codeTZ</author><pubDate>Fri, 09 Sep 2016 17:03:53 +0800</pubDate><description><![CDATA[umask命令umask控制文件或目录默认权限分配的命令。超级用户创建目录权限默认是755，创建文件默认权限是644。用户的默认权限如果用户的UID大于199，且id -gn、id -un相等，umask是002，否则umask是022。 
超级用户root： 
uid<199[root@ianLinux ~]# umask
0022
[root@ianLinux ~]# id root
uid=0]]></description><category></category></item></channel></rss>