1、创建目录/data/test,在该目录下创建文件your_name.txt,在文件里写入内容"inet addr:192.168.10.100 Bcast:192.168.10.255 Mask:255.255.255.0 "(不含引号)
2、过滤题1文件内容,只输出以下内容
10.0.0.8 10.0.0.255 255.255.255.0
awk -F "[ :]+" '{print $3,$5,$7}' sxr.txt
3、将题1的test目录移动到/tmp目录下,并将/etc/passwd文件复制到/tmp/oldboy下
4、在题3基础上,用awk取passwd文件的第5行到15行的第三列重定向到/tmp/test/test.txt文件里
awk -F ":" 'NR>=5 && NR<=15 {print $3}' passwd > text.txt
5、在题3基础上要求用命令rm删除文件时提示如下禁止使用rm的提示,并使该效果永久生效
alias rm='echo Younotuse rm command'#别名里不能有'号,如can't这种是不行的
永久生效需要将命令复制到/etc/profile /etc/bashrc里
6、在题3的基础上,删除/tmp/test/下除passwd以外的其他文件
find /tmp/data/ -type f ! -name "passwd" | xargs rm -f
7、在题3基础上,打印/etc/passwd文件中的第2-5行(最少三种方法)
head -5 passwd | tail -4
tail -n +2 passwd | head -4
sed -n '2,5p' passwd
awk 'NR>1 && NR<6 {print $0}' passwd
8、在题3基础上,用命令调换passwd文件里root位置和/bin/bash位置,即将第一行的第一列和最后一列位置调换
awk -F":" 'NR==1{print $7":"$2":"$3":"$4":"$5":"$6";"$1}' passwd
head -1 /etc/passwd | \sed -nr 's#([^:]+)(:.*:)(/.*$)#\2#gp'
9、把/test目录及其子目录下所有以扩展名.txt结尾的文件中包含sorry的字符串全部替换为thank
find /data/test -type f -name "*.txt" | xargs sed -i 's/sorry/thank/g'
find /data/test -type f -name "*.txt" | xargs -i sed -i 's/sorry/thank/g {}'
10、查找/test下所有7天以前以log结尾的大于1M的文件移动/tmp下
find /data/test -type f -name "*.log" -mtime +7 -size +1M | xargs -i mv {} /tmp
注:ls -l显示的文件修改时间是mtime
rename .txt .log * #将所有.txt文件修改为.log文件
11、什么是Linux的运行级别,描述linux的运行级别不同数字的含义
运行级别就是操作系统运行的功能级别。不同的运行级别在功能上会有所差异
inux下有7个运行级别 0123456
0系统停机模式
1单用户模式
2多用户模式
3完整的多用户文本模式
4系统未使用
5图形化模式
6重启模式
12、描述buffer和cache的区别
总结1:
cache是为了弥补高速设备和低速设备的鸿沟而引入的中间层,最终起到**加快访问速度**的作用。
buffer的主要目的进行流量×××,把突发的大数量较小规模的I/O整理成平稳的小数量较大规模的I/O,以**减少响应次数**
总结2:
cache的核心作用是加快取用的速度。比如你一个很复杂的计算做完了,下次还要用结果,就把结果放手边一个好拿的地方存着,下次不用再算了。加快了数据取用的速度。
Buffer的核心作用是用来缓冲,缓和冲击。比如你每秒要写100次硬盘,对系统冲击很大,浪费了大量时间在忙着处理开始写和结束写这两件事嘛。用个buffer暂存起来,变成每10秒写一次硬盘,对系统的冲击就很小,写入效率高了
总结3:
cache的数据没了,还能在算一遍得到,buffer空间的数据没了可能就真没了。而且通常buffer会顺序读取,而cache会随机、反复读取/处理。
cache还有一个就是用来保持冗余的、可以被重复计算的、计算后的数据的,这个你叫buffer就不行。
13、区别并总结linux通配符和正则表达式
通配符和正则表达式是不一样的。通配符用在用户命令行bash环境。而Linux正则表达式用于三剑客grep,sed,awk(还有一些其他命令,如find,ergrep等,主要还是三剑客)通配符总结*通配符,代表任意(0到多个)字符ls *.txt #显示所有.txt文件
?通配符,代表任意1个字符
;连续不同命令的分隔符(在前一个命令结束时,而忽略其返回值,继续执行下一个命令)seq 10 > a.txt ; cat a.txt #结果输出seq 10的结果
#配置文件注释
|管道,传递上个命令的输出给下个命令
~用户的家目录
-上次的目录
$变量前需加的符号
/路径分隔符号
>或1>重定向,覆盖原有内容
>>追加重定向
<
'单引号,不具有变·量置换功能,输入所见即所得echo '$(date)' #结果输出'$(date)'
"双引号,具有变量置换功能,解析变量后输出。不加引号相当于双引号echo "$(date)"=echo "~date~"=echo ~date~ #输入结果是当前时间
~tab上面的键,反引号。两个~ ~中间为命令,会先执行,等价于$()
{}中间为区块组合或内容序列。与seq命令比,{}里可以加字符touch {1..5}.txt #创建1.txt到5.txt文件cp 1{.txt,.ori}#复制1.txt为1.ori
touch {b..z}.txt
!逻辑运算中的非(not)
&&and,而且。前一个命令成功,执行后一个命令
||or,或,前一个命令失败,执行后一个命令
..上层目录
.当前目录
\转义符,去除其后紧跟的特殊字符意义
=设定变量a=file1
echo $a #输出的是file1
[123]匹配[]中任意单一字符
[!123]或[^123]匹配除了[]中任意单一字符
[0-9]或[a-z]匹配[]范围内任意单一字符
[!c1-c2]或[^c1-c2]匹配除了[]范围内任意单一字符
{string1,string2,...}匹配sring1或string2正则表达式总结^word搜索以word开头的
wods$搜索以word结尾的
^$表示空行
*重复0个或多个前面的一个字符。例如o*
.代表且只能代表任意一个字符
.*匹配所有字符。^.*以任意多个字符开头
\转义符。\.代表.本身
[abc]匹配字符集内任意一个字符
[^abc]匹配不包含^后的任意字符的内容扩展正则表达式总结
grep,sed使用时有些地方需要转义字符转义
egrep(grep -E),sed -r不需要+表示重复"一个或一个以上"前面的字符(*是0个或多个)
?表示重复“0个或一个”前面的字符
|表示同时过滤多个字符串
()分组过滤,后向引用sed -n 's#()()#\1\2#gp' file
当在前面的匹配部分用小括号的时候,第一个括号内容,可以在后面部分用\1输出。第二个括号内容,可以用\2输出
{n}必须匹配n次grep使用时,需转义:\{n\}
{n,}必须匹配>=n
{n,m}匹配次数在n与m间
{,m}匹配次数<=m