linux 下vi编译器的使用
vi 文字编辑(根据鸟哥私房菜整理)
一般模式:移动光标的方法
h或向左方向键(←)
光标向左移动一个字符
j或向下方向键(↓)
光标向下移动一个字符
k或向上方向键(↑)
光标向上移动一个字符
l或向右方向键(→)
光标向右移动一个字符
如果想要进行多次移动的话,例如向下移动30行,可以使用“30j”或“30↓”的组合键,
即加上想要进行的次数(数字)后,操作即可
[Ctrl] + [f]
屏幕“向下”移动一页,相当于 [Page Down] 按键(常用)
[Ctrl] + [b]
屏幕“向上”移动一页,相当于 [Page Up] 按键(常用)
[Ctrl] + [d]
屏幕“向下”移动半页
[Ctrl] + [u]
屏幕“向上”移动半页
一般模式:移动光标的方法
+
光标移动到非空格符的下一行
-
光标移动到非空格符的上一行
n
n表示“数字”,例如20。按下数字后再按空格键,光标会向右移动这一行的n个字符。例如20 则光标会向后面移动20个字符距离
0
这是数字“0”:移动到这一行的最前面字符处(常用)
$
移动到这一行的最后面字符处(常用)
H
光标移动到这个屏幕的最上方那一行
M
光标移动到这个屏幕的中央那一行
L
光标移动到这个屏幕的最下方那一行
G
移动到这个文件的最后一行(常用)
nG
n为数字。移动到这个文件的第n行。例如20G则会移动到这个文件的第20行(可配合 :set nu)
gg
移动到这个文件的第一行,相当于1G(常用)
n
n为数字。光标向下移动n行(常用)
一般模式:搜索与替换
/word
从光标位置开始,向下寻找一个名为word的字符串。例如要在文件内搜索vbird这个字符串,就输入 /vbird即可(常用)
?word
从光标位置开始,向上寻找一个名为word的字符串
n
n是英文按键。表示“重复前一个搜索的动作”。举例来说,如果刚刚执行 /vbird去向下搜索vbird字符串,则按下n后,会向下继续搜索下一个名称为vbird的字符串。如果是执行 ?vbird的话,那么按下n,则会向上继续搜索名称为vbird的字符串
N
这个N是英文按键。与n刚好相反,为“反向”进行前一个搜索操作。例如 /vbird后,按下N则表示“向上”搜索vbird
一般模式:搜索与替换
:n1、n2s/word1/word2/g
n1与n2为数字。在第n1与n2行之间寻找word1这个字符串,并将该字符串替换为word2。举例来说,在100到200行之间搜索vbird并替换为VBIRD则:“:100、200s/vbird/VBIRD /g”(常用)
:1、$s/word1/word2/g
从第一行到最后一行寻找word1字符串,并将该字符串替换为word2(常用)
:1、$s/word1/word2/gc
从第一行到最后一行寻找word1字符串,并将该字符串替换为word2。且在替换前显示提示符给用户确认(conform)是否需要替换(常用)
一般模式:删除、复制与粘贴
x, X
在一行字中,x为向后删除一个字符(相当于 [Del] 按键),X为向前删除一个字符(相当于 [backspace] 即退格键)(常用)
nx
n为数字,连续向后删除n个字符。举例来说,要连续删除10个字符,则输入“10x”
dd
删除光标所在的那一整行(常用)
ndd
n为数字。从光标位置开始,删除向下n列,例如20dd则是删除20列(常用)
d1G
删除光标所在位置到第一行的所有数据
dG
删除光标所在位置到最后一行的所有数据
d$
删除光标所在位置到该行的最后一个字符
d0
d的后面是数字0,删除光标所在处,到该行的最前面一个字符
yy
复制光标所在的那一行(常用)
nyy
n为数字。复制光标所在的向下n行,例如20yy则是复制20行(常用)
y1G
复制光标所在行到第一行的所有数据
yG
复制光标所在行到最后一行的所有数据
y0
复制光标所在的那个字符到该行行首的所有数据
y$
复制光标所在的那个字符到该行行尾的所有数据
一般模式:删除、复制与粘贴
p, P
p为将已复制的数据粘贴到光标的下一行,P则为贴在光标上一行。举例来说,当前光标在第20行,且已经复制了10行数据。则按下p后,那10行数据会贴在原来的20行之后,即由21行开始贴。但如果是按下P,那么原来的第20行会被变成30行(常用)
J
将光标所在行与下一列的数据结合成同一行
c
重复删除多个数据,例如向下删除10行,[10cj]
u
复原前一个操作(常用)
[Ctrl]+r
重做上一个操作(常用)
u与 [Ctrl]+r是很常用的命令。一个是复原,另一个则是重做一次。利用这两个功能按键,编辑起来就得心应手。
.
这就是小数点。意思是重复前一个动作。如果想重复删除、重复粘贴,按下小数点“.”就可以(常用)
进入编辑模式
i、I
插入:在当前光标所在处插入输入文字,已存在的文字会向后退;其中,i为“从当前光标所在处插入”,I为“在当前所在行的第一个非空格符处开始插入”(常用)
a、A
a为“从当前光标所在的下一个字符处开始插入”,A为“从光标所在行的最后一个字符处开始插入”(常用)
o、O
这是英文字母o的大小写。o为“在当前光标所在的下一行处插入新的一行”;O为“在当前光标所在处的上一行插入新的一行”(常用)
r、R
替换:r会替换光标所在的那一个字符;R会一直替换光标所在的文字,直到按下ESC键为止(常用)
使用上面这些按键时,在vi画面的左下角处会出现“–INSERT–”或“–REPLACE–”的字样。通过名称就知道是什么操作。特别注意,上面也提过了,想在文件中输入字符时,一定要在左下角处看到INSERT/REPLACE才能输入。
Esc
退出编辑模式,回到一般模式中(常用)
命令行命令模式
:w
将编辑的数据写入硬盘文件中(常用)
:w!
若文件属性为“只读”时,强制写入该文件。不过,到底能不能写入,与文件权限有关
:q
离开vi(常用)
:q!
若曾修改过文件,又不想存储,使用 ! 为强制离开不存储文件
注意一下,那个感叹号(!)在vi当中,常常具有“强制”的意思。
:wq
存储后离开,若为 :wq! 则为强制存储后离开(常用)
:e!
将文件还原到最原始的状态
ZZ
若文件没有更改,则不存储离开,若文件已经更改,则存储后离开
:w [filename]
将编辑的数据存储成另一个文件(类似另存新文件)
:r [filename]
在编辑的数据中,读入另一个文件的数据。即将“filename”这个文件内容加到光标所在行的后面
:n1、n2 w [filename]
将n1到n2的内容存储成filename文件
:! command
暂时离开vi到命令行模式下执行command的显示结果。例如“:! ls /home”,即可在vi中查看 /home中以ls输出的文件信息
:set nu
显示行号,设置之后,会在每一行的前缀显示该行的行号
:set nonu
与set nu相反,为取消行号
linux 的网卡设置
linux下我们经常需要配置基础环境–网卡。也是服务器及网络的基本元素。让我们来更好的认识下linux下网卡的配置。
我们拿centos系统来做为示例。其他linux系统大同小异。
配置文件一般在系统认到网卡的情况下,路径为:
/etc/sysconfig/network-scripts/ifcfg-eth0
1 2 3 4 5 6 7 8 9 10 | TYPE=Ethernet #网卡类型 DEVICE=eth0 #网卡接口名称 ONBOOT=yes #系统启动时是否自动加载 BOOTPROTO=static #启用地址协议 --static:静态协议 --bootp协议 --dhcp协议 IPADDR=192.168.1.11 #网卡IP地址 NETMASK=255.255.255.0 #网卡网络地址 GATEWAY=192.168.1.1 #网卡网关地址 DNS1=10.203.104.41 #网卡DNS地址 HWADDR=00:0C:29:13:5D:74 #网卡设备MAC地址 BROADCAST=192.168.1.255 #网卡广播地址 |
在一张网卡上绑定多个IP地址
在Linux下,可以使用ifconfig方便地绑定多个IP地址到一张网卡。例如eth0接口的原有IP地址为192.168.0.254,我们可以执行这条命令:
1 2 3 4 5 | ifconfig eth1 up //启用网卡 ifconfig eth0:0 202.8.162.242 up //绑定IP ifconfig eth0:0 202.8.162.242 down //绑定删除IP ifconfig eth1 192.168.0.3 netmask 255.255.255.0 ifconfig eth0 add 192.168.0.253 netmask 255.255.255.0 |
后面的netmask可以省略,系统会根据IP地址添加默认的子网掩码。
这种方法的缺点是始终只能多绑定一个IP地址。
或者是执行以下命令:
1 2 3 | ifconfig eth0:0 192.168.0.253 ifconfig eth0:1 192.168.0.252 …… |
就可以在一张网卡上绑定多个IP。
如果希望系统启动时自动绑定,那么可以把这些命令写到/etc/rc.d/rc.local脚本中去,也可以在/etc/sysconfig/network-scripts目录中,将ifcfg-eth0复制为ifcfg-eth0:0、ifcfg-eth0:1等,并做以下修改:
1 2 | DEVICE=eth0:0[1] IPADDR=192.168.0.253[252] |
其它的保持不变。当系统启动eth0时,就会同时绑定这些IP地址。
如何修改网卡MAC地址?
首先必须关闭网卡设备,否则会报告系统忙,无法更改。
命令是:
1 | /sbin/ifconfig eth0 down |
修改 MAC 地址,这一步较 Windows 中的修改要简单。
命令是:
1 | /sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE |
重新启用网卡
1 | /sbin/ifconfig eht0 up |
网卡的 MAC 地址更改就完成了。
AR8131 网卡驱动 for linux 安装(转)
因客户需要,在公司库存的服务器中安装centos,库存所有机器都是华硕P5G41T-MLX主板,集成Atheros AR8131网卡,这种网卡虽然提供了Linux驱动安装包,但是居然是编译安装的,过程也很坑,一度以为无法成功,加班加点在公司找方法,还好最终解决了,看来今晚就睡在这了。。
1.安装系统,我安装的是centos5.6,定制软件时选择立即定制,把开发-开发工具勾选上。
2.确认是否能够识别到网卡,运行lspci -v,最后显示的应该是Atheros 网卡信息。
3.进入系统安装盘,搜索kernel,安装kernel-devel-2.6.18-238-el5.i686.rpm。
4.在其他机器中,打开http://www.asus.com.cn/Motherboards/Intel_Socket_775/P5G41TM_LX/#download,Linux系统,其他驱动程序,下载Linux driver,解压并在lan中找到srv文件夹,将其拷贝到U盘中,接入Linux,如果是命令行就手动挂载,如果有桌面就自动挂载。在srv目录中执行make,kcompat.h的1561行出现重定义错误,用编辑器打开kcompat.h,把1561-1565行删除或者注释掉,然后再执行make,再执行make install。
5.
cd /lib/modules/KERNEL版本/kernel/drivers/net/atl1e
insmod atl1e.ko
6.此时执行ifconfig -a应该就能看到eth0了,不过暂时还不能激活,需要先配置ip和网关,下面的IP地址、网关、子网掩码都可不设,dhcp默认获取。
nano /etc/sysconfig/network-scripts/ifcfg-eth0
———————–
#网卡名称
DEVICE=eth0
#ONBOOT关键字决定开机是否自动开启该网卡
ONBOOT=yes
#如若不使用网卡MAC地址使用MACADDR关键字
MACADDR=00:50:1d:24:52:67
#子网掩码参数
NETMASK=255.255.255.0
#ip地址参数
IPADDR=192.168.1.194
#网络类型参数
TYPE=Ethernet
#网关参数
GATEWAY=192.168.1.254
———————–
然后配置DNS,激活eth0,再重启network
nano /etc/resolv.conf
———————–
nameserver 8.8.8.8
———————–
ifup eth0
service network restart OK,完工。
PS:后来遇到一个问题,执行yum update后黑屏无法进入桌面,预防办法是nano /etc/yum.conf,在[main]的最后添加exclude=kernel*
还有一个问题Device eth0 has different MAC address than expected,把/etc/sysconfig/network-scripts/ifcfg-eth0,把HWADDR=…. 这行删掉就行了.
如果激活eth0出现错误/sbin/ifup: configuration for eth0 not found.在/etc/sysconfig/networking/devices目录下存在一个ifcfg-eth0文件,则只要把这个文件拷到/etc/sysconfig/network-scripts/这个文件夹下就行了,再点激活eth0网卡时就ok了!
iptables:restorecon: command not found无法保存策略解决
为客户安装了linux运行一些iptables设置时。运行保存策略时不生效。
1 2 3 | service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables: /etc/init.d/iptables: line 268: restorecon: command not found |
解决办法:
1 | yum -y install policycoreutils |
然后运行命令保存iptables策略:
1 2 3 | service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables: [ OK ] |
问题解决!
总结:由于有些简化linux系统进行了优化所以有些包没有自定义安装了。所以一般这类问题都是少rpm支持包。一般增加一下,就可以解决问题!
Nginx防盗链节省你的宽带
根据网友文章,自己实践,介绍3种Nginx防盗链的方法,节省你的宽带
一:一般的防盗链如下:
location ~* \.(gif|jpg|png|swf|flv)$ {
valid_referers none blocked www.ingnix.com ;
if ($invalid_referer) {
rewrite ^/ http://www.ingnix.com/retrun.html;
#return 404;
}
}
第一行:gif|jpg|png|swf|flv
表示对gif、jpg、png、swf、flv后缀的文件实行防盗链
第二行: 表示对www.ingnix.com这2个来路进行判断
if{}里面内容的意思是,如果来路不是指定来路就跳转到http://www.ingnix.com/retrun.html页面,当然直接返回404也是可以的。
ps: 以上有人说第二行的 none 要去掉。我本人试过none去掉也可以正常。具体还要大家多测试一下。
二:针对图片目录防止盗链
location /images/ {
alias /data/images/;
valid_referers none blocked server_names *.xok.la xok.la ;
if ($invalid_referer) {return 403;}
}
三:使用第三方模块ngx_http_accesskey_module实现Nginx防盗链
实现方法如下:
实现方法如下:
1. 下载NginxHttpAccessKeyModule模块文件:Nginx-accesskey-2.0.3.tar.gz;
2. 解压此文件后,找到nginx-accesskey-2.0.3下的config文件。编辑此文件:替换其中的”$HTTP_ACCESSKEY_MODULE”为”ngx_http_accesskey_module”;
3. 用一下参数重新编译nginx:
./configure --add-module=path/to/nginx-accesskey
4. 修改nginx的conf文件,添加以下几行:
location /download {
accesskey on;
accesskey_hashmethod md5;
accesskey_arg "key";
accesskey_signature "mypass$remote_addr";
}
其中:
accesskey为模块开关;
accesskey_hashmethod为加密方式MD5或者SHA-1;
accesskey_arg为url中的关键字参数;
accesskey_signature为加密值,此处为mypass和访问IP构成的字符串。
访问测试脚本download.php:
<?
$ipkey= md5("mypass".$_SERVER['REMOTE_ADDR']);
$output_add_key="<a href=http://www.inginx.com/download/G3200507120520LM.rar?key=".$ipkey.">download_add_key</a><br />";
$output_org_url="<a href=http://www.inginx.com/download/G3200507120520LM.rar>download_org_path</a><br />";
echo $output_add_key;
echo $output_org_url;
?>
访问第一个download_add_key链接可以正常下载,第二个链接download_org_path会返回403 Forbidden错误。
远程桌面超出最大连接数解决办法
在日常管理和维护windows服务器时,使用远程桌面管理服务器经常会遇到 超出最大允许连接数 的问题,这是因为windows服务器默认的远程连接数为2的原因。如果遇到这样的情况如何解决呢?其他很容易。用一条dos命令就可以。不过我为大家准备了个工作可以很方便的“强行”登陆破除这个限制。
下载我们为大家准备好的软件,下载地址:http://www.dnsff.com/download/3389.rar
解包后可以得到mstsc.exe、mstscax.dll和RMDSTC.exe 三个文件。
其中RMDSTC.exe是我们要使用到的“强行”登陆工具。可以直接写ip连接。输入用户密码就可以登陆了。
通过winscp管理linux文件
WinSCP是一个支持SSH(Secure SHell)的SCP(Secure CoPy)文件传输软件。只要文件主机支持SSH协定,你就可以安心的下载、上传文件。他的操作界面是参考NC(Norton Commander)的双视窗排列方式,使用起来不会有太大的困难。在WinSCP中,一般的文件操作都没有问题,如:复制、移动、更名文件或文件夹等。
我们可以直接通过winscp对linux下的文件进行操作和管理。使用操作方式和ftp相似。

SQL Server 2005数据库镜像
自从SQL Server 2000以来,你已经能够通过使用复制来创建一个备用的服务器、传输日志,以及备份和重新存储了——但是现在微软又引入了一个内建的工具,它可以实现自动的错误恢复。数据库镜像是SQL Server 2005的一个新特性,它允许你将一个SQL Server中的数据库内容镜像到另一个SQL Server上。它还让你可以在发生错误的时候,通过镜像数据库来进行错误恢复。
Edgewood Solutions 的Greg Robidoux 回答了我们一些SQL Server 2005中有关数据库镜像的常见问题,同时还解释了为什么你现在就应该开始测试这个内建的功能来看看它最终是否会给你的环境带来好处。
什么是数据库镜像?
Robidoux:数据库镜像是将数据库事务处理从一个SQL Server数据库移动到不同SQL Server环境中的另一个SQL Server数据库中。镜像的拷贝是一个备用的拷贝,不能直接访问;它只用在错误恢复的情况下。
因为是在SQL Server 2005中新引入的特性,这个功能只能用在,这个版本的软件中。在某种程度上说,它是复制和日志传输的混合体:你所有的事物都在事物级别(复制)上移动(日志传输)到你的数据库的一个镜像拷贝上,同时减少了你在实现日志传输或者复制的时候可能会面临的问题。
复制包括大量的移动部分,并且如果你的数据库计划经常改变的话,要保证你的复制运行得流畅也是困难重重。对于日志传输,为了保证同步,同样需要实现很多的处理,例如创建备份、拷贝备份,以及备份重存。如果有一个进程崩溃了,整个处理过程就崩溃了。
数据库镜像的工作方式是什么?
Robidoux :要进行数据库镜像所需的最小需求包括了两个不同的SQL Server运行环境。主服务器被称为“基本的”,第二个服务器被称作“镜像的”。基本数据库就是你实际用着的数据库,镜像数据库就是你的数据库的备用拷贝。当事务写入你的基本服务器的时候,他们也同样被传送到并写入你的镜像数据库中。
除了基本和镜像之外,你还可以引入另一个可选的组件,名为“证人”。证人数据库是第三个SQL Server 2005运行实例,它是在判断什么时候进行错误恢复的时候,用于基本和镜像之间内部交流。只有当你想实现自动错误恢复的时候用到这个选项。它实现了2比1投票的能力,当我的一个组件不可达,并因此需要进行错误恢复的时候。证人服务器只有在你想实现自动错误恢复的时候才需要用到。
实现的方式是什么?
Robidoux :数据库镜像提供了三种实现的方式。根据你想要用什么方式来进行错误恢复处理来进行选择。
高可用性:这个操作模式选项允许你在两台服务器上同步事务写入,并支持自动错误恢复。要使用这个选项,你必须还要使用一个证人服务器。
高保护:这个选项可以让你在两台服务器上同步事物写入,但是错误恢复是手工的。因为自动的错误恢复不是这个选项的一部分,所以也不会用到证人服务器。
高性能:这个选项不关心两台服务器上的写入是否是同步的,因此在性能上有所提高。当使用这个选项的时候,你只能假设镜像服务器上的所有事情都是成功完成。这个选项只允许手工的错误恢复,因此不会用到证人服务器。
时刻记住将你的数据自动恢复到第二个拷贝才是数据库镜像的真正好处。因此,大多数的实现可能都是使用的高可达性方式。其他的选项仍然提供了内建的错误恢复过程,但是前提是你在发生错误的时候对进行自动的错误恢复怀有极大的兴趣。
数据库镜像可以工作在哪几个版本上?
Robidoux :数据库镜像只能在标准版、开发版和企业版的SQL Server 2005中找到。基本服务器和镜像服务器的SQL Server运行实例都需要是这几个版本。证人服务器可以运行在任何版本的SQL Server上。此外,还有其他的一些特性是SQL Server的开发版和企业版上特有的,但是标准版具有最基本的功能。
总结
现如今,SQL Server 2005的数据库镜像已经关掉了,但是所有的功能仍然存在。数据库镜像可以通过使用检索标志来打开——但是微软现在并不支持这个功能了,所以不要在你的产品环境中运行它。数据库镜像将会在本年年末完全实现并被支持。
要打开这个特性并开始你的测试,你可以看看以前的专家知识解答。微软正在寻找额外的反馈,所以你可以看看它是否可以作为你的SQL Server环境的候选。
——–目前有一个SQL服务器,业务多了常出现拥堵。
看到SQL2005支持镜像服务。
但是我不是为了故障转移,我希望对数据库的更改操作去访问主服务器。让所有的查询操作直接访问镜像服务器。 不知道是否可以实现?SQL允许直接查询镜像服务不?
访问程序可以作修改的。 不一定非要用SQL自己的自动转移。 可以再程序里强制访问镜像服务器或者主服务器。
如何有效防止phpddos发包
最近一段时间以来经常发现vps的客户出现发大量udp攻击包,照成网络带宽堵塞。协助客户查了一下原因是有的网站出现的代码漏洞黑客上传了php的udp发包代码。
如何有效的对此类事件的防护及处理呢?
我们可以看到php的upd代码发包过程是由于利用了php的fsockopen函数漏洞进行的。
那我们可以这样限制一下php的代码函数:
下面是两种常用的禁用fsockopen的方法。
1、修改php.ini,将 disable_functions = 后加入 fsockopen
2、修改php.ini,将 allow_url_fopen = On 改为 allow_url_fopen = Off
一般可以写成这样:
disable_functions = popen,exec,passthru,system,fsockopen,pfsockopen
然后我们在对机器对外发udp包进行限制。windows 我已经为大家写好了规则。大家可以直接通过服务器的本地安全策略进行导入。可以有效的限制udp发包。
下载: phpddos.ipsec
Linux系统下可使用iptables防火墙进行限制udp发包,如下:
1 2 3 4 5 6 7 8 9 | iptables -F iptables -A OUTPUT -p udp -j DROP iptables -I OUTPUT -p udp --dport 53 -d 168.95.1.1 -j ACCEPT service iptables save service iptables restart |
注:168.95.1.1 为你linux服务器的dns。如果不知道可以用以下代码查dns
1 | DNSIP=`cat /etc/resolv.conf |grep nameserver |awk 'NR==1{print $2 }'` |
Linux各版本的本地root密码破解方法
Linux各版本的本地root密码破解方法
(一)RedHat/CentOS/Fedora 系统密码破解
1.在grub选项菜单按E进入编辑模式
2.编辑kernel 那行最后加上S (或者Single)
3.按B,启动到single-user mode
4.进入后执行下列命令
# mount -t proc proc /proc
# mount -o remount,rw /
#passwd
#sync
#reboot
(二)Debian linux 系统密码破解
1.在grub选项菜单’Debian GNU/Linux,…(recovery mode)’,按e进入编辑模式
2.编辑kernel那行最后面的 ro single 改成 rw single init=/bin/bash,按b执行重启
3.进入后执行下列命令
root@(none)#mount -a
root@(none)#passwd root
root@(none)#reboot
(三)Freebsd 系统密码破解
1.开机进入引导菜单
2.选择每项(按4)进入单用户模式
3.进入之后输入一列命令
root@#mount -a
root@#fsck -y
root@#passwd(修改密码命令)
root@#root(要破解密码的用户名)
Enter new unix password:
root@#init 6 (重启)
(四)Solaris 系统密码破解
1.在grub选项菜中选择solaris failasfe 项
2.系统提示Do you wish to have it mounted read-write on /a ?[y,n,?] 选择y
3.就进入单用户模式
4.输入下列命令:passwd
root@#init 6 (重启)
(五)NetBsd 系统密码破解
1.开机:当出现提示符号并开始倒数五秒时, 键入以下指令:
> boot -s (进入单用户模式命令)
2.在以下的提示符号中
Enter pathname of shell or RETURN for sh:
按下 Enter。
3.键入以下指令:
# mount -a
# fsck -y
4.使用 passwd 更改 root 的密码。
5.使用 exit 指令进入多人模式。
(六)SUSE 系统密码破解
1.重新启动机器,在出现grub引导界面后,在启动linux的选项里加上init=/bin/bash,通过给内核传递init=/bin/bash参数使得OS在运行login程序之前运行bash,出现命令行。
2.稍等片刻出现(none)#:命令行。
3.这时输入mount -n / -o remount,rw 表示将根文件系统重新mount为可读写,有了读写权限后就可以通过passwd命令修改密码了。
4.这时输入passwd命令就可以重置密码了
5.修改完成后记得用mount -n / -o remount,ro将根文件系统置为原来的状态。
