Linux之父是林纳斯本纳第克特托瓦兹
Apache发布目录:/var/www/html
nginx发布目录:/usr/share/nginx/html/
配置dns的文件 : /etc/resolv.conf
nginx的配置文件:/etc/nginx/
yum源的配置文件:/etc/yum.repos.d/
apache的配置文件:/etc/httpd/conf/httpd.conf
sudo提权的配置文件:/etc/sudoers
ftp的共享文件:/var/ftp
ftp的配置文件:/etc/vsftpd/vsftpd.conf
wind电脑配置域名解析的文件:C:\Windows\System32\drivers\etc\hosts
nfs的共享文件:/etc/exports
查看组的文件:/etc/group
{分隔符:: 第一列:用户名 第二列:密码 第三列:用户标识号}
怎么修改网站的默认发送目录:
vim /etc/httpd/conf/httpd.conf
DocumentRoot "/www" # 修改网站根目录为/www # 把这个也对应的修改为/www
vim查找替换:(%表示替换所有行 g表示行内所有关键字)
:s/world/nice/ #替换当前光标所在行 :3s/sbin/nice/ #替换指定行 :1,5 s/nologin/soso/ #从1-5行的nologin 替换为soso :%s/bin/soso/ #替换所有行 :%s/sbin/nice/g #替换行内所有关键字
:set nu #设置行号 :set list #显示控制字符 :set nonu #取消设置行号
用户管理
创建用户组 : groupadd 组名
创建用户组并指定gid : groupadd 组名 -g gid数
删除组 : groupdel 组名
判断用户是否存在:id 用户名
查看现在所使用用户:whoami
创建用户,指定附加组:useradd 用户名 -G 组名
删除用户:userdel -r 用户名
修改用户密码: passwd 用户名
文件权限
r w x rw- r-- alice hr file1.txt
属主权限 属组权限 其他人权限 属主 属组 文件
chown:改变文件或目录的所属主以及所属组chmod:为文件或目录设置访问权限
chattr #设置隐藏权限lsattr #查看隐藏权限
远程拷贝文件:
scp root@10.36.189.100:/root/yum-server.sh .
进程管理
什么是进程?
进程是已启动的可执行程序的运行实例,是程序运行的过程,动态的,有生命周期及运行状态
静态查看进程: ps aux | less
ps -ef
查看当前CPU负载 uptime
查看内存使用 free -m
查看版本 cat /etc/redhat-release
查看正在运行的内核版本 uname -a
查看内核版本 uname -r
上传命令:yum install -y lrzsz
上传 rz
下载 sz
存储管理
MBR 14个分区(4个主分区,扩展分区,逻辑分区)
局域网远程yum源制作
1.首先准备操作系统的镜像文件
2.实验的服务器两台
一台vsftpd服务端
一台客户端
3.首先测试两台主机是否可以ping通
服务端:
1.关闭防火墙
3.将本地镜像上传到虚拟机中 将CentOS-7-x86_64-DVD-1810.iso 上传到/opt目录下
4.mkdir /opt/yum-iso 创建挂载点
5.mount /opt/CentOS-7-x86_64-DVD-1810.iso /opt/yum-iso/ 把CentOS挂载到/opt/yum-iso/ 下
6.yum install -y vsftpd 安装vsftpd服务
7.systemctl start vsftpd 启动vsftpd服务
8.cp -r /opt/yum-iso/* /var/ftp/pub/ 把挂载到opt/yum-iso的镜像文件全部复制到 /var/ftp/pub/
9.cd /var/ftp/ 进入到ftp目录下
10.yum install -y createrepo 安装createrepo服务(索引)
11.createrepo pub/ 创建本地源
12.cd /etc/yum.repos.d/ yum源配置文件存放目录
13.vim myyum.repo 创建本地yum源的配置文件
【ftpYum】 # yum源区别名称,用来区分其他的yum源
name=ftpYum #yum源描述 yum源名字
baseurl=file:///opt/yum-iso #指定本地yum源的路径
enabled=1 #是否使用此yum源(1为打开,0为关闭)
gpgcheck=0 #检查软件
14.yum clean all 清理yum缓存
15.yum makecache 缓存软件包信息
16.yum repolist 查看yum源
客户端:
1.cd /etc/yum.repos.d/
2.vim my.repo 本地yum的配置文件 [ftpYum] name=centos baseurl=ftp://192.168.246.170/pub enabled=1 gpgcheck=0
3.yum clean all 清理yum缓存
4.yum makecache 缓存软件包信息
5.yum repolist 查看yum源
yum源排错:
1.yum配置文件必须以 .repo 结尾
2.配置文件关键字错误
3.检查yum源是否存在
4.baseurl路径是否正确
5.镜像大小是否正确
6.当有Yum进程存在的时候,无法同时再打开一个Yum进程
配置DNS : /etc/resolv.conf
查看文件的ID: blkid
查看服务器中所有分区情况:lsblk
为什么企业会把Linux作为首先的服务器系统?
a.Linux系统是开源免费的
b.稳定性强,在Windows系统中会遇到蓝屏,程序奔溃等情况
c.安全性高,因为大多数病毒是针对Windows系统
d.资源消耗较少,可以减少企业的成本投入
怎么看文件类型
ll stat ls -l
如何查看一个进程的端口?
netstat -lnatup | grep nginx
如何查看当前系统磁盘使用量?
df -Th
关闭防火墙:systemctl stop firewalld
永久关闭防火墙:systemctl disable firewalld
查看selinux是否开启:getenforce
临时关闭selinux服务:setenforce 0
重启网络:systemctl restart network
启动网卡:ifup ens33
查看历史命令:history {ctrl + r !命令行号}
强制杀死进程:kill -9
清理缓存:yum clean all
缓存软件包信息:yum makecache
查看yum源:yum repolist
查看服务器ip地址 ,只输出ip地址?
ip a | awk 'NR==9 {print 2}'|awk -F'/' '{print2}'|awk -F'/' '{print2}'|awk -F'/' '{print 1}'
绝对路径和相对路径?
从根开始的路径就是绝对路径
凡是非根开始的路径是相对路径
yum命令和rpm命令的区别:
yum命令在安装软件时会去主动尝试解决依赖,如果解决不了才会反馈给用户
rpm命令一旦遇到了依赖性的问题不会去解决依赖性,而是直接反馈给用户,让用户自行解决
HTTP常见的状态码有哪些?
200 正常
301 永久跳转
302 临时跳转
403 拒绝访问目录没权限没有首页
404 页面没找到
500 反向代理后端没有可以响应的服务器
502 反向代理后端没有可以响应的服务器
503 反向代理后端没有可以响应的服务器
Linux系统启动过程?
a.加电
b.加载bios设置
c.加载grub
d.加载内核系统到内存当中
e.加载配置文件
f.加载内核模块
g.完成相应的初始化工作和启动相应的服务
h.启动系统进程
r.出现登录界面
j.开机启动完成
在服务器中切换用户 加“ - ”和不加“ - ”的区别?
加 - 时,会进入用户的家目录
不加 - 时, 切换完用户还在当前目录
-exec和xargs的区别?
-exec:参数是一个一个传递的,传递一个参数执行一次命令; 每处理一个文件或者目录,它都需要启动一次命令,效率不好;格式麻烦,必须用 {} 做文件的代位符,必须用 \来转义; 作为命令的结束符,书写不便。 xargs:将前一个命令的标准输出传递给下一个命令,作为它的参数转换成下一个命令的参数列表;不能操作文件名有空格的文件;
1.软链接与硬链接的区别?
a.Linux硬链和软链的区别在于,硬链创建了指向文件实际数据的新的文件名,而软链则创建了一个指向另一个文件名的链接文件。硬链接的文件名和文件内容是绑定在一起的,删除任何一个都会造成文件不完整,而软链接只是一个指向其他文件的文件名,删除链接文件不会影响实际的文件,因此软链接更加灵活。
b.硬链接不会创建新的inode,只是给源文件多加了一个文件名 硬链接不能跨分区 硬链接删除源文件后,另一个文件还能用
软链接创建新的inode,相当于重新创建了一个文件 软链接可以跨分区 软链接删除源文件后,链接文件不能再使用
c.软链接可以跨文件系统,硬链接不可以;
软链接可以对目录进行连接,硬链接不可以;
删除源文件之后,软链接失效,硬链接无影响;
两种链接都可以通过命令 ln 来创建;
ln 默认创建的是硬链接;
使用 -s 参数可以创建软链接。
文件查找例题:
2.怎么给服务器修改主机名?
hostnamectl set-hostname 主机名
3. > , >> 区别是什么?
'>'覆盖----把之前的内容替换掉
'>>'追加----保留之前的内容,在后面添加新的内容
4. su - 用户名 或 su 用户名,都可以切换当前登录用户,区别是什么?
普通用户登录root用户得输入密码 root用户登录普通用户不需要输入密码
5.ls 和 ll的关系?
ll是ls的别名
6.如何动态查看进程?load average: 0.09, 0.09, 0.12 代表什么意思?
top; CPU 的1 5 15 分钟的平均负载
7.如何查看进程的PID
ps aux | less
ps -ef | less
top
8.启动一个服务后,如何查看这个服务使用的端口号是多少
netstat -tlanp | grep 服务名
知道端口号,查找服务
netstat -tlanp | grep 端口号
查看进程CPU的占用率?
ps aux | grep 服务名
10.kill与pkill的区别?
kill 杀死指定进程 pid 需要和ps aux 配合使用 pkill 批量删除 可以直接对进程的名字进行操作更方便
11.什么是nice值
优先级 nice 值越高:表示优先级越低 nice 值越低:表示优先级越高
12.根域服务器世界有多少台?
十三台
13.OSI七层模型是哪七层?
应用层 表示层 会话层 传输层 网络层 链路层 物理层
14.TCP/IP 四层模型,是哪四层?
应用层
传输层
网络层
链路层
15.以下服务的端口号默认为?
nginx 80
http 80 https 443 php 80 sshd 20 mysql 3306
SQL 3389
Tomcat 8080
Mongo 27017
ssh 22
ftp 21或20
DNS 53
redis 6379
16.ping命令使用的协议是? ICMP协议
17.Swap分区的作用?
linux系统物理内存不够用了,系统会用swap分区来模拟内存。系统会把物理内存里的访问频率低的内存对象移动到swap里,再在物理内存里产生新的连接指向swap里的那个对象
18.:说说这些特殊符号含义 \ > >> 2> 2>> # .(点) ..(两个点) ~ * $ |
\ 转义符
'>'重定向只可以追加
'>>'追加重定向
2> 错误输出重定向
2>>错误输出追加重定向
'#' 注释
. 当前目录
.. 当前目录的上级目录
~ 当前用户家目录
'*'所有字符或任意字符
$取变量内容
| 管道
19.简述一下Linux系统下源代码编译方式安装软件的大致步骤
a.部署基础环境:关闭防火墙;关闭selinux;安装编译器
b.下载、解压软件包
c、配置安装路径
d、编译
e、安装
20.如何在/data/www_logs目录下找出大于10M且在90天之前被修改过的log文件,并将文件移动到/usr/local/src目录下
find /data/www_logs -size +10M -mtime +90 -exec mv {} /usr/local/src \;
21.dns解析过程?
第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器. 第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回. 第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址. 第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址. 第五步:重复第四步,直到找到正确的纪录. 第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机.
22.三次握手的连接过程?
第一次握手:客户端要向服务端发起连接请求,首先客户端随机生成一个起始序列号ISN(比如是100),那客户端向服务端发送的报文段包含SYN标志位(也就是SYN=1),序列号seq=100。
第二次握手:服务端收到客户端发过来的报文后,发现SYN=1,知道这是一个连接请求,于是将客户端的起始序列号100存起来,并且随机生成一个服务端的起始序列号(比如是300)。然后给客户端回复一段报文,回复报文包含SYN和ACK标志(也就是SYN=1,ACK=1)、序列号seq=300、确认号ack=101(客户端发过来的序列号+1)。
第三次握手:客户端收到服务端的回复后发现ACK=1并且ack=101,于是知道服务端已经收到了序列号为100的那段报文;同时发现SYN=1,知道了服务端同意了这次连接,于是就将服务端的序列号300给存下来。然后客户端再回复一段报文给服务端,报文包含ACK标志位(ACK=1)、ack=301(服务端序列号+1)、seq=101(第一次握手时发送报文是占据一个序列号的,所以这次seq就从101开始,需要注意的是不携带数据的ACK报文是不占据序列号的,所以后面第一次正式发送数据时seq还是101)。当服务端收到报文后发现ACK=1并且ack=301,就知道客户端收到序列号为300的报文了,就这样客户端和服务端通过TCP建立了连接。