欢迎来到Louis的博客

人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。
扩大
缩小

老男孩考题

老男孩考题

1.创建目录/data/oldboy,并且在该目录下创建文件oldboy.txt,然后在文件oldboy.txt里写入内容'....'

mkdir -p /data/oldboy
cd /data/oldboy
touch oldboy.txt
cat >> oldboy << EOF
inet addr:10.0.0.8
Beast:10.0.0.255
Mask:255.255.255.0

 


2.将题1中的oldboy.txt文件内容通过命令过滤只输出如下内容:10.0.0.8 10.0.0.225 255.255.0

awk -F '[ :]+' '{print $3,$5,$7}' oldboy.txt

3.将题1中的oldboy目录移动到/tmp下,并将/etc/passwd文件复制到/tmp/oldboy下

mv /data/oldboy/ /tmp
cp /etc/passwd /tmp/oldboy

4. 在题3的基础上使用awk取passwd文件中的第10行到20行的第三列重定向到/tmp/oldboytest.txt文件里

awk -F ':' 'NR>=10&&NR<+20{print $3}' /etc/passwd > /tmp/oldboy/test.txt


5.在题3的基础上要求用命令rm删除文件是提示禁止使用rm命令。

alias rm='echo Do not use rm command'
echo "alias rm='echo Do not use rm command'" >> /etc/profile
echo "alias rm='echo Do not use rm command'" >> ~/.bash_profile

6.在题3的基础上,删除/tmp/oldboy下处passwd以外的其他文件

find /tmp/oldboy -type f ! -name 'passwd' | xargs rm -rf

7.在题3的基础上,请打印/etc/passwd文件中的第2-5行(不低于三种方法)

head -5 /etc/passwd | tail -4
sed -n '2,5'p /etc/passwd
awk 'NR>=2&&NR<=5' /etc/passwd


8.在题3的基础上,使用命令调换passwd文件中root位置和/bin/bash位置,即将所有的第一列和最后一列位置调换。

awk -F ':' '{print $7":"$2":"$3":"$4":"$5":"$6":"$1}' /etc/passwd

 

9.把/data目录及其目录下所有扩展名.txt结尾的文件中包含oldgirl的字符串全部替换为oldboy

find /data -type f -name '*.txt' | xargs sed -i 's#oldgirl#oldboy#g'


10.查找/oldboy下所有7天以前以.log结尾的大于1M的文件移动/tmp下

find /oldboy -type f -mtime +7 -name '*.log' -size +1M | xargs -i mv {} /tmp
find /oldboy -type f -mtime +7 -name '*.log' -size +1M -exec mv {} /tmp \;
mv `find /oldboy -type f -ctime +7 -name '*.log' -size +1M` /tmp

11.什么是linux运行级别,请描述linux的运行级别不同数字的含义

/etc/inittab
系统启动时不同的形式,
0    关机
1    单用户模式,无网络
2    多用户模式,无NFS(网络文件系统)
3    多用户模式
4    未使用
5    桌面启动
6    重启

 

12.请描述buffer和cache的区别

在硬件方面,我们硬盘和内存叫读写速度来说,内存速度要远优于硬盘,这样在写入到硬盘中时和多次从硬盘中读取内容时,就出现了buffer和cache,写入时时buffer,读取时时cache

buffer是写入硬盘前,写入内存中的叫buffer,是写入数据
cache是存在硬盘中的数据,是读取数据


13.请说出你知道的下列字符在linux里可以代表的意义

~ 用户价目录
- 上一次的工作目录 $OLDPWD
. 当前工作目录
.. 上一层工作目录
| 管道符
> 输出重定向
>> 追加输出重定向
< 输入重定向
<< 追加输入重定向
!取反

 

14.找出/下所有的目录,只找/下第一层目录

ls -l | grep '^d'
ls -F | grep '/$'
ls -p | grep '/$'
find / -maxdepth 1 -type d
ls -l | sed -n '/^d/'p
ls -l | awk '/^d/'
ls -l | awk '{if($2>1)print $0}'


15.一个目录中有很多文件(ls查看时好多屏),项最快速度查看到最近更新的文件,如何查看。

ls -lrt

 

16.只保留apache服务器最近7天访问日志,日志目录时/app/logs

find /app/logs -type f -name '*.log' -mtime +7 | xargs rm -rf 
find /app/logs -type f -name '*.log' -mtime +7 -exec rm -rf {} \;
rm -rf `find /app/logs -type f -name '*.log' -mtime +7`

 


17.调试系统服务时,希望能实时查看日志内容

tail -f /var/log/message
测试环境
for n in `seq 1000`;do echo $n >> 1.txt ; sleep 1 ; done

18.打印配置文件nginx.conf内容的行号及内容,该如何做?

cat -n nginx.conf
nl nginx.conf 不记录空行的行号
awk '{print NR,$0}' nginx.conf
less -N nginx.conf
grep -n . nginx.conf 对过滤的内容显示行号,就得过滤所有内容,表示任意单个字符,表示过滤所有
sed = nginx.conf | sed 'N;s/\n/ /'
vi下 set nu,添加行号,set nonu,移除行号

模拟配置文件
echo 'stu{1..20}' | xargs -n 1 > nginx.conf


19.系统nfs服务开机启动

加入/ect/rc.local中

chkconfig nfs on


20.中文乱码如何解决

export LANG='zh_CN.UTF-8'
echo 'LANG="zh_CN.UTF-8"' > /etc/sysconfig/i18n
source /etc/sysconfig/i18n

 

21.查看文件有多少行

wc -l /etc/services
cat -n services | tail -1

 

22.判断进程是否存活

ps -ef | grep '/ssh' | grep -v 'grep' | wc -l
netstat -tulnp | grep 'sshd' | wc -l


23.Linux系统的启动过程

1.开机BIOS检测
2.MBR引导
硬盘0柱面 0 磁道 1扇区的前446bytes
3.grub引导菜单
cat /etc/grub.con
4.加载内核kernel
5.加载init进程
6.读取inittab文件,执行/etc/rc.d/rc.sysinit脚本,执行/etc/rc.d/rc脚本,执行对应级别下的系统脚本
7.启动mingetty,到登录界面

24.buffer和Cache的区别?

 

25.描述raid0 1 5 10的特点

 

26.No space left on device 通过df -h 查看磁盘空间没满,请问可能是什么原因?

inode被耗尽了,小文件太多 邮箱临时队列/var/spool/clientmquene生成大量小文件

 

27.linux文件的删除原理

在linux系统中,删除静态文件(没有进程调用)(目录也是文件)的条件是与之相关的所有硬链接文件均被删除

i_link(硬链接数量),为0,则被删除
i_count(进程引用数量),为0,文件就被删除
文件删除的条件,i_link=0并且i_count=0

 

 

28.linux软硬链接的区别

1.默认不带参数情况下,ln命令创建的是硬链接,带参数-s的ln命令创建的是软链接
硬链接:ln 源文件 硬链接文件
软链接:ln -s 源文件 软链接文件
2.硬链接文件与源文件的inode节点号相同,而软链接则是一个新的文件,inode号与源文件不同。
3.不能对目录创建硬链接,但是可以创建软链接,对目录的软链接很频繁。
4.删除软链接文件,对源文件和硬链接文件无任何影响
5.删除文件的硬链接文件,对源文件及软链接文件无任何影响
6.删除链接文件的源文件,对硬链接无影响,会导致其软链接失效
7.同时删除源文件及其全部硬链接文件,整个文件才会被删除。
8.很多硬件设备中的快照功能,使用的就是类似硬链接的原理
9.软链接可以跨越文件系统,硬链接不可以跨文件系统

29.求出一个文件的权限,用数字形式表示,例如644

ls -l a.txt | cut -c 2-10 | tr "rwx-" "4210" | awk -F '' '{print $1+$2+$3''$4+$5+$6''$7+$8+$9}'
stat data | sed -n '4p'| cut -c 11-13
stat data | sed -nr 's#^.*\(0([0-9]{3})/.*$#\1#gp'
stat data | awk -F '[0/]' 'NR==4{print $2}'
stat -c %a data

 

 

30.取系统ip

ifconfig eth0 | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | head -1
ifconfig eth0 | sed -rn 's#^.*dr:(.*) B.*$#\1#gp'
ifconfig eth0 | awk -F '[ :]+' 'NR==2{print $4}'
grep IPADDR /etc/sysconfig/network-scripts/ifcfg-eth0 | cut -d= -f2
ifconfig eth0 | sed -nr '2s#^[^0-9]*([0-9.]*) .*$#\1#gp'

 

 

31.linux中‘’ “”  `` 和没有引号的区别

 

 


32.linux 下通过mkdir 命令创建一个新目录/oldboy/ett的硬链接数是多少,为什么?

硬链接的数量为2 可以用ls -ld /oldboy/ett查看

创建的目录本身为一个硬链接
新目录ett下隐藏目录(.)为创建的新目录的有一个硬链接,也算一个链接数,因此,硬链接数是2

 

33.去除文件中的空行

grep -Ev '^$|^#' /etc/httpd/conf/httpd.config  删除空行和#开头的行
grep -v "^$" test.txt
sed '/^$/d' test.txt
awk '/^[^$]/' test.txt

 


28.在每周6的凌晨3:15执行/home/shell/collect.pl,并将标准输出,错误输出到/dev/null设备,请写出语句

方式一:
15 3 * * 6 /usr/bin/perl /home/shell/collect.pl > /dev/null 2>&1
方式二:
chmod +x /home/shell/collect.pl
15 3 * * 6 /home/shell/collect.pl > /dev/null 2>&1

 

29.crontab在11月份内,每天的早上6点到12点中,每隔两个小时执行一次/usr/bin/httpd.sh怎么实现?

00 06-12/2 * 11 * /bin/sh /usr/bin/httpd.sh > /dev/null 2>&1

 


30.批量创建10个用户stu01-stu10,并且设置随机8位密码,要求不用shell循环,只能用命令及管道实现。

http://oldboy.blog.51cto.com/2561410/1608552
echo stu{1..10}|xargs -n1 useradd ;echo stu{1..10}:`cat /dev/urandom|tr -dc 0-9|fold -w8|head -1`|xargs -n1|tee -a pass.txt|chpasswd

echo stu{01..10} |tr ' ' '\n'|sed -rn 's@^(.*)$@useradd \1 ; echo $RANDOM|md5sum|cut -c 1-8 >/data/\1;cat /data/\1|passwd --stdin \1@gp'|bash

echo oldboy{20..30} | xargs -n 1 | awk '{print "echo " $0">>/tmp/account&&useradd "$0"&& OP=$(date +%N|md5sum|cut -c 1-8)&& echo $OP | passwd "$0" --stdin | echo $OP>>/tmp/account"}' | bash


echo lili{1..10} | tr ' ' '\n' | sed -nr 's#.*#useradd &;OP=`echo $RANDOM|md5sum|cut -c 1-8`;echo &@$OP>>/usr/local/src/account.config;echo $OP|passwd & --stdin >>/dev/null#gp' | bash

 

批量删除用户

sed -n '33,79p' /etc/passwd | awk -F ':' '{print "userdel -r "$1}' | bash

 


posted on 2019-02-18 16:28  Louiszj  阅读(407)  评论(0)    收藏  举报

导航