精华内容
下载资源
问答
  • 6.位置参数变量和特殊变量(重要) 1.位置参数变量基本语法 $n (功能描述:n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10}) $* (功能描述:这个...

     1.shell中变量的定义和使用   

            你可在任何编程语言中使用变量,但是在脚本编程(shell)中它们是没有类型的简称弱类型编程语言,在这个变量中可以保含一个数字,一个字符串,一个单词等。你并不需要声明这个变量,它会在引用这个变量时创建它。 

           Linux Shell中的变量分为“系统变量”和“用户自定义变量”,可以通过set命令查看系统变量。用$输出变量

           老生常谈,变量名命名方法:第一个字符为字母,其余字符可以是字母,数字或下划线,编程都一样。
           变量定义:不需要事先定义,直接赋值定义新变量,直接赋值修改原变量的值

    0.变量引用:在变量名前加$号,代表变量内容
    PATHTOMCAT=/usr/local/apache-tomcat-5.5.23  #上来就是变量名 ,赋值。
    echo "path of tomcat is $PATHTOMCAT     #这里使用echo命令,回显。用$获取变量值
    执行结果: path of tomcat is /usr/local/apache-tomcat-5.5.23
    注:
    1.定义变量时等号两侧不允许有多余的空格,如果有空格会报错。
    [robot@hadoop103 ~]$ path1= 'abc'   #有空格,报错
    bash: abc: command not found...
    [robot@hadoop103 ~]$ path1='abc' 
    [robot@hadoop103 ~]$ echo $path1
    abc

    2.定义变量时等号右侧的字符串中含有空格或者制表符,换行符时,要用引号将打算赋值的字符串括起 ,双引号内允许变量替换,而单引号内就不可以
      即shell定义字符串变量时字符串可以用单引号,也可以用双引号,也可以不用引号

    单引号和双引号的区别

       str=yalong
      echo "The str is $str" >>  The str is yalong #双引号中的$str被其值yalong替换,即双引号允许变量替换
      echo 'The str is $str'  >>  The str is $str #单引号中的内容被原样输出,即单引号不允许变量替换。
      转义字符\
    echo  "hello world" >>  hello world  #这里面双引号就是双引号,不输出
    echo  \"hello world\" >> "hello world"  #输出双引号,这里用了转义字符\所以双引号失去了引号功能,成了字符串。

    3.将linux命令返回值赋给变量(重要常用)

    [robot@hadoop103 ~]$ echo aa=`date +%H`  #这里用的是反转义字符,esc下面的那个符号。
    aa=23
    [robot@hadoop103 ~]$ echo aa="date+%H" #这里用的是双引号,命令失效。

    aa=date+%H

    A=`ls -la` 反引号,运行里面的命令,并把结果返回给变量A
    A=$(ls -la) 小括号的功能等价于反引号  
    A=`pwd`  & echo $A   
    A=$(pwd)  $ echo $A

    4.变量使用的常见误区错误

    有时候变量名很容易与其他文字混淆,比如: num=2 echo "this is the $numnd"这并不会打印出"this is the 2nd",而仅仅打印"this is the ",
    因为shell会去搜索变量numnd的值,但是这个变量时没有值的。可以使用花括号来告诉shell我们要打印的是num变量: num=2 echo "this is the ${num}nd"
    这将打印: this is the 2nd ··
    

    注意这用的是{}来确定变量,不是(),用小括号不行,只能用花括号。括号的的功能等同于反引号``

    5.变量的设置和查询

    A=8       A=abc        定义变量A,可以多次定义,顺序执行
    unset A       撤销变量A,unset用来删除变量,unset 命令不能删除只读变量。
    变量被删除后不能再次使用。
    实例
    #!/bin/sh
    myUrl="http://www.google.com"
    unset myUrl
    echo $myUrl
    以上实例执行将没有任何输出。
    readonly B=2  声明静态的变量B=2,不能unset,这种叫只读变量,变量值不可修改。
    使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
    下面的例子尝试更改只读变量,结果报错:
    #!/bin/bash
    myUrl="http://www.google.com"
    readonly myUrl
    myUrl="http://www.baidu.com"
    运行脚本,结果出错如下:
    /bin/sh: NAME: This variable is read only.
    export 变量名  可把变量提升为全局环境变量,可供其他shell程序使用,同样用echo$变量名,查询变量值
    这也是环境变量要加export的原因,这样所有的用户都可以使用这个变量

    export JAVA_HOME=/usr/local/jdk-7.01

    6.位置参数变量和特殊变量(重要)

    1.位置参数变量基本语法
           $n    (功能描述:n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10})
           $*    (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
           $@  (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
           $#    (功能描述:这个变量代表命令行中所有参数的个数)
    2)案例计算输入的参数1和参数2的两个数的和,并输出到控制台
    vi aaa.txt,脚本内容如下,然后执行脚本sh aaa.sh  1 2   
    #!/bin/bash
    num1=$1
    num2=$2
    sum=$(( $num1 + $num2))
    #变量sum的和是num1加num2
    echo $sum
    #打印变量sum的值,执行脚本,输出的结果就是3.
    
    2)打印输入的参数总数、所有参数
    #!/bin/bash
    echo "A total of $# parameters"
    #使用$#代表所有参数的个数
    echo "The parameters is: $*"
    #使用$*代表所有的参数
    echo "The parameters is: $@"
    #使用$@也代表所有参数
    
    3)$*与$@的区别
    #!/bin/bash
    for i in "$*"
    #$*中的所有参数看成是一个整体,所以这个for循环只会循环一次
            do
            echo "The parameters is: $i"
            done
             x=1
            for y in "$@"
    #$@中的每个参数都看成是独立的,所以“$@”中有几个参数,就会循环几次
            do
                    echo "The parameter$x is: $y"
                    x=$(( $x +1 ))
            done
    
    a)$*和$@都表示传递给函数或脚本的所有参数,不被双引号“”包含时,都以$1 $2 …$n的形式输出所有参数
    b)当它们被双引号“”包含时,“$*”会将所有的参数作为一个整体,以“$1 $2 …$n”的形式输出所有参数;“$@”会将各个参数分开,以“$1” “$2”…”$n”的形式输
    出所有参数
    注意:脚本可以嵌套。
    ------------------------------------------------------------------------------------------------------
    2.预定义变量
    1)基本语法:
      $? (功能:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决
    定,则证明上一个命令执行不正确了。)
      $$  (功能描述:当前进程的进程号(PID))
      $!  (功能描述:后台运行的最后一个进程的进程号(PID))
    2)案例
    #!/bin/bash
    #输出当前进程的PID,这个PID就是当前这个脚本执行时,生成的进程的PID
    echo "The current process is $$"
    #使用find命令在root目录下查找hello.sh文件,符号&的意思是把命令放入后台执行
    find /root -name hello.sh & 
    echo "The last one Daemon process is $!"
    echo "$?"
    展开全文
  • 1、错误描述2、错误原因 无标题文档 姓名:  用浏览器预览时,弹出提示窗口3、解决办法

    1、错误描述



    2、错误原因

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>无标题文档</title>
    <script type="text/javascript" src="AngularSpec.js"></script>
    </head>
    
    <body>
       <div ng-app="">
       	  <p>姓名:<input type="text" ng-model="name"></p>
          <p ng-bind="name"></p>
       </div>
    </body>
    </html>
    

        用浏览器预览时,弹出提示窗口;原因是原来用的浏览器已经卸载,再次用该浏览器预览,会导致出现错误


    3、解决办法

    (1)重新设置默认浏览器

    (2)换其他浏览器预览


    展开全文
  • 今天我们在这里谈的tag标签的正确使用方法,就属于网站聚合页面优化的范凑。 tag标签优化是一种非常常见的网站优化手段。 百度百科的解释是:TAG标签是一种由您自己定义的,比分类更准确、更具体,可以概括文章...

       一个网站最为基本的页面主要可以分为两种类型,一种为聚合页面,一种为详情内容页面。今天我们在这里谈的tag标签的正确使用方法,就属于网站聚合页面优化的范凑。

       tag标签优化是一种非常常见的网站优化手段。 百度百科的解释是:TAG标签是一种由您自己定义的,比分类更准确、更具体,可以概括文章主要内容的关键词。tag标签是一种突出网站内容重要关键词或词条的表现,在如今的互联网中被很多的站点所应用有利于浏览者的快速查找与精准索引。我们可以将它定义成为一种灵活运用、快捷方便的内容分类方式,具体的设置方法根据自身网站内容进行规划。tag标签虽然没有具体的使用标准,但它给网站打开了很多的局限性变得更加开放,不会受到栏目分类的束缚在用户服务体验上有着不少的提高。也就是说,TAG标签就是一种快捷、方便的分类方式。网页的html编码中有几个meta标签:标题标签(Title Tag)、描述标签(Description Tag)、关键词标签(Keywords Tag)、publisher tag、copyright tag、robots tag 等等。运用TAG标签,可以使你发表的文章更容易被搜索到。

    TAG标签是一种由您自己定义的,比分类更准确、更具体,可以概括文章主要内容的关键词。(百度尤其喜欢)

      tag标签的正确用途是什么

    tag标签的作用对于网站优化和用户体验上来讲做出了很大的贡献,首先可以通过对它的设置将站点与之相互匹配的内容进行整理归纳当搜索时可集中呈现相关信息。其次能够使得站内链接更加强大内容匹配程度更高有效的在点击tag标签时跳转到关联页面,让网站内容变得丰富多彩有利于页面之间权重的相互传递。最后根据用户搜索习惯可将内容添加多个tag标签,降低用户的跳出率能够轻松的浏览到每个自己感兴趣的tag标签内容页面。

    就当下来说,主流的cms都有带有tag聚合功能的,如dedecms、帝国cms、phpcms、WordPress等等,我们通常开启tag功能的意图很明显,就是通过聚合功能来创造新页面,增加收入,当然能获取到排名当然更好,最初这个功能效果确实可观,不过后来百度已经对tag页面进行了降权处理(尤其新站)。

      那么tag到底是来做什么用的哪?

    tag就是将多篇共有属性关键词的不同文章聚合成为一个类目,更容易推荐给喜欢这类话题读者来阅读;也可以说是根据用户的兴趣点聚合的相关文章;这是一个提高网站用户体验的功能,被SEO从业者“利用”是因为这样的功能能轻而易举实现。

    tag的正确用途首先是要合理的规划整体数量对于搜索引擎来讲不宜过多,再者就是主关键词与长尾关键词不要太过于密集不然会视为作弊受到惩罚。一般情况下一篇内容最好将tag标签数量规定在三个左右为佳,如果太多会在标签分类栏目里造成诸多的重复内容促使页面相似度提升就适得其反了。

    其次tag的正确用途需要把控每个关键词的长度字数,不宜过长建议字数设定在两到五个之间整体字符十个左右。可视tag标签作为网站的关键词排名进行优化,利用文章内容所涉及到的关键词出现次数进行设置。最后就是tag标签的路径层次应该要浅要短最好是放在根目录下以便搜索引擎抓取,太深的话会出现抓取失败以及权重过低的现象。

    所以我们在做新站的时候其实是不建议开启tag的,当网站有一定量级的内容,可以考虑,如叶涛的博客,或者最会利用tag的chinaz,都通过tag霸占了很多排名,有兴趣的可以自行去查询一下。

     

    B、如何正确使用TAG标签

    在讨论TAG标签之前,我们首先明确两个问题,就是TAG的含义及作用。

    一、什么是TAG标签?

    TAG标签就是一种快捷、方便的分类方式。网页的html编码中有几个meta标签:标题标签(Title Tag)、描述标签(Description Tag)、关键词标签(Keywords Tag)、publisher tag、copyright tag、robots tag 等等。运用TAG标签,可以使你发表的文章更容易被搜索到。 TAG标签是一种由您自己定义的,比分类更准确、更具体,可以概括文章主要内容的关键词。(百度尤其喜欢)

     

    二、TAG标签有什么用?

    tag标签有两大作用,****:提高用户体验以及PV点击率;第二:增加内链,有利于网页权重的相互传递;第三,增加百度收录已经提升关键词的排名。

    通过给文章定制标签,可以让访客更方便准确的找到自己的文章;而读者可以通过文章标签更快找到自己感兴趣的文章。您可以为每篇文章添加一个或多个标签,发表成功后,您可以打开文章内的标签,看到网站内所有和您使用了相同标签的文章。不仅如此,如果您文章内使用的某个标签恰巧在首页上推荐,用户打开这个标签时,就会在结果页面上看到您的文章。

     

    三、TAG标签使用注意事项

    那么各位站长及优化师们,我们应该如何合理的优化TAG标签呢?,首先我们应该明确标签是为了方便用户浏览而设置的,所以设置TAG的时候****注意以下几点:

    1、TAG标签****与文章内容相关的又是网站的长尾关键词

    整理你想优化的所有长尾词,不包括首页或者频道页推的关键词,一个长尾词写5篇文章以上,固定设置成相同的tag标签,即你整理出来的长尾词。保证每个  tag标签列表页下面有5篇文章。

    2、一篇文章的TAG标签的设置应该控制在3个左右,不宜过多

    3、每个TAG标签字数控制在两个字左右,切勿写成一个句子

    4、tag标签不宜设置太热门的关键词,尤其是首页或者是频道页主推的词,这样会和首页以及频道页抢权重,大家都知道一个热门词一个网站在百度很少能有多个排名,而每个页面的权重都是有限的,导出链接越多就越分散网站的权重,所以tag标签应该设置为主站或者频道页涉及不到的关键词。这样才能起到互补的作用。

     

    四、TAG标签对网站优化公司有什么好处?

    如今互联网中的绝大多数站长采用的优化手法还是最为普通的锚文本和外链形式,但是真正使用到TAG标签优化的还是少之又少,我们都知道随着搜索引擎不断提 升算法,其最终的目的就是让我们的网站以用户体验为本进行发展,而TAG标签对于****大多数网站而言无疑就是能够很好展现用户体验的一种功能,并且经过小 编对自己网站的测试以及一些网站的分析发现,搜索引擎对于TAG标签是非常友好的,能够很好的增加我们网站的收录,并且当你网站权重达到某种程度的时候, 你的TAG标签其实就等于了网站栏目页面,可以再搜索引擎中获得不错排名。

    TAG文件放置在网站的根目录下,大家都清楚文件目录越浅,搜索引擎给予的权重是不同的,目录太深权重就很低,理论上把所以文件都放置在网站的根目录下最利于优化。但是那样是不可能办到的。蜘蛛在爬行网站文件的时候,先从根目录开始,因此找到的文件就是首页、robots文 件、tag文件,通过tag标签页面就可以爬行整站的文章页面。

    不过一般企业站却没有tag标签,这点不奇怪。因为很多企业网站的程序是自主开发的,程序员没有考虑到这方面,那么有人会说没有tag标签的文章页面 一样被收录。Tag标签貌似没多大用处,其实这样的疑问非常多。SEO必须把细节做好。

     

    五、如何给一篇文章添加TAG标签呢?

    文章的tag标签来源于文章标题或者是标题的扩展,数量一般是1-3个。tag标签也是一篇文章****思想的高度概括。有很多SEO新手可能会闲麻烦,在做外链或更新网站的时候,常常忽视tag标签。笔者还是建议做好文章的tag标签,SEO就是要注意细节问题,SEO人员必须具有耐心~

     

    六、织梦添加文章的时候自动获取tag标签?

    这个方法在帮助模板里面找到的,只是织梦默认模板没有调用。

    我们只需要对模板文件进行简单的修改即可调用。

    1、打开文章页模板文件templets/default/article_article.htm

    2、把下面这段代码插入到合适的位置,一般插入在正文{dede:field.body/}标签下面。自己可以定义CSS显示标签样式。

    文章相关标签:

    {dede:tag row=‘8′ sort=‘week’}

     

    [field:tag /]

    {/dede:tag}

    然后再更新所有文章即可显示。

    tag|TAG调用

    标签名称:tag

    功能说明:TAG调用标签

    适用范围:全局使用

    基本语法:

    {dede:tag sort=‘new’ getall=‘0′}

    [field:tag /]

    {/dede:tag}

    相关函数:

    文件\include\taglib\tag.lib.php第4行

    function lib_tag(&$ctag,&$refObj)

    参数说明:

    row=‘30′ 调用条数

    sort=‘new’ 排序方式 month,rand,week

    getall=‘0′ 获取类型 0 为当前内容页TAG标记,1为获取全部TAG标记

     

    七、TAG标签页需要加nofollow吗

    说起这个标签,很多老站长经常在建立新站的时候,会在首页nofollow掉这个标签,而在其他页面保留,原因是什么呢,合理的控制首页蜘蛛的爬行,比如,新站可能会****引蜘蛛到某个列表页面,或者是某个分类下面的文章,但又想展现tag聚合的内容,而这个tag页面又想被抓取,就保留在其他的页面,而没有全站nofollow。

    八、什么情况会被百度判定为TAG标签作弊?

    1.量大,密度太高。概率变高、
    2.主题不相关,不相关和主题分离了,那么其实根本就产生不了效果。
    3.内容不相关,因为和主题差别太大,产生了作弊效应。

     

    搜索引擎所有算法都是在模拟人的思维的,所以SEO关键不是技术,而是人的思维,SEO策略高于SEO技术。SEO不能和网站运营孤立起来,只有在网站运营中很好的融入SEO策略,把所有SEO技术融汇到策略里面去才能使SEO效果最大化。

    还是那句话,很多网站特别是大型网站都不缺SEO技术、SEO团队,很多时候网站效益无法提升时,如果还想继续在SEO技术上找问题,多是徒劳无功,对大多企业而言技术从来都不是问题。因为对于SEO而言,技术只是基础,思路策略更加重要,突破效益桎梏,要的不是技术提升,而是策略的转变与突破。

    所以优化一个网站的时候,一定要分析透这个网站的特点,抓住关键,找到缺陷。挖掘出它的SEO潜力所在,然后采用适当的SEO策略,也许不需要太大的工作量,就可以取得非常惊人的SEO效果,一个简单的SEO策略调整,效果立刻迅猛的提升。

    展开全文
  • uboot环境变量(设置bootargs向linux内核传递正确参数) 转载▼ 标签:  杂谈   分类: uboot移植  这是我uboot的环境变量设置,在该设置下可以运行initram内核(从内存下载到nandflash再运行)...

    uboot环境变量(设置bootargs向linux内核传递正确的参数)

    转载▼

    标签:  

    杂谈

      
    分类: uboot移植

         这是我uboot的环境变量设置,在该设置下可以运行initram内核(从内存下载到nandflash再运行),但是运行nfs根文件系统的时候一直出错,各种错误。查看了很多资料后猜想应该是uboot传递给linux内核的参数有问题,也就是bootargs的设置有问题。

    #printenv

    bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0,115200 rootfstype=yaffs2 rw mem=64M

    bootcmd=nand read 0x32000000 0x60000 0x300000; bootm 0x32000000
    bootdelay=3
    baudrate=115200
    ethaddr=08:00:3e:26:0a:5b
    ipaddr=192.168.1.110
    serverip=192.168.1.100
    netmask=255.255.255.0
    stdin=serial
    stdout=serial
    stderr=serial
    ethact=dm9000

    #setenv ……

    #saveenv ……

    #bdinfo 可以查看机器码等信息

       所以查看资料后就开始对bootargs参数进行设置:

       因为为了方便对程序测试等工作,使用nfs根文件系统可以在不烧写根文件系统到flash中完成对程序的测试工作,因此设置bootargs使它支持nfs根文件系统启动。

       #setenv bootargs 'root=/dev/nfs rw nfsroot=10.103.4.216:/nfsroot/rootfs ip=10.103.4.211 console=ttySAC0'

       #saveenv

       #tftp 31000000 uImage

       #bootm 31000000

         启动信息如下:

           ……

    s3c2440-sdi s3c2440-sdi: running at 0kHz (requested: 0kHz).
    s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 198kHz).
    s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 198kHz).
    s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 198kHz).
    s3c2440-sdi s3c2440-sdi: powered down.
    eth0: link down
    IP-Config: Guessing netmask 255.0.0.0
    IP-Config: Complete:
         device=eth0, addr=10.103.4.211, mask=255.0.0.0, gw=255.255.255.255,
         host=10.103.4.211, domain=, nis-domain=(none),
         bootserver=255.255.255.255, rootserver=10.103.4.216, rootpath=
    Looking up port of RPC 100003/2 on 10.103.4.216
    eth0: link up, 10Mbps, half-duplex, lpa 0x0021
    Looking up port of RPC 100005/1 on 10.103.4.216
    VFS: Mounted root (nfs filesystem) on device 0:11.
    Freeing init memory: 128K

    Processing /etc/profile... Done

    #

       最后实现了内核正常启动,nfs根文件系统成功挂载(此时烧写在nandflash中的initram根文件系统不能正常启动了,需改回到上面的最初的设置才行)。此时的环境变量如下所示:

    [u-boot@lhc]#printenv
    bootdelay=3
    baudrate=115200
    netmask=255.255.255.0
    ethact=dm9000
    ethaddr=00:01:02:03:04:05
    ipaddr=10.103.4.211
    serverip=10.103.4.216
    bootcmd=nand read 31000000 200000 600000;bootm 31000000
    bootargs=root=/dev/nfs rw nfsroot=10.103.4.216:/nfsroot/rootfs ip=10.103.4.211 console=ttySAC0
    stdin=serial
    stdout=serial
    stderr=serial

    Environment size: 324/131068 bytes

     

    ****************************************************************************************************************************************************************************************************

                                              以下内容为网上资料

    **************************************************************************************************************************************************************************************************** 

       编好了u-boot,但是如何来使用确不是那么简单的,u-boot的环境变量经常设置错误而导致内核启动失败。

        u-boot的环境变量是使用u-boot的关键,它可以由你自己定义的,但是其中有一些也是大家经常使用,约定俗成的,有一些是u-boot自己定义的,更改这些名字会出现错误,下面的表中我们列出了一些常用的环境变量:

    环境变量

    描述

    bootdelay 

      执行自动启动的等候秒数

    baudrate

      串口控制台的波特率

    netmask

      以太网接口的掩码

    ethaddr

      以太网卡的网卡物理地址

    bootfile

      缺省的下载文件

    bootargs

      传递给内核的启动参数

    bootcmd

      自动启动时执行的命令

    serverip

      服务器端的ip地址

    ipaddr

      本地ip 地址

    stdin

      标准输入设备

    stdout

      标准输出设备

    stderr

      标准出错设备

     

         上面只是一些最基本的环境变量,请注意,板子里原本是没有环境变量的,u-boot的缺省情况下会有一些基本的环境变量,在你执行了saveenv之后,环境变量会第一次保存到flash中,之后你对环境变量的修改,保存都是基于保存在flash中的环境变量的操作。

     

        U-boot的环境变量值得注意的有两个: bootcmd 和bootargs。

    *       bootcmd

        前面有说过bootcmd是自动启动时默认执行的一些命令,因此你可以在当前环境中定义各种不同配置,不同环境的参数设置,然后设置bootcmd为你经常使用的那种参数。

    *       bootargs

        bootargs是环境变量中的重中之重,甚至可以说整个环境变量都是围绕着bootargs来设置的。bootargs的种类非常非常的多,我们平常只是使用了几种而已,感兴趣的可以看看这篇文章说的很全:http://blog.chinaunix.net/u2/79570/showart_1675071.html。bootargs非常的灵活,内核和文件系统的不同搭配就会有不同的设置方法,甚至你也可以不设置bootargs,而直接将其写到内核中去(在配置内核的选项中可以进行这样的设置),正是这些原因导致了bootargs使用上的困难。

        下面介绍一下bootargs常用参数,bootargs的种类非常的多,而且随着kernel的发展会出现一些新的参数,使得设置会更加灵活多样。

    A. root

    用来指定rootfs的位置, 常见的情况有:

        root=/dev/ram rw  

        root=/dev/ram0 rw

      请注意上面的这两种设置情况是通用的,我做过测试甚至root=/dev/ram1 rw和root=/dev/ram2 rw也是可以的,网上有人说在某些情况下是不通用的,即必须设置成ram或者ram0,但是目前还没有遇到,还需要进一步确认,遇到不行的时候可以逐一尝试。

        root=/dev/mtdx rw

        root=/dev/mtdblockx rw

        root=/dev/mtdblock/x rw

        root=31:0x

    上面的这几个在一定情况下是通用的,当然这要看你当前的系统是否支持,不过mtd是字符设备,而mtdblock是块设备,有时候你的挨个的试到底当前的系统支持上面那种情况下,不过root=/dev/mtdblockx rw比较通用。此外,如果直接指定设备名可以的话,那么使用此设备的设备号也是可以的。

        root=/dev/nfs

    在文件系统为基于nfs的文件系统的时候使用。当然指定root=/dev/nfs之后,还需要指定nfsroot=serverip:nfs_dir,即指明文件系统存在那个主机的那个目录下面。

    B. rootfstype

        这个选项需要跟root一起配合使用,一般如果根文件系统是ext2的话,有没有这个选项是无所谓的,但是如果是jffs2,squashfs等文件系统的话,就需要rootfstype指明文件系统的类型,不然会无法挂载根分区.

    C. console

    console=tty<n>  使用虚拟串口终端设备 <n>.

    console=ttyS<n>[,options] 使用特定的串口<n>,options可以是这样的形式bbbbpnx,这里bbbb是指串口的波特率,p是奇偶校验位,n是指的bits。

    console=ttySAC<n>[,options] 同上面。

     

     我当时就是conslve=ttySAC0

    D. mem

    mem=xxM 指定内存的大小,不是必须的

     

    E. ramdisk_size

    ramdisk=xxxxx           不推荐  

    ramdisk_size=xxxxx   推荐

    上面这两个都可以告诉ramdisk 驱动,创建的ramdisk的size,默认情况下是4m(s390默认8M),你可以查看Documentation/ramdisk.txt找到相关的描述,不过ramdisk=xxxxx在新版的内核都已经没有提了,不推荐使用。

    F. initrd, noinitrd

    当你没有使用ramdisk启动系统的时候,你需要使用noinitrd这个参数,但是如果使用了的话,就需要指定initrd=r_addr,size, r_addr表示initrd在内存中的位置,size表示initrd的大小。

    G. init

    init指定的是内核启起来后,进入系统中运行的第一个脚本,一般init=/linuxrc, 或者init=/etc/preinit,preinit的内容一般是创建console,null设备节点,运行init程序,挂载一些文件系统等等操作。请注意,很多初学者以为init=/linuxrc是固定写法,其实不然,/linuxrc指的是/目录下面的linuxrc脚本,一般是一个连接罢了。

    H. mtdparts

    mtdparts=fc000000.nor_flash:1920k(linux),128k(fdt),20M(ramdisk),4M(jffs2),38272k(user),256k(env),384k(uboot)

    要想这个参数起作用,内核中的mtd驱动必须要支持,即内核配置时需要选上Device Drivers  ---> Memory Technology Device (MTD) support  ---> Command line partition table parsing

    mtdparts的格式如下:

    mtdparts=<mtddef>[;<mtddef]

    <mtddef>  := <mtd-id>:<partdef>[,<partdef>]

     <partdef> := <size>[@offset][<name>][ro]

     <mtd-id>  := unique id used in mapping driver/device

    <size>    := standard linux memsize OR "-" to denote all remaining space

    <name>    := (NAME)

    因此你在使用的时候需要按照下面的格式来设置:

    mtdparts=mtd-id:<size1>@<offset1>(<name1>),<size2>@<offset2>(<name2>)

    这里面有几个必须要注意的:

    a.  mtd-id 必须要跟你当前平台的flash的mtd-id一致,不然整个mtdparts会失效

    b.  size在设置的时候可以为实际的size(xxM,xxk,xx),也可以为'-'这表示剩余的所有空间。

    举例:

    假设flash 的mtd-id是sa1100,那么你可以使用下面的方式来设置:

    mtdparts=sa1100:-     →  只有一个分区

    mtdparts=sa1100:256k(ARMboot)ro,-(root)  →  有两个分区

    可以查看drivers/mtd/cmdlinepart.c中的注释找到相关描述。

     

    I. ip

    指定系统启动之后网卡的ip地址,如果你使用基于nfs的文件系统,那么必须要有这个参数,其他的情况下就看你自己的喜好了。设置ip有两种方法:

     ip = ip addr

     ip=ip addr:server ip addr:gateway:netmask::which netcard:off

    这两种方法可以用,不过很明显第二种要详细很多,请注意第二种中which netcard 是指开发板上的网卡,而不是主机上的网卡。

     

    说完常见的几种bootargs,那么我们来讨论平常我经常使用的几种组合:

    1). 假设文件系统是ramdisk,且直接就在内存中,bootargs的设置应该如下:

    setenv bootargs ‘initrd=0x32000000,0xa00000 root=/dev/ram0 console=ttySAC0 mem=64M init=/linuxrc’

     

    2). 假设文件系统是ramdisk,且在flash中,bootargs的设置应该如下:

    setenv bootargs ‘mem=32M console=ttyS0,115200 root=/dev/ram rw init=/linuxrc’

    注意这种情况下你应该要在bootm命令中指定ramdisk在flash中的地址,如bootm kernel_addr ramdisk_addr (fdt_addr)

     

    3). 假设文件系统是jffs2类型的,且在flash中,bootargs的设置应该如下

    setenv bootargs ‘mem=32M console=ttyS0,115200 noinitrd root=/dev/mtdblock2 rw rootfstype=jffs2 init=/linuxrc’

     

    4). 假设文件系统是基于nfs的,bootargs的设置应该如下

    setenv bootargs ‘noinitrd mem=64M console=ttySAC0 root=/dev/nfs nfsroot=192.168.0.3:/nfs ip=192.168.0.5:192.168.0.3:192.168.0.3:255.255.255.0::eth0:off’

    或者

    setenv bootargs ‘noinitrd mem=64M console=ttySAC0 root=/dev/nfs nfsroot=192.168.0.3:/nfs ip=192.168.0.5’

     

    上面就是我们经常使用的几种bootargs的组合,老实说,bootargs非常非常的灵活,所以设置的方法有很多中形式,具体的还应该根据你的平台具体的情况来设置。

     

    转载: http://blog.chinaunix.net/u3/94312/showart_1923637.html

    展开全文
  • 一、问题描述  在postman接口调试中响应的数据都是正常的,使用httpclient当传送错误参数时响应为null,传送正常数据时却可以接收到数据 二、解决问题 问题的原因也是因为懒惰,每次使用工具类时直接在网上摘抄...
  • Python 函数参数

    千次阅读 多人点赞 2017-06-01 19:59:41
    对于调用者来说,只需关注如何传递正确参数,以及函数的返回值就足够了,无需了解函数的内部实现(除非想学习、跟踪源码)。 话虽如此,但对于函数的定义来说,灵活性却非常大。除了常规定义的必选参数以外,还...
  • 为WebService添加描述

    万次阅读 2013-03-20 21:49:04
    其他人封装的WebService给我们调用的时候,拿到手的服务描述并不能让我们正确的使用,因为没有任何指导性的说明与描述,因此,在我们开发WebService的时候,别忘了为服务添加描述参数说明等描述性的注释。...
  • 教您正确理解时钟器件的抖动性能

    千次阅读 2017-02-15 10:23:26
    在选择时钟器件时,抖动指标是最重要的关键参数之一。但不同的时钟器件,对抖动的描述不尽相同,如不带锁相环的时钟驱动器有附加抖动指标要求,而带锁相环实现零延时的时钟驱动器则有周期抖动和周期间抖动指。同时,...
  • $# 是传给脚本的参数个数 $@ 是传给脚本的所有参数的列表 $0 是脚本本身的名字 $1是传递给该shell脚本的第一个参数 $2是传递给该shell脚本的第二个参数 在Bash shell中经常会见到一些比较特殊的符号,...
  • 1. MLE的意义:样本估计总体分布参数 假定一个事件的观测样本服从如下分布,我们如何确定总体数据的分布模型? 首先应该想到是建立线性回归模型,然而由于该变量不是正态分布的,而且是不对称的,因此不符合线性...
  • pom.xml配置文件中所有标签及作用简单描述

    千次阅读 多人点赞 2017-03-21 18:26:02
    我转载的是关于pom.xml文件中会使用到的基本上所有的标签以及标签的作用简单描述。 可能我们自己的项目所使用到的标签总数量不及此文的一半。 我转载仅为方便你我他学习之用,众喷子们,还请指下留情,轻喷。 因为此...
  • 关于文件描述符(file_struct)

    千次阅读 2017-01-15 23:12:18
    文件描述符(file_struct)是一个非负整数,对于Linux内核而言,为了高效管理已经被打开的文件所创建的索引,操作系统在每个进程描述符中都提供了文件描述符表,文件描述符表中每个表项都有一个指向已经打开文件的...
  • FindBugs错误描述

    千次阅读 2017-06-08 10:53:16
    BC:Equals方法不应该假定它的参数类型 坏习惯 位:检查按位操作的符号 坏习惯 CN:类实现可克隆但不定义或使用克隆方法 坏习惯 CN:克隆方法不调用super.clone() 坏习惯 CN:类定义clone()但不实现...
  • 文件描述符操作

    千次阅读 2009-08-13 16:23:00
    1.复制文件描述符使用如下函数: #include int dup(int filedes);...此新的文件描述词和参数oldfd指的是同一个文件,共享所有的锁定、读写位置和各项权限或旗标。例如,当利用lseek()对某个文件描述词作用
  • 注意应使用正确的error方法,传入两个参数参数1是对异常的附加描述参数2是未被篡改过的异常对象 在某些情况下,可能需要在处理异常后继续抛出,让上层捕获后继续处理,在这种情况下,需要注意抛出的异常对象未...
  • USB描述符详细讲解

    千次阅读 2018-04-09 10:39:31
    在USB中USB HOST 是通过各种描述符来识别设备的,有 设备描述符,接口描述符,端点描述符,字符描述符,报告描述符等USB HID 设备是通过报告来传送数据的,报告有:输入报告 和 输出报告输入报告:是设备发送给主机...
  • 3. 描述性统计分析

    千次阅读 2018-06-10 18:29:37
    相对位置的度量 百分位数 z得分 检测异常值的方法 使用z得分来检测异常值 使用盒子图来检测异常值 Reference 描述定性数据的图形法和数值法 对给定的类,类(或组)频数是指落入这个类中的观测值的个数。...
  • JQGrid各种参数详解

    万次阅读 2017-01-20 11:42:19
    对于jqGrid我们所关心的就是:必须有一段代码把一些页面信息保存到数据库中,而且也能够把响应信息返回给客户端。jqGrid是用ajax来实现对请求与响应的处理。 jqGrid参数 名称 类型 ...
  • 首先说结论,使用@ControllerAdvice配合@ExceptionHandler处理全局controller的异常时,如果想要正确匹配自己的自定义异常,需要在controller的方法上抛出相应的自定义异常,或者自定义异常继承RuntimeException类。...
  • SIFT算法描述

    千次阅读 2016-09-01 00:07:43
    SIFT特征提取算法流程: 1、 输入图像 2、 多尺度空间极值点检测 3、 关键点的精确定位 4、 关键点的主方向计算 6、 特征向量 ...尺度参数σ,当σ 连续变化,G(x,y,σ)构成图像的尺度空间
  • 程序员修炼之路-(1)基础(下):正确性证明

    万次阅读 多人点赞 2015-03-31 20:44:19
    里提到过,正确性证明所处的位置是:定义问题  =>  算法和数据结构设计  =>  写伪代码  =>  证明正确性  =>  翻译成具体实现  =>  单元测试 …  因此,我们要证明已有伪代码或代码的正确性,而不是推导出...
  • libiconv之iconv函数的正确使用方法

    万次阅读 2013-05-20 17:19:37
    libiconv是一个开源的字符编码转换库,很多人使用它的转换函数时都会遇到问题,这次我们就来讲一下怎么正确使用。 iconv函数原型为: size_t iconv (iconv_t cd, char...第一个参数是iconv的描述字,其实是指针,第二
  • Oracle Data Guard 重要配置参数

    千次阅读 2013-08-13 16:45:53
    Oracle Data Guard主要是通过为...对于Oracle DG的配置,我们可以通过Grid Control来完成,也可以通过Data Guard Broker以及SQL*Plus来完成。对于前两者方式可以在图形界面上完成,操作简单。而对于使用SQL*Plus命令行
  • 我们今天要和大家一起分享的是正确修改MySQL最大连接数的三种好用方案,其中包括如何正确进入MySQL数据库的安装目录以及相关内容描述。 AD:   以下的文章主要介绍的是正确修改MySQL最大连接数的三种好用...
  • UWB超宽带 DW1000 API功能描述1

    千次阅读 2019-06-03 13:41:23
    例如,这可以由应用程序使用验证DW IC是否通过SPI总线正确连接并正在运行。 输入参数:  没有 返回参数: 类型: uint32  描述:  32位设备ID值,例如 对于DW1000,设备ID为0xDECA0130。 笔记: 可以...
  • Css 详细解读定位属性 position 以及参数

    万次阅读 多人点赞 2015-11-26 15:04:21
    Css 详细解读定位属性 position 以及参数position 定位属性,是CSS中非常重要的属性。除了文档流布局,就是定位布局了。本来我对这个问题没有放在心上,毕竟写了这么多年的css,对position的各类使用是烂熟于心的。...
  • Jmeter 参数化实现

    千次阅读 多人点赞 2018-06-22 17:27:27
    在测试过程中,我们经常遇到需要根据需求动态操作数据的情况,常规的固定数据无法满足我们的需要,这个时候,我们可以通过jmeter 提供的参数化组件来实现动态的获取数据、改变数据。 Jmeter 中常用的参数化方式 ...
  • SIFT特征详细描述

    万次阅读 2012-05-12 15:20:02
    其中兴趣点特征是很重要的一类特征,而目前应用最广泛的兴趣点特征检测方法就是SIFT检测算法,该检测算法所得到的特征点不仅在位置上能够稳定识别,而且具有尺度不变性和旋转不变性。由于各大论坛以及该论文作者都...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 276,656
精华内容 110,662
关键字:

对于位置参数描述正确的是