zoukankan      html  css  js  c++  java
  • 疑难杂症

    1、修改计算机名( /etc/hostname )后执行操作出现  sudo: unable to resolve host  *** 

    /etc/hosts中存放了网址的解析  修改里面原计算机名为新计算机名

    2、修改密码 :     passwd 用户名 

    3 、安装了gdm, 觉得不爽,使用apt-get remove gdm卸载了,再重启就出问题了,一直卡在启动界面

    直接把/etc/X11/default-display-manager中的内容由
    代码:
    lightdm

    改为
    代码:
    /usr/sbin/lightdm

     dpkg -l           显示软件包列表 状态标志(安装了什么包)

    iU 表示软件包未安装成功
    ii 表示安装成功
    rc 表示软件包已经被卸载,但配置文件仍在
    4

    当你在执行shell命令时,如果遇到类似“The parameter list is too long”的错误提示,那么往往是因为你的通配符匹配的文件太多而导致的。比如 rm -f *.*,而且正好你的当前目录下又有超多的文件。

    原来,每一个shell都有自己的系统限制值,我们可以用getconf命令来获取到这些值。

    $ getconf ARG_MAX
    131072

    这个就是shell对通配符匹配的限制了,单位是字节,也就是说参数字节长度最大是13万1千零72字节。超过这个长度,就会受到上述的报警了:)

    解决方法是:不用rm,改用find . -name “*.*” -exec rm -f {} ;命令。

    100、

    在shell的变量赋值时,如果我执行了x=*,问题就出来了,shell是将*替换为当前目录下的文件列表然后赋值给x,还是直接将*赋值给了x呢?

    给你出个主意,你执行echo $x看看出现什么东西,不久一目了然了么?

    [rocrocket@rocrocket ~]$ myvar=*

    [rocrocket@rocrocket ~]$ echo $myvar
    apache-tomcat-5.5.26.tar.gz audiodump.wav Desktop Documents Download dwhelper educonn.tar.gz Music Pictures Public subversion-1.4.0-29.i586.rpm subversion-server-1.4.0-29.i586.rpm Templates Videos

    明白了吧? 原来*会被自动替换为当前目录下的文件列表。

    你是不是以为问题解决了,豁然开朗了。其实不然。如果你考虑比较周全,思维比较敏捷,你还会继续问问题:“这个星号的替换到底是在哪个步骤发生的?是在x=*时?还是在echo $x时?”

    不买关子,其实上面我出的主意不能让我们完全看清本质。这是一个shell的知识点,直接告诉大家吧。

    shell在给变量赋值时不进行文件名替换。所以当你执行x=*时,只是一个星号赋值给了x变量。真正的替换发生在echo $x时。

    详细的步骤是这样的:

    1 当执行x=*时,shell扫描命令行,把*赋值给x。

    2 当执行echo $x时,shell先将$x替换为*

    3 shell将*替换为当前目录下的文件列表

    4 shell执行echo命令,将文件列表作为参数传递给它。

    步骤就是这样,不难,只要记住:“变量赋值时不做匹配替换。shell先做变量替换,在做文件名替换,最后处理参数”。

  • 相关阅读:
    Click和Command事件的区别是什么
    后台取不到repeater里的checkbox选中状态 和 checkbox 值
    asp.net 控件生命周期 内的执行步骤
    采购流程
    matlab练习程序(图像放大/缩小,双立方插值)
    matlab练习程序(获取鼠标坐标)
    matlab练习程序(区域填充算法,队列版)
    matlab练习程序(二值图像连通区域标记法,两步法)
    matlab练习程序(寻找凸包,Graham扫描法)
    matlab练习程序(图像旋转,双线性插值)
  • 原文地址:https://www.cnblogs.com/hanxing/p/4076985.html
Copyright © 2011-2022 走看看