全部博文(370)
分类: LINUX
2011-07-30 17:11:15
西邮Linux兴趣小组10级暑期学习周总结
第一周(7月22日至7月28日)
第三组
组长:陈嘉杰
组员: 张释文 曹宝文 齐航空 扬帆
本周任务:
完成《鸟哥Linux的私房菜》基础学习篇第六章,第七章的学习。 第六章的内容重点在文件权限,熟悉掌握linux中几种文件权限代表的意义,区分用户,用户组,其它用户对某一目录的存取权限,能够熟练的按照要求设置相应的文件权限,更改文件的属主。在本章节中常用的命令:chmod,chown,chgrp。 第七章,在本章节中,要能熟悉的应用管理文件与目录的几个命令,如:cd,ls,cp,mv,rm等都是很常用的命令, 这些命令的某些参数也得熟悉掌握,接下来就是文件目录的默认权限与隐藏权限,区别这一小部分的权限与第六章中文件权限的使用方法及使用时机,熟悉文件权限的数字计算方式。完成《Linux C 编程实战》第六章 文件操作
首先利用各种途径去了解linux文件系统结构。清楚文件的分类。
掌握各种对文件操作的函数。例如对文件的操作函数和对文件属性操作的函数。最后在学完这一章时写一个自己的ls命令,例如:ls-a, ls -l 等。
齐航空
一、学习进度
《鸟哥的私房菜》第7.8章
《linuxC编程实战》第6章
二、学习体会
这周在学习鸟哥的第7,8章,和c实战编程的第6章,感觉到后面进度就慢了下来。个人感觉内容几乎全是新的东西,要慢慢的去体会,看书时要不断的翻到前面去看,这样不仅有利于记忆,在反复看的过程中对一个问题就会有不同的理解。。
三、遇到的问题
1.文件的默认权限umask: 命令umask 显示的4位数字,第一位是什。如果要改umask用命令 “umask nnn“那个nnn是八进制的数还是十进制的数,如果我用umask后面接超过777的数就会报超范围,那么umask显示的第一位怎样改??
2.创建一个符号链接,链接文件的权限是全慢的,如果要对文件读写是不是要看原文件的权限。用chmod对链接文件进行修改权限也是对原文件的权限修改?
2.在c文件操作:书上有例题用了“__LINE__”,这是什么意思?
3.文件的inode里面存有它的block,如果要去读一个文件是读完一个block直接去读第二个block还是返回inode再去找第二个block??
4.删除文件时,是只删除一个dentry的信息吗?如果创建硬链接,删除其中一个文件名,它可以通过另一个文件名找到inode并去找block,如果删除全部的文件名,它的存储信息会不会释放??
5.inode可不可以反推?貌似win下磁盘文件恢复能找回文件,但文件名找不回来。
一、学习进度
《鸟哥的私房菜》第七章。
《linux下的C编程实战》第六章。
二、遇到问题
1、如果一个目录对其他人的权限可读,那其他人就不能查看该目录,那么 文件呢?
2、open函数第三个参数存取权限,书上说是mode和umask运算得过到 的,怎么算?
3、dup函数若调用成功,返回最小的尚未被使用的文件描述符,怎么理解?
4、stat函数和lstat函数在遇到链接文件时的区别还不是很清楚。
解决:stat函数和lstat函数只有在遇到链接文件是才会不一样,链接 文件是指指向另一个文件的文件。Stat函数则返回该链接文件本身的信息, lstat函数则返回该文件所指向的文件的信息。
5、struct stat 结构体的成员st_mode怎么用?
6、第六章讲的那些函数和命令有联系么?
7、cp -r和cp -R的区别?
三、学习心得
1、书要细细的看,反复的看。
2、遇到问题不要跳过,慢慢看,大问题都可以分成小问题。
3、不懂多问,总有收获。
陈嘉杰
一、学习进度
《鸟哥的私房菜》第6.7章
《linux C 编程实战》第6章,写出自己的ls,具有-a -l
-al的功能。
二、学习体会
第二周《鸟哥》于《linuxC》的搭配着看,熟悉了很多linux的基本命令,对权限、文件有了初步的认识和理解。
学习《linuxC》文件这一章时,遇到了很多linux下的函数,很多以前都没有见过,为了有更好的认识,我把书上的每个例子都在电脑上打了一遍并运行,记忆更深刻。
在编写my_ls.c时,主要用到了目录操作函数opendir(),readdir(),closedir()和获取文件属性lsata()函数。但在编写之初,对一些函数的了解还是不够,比如说用getuid,getgid函数将用户和用户组的数字代号转换成字符串代号。还有一些小地方的处理,是通过对书上ls例子的阅读才完成的,完成ls后我发现还是有很多不足的地方,有一些数据显示的处理没有书上做得好,函数结构和参数传递的构思有些麻烦了,写出的代码有近500行,但是书上用300行就完成了,所以需要对数据结构要开始进行学习。
《鸟哥》这本书,主要是对一些命令的了解,很对一些新概念的理解。而《linuxC》更多的是实际操作。
对linux了解的越多,就越发现自己需要了解更多的知识!
三、学习遇到的问题
Q1.ubuntu下用户的权限问题,sudo su 获取的root和su -root获取的root有什么区别?
Q2.用chattr +i 给一个文件进行隐藏属性的操作,结果用上述两种root都没法删除.
Q3.用find -nouser 或者 find -nogroup 在#下会显示"find './.gvfs'":权限不够。怎样才能获取能进行一切操作的root权限?
Q4.cose-on-exec是什么?
Q5.文件或目录的删除,由什么属性决定?
Q6.head -n20 filename | tail -n 10
能显示文件成11~20行的内容,实现的原因是什么。
Q5.所属组和用户组的区别。
Q6.《linuxC编程实战》p154
ret = fcntl(fd, F_SETFL, O_SYNC)
}
if (ret & O_NONBLOCK) {
printf(nonblock);
}
if (ret & O_SYNC) {
printf("sync");
}
将fcntl()中的第三个参数改为O_SYNC,程序什么也不输出,若改为O_APPEND,O_NONBLOCK 则可以分别输出append,nonblock.为什么设置成O_SYNC就不能输出sync?
四、解决的问题和一些小技巧。
1.__LINE__ LINE左边和右边分别是两条下划线,一共是四个下划线
2.perror("string"); perror优先级大,在程序运行成如果有错误,会直接显示出错误,并且会将括号的字符串原样输出.
3. 二级指针引用的时候注意初始化,还需注意申请空间.
4.静态数组在函数引用结束后会自动释放,而用malloc动态申请的空间不会在函数结束后释放,除非用free()函数手动释放,或在程序结束后自动释放。
5.在shell的命令行中,用鼠标选中一些字符串,点击鼠标中键,会在光标后输出选中的字符串.
曹宝文
一、学习进度
《linux C实战编程》文件操作
《鸟哥的linux私房菜》第六章,第七章
二、学习内容
由于时间的关系,上述内容只大概看了一下
1,更改文件权限
charp ;改变文件所属用户组;
chown: 改变文件拥有者;
chmod:改变文件属性,SUID
2,目录配置
学习 文件系统层次标准即FHS
深入了解linux目录及功能
(读到这块内容时感触很深)
3,管理文件目录
ls, cp ,rm,mv
4,查看文件内容
cat,more,less,head,tail,touch,od
4.
档案预设权限:umask
档案隐藏属性: chattr, lsattr
档案特殊权限:SUID, SGID, SBIT, 权限设定
观察文件类型:file
5. 搜寻:
which (脚本文件的搜寻)
whereis, locate, find
三、遇到的问题
1,《实战》上的文件锁这块一时难以看懂
2,还有ls命令完全自己编写很难,还需反复看。
杨帆
一、学习进度
由于有事回家,学习进度还挺留在n天前.....
这段时间的学习主要还是c语言对文件系统的操作,以及鸟哥的一部分内容。
二、遇到的问题
linux编程实战中主要由以下几个问题:
q1:书中写到一个例子,_LINE_是与编译器内置的宏,但是我在编译之后给出的结果是_LINE_没有定义。
q2:在讲解dup,dup2系统调用函数的时候,在书中没有找到相关的例子,对dup的使用不能很好理解。
q3:fcntl函数中那些文件描述符的标志,不能理解,不知道他们是干什么的。总之,这部分的内容掌握的不好,因为不能直观的看到有些东西的改变造成的影响什么的......待讨论。
q4:对于文件锁的理解,是不是将文件锁设置在一打开的文件指针所在处?
鸟哥的私房菜中:
主要想看了关于14章前半部分的内容,遇到一个没有解决的问题:
q1:用鸟哥告诉的命令:mount -o remount , acl / 在我的机子上并没有设置好文件系统支持acl模式,只能通过更改fstab文件。
其他问题,关于ln
q1:再创建硬链接时eg: ln a b 是不是说将a完全复制了一份,改成b的名字,其他的都一样。还有在创建软链接的时候,我所创建的软链接权限时lrwxrwxrwx,如果将源文件权限改为000换个用户为什么不能删除链接文件,我只是相删除拥有lrwxrwxrwx的链接文件,但是提示也是没有权限.....求解。
Q&A小组讨论:
Q:文件的默认权限umask: 命令umask 显示的4位数字,第一位是什。如果要改umask用命令 “umask nnn“那个nnn是八进制的数还是十进制的数,如果我用umask后面接超过777的数就会报超范围,那么umask显示的第一位怎样改?
A:这个小组内尚未解决,但是根据情况来看应该是不能改符号链接的权限,且符号链接的权限就是其所指向的文件权限。
A:小组内尚未解决。
Q:删除文件时,是只删除一个dentry的信息吗?如果创建硬链接,删除其中一个文件名,它可以通过另一个文件名找到inode并去找block,如果删除全部的文件名,它的存储信息会不会释放??
A:小组讨论后得出当一个文件被删除后内容并没有被删处,而是保存在了硬盘上,直到有内容被覆盖。
Q:inode可不可以反推?貌似win下磁盘文件恢复能找回文件,但文件名找不回来。
A:应该可以。
Q:如果一个目录对其他人的权限可读,那其他人就不能查看该目录,那么 文件呢?
A:文件和目录是一个道理。
Q:open函数第三个参数存取权限,书上说是mode和umask运算得过到 的,怎么算?
A:st_mode和其他的宏定义做与运算。
Q:dup函数若调用成功,返回最小的尚未被使用的文件描述符,怎么理解?
A:组内暂未解决。
Q:stat函数和lstat函数在遇到链接文件时的区别还不是很清楚。
A:struct stat 结构体的成员st_mode怎么用?
Q:与其他宏定义元素做与运算。
6、第六章讲的那些函数和命令有联系么?
A:命令是用第六章的函数支撑起来的。
A:文件和目录是一个道理。
Q:open函数第三个参数存取权限,书上说是mode和umask运算得过到 的,怎么算?
A:st_mode和其他的宏定义做与运算。
Q:dup函数若调用成功,返回最小的尚未被使用的文件描述符,怎么理解?
A:组内暂未解决。
Q:stat函数和lstat函数在遇到链接文件时的区别还不是很清楚。
Q:struct stat 结构体的成员st_mode怎么用?
A:与其他宏定义元素做与运算。
Q:第六章讲的那些函数和命令有联系么?
A:命令是用第六章的函数支撑起来的。
Q:书中写到一个例子,_LINE_是与编译器内置的宏,但是我在编译之后给出的结果是_LINE_没有定义。
A:_LINE_是双下划线__LINE__