免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2082 | 回复: 0

[Linux] 最突出的Linux面试题 [复制链接]

论坛徽章:
0
发表于 2015-05-25 22:36 |显示全部楼层
1、 1、Linux挂载Winodws共享文件夹
1)
在windows下建立一个共享文件夹。
2)
确认你的linux安装了samba软件包及其客户端程序(smbclient),因为samba就是提供linux与windows互访的程序。
3)
开始查看windows下的共享文件目录:smbclient –L //192.168.1.1,如果连接正常,就可以看到windows下的共享目录了(字符形式)。
4)
挂载共享目录:mount –t cifs –ousername=“”,passwd=“”//192.168.1.1/共享文件夹/ /mnt/

2、查看http的并发请求数及其TCP连接状态:


netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}'
1)
这句代码暂时还没弄清楚,还在找资料,弄清楚后,会再上传。

3、用tcpdump嗅探80端口的访问看看谁最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print$1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr|head -20
1)
tcpdump -i eth0 -tnn dst port 80 -c 1000:统计本机中目标端口为80的数据包,-tnn:直接以IP及port number显示,而非主机名与服务名称,并且不显示时间戳。-c 1000:统计1000个数据包。
2)
awk -F"." '{print$1"."$2"."$3"."$4}':对tcpdump的输出一行一行得进行处理,以.作为分隔域,将远程主机IP依次打印出来。
3)
sort:对输出的访问端IP进行排序。
4)
uniq –c:将相同行合并,并统计相同行的数量。
5)
sort –nr:以相同行数量进行排序,反向排序,最大的放在最前面。
6)
head -20:提取前20行。

4、统计指定目录的文件个数
find / -type f | wc –l
1)
find / -type f:找出根目录下,一般文件。
2)
wc –l:统计行数。

5、查看IP连接数(访问本机的远程主机数量)
netstat -n | awk '/^tcp/ {print $5}'| awk -F: '{print $1}' |sort | uniq -c | sort –rn
1)
netstat –n:列出本机的所有网络连接,包括TCP/UDP和Unix socket两部分。
2)
awk '/^tcp/ {print $5}':/^tcp/:条件是以tcp开头的行,^:在此处代表行首的意思。{print $5:将第5个字段打印出来,代表远程主机的IP和port,默认是以tab作为分隔域。
3)
awk -F: '{print $1}':“-F:”:以:作为分隔域;打印第一个字段,将port去掉,只显示IP。
4)
sort:将IP进行排序。
5)
uniq –c:将相同行合并,并统计相同行的数量。
6)
sort –nr:以相同行数量进行排序,反向排序,最大的放在最前面。



6、shell下32位随机密码生成(数字加字母)
1.
方法1:(有点问题)
cat /dev/urandom | sed –e ‘s/[^a-zA-Z0-9]//g’|strings –n 32|head –n 1
1)
/dev/urandom:产生随机数的文件。
2)
sed –e ‘s/[^a-zA-Z0-9]//g’:将产生的数据,一行一行进行处理,非字母数字内容删除掉。
3)
string –n 32:设置字符串的位数为32位,也是对每一行进行处理。
4)
head –n 1:提取第一行的内容。
2.
方法2:


cat /proc/sys/kernel/random/uuid| md5sum| cut –c 1 -32
1)
cat /proc/sys/kernel/random/uuid:读取UUID码文件,每次获得的数据都会不同,为8-4-4-4-12形式数字加字母的字符串。
2)
md5sum :将UUID码转换为MD5码(有问题?);
3)
cut –c 1-32:选取每行中的1-32字符的内容。

7、统计出apache的access.log中访问量最多的5个IP
cat access_log_2011_06_26.log |awk '{print $1}'|uniq -c|sort -rn|head -n 5
1)
查看日志文件即可

8、如何查看二进制文件的内容
hexdump -C [filename]:使用hexdump命令即可。

9、ps aux 中VSZ代表什么意思 ,RSS代表什么
1)
ps aux:查看系统正在运行的所有进程。
[1]
a:显示所有与终端相关的进程,由终端发起的.
[2]
x:显示所有与终端无关的进程.
[3]
u:显示用户导向的用户列表.
1)
VSZ:虚拟内存集,进程占用的虚拟内存空间
2)
RSS :物理内存集,进程占用实际物理内存空间.
3)
S:可中断的睡眠态
4)
R:运行态
5)
D:不可中断的睡眠态
6)
T:停止态
7)
Z:僵死态

10、检测并修复/dev/hda5
umount /dev/hda5 ; e2fsck -p /dev/hda5;mount /dev/hda5:卸载/dev/hda5;-p:不询问使用者意见,便自动修复文件系统;检测并修复完毕后,记得再重新挂载/dev/hda5。

11、Linux开机启动顺序
开机顺序:
1)
BIOS程序读取CMOS上的信息到内存中,取得各项硬件的参数,对硬件进行检测和初始化(POST,Power-on self-test,加电自检),并决定启动设备次序。
2)
BIOS读取MBR中的引导装载程序(boot loader)到内存中。
3)
引导装载程序将内核文件读入内存,内核加载后,重新检测硬件并加载各硬件的驱动程序,使硬件准备就绪!
4)
运行第一个进程initrd,并逐步启动各种服务。
5) 此外,如果是多系统主机,还包括引导加载程序和grub的内容。每个分区也会有引导扇区(boot sector),用于完成多重引导功能。

12、符号链接和硬链接的区别
1)
硬连接(实际连接):在目录的block中将多个文件名对应一个inode,可以理解为文件的别名,不需要占有额外的inode和block,只需要在目录的block下添加点数据。只能对文件使用硬连接,对目录不行。使用命令 ln filename1 filename2,将文件filename1产生一个硬连接(别名)filename2.
2)
符号连接(快捷方式):创建一个文件(inode+block),block记载需连接文件的目录的inode及该文件的文件名,变形成了符号链接,可以理解为快捷方式。符号连接可以针对目录。ln –s filename1 filename2

13、保存当前磁盘分区的分区表
sfdisk -d /dev/sdb >/etc/sdbpar.bak :保存分区表
1)
sfdisk –d /dev/sdb:查看整块硬盘sdb的分区表。

14、检测并自动修复文件系统
e2fsck - check [a Linux ext2/ext3 file system]
-B 指定块大小
-f 强制检测.
-p 自动修复文件系统
1)
与第10题一样

15、手动安装grub
手动安装grub
1.
grub-install --boot-directory=[指定boot目录]
DEVICE(文件系统)
2.
grub
grub>root (hd0,0):第一个硬盘的第一个分区
grub>setup (hd0):
1)
grub为开机后系统的引导程序,提供开机时选择进入哪个系统(多系统环境)。

16、改内核参数
# sysctl
-p 不用重启系统,让内核重读/etc/sysctl.conf文件
-a 显示所有内核参数及其正在使用的值.
-w 临时设置/etc/sysctl.conf参数sysctl -w net.ipv4.ip_froward=0
1)
此题我也不懂…^_^



17、在指定范围内取随机数
echo $[$RANDOM%39]:对39进行取余,余数肯定是39以内的数字.

18、限定apache的HTTP服务器:每秒钟连接数为1,峰值为3

iptables -A INPUT -d 172.16.100.1 -p tcp --dport 80 -m limit--limit 1/second --limit-burst 3 -j ACCEPT
1)
–A INPUT:新增加一条INPUT表格规则。
2)
–d 172.16.100.1:目标主机的IP即本机。此处也可换乘-i
eth0:eth0为HTTP的对外网卡,表示想要进入此网卡的数据包。
3)
–p tcp --dport 80:tcp协议,目标端口为80。
4)
–m limit --limit 1/second –limit-burst 3:限制每秒钟连接数为1,峰值为3。
5)
–j ACCEPT:操作为接受。

19、FTP主动与被动模式
1.
主动模式
1)
客户端随机启动一个大于1024的端口A,和FTP服务器端的命令端口21,经过三次握手后,建立命令传送通道。
2)
客户端再启动一个端口(端口号为:A+1),并通过命令传送通道,告知服务器端。
3)
服务器端接受到端口后(A+1),就主动通过20端口和客户端A+1端口进行三次握手连接,建立数据传送通道。
4)
但是由于客户端可能存在防火墙的原因,使得服务器端无法连接到客户端的A+1端口,这就产生了被动连接模式了。
2.
被动模式
1)
客户端随机启动一个大于1024的端口A,和FTP服务器端的端口21,经过三次握手后,建立命令传送通道。
2)
服务器端随机启动一个端口B,并通过命令传送通道告知客户端。
3)
客户端接受到端口后(B),就启动端口(A+1),和服务器端的B端口经过三次握手连接,建立数据传送通道

20、显示/etc/inittab中以#开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行;
grep
"^\#[[:space:]]\{1,\}.\{1,\}"/etc/inittab
1)
^:行首;\#:转义字符;[[:space:]]\{1,\}:代表一个或多个空白字符。
2)
.\{1,\}:.:代表一定有一个任意字符。

21、显示/etc/inittab中包含了:一个数字即两个冒号中间一个数字)的行;
grep "\:[0-9]\:" /etc/inittab
1)
\:转义字符
2)
[0-9]:代表一定有0-9中的一个数字,


22、怎么把自己写的脚本添加到服务里面,即可以使用service命令来调用
1)
编写测试脚本test
!/bin/bash
chkconfig: - 90 10
description: just a test
echo "Hello,$1"
2)
使脚本能够被service命令调用
[1]
mv test /etc/init.d/:将脚本放置到stand alone目录下。
[2]
chmod +x /etc/init.d/test:对文件添加x权限,代表可执行。
[3]
chkconfig --add test:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
[4]
service test start
:开机系统服务“test”。

23、写一个脚本,实现批量添加20个用户,用户名为user1-20,密码为user后面跟5个随机字符
#!/bin/bash
for i in {1..20};
do
pass=$( cat /proc/sys/kernel/random/uuid| md5sum | cut –c 1 -32):读取uuid文件,生成一个包含5个数字或字母的随机数,${cmd}为取得命令的结果。
useradd user${i}:添加用户user1-user20
echo $pass | passwd user${i} –stdin:给用户设置密码,--stdin:通过前一个管道输出,来作为密码输入。
echo "user${i} <=============> $pass">> ./userlist.out:将用户和密码以累加的方式写入到userlist.out文件中。
done
echo 'Sucess,passwd is in userlist.out':添加成功。

24、写一个脚本,实现判断192.168.1.0/24网络里,当前在线的IP有哪些,能ping通则认为在线。
1)
方法1,使用ping命令:
#!/bin/bash
ips="192.168.1."
for i in {1..254}; do
ping -W 1 -c 1 ${ips}${i} &>/dev/null && echo"${ips}${i} is up" | tee -a uplog.txt || echo "${ips}${i} isdown"
[1]
ping -W 1 -c 1 ${ips}${i}:向指定IP发送ICMP数据包,-W 1:等待1秒钟;-c 1:ping一次。
[2]
&>/dev/null: &>等同2>1&:将错误信息和正确信息分开,输入到/dev/null,此处只有错误信息,因此也可使用2>/dev/null。
[3]
&& echo "${ips}${i} is up":如果能够ping通过,输出IP在线的信息。
[4]
|tee -a uplog:以累加方式将在线IP记录到文件uplog.txt。
[5]
|| echo "${ips}${i} is down":如果通过ping不通过,输出IP不在线的信息。
done
echo "lease read uplog to know which host is online. ":在线用户在文件uplog中。
2)方法2,使用nmap命令
nmap –sp 192.168.1.0/24:通过数据包检测,分析局域网内有几台主机是启动的。

本文装载于来吧程序员l8chengxuyuan.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP