这种问题出现的可能性很多,比如温度过高、内存溢出、cpu等待过多、硬件链接出现异常、磁盘访问有问题等等都可能出现,需要具体问题具体分析。你可以开启linux的报告系统,这样在发生问题时可以输出一个问题诊断报告,进而进行原因分析,否则单单只是现象描述的话很难定位。具体的开启诊断报告的方法网上有,可以自己搜一下看看。
专注于为中小企业提供成都网站设计、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业青阳免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
当在Linux系统下执行本来存在的shell脚本文件,但是在执行时就是提示你文件不存在。
此时一般原因就是你shell脚本在编写时的系统跟你的执行脚本的系统不一致,比如你在window系统编写的脚本,当拷贝到Linux系统时就会遇见此问题。原因是在windows下编辑的.sh文件的格式为dos格式,而linux只能执行格式为unix格式的脚本。因为在dos/window下按一次回车键实际上输入的是“回车(CR)”和“换行(LF)”,而Linux/unix下按一次回车键只输入“换行(LF)”,所以修改的sh文件在每行都会多了一个CR,所以Linux下运行时就会报错找不到命令。另外就是当你在github上使用windows系统下载源文件中包含shell脚本文件 时,当你解压并拷贝到Linux系统执行时,也可能发生此问题。
解决办法:
我们可以通过vi编辑器来查看文件的format格式。步骤如下:
1.首先用vi命令打开文件
[root@localhost test]# vi test.sh
2.在vi命令模式中使用 :set ff 命令
可以看到文件的格式为
fileformat=dos
3.修改文件format为unix
使用vi/vim修改文件format
命令::set ff=unix
或者::set fileformat=unix
然后:wq保存退出,重新执行脚本就正常了
应该是终端键盘布局(keyboard layout)设置不当吧。
因为我们通常用的键盘都是us104兼容的,所以很少需要手动设置。
补充:
我最近遇到一个类似的问题,那些方向键/PageUp/PageDown/NumLock/PrintScreen等不能正常工作。这个是由于x.org使用input hotplugging不当造成的。
你试试下面的办法,禁用input hotplugging,手动配置键盘:
$ su
# cd /etc/X11
# cp xorg.conf xorg.conf.bak
# nano xorg.conf
在这个文件开头添加:
Section "ServerFlags"
Option "AutoAddDevices" "False"
Option "AllowEmptyInput" "False"
EndSection
然后查看这个文件与键盘相关的部分是否使用了正确的驱动和布局:
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"
EndSection
之后重启X。
如果你的发行版默认没有/etc/X11/xorg.conf文件,再发百度消息给我,或者添加在问题补充里面。
再补充:
详细步骤
先打开终端,一般在GNOME菜单的附件里面。
以下命令在终端中输入:
〔切换到root用户:〕
输入su,回车,输入root密码,回车
依次输入以下命令,忽略前面的#提示符:
〔备份原来的xorg.conf,然后用编辑器打开这个文件〕
# cd /etc/X11
# cp xorg.conf xorg.conf.bak
# nano xorg.conf
现在应该在nano编辑器里面了,你按照我前面说的该添加的添加,该检查的检查,之后保存文件。
退出终端,重启X。
1.shell还未启动...
2.要么就是使用的shell不对---比方说用了non-login的shell,但从你的描述来看不像是这个原因
3.agetty崩溃,看起来这是最有可能的原因,通常只用重启了...要么试试切换启动级别
-------------------------------------------
为什么我总是觉得这像是CPU被占满的结果呢.....这种情况我在使用make -j编译内核的时候出现过,基本上内核都被锁死,无法执行任何命令,当然我也觉得这有可能是"fork炸弹"
执行:.(){.|.};.
的后果也类似,这种情况,如果可以请尽量直接重启!!
为了避免这种事情的再度发生,请在.bashrc或类似shell配置文件上的最后一行加上一句:ulimit -u 512(限制进程总数为512)
你这个应该是语言环境变量的问题试下输入 echo $LANG 查看当前语言变量,像我下面:
[root@samba ~]# echo $LANG
en
可以尝试修改当前环境语言变量,直接敲入下面命令修改变量,不过就是重启系统之后还是会复原,下面两个可以试一下:
LANG=en #设置当前的语言变量为英文,这个时候是不支持中文的哦
LANG=zh_CN.UTF-8 #如果你的系统装有中文,将支持中文,不过一般也兼容英文
####下面是示范
[root@gg ~]# echo $LANG #查看当前语言环境
zh_CN.UTF-8
[root@gg~]# LANG=en #修改当前语言环境为纯英文
[root@gg ~]# echo $LANG #再次查看当前语言环境
en
那我在详细解释一下:du
不是显示文件大小,而是显示文件所占用的
block
大小,默认linux系统分区的
block
size
是4k,也就是说即使文件只有1个字节,也会占用4k.
这下楼主明白否?
ls
-l则是文件的实际大小。建议主楼在详细读一下linux基础篇。呵呵
你先看一下你自己系统分区时的块大小,
/sbin/tune2fs
-l
/dev/***
如果是4k就对了,如果你的是1k的话文件指向的node也要占块大小