基础阶段习题

Posted syy1757528181

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础阶段习题相关的知识,希望对你有一定的参考价值。

1. Linux中关机重启及注销的命令都有哪些?

	关机:shutdown -h now (默认是分钟),halt,init0,
	重启:shutdown -r now (默认是分钟),reboot,init6
	shutdown -c 取消设置
	注销:exit,logout,ctrl+d
2. Window 远程协议及端口,Linux 远程协议及端口分别是多少?

	windows:rpd协议(Rdesktop),3389 号端口
	linux :ssh协议,22号端口
	
	[root@oldboy ~]# ps -ef |grep ssh    这个守护进程没了,就不能远程连接虚拟机了
root        809      1  0 12:47 ?        00:00:00 /usr/sbin/sshd -D
root       1146    809  0 13:29 ?        00:00:00 sshd: root@pts/0  # 当前
root       1169   1148  0 13:29 pts/0    00:00:00 grep --color=auto ssh  #grep


3. 写出Linux命令行中常用的快捷键(至少10个)

	ctrl+a,ctrl+e,ctrl+w,ctrl+s,ctrl+q,ctrl+r,ctrl+z,ctrl+d,ctrl+u,ctrl+k
4. 使用一条命令把mysql-5.6.40.tar.gz解压到/usr/local目录下?

	tar xf mysql-5.6.40.tar.gz -C /usr/local
5. 如何查看系统中是否开启远程连接端口,及查看远程连接进程是否存在?

	yum install -y net-tools
	netstat -lntup
6. 在/opt/目录下创建文件test.txt test.log test.sh test.conf 请用一条命令创建。

	touch /opt/test.{txt,log,sh,conf}
	[root@Qeam ~]# touch test.txt test.log test.sh test.conf
7. Linux下面ping www.baidu.com 出现unknown host 错误如何排查?

	检查本地DNS
	vim /etc/sysconfig/network-scripts/ifcfg-eth0
	或者添加域名解析
	vim /etc/hosts
	2.在/etc/resolv.conf中添加 DNS (默认Google的DNS)  nameserver  8.8.8.8   nameserver  8.8.4.4
	
	1、hostname 可修改主机名称
	2、resolv.conf dns 存放文件  #
	3、hosts  域名对应的IP地址

	
8. 排除nginx.conf.default文件中的空行和以#开头的行,将排除后的内容放入nginx.conf文件?

	egrep -v ‘^$|^#‘ nginx.conf.default >>nginx.conf
	或者
	grep -i ‘^[a-z]‘ nginx.conf.default>>nginx.conf
	[root@oldboy ~]# grep ^[A-Z] /etc/login.defs
	# 理解:重定向符重定向的是文件内容(眼前的内容)
	
	[root@qiwenjie zuoye]# sed -r ‘/^$|^#/d‘ /zuoye/sshd_config
	[root@qiwenjie zuoye]# awk ‘!/^$|^#/‘  /zuoye/sshd_config
	
9. 请详细描述Linux系统从打开主机电源到进入登录界面整个过程的流程?

	C6: 按下电源--系统家电自检--grub菜单--加载内核--运行init--系统初始化--建立终端--登陆
	C7:按下电源--系统家电自检--grub2菜单--加载内核--运行systemd--系统初始化--建立终端--登陆
10. 说明一下软连接和硬链接的区别?

	硬链接:创建命令不同(ln 源文件 链接文件),不能跨越系统分区,源文件删除硬链接照样可以使用,只能对文件创建硬链接
	软连接:创建命令不同(ln -s 源文件 链接文件),可以跨越系统分区,可以跨越系统分区,源文件删除软连接不能再被使用了
11. 描述一下当你在Linux命令行上面执行命令的执行过程?

	判断命令有没有别名
	判断是不是绝对路径,绝对路径的话直接执行,相对路径继续判断
	判断命令在不在环境变量PATH里面
	不在环境变量里面的话检查该命令有没有hash缓存,有的话执行,没有就报错
	该命令在环境变量里面的话就执行
12. /etc/passwd文件以‘:‘ 为分割符, 分为7个字段,请说明一下每个字段的具体含义?(不提供文件内容)

	用户名,uid,gid,密码占位符,注释,家目录,登陆shell
13. 使用cat命令把shanghai nanjing beijing三行内容写入到test.txt文件中

	cat >>test.txt<<EOF
	shanghai
	nanjing
	beijing
	EOF
	或者
	cat >>test.txt
	shanghai
	nanjing
	beijing
	按ctrl+c结束编辑
14. rm是个危险的命令,要求使用命令rm删除文件时提示“rm command no bny”,怎么实现?

	查看系统中的别名 alias
	注释rm已经设置的别名
	vim /root/.bashrc
	设置新的别名,加入全局环境变量
	echo "alias rm=‘echo rm command no bny‘">> /etc/profile
	source /etc/profile
	如果想删除的话就 
m
	#别名,替换的也一定是一个命令,所以当你要输出内容时,就用echo
	#a=b echo $a
	
	[root@oldboy ~]# echo "jj" ll
	jj ll
	
	echo "alias rm=‘echo rm command no bny‘"  #先执行外面的,所见即所得,所以  $()  ‘‘
	
	
15. 在使用vim编辑文件时,当你执行了撤销的时候,发现撤销错了,回滚,怎么操作。

	ctrl+r
16. 使用命令给一个文件的每一行结尾加一个结尾标识符。(两种方法实现)

	cat -E 1.txt
	vim 1.txt
	:set list
	sed ‘s#$#$#g‘ 1.txt
	# 理解,每行文件内容的末尾都有隐藏的换行符($)
17. 查找/var/log/目录下,半年前的普通文件并将其删除?(两种方法)

	find /var/log -mtime +182 -type f |xargs rm -rf
	find /var/log ! -mtime -181 -type f /var/log |xargs rm -rf   
18. 取出test.txt文件中的第5行和第7行的内容(三种方法)

	1> awk ‘NR==5;NR==7‘ test.txt
	2> sed ‘/5p;7p/‘ test.txt
	3> grep -n test.txt|egrep -w ‘^5|^7‘
	4> cat -n test.txt|egrep -w ‘^5|^7‘
19. 把test这组字符串插入到test.txt文件的首行位置(两种方法)。#

	1> echo test > 1.txt
	   cat test.txt>>1.txt
	   mv 1.txt test.txt
	2> sed -i ‘s#1itest#g‘
	3> [root@qiwenjie zuoye]# sed ‘s#$#test#g‘ qls.txt  不换行插入指定行末尾
20. 删除test.txt文件中的第10行到20行。(两种方法) #

	1> sed -i ‘/10,20/d‘ test.txt
	2> awk 
21. 使用awk命令取出文件test.txt第三列以4开头的行?

	awk ‘/^4/{print $3}‘ test.txt
22. 删除test.txt文件中的所有空行,有的空行里面存在tab键和空格(两种方法) #

	1> vim test.txt
	   :%s#^$#d
	2> awk ‘/^$/d‘ test.txt
	3> grep -v ‘^$‘ test.txt
	4> sed ‘/^$/d‘ test.txt
	
	如果都是空行,而空行中没有字符的情况(但是不建议这样写) ###
	sed -i ‘/^$/d‘ test.txt
	建议加入 [[:space:]] 用以匹配空格、tab、^M 等特殊字符
	sed -i ‘/^[[:space:]]*$/d‘ test.txt
	上述建议方式的简化版(本人比较喜爱的一种方式,但特殊字符只匹配过‘^M‘,其他未验证)
	sed -i ‘/^s*$/d‘ test.txt
 	* (星号)用以匹配空格、tab、‘^M‘类特殊字符等至少零次
	
23. 请给出如下格式的date命令 例:20-03-26。请给出命令(要求是打印出三天前的日期)。

	date -s ‘2020-4-26‘
	date +%y-%m-%d
	
	[root@oldboy ~]# date
	Wed Apr 29 17:20:32 CST 2020
	[root@oldboy ~]# date +%F  年月日
	2020-04-29
	[root@oldboy ~]# date +%F-%R
	2020-04-29-17:20
	[root@oldboy ~]# date +%F-%T    分秒用:隔开
	2020-04-29-17:21:45
	
	[root@oldboy ~]# date -s ‘2020-1-1 1:00‘   -可以用/表示
	Wed Jan  1 01:00:00 CST 2020
	
	[root@oldboy ~]# date +%y-%m-%d       年/2月日
	20-01-01
	[root@oldboy ~]# date +%y-%m-%d-%T
	20-01-01-01:05:41

	
24. IP地址由两部分作成:第一部分是( );第二部分是( )?

	网络位,主机位
25. nginx日志内容如下 : ###

	1)请统计出,访问量最多的前十个IP
	2)请统计出,用户最喜欢访问的URL是哪个

	1> awk ‘{print $1}‘|sort|uniq -c|wc -l|sort -nr|head -10
    2> awk -F ‘[()]‘ ‘/http:///{print }‘
26. 写出CentOS系统中,配置网卡及dns 的配置文件分别是什么?并说明两者的 区别? #

	1> vim /etc/sysconfig/network-scripts/ifcfg-eth0  # 网卡信息
	该文件有网卡的详细信息,包含/etc/resolv.conf
	2> vim /etc/resolv.conf  nameserver 192.168.0.1 (路由器)# DNS
	
	3> vim /etc/hosts   # 域名解析
	127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
	
27. 将/var/log目录下的修改时间是3天以前,并且大于500k的文件复制到/opt目录下。(不低于三种方法)

	1> find /var/log -mtime +3 -size +500k |xargs cp -t /opt
	2> find /var/log -mtime +3 -size +500k |xargs -i cp {} /opt
	3> find /var/log -mtime +3 -size +500k |xargs -I {} cp {} /opt
	4> find /var/log -mtime +3 -size +500k -ok cp {} /opt ;
	5> find /var/log -mtime +3 -size +500k -exec cp {} /opt ;
28. 过滤出/etc/services 文件包含3306或1521两数字所在的行的内容。(不低于三种方法

	1> grep ‘3306|1521‘ /etc/services
	2> sed ‘/3306/p;/1521/p‘ /etc/services
	3> awk ‘/3306|1521/‘ /etc/services   #注意格式
29. 说一下Linux系统中运行级别及对应含义(不能直接使用数字的级别,要有英文的级别)

	poweroff.target  关机
	restue.target 	单用户模式
	multi-user.target 多用户模式
	graphical.target  图形化模式
	reboot.target	重启
30. 写出网卡配置文件eth0的内容,要求可以ping通百度

	DEVICE=eth0
	ONBOOT=yes
	BOOTPROTO=none
	IPADDR=10.0.0.200
	DATEWAY=10.0.0.2
	NETMASK=255.255.255.0
	DNS=223.5.5.5
31. 虚拟网络的网络类型分别有哪些模式?并写出对应的特点?

	1> 桥接,该模式下虚拟机和物理机地位相同,上网不需要经过宿主机,IP容易冲突
	2> 仅主机,该模式下虚拟机不能连接外网,仅仅可以和宿主机进行网络通信,安全,不会收到外网的影响
	3> 动态网络地址转换模式,虚拟机以宿主机的身份访问外网,该模式下IP相对来说很多,不易引起IP冲突
32. 将/etc/passwd文件中第一行到第五行的root替换为admin?(两种方法)

	1> sed -n ‘1,5s/root/admin/g‘ /etc/passwd
	2> cat /etc/passwd |sed -n ‘1,5s/root/admin/g‘
	
	[root@qiwenjie zuoye]# cat /zuoye/passwd | awk ‘NR==1,NR==5‘|sed ‘ s#root#admin#g‘
	[root@qiwenjie zuoye]# cat /zuoye/passwd |sed -n  ‘1,5p‘|sed ‘s#root#admin#g‘

33.终止进程的命令分别是什么?有什么区别?	

	ctrl+c  中断
	ctrl+d  退出
	kill    中断
	pkill   杀死某个服务的所有进程
34. 在test.txt文件的末尾插入内容‘test’。(两种方法)

	echo test >>test.txt
	echo >>test.txt<<EOF
	test
	EOF
35. 每年每月的周一晚上21点30分执行test.sh脚本?

	crontab -e
	30 21 * * */1 /bin/sh /root/test.sh >>/dev/zero
36. Centos-7系统中怎样修改主机名,例如,修改为web01,如何并将其快速生效?

	临时修改: hostnamectl web01
	永久修改: hostnamectl set-hostname web01
	重启虚拟机
37. 什么是程序、进程和守护进程

	程序的一个静态的概念,是一串代码
	进程是动态的程序,
	守护进程就是一个进程的子进程
	
	程序: 代码文件,放在磁盘中的数据。
	进程: 进程运行就是把程序放在内存里执行。
	守护进程(daemon): 持续保持运行着的程序。
	
	   守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程常常在系统引导装入时启动,在系统关闭时终止。Linux系统有很多守护进程,大多数服务都是通过守护进程实现的,同时,守护进程还能完成许多系统任务,例如,作业规划进程crond、打印进程lqd等(这里的结尾字母d就是Daemon的意思)。

  由于在Linux中, 每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控制终端,当控制终端被关闭时,相应的进程都会 自动关闭。但是守护进程却能够突破这种限制,它从被执行开始运转,直到整个系统关闭时才退出。#如果想让某个进程不因为用户或终端或其他地变化 而受到影响,那么就必须把这个进程变成一个守护进程
	
38. 显示系统中可安装的包并以tre开头的软件包?(两种方法

	mount /dev/cdrom /mnt
	1> rpm -q /mnt/Packages/tre(TAB)
	2> rpm -q /mnt /Packages/tre*
39. 把/etc/中的所有目录(仅目录) 复制到/tmp下,目录结构不变?(两种方法)

	1> find /etc -type d |xargs cp -at /tmp
	2> cp -r /etc /tmp
	   find /tmp/etc ! -type d |xargs rm -rf
40. 打包/etc/目录,要求不打包/etc/hosts和/etc/hostname这两个文件

	tar zcf etc.tgz /etc --exclude=/etc/hosts --exclude=/etc/hostname
41. 使用tar命令打包/etc/时,会出现一个删根的操作,怎样打包不会进行删根的操作?写出命令(两种方法)

	1> tar zcPf etc.tgz /etc
	2> cd /
	   tar zcf etc.tgz etc
42. 查找/etc目录下大于1M且类型为普通文件的所有文件?

	find /etc -size +1M -type f
43. 创建目录/test,要求所有用户对这个目录有所有权限,现在只想让每个用户在这个目录只能对属于自己的文件进行操作,怎么实现?

	mkdr -m 777 /test
	chmod 1777 /test
44. 查看你的服务器中有哪些可用的yum源仓库?

	yum repolist
45. 使用"seq 50"将以0结尾的行标准输出到number.txt中?(三种方法)

	seq 50|grep 0$>number.txt
46. 假设公司研发部的用户yanfa和dev属于组yf,财务部的用户caiwu和money属于组cw,根据要求创建用户及组。

	groupadd yf
	groupadd cw
	useradd yanfa -G yf
	useradd dev -G yf
	useradd caiwu -G cw
	useradd money -G cw
47. 请使用20种方法取出下面的ip

	[root@web01 ~]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500  state UP group default qlen 1000
    link/ether 00:0c:29:20:34:58 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.61/24 brd 10.0.0.255 scope global noprefixroute eth0  #前方四个空格
       valid_lft forever preferred_lft forever
?
[root@web01 ~]# ifconfig  eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.61  netmask 255.255.255.0  broadcast 10.0.0.255 #前方8个空格
        ether 00:0c:29:20:34:58  txqueuelen 1000  (Ethernet)
        RX packets 19705  bytes 1784927 (1.7 MiB)
        
[root@web01 ~]# hostname -I
10.0.0.151 172.16.1.151

	ip a s eth0
	ip a s eth0|awk -F ‘[/ ]‘ ‘NR==3{print $6}‘
	ip a s eth0|sed -nr ‘/init/s#.*init (.*)/24.*#1#p‘
	[root@qiwenjie test]# ip a s eth0 | sed -n 3p| sed -r  ‘s#^.*t ##g‘|sed -r ‘s#/.*$##g‘(正则)
	#为什么没有贪婪匹配?
	[root@qiwenjie test]# ip a s eth0 | sed -n 3p| sed -r  ‘s#(^.*t)(.*)(/.*$)#2#g‘
	ip a s eth0|grep init|cut -c 10-18
	
	ifconfig eth0
	ifconfig eth0|awk ‘NR==2{print $2}‘
	ifconfig eth0|sed -nr ‘/init/s#.*init (.*) net.*#1#p‘
	ifconfig eth0|head -2|tail -1|cut -c 14-22
	
	hostname -I
	hostname -I|awk ‘{print $2}‘
	hostname -I|sed ‘s#(.*) 172.*#1#g‘
	hostname -I|cut -c 1-10
	------------------------------------------------------------------------------------
	
	$() `` 先执行里面的
	
	wc -l
	cat -n
	grep -n .*
	[root@qiwenjie ~]# cat -n /etc/services |tail -1|cut -f 1
	
	[root@qiwenjie ~]# service firewalld stop   临时关闭防火墙
	

	
-----------------------------------------------------------------------------------------------
48. 一个目录中有很多文件(ll查看时好多屏),想最快速度查看到最近更新的文件?

	ll|more
49. 把/opt目录及子目录下所有以扩展名为.xml结尾的文件中包含“beijing”的字符串全部替换为“shanghai”

	find /opt -type f -name ‘*.xml‘ |xargs sed -nr ‘s#bejing#sanghai#g‘
	
50. 翻译下面的报错,说明一下什么情况导致这样的报错?

01).command not found                     
02).No such file or directory             
03).Permission denied                     
04).No space left on device                 
05).File exists                             
06).Is a directory                          
07).Not a directory                       
08).Warning: Changing a readonly file     
09).Found a swap file by the name ".1.swp"
10).unrecognized option ‘--zls        
11).No route to host                      
12).connection refused                    
13).Access denied                         
14). Out of Memory

	1.没有这个命令
	2.没有这个文件或目录
	3.权限不足
	4.磁盘空间不足
	5.文件名重复
	6.这是个目录
	7.这不是个目录
     8.该文件只读
     9.1.swp文件存在缓存
     10. zls选项无法识别
     11.没有到主机的路径
     12.连接被拒绝
     13.访问被拒绝
     14.内存不足
     
【附加题】请用使用命令,获取到当前机器的公网IP(本题可以使用Xshell测试,但是不能百度,公网IP是指联通或者移动或者电信分配的     
curl http://members.3322.org/dyndns/getip
curl ip.6655.com/ip.aspx
curl ifconfig.me   		# 查询较慢
curl icanhazip.com  #查询较快
curl ident.me   # 常用
curl ipecho.net/plain
curl whatismyip.akamai.com
curl myip.dnsomatic.com
 
#更多用法访问ifconfig.co
wget -qO - ifconfig.co
 
#返回IP和地区
curl ip.6655.com/ip.aspx?area=1


查看一个命令属于哪个包
[root@qiwenjie ~]# rpm -qf $(which netstat)
[root@qiwenjie ~]# yum provides netstat

什么是buffer?什么是cache?
两者本质上都是缓存
buffer:解决频繁写入磁盘的缓存
cache:解决频繁读取的磁盘缓存

服务器按照外观分为哪几种?
1、机架式服务器
2、刀片服务器
3、台式服务器

Windows上面的远程连接虚拟机的工具有哪些?(两种)
1、crt
2、xshell
3、putty

挂载和卸载的命令
分区:fdisk
挂载:mount 
卸载:unmount
[root@oldboy ~]# umount /dev/cdrom  都可以卸载挂载
[root@oldboy ~]# umount /mnt/

显示系统内存使用及空闲情况的命令是?(以M为单位显示)
[root@qiwenjie ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            972         122         381           7         468         704
Swap:          1023           0        1023

[root@oldboy ~]# uptime
 19:51:08 up  7:03,  2 users,  load average: 0.00, 0.01, 0.05
 [root@oldboy ~]# top
top - 19:52:21 up  7:04,  2 users,  load average: 0.00, 0.01, 0.05

[root@oldboy ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
[root@oldboy ~]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD

df命令和du命令的作用分别是?
df:查看磁盘空间大小
dh:查看文件大小

[root@oldboy ~]# service -l status   查看所有服务的运行状态

数据单位换算,1PB=(1024 )TB=( )GB=( )MB=( )KB=( )B?

[root@oldboy ~]# env  		查看当前环境中的所有环境变量
[root@oldboy ~]# set  		查看所有变量,两个的差集就是自定义变量
BASH=/bin/bash
a=b
[oldboy@oldboy ~]$ unset USER   取消环境变量

# 变量设置方法
1. 直接赋值
2. 传递参数
3. 使用 read -p 交互设置参数

# read  ---exit 0
-p 		后面跟提示信息,即在输入前打印提示信息
-s 		安静模式,在输入字符时不再屏幕上显示,例如login时输入密码。(颜色)
-t5 	后面跟秒数,定义输入字符的等待时间
-n1 	参数设置 read 命令计数输入的字符。当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量


[root@oldboy scripts]# vim yhk.sh 
#!/bin/bash
read -p  "请输入你的银行卡号:"  Yhk
read -s -p  "请输入密码:" miMa       -s #隐藏在命令行输入的密码
echo
echo "你的银行卡号:"  $Yhk
echo "你的密码为:" $miMa
[root@oldboy scripts]# sh  yhk.sh 
请输入你的银行卡号:123456
请输入密码:
你的银行卡号: 123456
你的密码为: 123456

[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# hostname -I
10.0.0.200 172.16.1.0


[root@oldboy scripts]# vim xiugaizhuji.sh   (小心 10,25,5,223,)
#!/bin/bash
ethFile=/etc/sysconfig/network-scripts/ifcfg-eth[01]
Now_eth=`hostname -I|awk -F "[. ]+" ‘{print $4}‘`
 
read -p "请输入主机名:" Hostname
read -p "请输入IP地址的主机位:" HostIP
 
hostnamectl set-hostname  $Hostname
sed  -i "s#${Now_eth}#${HostIP}#g" $ethFile 
 
read -p "是否重启服务器:{yes/no}"  REboot
if [ $REboot == yes ];then 
   echo "系统将在1分钟后重启!"
   shutdown -r  1 
else
   echo "已取消!"
fi

[root@qiwenjie logs]# vim  /etc/etc/sudoers +100   编辑的时候光标直接在100行

linux 常用的协议

以上是关于基础阶段习题的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop——基础练习题

Java基础阶段综合练习

Java基础50道经典练习题(23)——求岁数

Java基础50道经典练习题(23)——求岁数

[华为机试练习题]56.求子数组的最大和

[华为机试练习题]58.查找同构数的数量