解决Linux运维中常见问题的全面指南

发表时间: 2020-04-03 14:47

一、运维概述与系统安装

问题1:虚拟机提示"Intel VT-x处于禁用状态

实现思路:重启电脑按快捷键进入BIOS —> 启用Intel VT-x —> 重启计算机 —> 启动虚拟机

一般品牌的笔记本电脑包括联想、惠普、戴尔、宏碁等,那么进入BIOS的捷径是什么?

您可以看到每个品牌启动BIOS的快捷键。如果以上键不响应,请添加笔记本功能键Fn同时按下。

以联想笔记本为例,给大家讲解如何引导BIOS方法:

第一步:重启计算机,开机停留在黑屏界面时,按F2

第二步:进入BIOS界面,如下图所示:

选择"Security",看到如下选项,选择"Virtualization"

此页面下有两个设置项,选中"Intel (R)Virtualization Technology",设为启用"Enabled"。

设置完成后,按F10保存并退出。

问题2:CentOS7的halt命令不能乱用,会报错

看过咱们早期课程视频的小伙伴,肯定知道,CentOS6立即关机一共有三种形式:

① shutdown命令:

# shutdown -h 0

② init命令:

# init 0

③ halt命令:

# halt

但是要特别注意,shutdown命令和init命令可以直接迁移到CentOS,但是halt命令有所不同。

问题重现 => 在CentOS7操作系统中,执行halt命令,提示如下:

遇到怎么问题咋办呀?不要怕,选择当前操作系统选项卡,然后单击上方关闭客户机按钮。

问题原因:由于CentOS6与CentOS7会略有不同,CentOS7中的halt命令应该为# halt -p,记住了么,小伙伴!

问题3:系统装好了,界面特别小,怎么办?

出现这个问题的主要原因是CentOS7系统安装完毕后,VMware会自动安装VMware Tools,其会自动调整计算机的分辨率,当我们全屏显示时,操作系统会自动铺满整个屏幕。但是缩小时,操作系统界面也会相应的缩小。

VMware Tools介绍

VMware* Tools 是VMware的一个扩展工具,VMware中包含一系列服务和模块,可在 VMware 产品中实现多种功能,从而使用户能够更好地管理客户机操作系统,以及与客户机操作系统进行无缝交互。

那针对这个问题,我们怎么解决呢?

答:VMware => 菜单,选择"查看" =>"立即适应窗口",即可解决 (PS:我的因为没有图形所以这个地方是灰色的)


问题4:VMware开启时提示输入密钥

当我们安装Vmware Workstation时(无论是VMware12、VMware14或VMware15)完毕时,第一次启动VMware都会出现以上提示,解决方案,输入VMware对应版本的注册码即可。

VMware12 注册码:
5A02H-AU243-TZJ49-GTC7K-3C61N

VMware15 注册码:
B806Y-86Y05-GA590-X4PEE-ZV8E0

问题5:Windows10 + VMware15之系统黑屏

可能原因1:Linux操作系统配置比较低,导致Linux无法启动,调整CPU与内存配置

可能原因2:VMware15版本与Windows10操作系统有点不兼容

解决方案:降低VMware软件版本,建议使用VMware12版本

问题6:安装操作系统时,启动黑屏无法安装

原因:出现以上问题的主要原因在于没有加载操作系统镜像(计算机安装光盘没有插入)

解决方案:

第一步:关闭计算机操作系统

第二步:选择你要安装系统的选项卡,双击CD/DVD(IDE)菜单

第三步:加载CentOS7操作系统,设置完成后,单击最下面确定按钮。

搞定啦,重新启动系统,CentOS7就会自动安装啦!

问题7:系统安装完成后,没有界面,只有黑屏

出现以上问题的原因在于安装操作系统时,选择了最小化安装(Minimal Install),没有选择(GNOME Desktop)进行安装。

解决方案:新建虚拟机,重新安装一次即可,这次千万不要选错啦。

问题8:Linux密码我输入了怎么不显示?

在命令行中,使用su - root,切换到超级管理员账号时:

问题描述:无论我怎么输入,就是打不了字,是不是我安装的系统有啥问题呢?

解决方案:Linux操作系统基于安全考虑,没有显示你输入的密码,这里需要注意,虽然在屏幕端并没有显示密码,但是当你敲击键盘的每个动作其都会记录到Linux系统中,输入密码后,直接回车就可以了,神奇吧!

问题9:安装系统时,输入root密码一直通不过

原因:密码安全度不够

CentOS7密码设置要求:

① 不少于8个字符

② 新密码中至少需要一个小写字符

③ 新密码中至少需要一个大写字符

④ 新密码中至少需要一个数字

⑤ 新密码包括至少一个特殊字符

⑤ 尽量不要出现连续数字、单词等弱密码


问题10:Linux待机5分钟自动锁屏怎么办?

一会就要重新输入一次密码,好麻烦呀,有没有什么解决办法?

英文界面如何设置?看下面

这样系统就不会再自动锁屏啦,但是企业级服务器还是建议设置定时锁屏。为啥?安全呗!

问题11:系统安装完成后,网络无法连接

问题重现

原因:出现以上问题的主要原因在于虚拟网卡异常

解决方案:还原VMware虚拟机网卡配置

第一步:点击"编辑"菜单里面的"虚拟网络编辑器"

第二步:在弹出窗口,选中VMnet8,然后单击"还原默认配置"按钮

等待还原配置完成,到此Linux网络的问题就解决了。

问题12:系统重装后,输入VMware秘钥提示许可证秘钥无效

错误重现:

问题原因:出现以上问题的主要原因在于Windows系统重装后,VMware的很多默认安装在C盘的配置文件都被删除了,导致VMware主程序输入秘钥后无法通过验证。

解决办法:重装VMware即可解决

二、Linux基本命令

☆ 问题1:输入命令后提示command not found

引言

这个错误应该是很多学习Linux运维小伙伴的噩梦了,学习Linux的小伙伴,百分百会遇到这个问题

错误重现:

[root@itheima ~] # Linux命令 -bash: 命令: command not found

出现以上问题,无外乎就三个原因:① 命令输入错误 ② 软件包未安装 ③ 环境变量未设置

① 命令输入错误解决方案

[root@itheima ~] # 更正Linux命令即可,没事咱仔细瞅瞅

② 软件包未安装(常见于最小化安装模式)

[root@itheima ~] # vim -bash: vim: command not found 解决方案:[root@itheima ~] # yum install vim -y[root@itheima ~] # rz -bash: rz: command not found 解决方案:[root@itheima ~] # yum install lrzsz -y

③ 环境变量未设置(常见于软件编译安装方式)

[root@itheima ~] # mysql -uroot -p-bash: mysql: command not found问题:我已经编译安装了mysql软件,为什么还是不能使用mysql命令 呢? 解决方案:把mysql的可执行文件目录添加到PATH环境变量# 临时设置  [root@itheima ~] # export PATH=$PATH:mysql的可执行文件目 录# 永久设置 [root@itheima ~] # echo 'export PATH=$PATH:mysql的可执行 文件目录' > /etc/profile[root@itheima ~] # source /etc/profile


问题2:访问某个文件提示Permission denied

错误重现:

[cndws@itheima ~] # cat /etc/shadowcat: /etc/shadow: Permission deniedPS:/etc/shadow => 主要是用于存放Linux用户账号对应的密码文件

出现以上问题的原因:

当前账号没有该文件或该命令的操作权限,所以会提示Permission denied

解决方案:切换到超级管理员

[cndws@itheima ~] # su - rootPassword:输入密码回车 [root@itheima ~] # cat /etc/shadowroot:$hu5TVD4jntDLaSwY$vWJAbhVCdP1FRwZZ3MC35rEwfWjP6JMRNstoe2ChYD/NrzjuKcvK7qJjNxQ/wJLZP5Jqi8qB9RLsMc7APxwaT1::0:99999:7:::bin:*:17834:0:99999:7:::daemon:*:17834:0:99999:7:::...PS:su -(横杠) root,-横杠是干啥的?答:-(横杠),横杠代表切换用户的同时切换用户的家,pwd当前目录自 动转向/root


问题3:No such file or directory

No such file or directory 没有这样的文件或目录

错误重现:

[root@itheima ~] # cd /usr/local/nginx-bash: cd: /usr/local/nginx: No such file or directory

出现以上问题的主要原因有两种情况:文件或目录路径输入错误,真的没有这个文件或目录

① 文件或目录路径输入错误

这个问题比较好解决,只需要更正文件或目录路径就可以了。那怎么才能保证输入是100%正确呢

答:使用Tab,命令或路径自动补全功能

Tab键在哪里?什么,你不知道?没关系,看下图:

访问网卡文件目录 => /etc/sysconfig/network-scripts第一次提示# cd /etc/sysc + Tab键 =>   sysc自动补全为sysconfig第二次提示# cd /etc/sysconfig/network-sc + Tab键 =>   network-sc自动补全为network-scriptsTab自动提示文件或目录路径

② 真的没有这个文件或目录

解决方案:文件或目录的确不存在,可以手工创建。文件使用touch,目录使用mkdir

问题4:Must be root

错误重现:

出现以上问题的主要原因在于你所要执行的命令,属于超级命令,必须使用超管root进行实现。

解决方案:使用su命令切换到root管理员

# su - root

三、Linux文件管理

☆ 问题1:rmdir删除目录提示Directory not empty

问题重现:

出现以上问题的主要原因在于rmdir只能用于删除空目录,出现Directory not empty代表你将要删除的目录并不是空的。

解决方案:清空要删除的目录或直接使用rm -r进行删除即可

问题2:rmdir删除多级目录提示Device or resourcebusy

问题重现:

[root@itheima ~]# rmdir -p /mulu1/mulu2/mulu3rmdir: failed to remove directory '/': Device or resource busy

问题原因:出现以上问题的主要原因在于rmdir -p代表删除目录,系统默认会从右向左删除,首先删除mulu3,然后删除目录2,再删除mulu1,当mulu1删除完毕后,系统会尝试删除/斜杠根目录,又由于/根目录属于系统目录,内容存在大量文件。所以系统没办法移除,就会提示Device or resource busy。

解决方案:当我们需要删除根目录下的某个多级目录时,建议首先通过cd切换到/根目录后,在执行rmdir -p操作

# cd /# rmdir -p mulu1/mulu2/mulu3 


问题3:find搜索加不加-type到底有啥区别呢?

普通搜索 [root@itheima ~]# find 指定路径 -name "搜索条件" 文件搜素 [root@itheima ~]# find 指定路径 -name "搜索条件" -type f文件夹搜索 [root@itheima ~]# find 指定路径 -name "搜索条件" -type d

默认情况下,普通搜索是搜索指定路径下,满足搜索条件的所有文件,既包含文件也包含文件夹。

添加-type的主要功能是缩小搜索范围:

-type f :仅搜索文件

-type d :仅搜索文件夹

一句话总结就是提升搜索效率

四、VIM文件编辑器

问题1:替换操作中,Trailing characters

答:正常情况下,vim编辑器文本替换操作通常使用:%s/要替换的关键词/替换后的关键词/g,如果在替换时,需要对某个路径如/bin/bash统一替换为/sbin/nologin,怎么办?

错误演示:

# vim 某文件:%s//bin/bash//sbin/nologin/g

运行结果如下图所示:

出现以上问题的主要原因在于,vim替换时遇到了特殊字符,如斜杠/。

解决方案:可以把分隔符斜杠/替换为#号

:%s#/bin/bash#/sbin/nologin#g


问题2:每次使用vim打开文件都提示Found a swapfile

问题重现:

出现以上问题的主要原因在于我们在编辑文件时,可能没有经过保存就直接退出了。但是触发了vim的保护机制,把当时的状态保存在一个swap交换文件中。

解决方案:

① 数据比较重要,先按R(Recover)恢复文件,恢复后,正常保存退出,然后手工删除交换文件

② 数据不是特别重要,直接按D(Delete it),删除交换文件即可

五、Linux用户管理

问题1:Linux用户和组到底是什么关系?

Linux操作系统就相当于(传智播客.黑马程序员),其是有多个Linux用户组组成的,而系统中的每个Linux用户都是属于Linux用户组的,这样就不乱了吧!


问题2:cannot remove the primary group of user'itheima'

问题重现:

为什么只是一个简单的删除操作却不能成功呢?答:原因就在于如果这个组是某个用户的主组,那这个组是不能被移除的。想移除必须删除对应的用户,然后在移除这个对应的组。

六、Linux权限管理

问题1:常见Linux操作,都需要使用那些权限呢?

答:完全没有问题,为了让大家更好的理解常见操作的权限,我总结这样一个表格,通过这个表格你就可以掌握常见的权限啦。


问题2:删除文件是给文件设置w权限么?

答:首先一定要记住一件事,在Linux系统中,我们删除文件并不是说我们需要对这个文件设置什么权限,而是必须针对这个文件所在目录设置wx权限!

七、Linux自有服务

问题1:CentOS7中service和chkconfig无法使用

答:CentOS7操作系统中,已经抛弃service和chkconfig命令了,虽然有些服务如network还是可以操作,但是官网建议使用systemctl代替service和chkconfig。

系统服务管理:

# systemctl start|stop|restart|reload|status 服务名称

开机启动项管理:

开机启动

# systemctl enable 服务名称

开机不启动

# systemctl disable 服务名称 


问题2:CentOS7中iptables无法使用?

我们之前在CentOS6.x中,使用的是iptables防火墙,怎么在CentOS7.x中无法使用了呢?

答:在CentOS7中已经将防火墙由iptables切换为firewalld

扩展:firewalld防火墙的使用可以搜索一下firewall-cmd工具或参考我们的视频哈


问题3:CentOS6与CentOS7运行模式区别

答:CentOS6与CentOS7的运行模式有所不同

[root@centos7 ~]# cat /etc/inittab# inittab is no longer used when using systemd.## ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOURSYSTEM.## Ctrl-Alt-Delete is handled by/usr/lib/systemd/system/ctrl-alt-del.target## systemd uses 'targets' instead of runlevels. Bydefault, there are two main targets:#但是在CentOS7版本中,我们需要使用systemctl的方式进行切换: 问题4:计划任务的时间总是写不好怎么办呢?答:时间格式主要是分时日月周,给你推荐一个网站https://qqe2.c om/cron# multi-user.target: analogous to runlevel 3# graphical.target: analogous to runlevel 5## To view current default target, run:# systemctl get-default## To set a default target, run:# systemctl set-default TARGET.target#CentOS6 CentOS70 shutdown.target(关机模式)1 rescure.target(单用户/救援模式)2 multi-user,without NFS(字符模式但是缺少NFS服务) 3 multi-user.target(字符模式) 4 unused(未使用的模式,系统保留)5 graphical.target(图形模式) 6 reboot.target(重启模式)

但是在CentOS7版本中,我们需要使用systemctl的方式进行切换:

获取Linux默认级别# systemctl get-default设置Linux默认级别(字符模式)# systemctl set-default multi-user.target

☆ 问题4:计划任务的时间总是写不好怎么办呢?

答:时间格式主要是分时日月周,给你推荐一个网站https://qqe2.com/cron

看到这里,就全部搞定了吧!

问题5:rpm卸载依赖,Failed dependencies

问题重现:

出现以上问题的主要原因:你要卸载的软件与其他软件存在依赖关系

解决方案:

方案一:如果关联软件不重要,可以先使用rpm卸载依赖软件,然后在重新卸载此软件

方案二:如果不想卸载依赖软件,可以考虑使用强制卸载

# rpm -e vim-common-7.4.629-6.el7.x86_64 --nodeps 

八、Linux进程检测与控制

问题1:服务器有4核CPU,如何查看每一核心的负载情况?

# top按交换快捷键"1"

问题2:使用top命令,发现CPU负载过大,接下来怎么办?

答:查看占用CPU最多的进程,按交互操作快捷键P,P(大写):表示将结果按照CPU 使用率从高到低进行降序排列

问题3:使用top命令,发现内存可用量很小,接下来怎么办?

答:查看占用MEM内存最多的进程,使用交互快捷键M(大写):表示将结果按照内存(MEM)从高到低进行降序排列

问题4:如何获取服务器的CPU个数

# cat /proc/cpuinfo |grep "physical id" |sort |uniq |wc -l

问题5:如何查看每个物理CPU含有的核心个数

# cat /proc/cpuinfo |grep "cpu cores" |uniq |wc -l

问题6:如何查看每个CPU核心含有的线程数

# cat /proc/cpuinfo |grep "processor"|wc -l 

九、YUM包管理工具与LAMP架构

问题1:wget下载mysql数据库时提示command notfound

错误重现:

[root@itheima ~]# wget http://dev.mysql.com/get/mysql community-release-el7-5.noarch.rpmbash: wget: command not found...

出现以上问题的主要原因在于wget程序并没有安装。

解决方案:使用yum安装wget程序

[root@itheima ~]# yum install wget -y...Installed:  wget.x86_64 0:1.14-18.el7_6.1Complete! [root@itheima ~]# wget http://dev.mysql.com/get/mysqlcommunity-release-el7-5.noarch.rpm 


问题2:Existing lock /var/run/yum.pid: another copy isrunning

错误重现:

出现以上问题的主要原因在于:另外一个应用正在锁住进程锁。waiting for it to exit... 意为该应用等待解锁。此外,由上图可知,yum的pid号为8706。

解决方案:

[root@itheima ~]# rm -f /var/run/yum.pid 


问题3:Can't connect to local MySQL server throughsocket '/var/lib/mysql/mysql.sock' (2)

错误重现:

出现以上问题的主要原因在于MySQL没有启动。

解决方案:使用systemctl启动MySQL

# systemctl start mysqld 


问题4:访问具体的PHP页面,但是总是提示TestPage...

问题重现:搭建完LAMP以后,编写PHP代码,访问公网IP/PHP页面,无论怎么访问一直都提示Test Page...

出现以上问题的主要原因在于SELinux没有关闭,导致出现了以上问题。

解决方案:


问题5:MySQL和MariaDB有什么区别?

答:

  • ① MariaDB是MySQL的一个替代品
  • ② MySQL已经被Oracle闭源了,而MariaDB是开源的
  • ③ MariaDB包括的一些新特性使它优于MySQL。MariaDB跟MySQL在绝大多数方面是兼容的,对于开发者来说,几乎感觉不到任何不同。

资料拓展:MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。

问题6:如何在CentOS7中安装MySQL?

在CentOS7中, yum install mysql -y 安装的是MariaDB,怎么安装MySQL数据库呢?