题目来自老男孩BLOG:http://oldboy.blog.51cto.com/2561410/1709569,比较适合新手,空余的时候做一下,可以巩固Linux基础知识,有不对的地方欢迎指正。

 

1)怎样查看文件或目录的属性,给出命令。

 

ls -l 或者 ll

 

2)描述硬链接和软链接的区别

 

1.硬链接原文件/链接文件共用一个inode号,说明他们是同一个文件,而软链接原文件/链接文件拥有不同的inode号,表明他们是两个不同的文件;
2.在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;
3.链接数目是不一样的,软链接的链接数目不会增加;
4.文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的,而软链接显示的大小与原文件就不同了。
5.不允许给目录创建硬链接,不可以在不同文件系统的文件间建立硬链接。软链接则没有任何文件系统的限制,任何用户可以创建指向目录的符号链接
6.若原文件删除了,则该软连接则不可以访问,而硬连接则是可以的。

 

3)描述出一个文件属性中各个权限位所对应的用户

 

前三位对应文件所属用户,中间三位对应文件所属组的其他用户,后三位对应其他用户

 

4)说出rwx-,分别代表什么意思。

 

r可读,w可写,x可运行,-表示无

 

5Inode大小和总量的查看

 

查看Inode总量:df -i 或者 dumpe2fs /dev/sda1 | grep "Inode count"

查看Inode大小:dumpe2fs /dev/sda1 | grep "Inode size"

 

6)一个文件创建后至少要占用( inode )和( block 

 

7)用户的角色是通过(uid)和(gid)来识别的

 

8)文件类型有哪几种,分别描述出来

 

普通文件,目录,块设备,字符设备,FIFO文件,符号链接文件,socket文件

通过stat -c %F 或者file 后接文件名  可以查看文件的类型

 

9)创建硬链接的命令和创建软链接的命令:

 

创建硬链接:ln

创建软链接:ln -s

 

10)描述文件删除的原理

 

linux是通过link的数量来控制文件删除的,一般来说,每个文件都有两个link计数器:i_count和i_link,i_link是文件的硬链接数(磁盘引用计数器),i_count是文件被进程所调用的数(内存引用计数器),只有当i_count和i_link都为0了,文件才会被真正的删除;rm命令,删除的是文件的i_link数,实际就是将文件名到inode的链接删除了(当i_link即硬链接数等于0时,inode会被系统回收),此时,并没有删除文件的实体即block数据块,如果及时停止机器工作,数据是可以找回的,如果此时继续写入数据,那么新数据就有可能会被分配到被删除数据的block数据块,此时,文件就会被真正的回收了。

 

11)用sed命令结合正则表达式ip地址。

 

ifconfig eth0 | sed -rn 's/^.*dr:(.*)  B.*$/\1/p'

 

12)用grep命令过滤掉空行的方法?

 

grep -v  "^$"

 

13)使/etc/passwd中的用户信息的第一列和最后一列调换位置(sed命令结合正则表达式作答)

 

sed -rn 's/(.*):(.*):(.*):(.*):(.*):(.*):(.*)/\7:\2:\3:\4:\5:\6:\1/p'  /etc/passwd

awk法:awk 'BEGIN{OFS=FS=":"}{tmp=$1;$1=$NF;$NF=tmp;print $0}' /etc/passwd

 

14Oldboy文件中内容为

11

101

1001

10001

请用正则表达式的知识过滤出

101

1001

10001

至少用两种方法。

 

grep "10\{1,\}1" oldboy.log

egrep "10+1" oldboy.log

 

15)用扩展正则表达式的知识过滤题4中的oldboy文件,过滤出

11

 

egrep -v "10{1,}1" oldboy.log

 

16)用正则表达式的知识过滤题4中的oldboy文件,过滤出

11

101

 

grep "10\?1" oldboy.log

 

17)用扩展正则表达式的知识过滤题4中的oldboy文件,过滤出

10001

 

egrep "10{3}1" oldboy.log

 

18)用正则表达式的知识取出下面输出中的644

[root@linuxdata]# stat /etc/hosts

  File: `/etc/hosts'

  Size: 158             Blocks: 8          IO Block: 4096   regular file

Device:803h/2051d      Inode: 129822      Links: 2

Access:(0644/-rw-r--r--)  Uid: (    0/   root)   Gid: (    0/   root)

Access:2015-11-01 16:02:01.144612271 +0800

Modify:2010-01-12 21:28:22.000000000 +0800

Change:2015-09-24 17:07:48.177129310 +0800

 

stat /etc/hosts | awk -F "/" 'NR==4 {print $1}' | awk -F "0" '{print $2}'

 

19)基础正则表达式都有哪些?

 

^word    匹配以word开头的字符串

word$    匹配以word结尾的字符串

.        任意一个字符

\        转义符号

*        重复前面的字符0次或多次

.*       匹配任意字符

[]       字符集合,匹配所包含的任意一个字符

[^word]  匹配不包含word的字符

\{n,m\}  匹配前面的字符n次到m次

\{n,\}   匹配前面的字符至少n次

\{n\}    匹配前面的字符n次

 

20)扩展正则表达式都有哪些?

 

+     匹配前面的字符1次或多次

?     匹配前面的字符0次或1次

|     用或的方式匹配多个字符串

()    组匹配,匹配括号内为一组的字符串