题目来自老男孩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可运行,-表示无
(5)Inode大小和总量的查看
查看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
(14)Oldboy文件中内容为
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次
| 用或的方式匹配多个字符串
() 组匹配,匹配括号内为一组的字符串