Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1376180
  • 博文数量: 370
  • 博客积分: 10654
  • 博客等级: 中将
  • 技术积分: 4396
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 15:44
文章分类

全部博文(370)

文章存档

2012年(36)

2011年(195)

2010年(139)

分类: LINUX

2011-07-30 17:11:15

西邮Linux兴趣小组10暑期学习周总结

第一周(722日至728日)

  第三组

组长:陈嘉杰

组员: 张释文  曹宝文  齐航空   扬帆

本周任务

完成《鸟哥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_APPEND) {

          printf("append");  

    }

    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的使用不能很好理解。

q3fcntl函数中那些文件描述符的标志,不能理解,不知道他们是干什么的。总之,这部分的内容掌握的不好,因为不能直观的看到有些东西的改变造成的影响什么的......待讨论。

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:根据测试,umask不能改变第一位,只能改变后三位.

Q:创建一个符号链接,链接文件的权限是全慢的,如果要对文件读写是不是要看原文件的权限。用chmod对链接文件进行修改权限也是对原文件的权限修改?在c文件操作:书上有例题用了“__LINE__”,这是什么意思?

A:这个小组内尚未解决,但是根据情况来看应该是不能改符号链接的权限,且符号链接的权限就是其所指向的文件权限。

Q:文件的inode里面存有它的block,如果要去读一个文件是读完一个block直接去读第二个block还是返回inode再去找第二个block??

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:stat函数和lstat函数只有在遇到链接文件是才会不一样,链接 文件是指指向另一个文件的文件。Stat函数则返回该链接文件本身的信息, lstat函数则返回该文件所指向的文件的信息。

A:struct stat 结构体的成员st_mode怎么用?

Q:与其他宏定义元素做与运算。

6、第六章讲的那些函数和命令有联系么?

A:命令是用第六章的函数支撑起来的。

A:文件和目录是一个道理。

Q:open函数第三个参数存取权限,书上说是mode和umask运算得过到 的,怎么算?

A:st_mode和其他的宏定义做与运算。

Q:dup函数若调用成功,返回最小的尚未被使用的文件描述符,怎么理解?

A:组内暂未解决。


Q:stat函数和lstat函数在遇到链接文件时的区别还不是很清楚。


A:stat函数和lstat函数只有在遇到链接文件是才会不一样,链接 文件是指指向另一个文件的文件。Stat函数则返回该链接文件本身的信息, lstat函数则返回该文件所指向的文件的信息。

Q:struct stat 结构体的成员st_mode怎么用?

A:与其他宏定义元素做与运算。


Q:第六章讲的那些函数和命令有联系么?

A:命令是用第六章的函数支撑起来的。


Q:书中写到一个例子,_LINE_是与编译器内置的宏,但是我在编译之后给出的结果是_LINE_没有定义。

A:_LINE_是双下划线__LINE__

阅读(966) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~