11.11日UC房间课程内容:案例讲解

2010年11月22日 Linux基础 评论 8 条 阅读 11,651 views 次

Linux的文件权限和目录配置练习

请说明/bin与/usr/bin目录所放置的执行文件有何不同之处?
请说明/bin与/sbin目录所放置的执行文件有何不同之处?
请问下面这些目录主要放置什么数据?/etc/, /etc/init.d, /boot, /usr/bin, /bin, /usr/sbin, /sbin, /dev, /var/log
哪几个目录不能够与根目录(/)放置到不同的分区中?
试说明为何根目录为什么要小一点比较好?另外在分区时,为什么/home, /usr, /var, /tmp最好不要与根目录放到相同的分区? 试说明原因为何(由目录放置数据的内容谈起)?

Linux文件与目录管理练习

1、Linux底下,根目录下有没有上层目录(..)存在?
2、假如你是root,如果你将ls由/bin/ls移到成为/root/ls,然后你自己本身也在/root目录下, 请问(1)你能不能直接输入ls来执行?(2)若不能,你该如何执行ls这个指令?(3)若要直接输入ls既可执行,又该如何操作?
3、我想显示一个文件的10-30行,命令要如何写呢?
4、在root用户下,利用which ifconfig 和whereis ifconfig都能找到内容。为什么在其它的用户下,只用能whereis才能找到ifconfig,而which则找不到呢?(这只针对RHEL5以前的有用,RHEL6已经不同了)
5、如果能够执行cp /dir1/file1 /dir2请说明 dir1, file1, dir2 的最小所需权限为什么?
6、当一个使用者的umask分别为033与044时,他所建立文件与目录的权限为什么?
7、找出/etc底下,文件大小介于50K 到 60K 之间的文件,并将权限完整的列出
找出 /etc 底下,容量大于1500K 以及容量等于0的文件:

linux/unix系统上vim的使用练习

系统,centos5.5
1. 请在 /tmp 这个目录下建立一个名为 vitest 的目录;
2. 进入 vitest 这个目录当中;
3. 将 /etc/man.config 复制到本目录底下;
4. 使用 vi 开启本目录下的 man.config 这个档案;
5. 在vi中设定一下行号;
6. 移动到第 58 行,向右移动 40 个字符,请问你看到的双引号内是什么目录?
7. 移动到第一行,并且向下搜寻一下『 bzip2 』这个字符串,请问他在第几行?
8. 接着下来,我要将 50 到 100 行之间的『小写 man 字符串』改为『大写 MAN 字符串』,并且一个一个挑选是否需要修改,如何下达指令?如果在挑选过程中一直按『y』, 结果会在最后一行出现改变了几个 man 呢?
9. 修改完之后,突然反悔了,要全部复原,有哪些方法?
10. 我要复制 65 到 73 这九行的内容(含有MANPATH_MAP),并且贴到最后一行之后;
11. 21 到 42 行之间的开头为 # 符号的批注数据我不要了,要如何删除?
12. 将这个档案另存成一个 man.test.config 的檔名;
13. 去到第 27 行,并且删除 15 个字符,结果出现的第一个单字是什么?
14. 在第一行新增一行,该行内容输入『I am a OPSer...』;
15. 储存后离开吧!

8 条留言  访客:4 条  博主:4 条

  1. Linux的文件权限和目录配置练习答案
    1、请说明/bin与/usr/bin目录所放置的执行文件有何不同之处?
    /bin主要放置在开机时,以及进入单人维护模式后还能够被使用的命令,至于/usr/bin则是大部分软件提供的命令存放处。

    2、请说明/bin与/sbin目录所放置的执行文件有何不同之处?
    /bin放置的是一般用户惯用的命令,至于/sbin则是系统管理员才会使用到的命令。不过/bin与/sbin都与开机、单人维护模式有关。 更多的执行档会被放置到/usr/bin及/usr/sbin底下。

    3、请问下面这些目录主要放置什么数据?/etc/, /etc/init.d, /boot, /usr/bin, /bin, /usr/sbin, /sbin, /dev, /var/log
    请参考课程内容,这里不重复来写了。

    4、哪几个目录不能够与根目录(/)放置到不同的分区中?
    /etc(配置文件), /bin(一般身份可用执行文件), /dev(设备文件), /lib(执行程序的函数库或核心模块等), /sbin(系统管理员可用命令)

    5、试说明为何根目录为什么要小一点比较好?另外在分区时,为什么/home, /usr, /var, /tmp最好不要与根目录放到相同的分区? 试说明原因为何(由目录放置数据的内容谈起)?
    根据FHS的说明,越小的/可以放置的较为集中且读取频率较不频繁,可避免较多的错误。 至于/home(用户家目录), /usr(软件资源), /var(变动幅度较大的数据), /tmp(系统暂存)中, 因为数据量较大或者是读取频率较高,或者是不明的使用情况较多,因此建议不要与根目录放在一起, 也会有助于系统安全。

    Linux文件与目录管理练习答案
    1、Linux底下,根目录下有没有上层目录(..)存在?
    在根目录下存在..及.这两个目录,但是他们是一样的属性,都表示的是.(当前目录)
    2、假如你是root,如果你将ls由/bin/ls移到成为/root/ls,然后你自己本身也在/root目录下, 请问(1)你能不能直接输入ls来执行?(2)若不能,你该如何执行ls这个指令?(3)若要直接输入ls既可执行,又该如何操作?
    mv /bin/ls /root/
    pwd
    /root
    这时候不能直接执行ls这个命令,因为在PATH中找不到这个命令了,只有用绝对路径和相对路径才能执行ls命令
    ./ls
    /root/ls
    如果想直接输入ls既可执行,那就要把/root目录也加到PATH中
    PATH=”$PATH”:/root
    最后,记得把你的ls还原
    还原ls后,还要记得用source /root/.bashrc来还原环境变量。要不就重新启动你的机子,否则,你的环境变量会改变。
    3、我想显示一个文件的10-30行,命令要如何写呢?
    head -n 30 man.config |tail -n +10
    head -n 30 man.config |tail -n 21

    4、在root用户下,利用which ifconfig 和whereis ifconfig都能找到内容。为什么在其它的用户下,只用能whereis才能找到ifconfig,而which则找不到呢?(这只针对RHEL5以前的有用,RHEL6已经不同了)
    因为which是根据用户的$PATH来查找相应的文件,whereis是根据数据库里面的资料来查询。而ifconfig是在/sbin/这个目录下,普通的用户$PATH是没有这个目录的,所以是找不到的。
    5、如果能够执行cp /dir1/file1 /dir2请说明 dir1, file1, dir2 的最小所需权限为什么?
    dir1:–x
    file1:r
    dir2:-wx

    [root@www ~]# mkdir /dir1/
    [root@www ~]# touch /dir1/file1
    [root@www ~]# mkdir /dir2
    [root@www ~]# chmod 001 /dir1/
    [root@www ~]# chmod 004 /dir1/file1
    [root@www ~]# chmod 003 /dir2
    [root@www ~]# su – test
    [test@www ~]$ cp /dir1/file1 /dir2/
    [test@www ~]$ ls -ld /dir1;ls -ld /dir2;ls -l /dir1/file1
    d——–x 2 root root 4096 Nov 19 14:00 /dir1
    d——-wx 2 root root 4096 Nov 19 14:06 /dir2
    ——-r– 1 root root 0 Nov 19 14:00 /dir1/file1
    为什么两个文件夹没有r权限也是可以的,主要是因为我们不需要列出里面的内容,我们已经知道了里面的内容了
    6、当一个使用者的umask分别为033与044时,他所建立文件与目录的权限为什么?
    666-033=633=-rw–wx-wx(这是错误的结果)
    rw-rw-rw-

    —-wx-wx
    =rw-r–r–(这是正确的结果)

    777-033=744=rwx-r–r–

    666-044=622=rw–w–w-
    777-044=733=drwx-wx-wx
    当是文件的时候,建议大家不要用-来运算,要用标准的运算方式来,否则会出现问题。
    7、找出/etc底下,文件大小介于50K 到 60K 之间的文件,并将权限完整的列出
    find /etc -size +50k -a -size -60k -exec ls -l {} \;
    那个 -a 是 and的意思,为符合两者才符合

    找出 /etc 底下,容量大于1500K 以及容量等于0的文件:
    find /etc -size +1500k -o -size 0
    相对于-a ,那个 -o 就是或 (or)的意思
    (这里有点问题,单个寻找大于1500K的文件能找到,单独寻找为0的文件也能找到,但是加上了-o后,就只能找到0字节的文件了,不知道为什么?)

    linux/unix系统上vim的使用练习答案:
    1. 『mkdir /tmp/vitest』
    2. 『cd /tmp/vitest』
    3. 『cp /etc/man.config .』
    4. 『vi man.config』
    5. 『:set nu』然后你会在画面中看到左侧出现数字即为行号。
    6. 先按下『58G』再按下『40→』会看到『/dir/bin/foo』这个字样在双引号内;
    7. 先执行『1G』或『gg』后,直接输入『/bzip2』,则会去到第 118 行才对!
    8. 直接下达『 :50,100s/man/MAN/gc 』即可!若一直按『y』最终会出现『在 23 行内置换 25 个字符串』的说明(25 substitutions on 23 lines)。
    9. (1)简单的方法可以一直按『 u 』回复到原始状态,(Already at oldest change )(2)使用不储存离开『 :q! 』之后,再重新读取一次该档案;
    10. 『65G』 然后再『 9yy 』之后最后一行会出现『复制九行』之类的说明字样。 按下『 G 』到最后一行,再给他『 p 』贴上九行!
    11. 因为 21~42 22 行,因此『 21G 』→『 22dd 』就能删除 22 行,此时你会发现游标所在 21 行的地方变成 MANPATH 开头啰, 批注的 # 符号那几行都被删除了。
    如果说想把#全部给删除掉,可以用21,42s/#//g(把#换成空格)
    12. 『 :w man.test.config 』,你会发现最后一行出现 “man.test.config” [New].. 的字样。
    13. 『27G』 之后,再给他『 15x 』即可删除 15 个字符,出现『 you 』的字样;
    14. 先『 1G 』去到第一行,然后按下大写的『 O 』便新增一行且在插入模式;开始输入『I am a OPSer…』后, 按下[Esc]回到一般模式等待后续工作;
    15. 『:wq』

    • avatar htdxlzd1

      3、我想显示一个文件的10-30行,命令要如何写呢?
      head -n 30 file |tail -n 9

      通过实验得出结果:上面的命令是错误的
      上面的命令应改为:head -n +30 filename | tail -n +10

      • 对的,不好意思,我上面写错了!
        有下面的两种方法
        head -n 30 man.config |tail -n +10
        head -n 30 man.config |tail -n 21

    • avatar htdxlzd1

      5、如果能够执行cp /dir1/file1 /dir2请说明 dir1, file1, dir2 的最小所需权限为什么?
      dir1:–x
      file1:r
      dir2:-wx

      我实验结果的最小权限是:dir1: r-x file1: r– dir2: -wx

      • avatar htdxlzd1

        分两种情况:创建文件和目录的用户是root
        创建文件和目录的用户是cp用户。
        1.在用户自己创建的目录和文件中操作
        [student@RHEL5 ~]$ pwd
        /home/student
        [student@RHEL5 ~]$ mkdir dir1
        [student@RHEL5 ~]$ touch dir1/file1
        [student@RHEL5 ~]$ mkdir dir2
        [student@RHEL5 ~]$ chmod 500 dir1
        [student@RHEL5 ~]$ chmod 400 dir1/file1
        [student@RHEL5 ~]$ chmod 300 dir2
        [student@RHEL5 ~]$ cp dir1/file1 dir2/
        [student@RHEL5 ~]$ ls -l
        dr-x—— 2 student student 4096 11-22 23:48 dir1
        d-wx—— 2 student student 4096 11-22 23:51 dir2
        -r——– 1 student student 0 11-22 23:48 file1
        2.用户在root用户创建的文件和目录中操作
        [root@www ~]# mkdir /dir1/
        [root@www ~]# touch /dir1/file1
        [root@www ~]# mkdir /dir2
        [root@www ~]# chmod 001 /dir1/
        [root@www ~]# chmod 004 /dir1/file1
        [root@www ~]# chmod 003 /dir2
        [root@www ~]# su – test
        [test@www ~]$ cp /dir1/file1 /dir2/
        [test@www ~]$ ls -ld /dir1;ls -ld /dir2;ls -l /dir1/file1
        d——–x 2 root root 4096 Nov 19 14:00 /dir1
        d——-wx 2 root root 4096 Nov 19 14:06 /dir2
        ——-r– 1 root root 0 Nov 19 14:00 /dir1/file1

        • 你说的第一种情况
          1.在用户自己创建的目录和文件中操作
          我测试了,和第二种情况是一样的啊!
          也就是
          dir1:–x
          dir2:-wx
          file1:r–
          你可以再试试看!

          • avatar htdxlzd1

            羽飞,你的答案是正确的.
            我今天正准备跟你请教为什么呢!可在你的肯定回答下我又做了一遍,跟你的结果一样,真搞不清是为什么?(为什么昨晚用相同的权限就不让cp,而今天确能够cp了。

给我留言

Copyright © 羽飞博客 保留所有权利.   Ality主题 皖ICP备14013844号-1

用户登录