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
如果想删除的话就 \rm
#别名,替换的也一定是一个命令,所以当你要输出内容时,就用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 常用的协议