----------------------------本文地址:https://blog.51cto.com/woonli/2142606
----------------------------参考网址http://linuxcommand.org/lc3_adv_dialog.php

一、简介
dialog是Linux图形化自动脚本编程的工具,实现脚本中图形化,它是一个相当大而复杂的程序(它有近100个命令行选项),但与典型的图形用户界面相比,它是一个真正的轻量级。尽管如此,它仍然具有许多用户界面技巧;
二、使用条件
dialog在多数Linux发行版上已经默认安装如果没有安装,
rpm系列用以下的其中一个:
a、 yum install dialog -y
b、 rpm -vih dialog
deb系统用以下中的一个:
a、sudo apt-get install dialog
b、sudo dpkg -i dialog
三、dianlog帮助信息
dialog有很多命令选项,记忆困难,但如果理解了它,加上帮助信息,你会马上拥有她;dialog的帮助很简单,在终端中输入dialog命令即可;帮助信息如下:

cdialog (ComeOn Dialog!) version 1.3-20160828
Copyright 2000-2015,2016 Thomas E. Dickey
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

* Display dialog boxes from shell scripts *

Usage: dialog  { --and-widget  }
where options are "common" options, followed by "box" options

Special options:
  [--create-rc "file"]
Common options:
  [--ascii-lines] [--aspect ] [--backtitle ] [--beep]
  [--beep-after] [--begin  ] [--cancel-label ] [--clear]
  [--colors] [--column-separator ] [--cr-wrap] [--date-format ]
  [--default-button ] [--default-item ] [--defaultno]
  [--exit-label ] [--extra-button] [--extra-label ]
  [--help-button] [--help-label ] [--help-status] [--help-tags]
  [--hfile ] [--hline ] [--ignore] [--input-fd ]
  [--insecure] [--item-help] [--keep-tite] [--keep-window] [--last-key]
  [--max-input ] [--no-cancel] [--no-collapse] [--no-cr-wrap]
  [--no-items] [--no-kill] [--no-label ] [--no-lines] [--no-mouse]
  [--no-nl-expand] [--no-ok] [--no-shadow] [--no-tags] [--nook]
  [--ok-label ] [--output-fd ] [--output-separator ]
  [--print-maxsize] [--print-size] [--print-version] [--quoted]
  [--scrollbar] [--separate-output] [--separate-widget ] [--shadow]
  [--single-quoted] [--size-err] [--sleep ] [--stderr] [--stdout]
  [--tab-correct] [--tab-len ] [--time-format ] [--timeout ]
  [--title ] [--trace <file>] [--trim] [--version] [--visit-items]
  [--week-start <str>] [--yes-label <str>]
Box options:
  --buildlist    <text> <height> <width> <list-height> <tag1> <item1> <status1>...
  --calendar     <text> <height> <width> <day> <month> <year>
  --checklist    <text> <height> <width> <list height> <tag1> <item1> <status1>...
  --dselect      <directory> <height> <width>
  --editbox      <file> <height> <width>
  --form         <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1>...
  --fselect      <filepath> <height> <width>
  --gauge        <text> <height> <width> [<percent>]
  --infobox      <text> <height> <width>
  --inputbox     <text> <height> <width> [<init>]
  --inputmenu    <text> <height> <width> <menu height> <tag1> <item1>...
  --menu         <text> <height> <width> <menu height> <tag1> <item1>...
  --mixedform    <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1> <itype>...
  --mixedgauge   <text> <height> <width> <percent> <tag1> <item1>...
  --msgbox       <text> <height> <width>
  --passwordbox  <text> <height> <width> [<init>]
  --passwordform <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1>...
  --pause        <text> <height> <width> <seconds>
  --prgbox       <text> <command> <height> <width>
  --programbox   <text> <height> <width>
  --progressbox  <text> <height> <width>
  --radiolist    <text> <height> <width> <list height> <tag1> <item1> <status1>...
  --rangebox     <text> <height> <width> <min-value> <max-value> <default-value>
  --tailbox      <file> <height> <width>
  --tailboxbg    <file> <height> <width>
  --textbox      <file> <height> <width>
  --timebox      <text> <height> <width> <hour> <minute> <second>
  --treeview     <text> <height> <width> <list-height> <tag1> <item1> <status1> <depth1>...
  --yesno        <text> <height> <width>

Auto-size with height and width = 0. Maximize with height and width = -1.
Global-auto-size if also menu_height/list_height = 0.
</code></pre> 
  <p><strong>四、帮助信息解析</strong></p> 
  <pre><code>Usage: dialog <options> { --and-widget <options> }</code></pre> 
  <p>dialog 命令后是common options,即通用选项,是图形化框的一些个性化配置信息,依据是否需要可以省略;而--and-widget 是各类图形化部件,后边重点介绍,部件的options主要是针对部件的高、宽、内容、位置等参数的设置;<br>如帮助信息中的</p> 
  <pre><code>  --buildlist    <text> <height> <width> <list-height> <tag1> <item1> <status1>...</code></pre> 
  <p>是为了构建并排显示两个列表。左侧的列表包含未选择的项目,右侧所选项目的列表。用户可以将项目从一个列表移动到另一个列表。<br>在--buildlist的options中,</p> 
  <pre><code><text> <height> <width> <list-height> <tag1> <item1> <status1>...</code></pre> 
  <p>"<text>"是自定义框体名称,<height> <width>是框体的高和宽,默认值为0,默认时自适应大小,<list-height>是列表选择框的高度,<tag1> 是列表选择框的提示或者标题等;<item1>是列表的选项; <status1>“可能是选择该条目的状态,这个暂时也不清楚”<br>具体的命令如下:</p> 
  <pre><code>dialog --title "列表框" --buildlist "选择" 0 0 15 "USER" "CPU" 0 "MEM" "MEM" 1</code></pre> 
  <p>具体效果如下<br><a href="http://img.e-com-net.com/image/info3/324a444368714c7b857f5b7b303c8dc8.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info3/324a444368714c7b857f5b7b303c8dc8.jpg" alt="Linux图形化编程dialog_第1张图片" width="329" height="454" style="border:1px solid black;"></a><br>OK~,其他选项框也是类似的帮助信息;下面介绍部门options选项</p> 
  <ol> 
   <li>common options<br>[--no-shadow] 禁止阴影出现在每个对话框的底部<br>[--shadow] 应该是出现阴影效果[--insecure] 输入部件的密码时,明文显示不安全,使用星号来代表每个字符[--no-cancel] 设置在输入框,菜单,和复选框中,不显示“cancel”项<br>[--clear] 完成清屏操作。在框体显示结束后,清除框体。这个参数只能单独使用,不能和别的参数联合使用。<br>[--ok-label <str>] 覆盖使用“OK”按钮的标签,换做其他字符。<br>[--cancel-label <str>] 功能同上<br>[--backtitle <backtitle>] 指定的backtitle字符串显示在背景顶端。<br>[--begin <y> <x>] 指定对话框左上角在屏幕的上的做坐标<br>[--timeout <secs>] 超时(返回的错误代码),如果用户在指定的时间内没有给出相应动作,就按超时处理<br>[--defaultno] 使的是默认值 yes/no,使用no<br>[--sleep <secs>]<br>[--stderr] 以标准错误方式输出<br>[--stdout] 以标准方式输出<br>[--default-item <str>] 设置在一份清单,表格或菜单中的默认项目。通常在框中的第一项是默认。</li> 
   <li>Windows options</li> 
  </ol> 
  <table> 
   <thead> 
    <tr> 
     <th>对话</th> 
     <th>选项</th> 
     <th>描述</th> 
    </tr> 
   </thead> 
   <tbody> 
    <tr> 
     <td>构建列表</td> 
     <td>--buildlist</td> 
     <td>并排显示两个列表。左侧的列表包含未选择的项目,右侧所选项目的列表。用户可以将项目从一个列表移动到另一个列表。</td> 
    </tr> 
    <tr> 
     <td>日历</td> 
     <td>--calendar</td> 
     <td>显示日历并允许用户选择日期。</td> 
    </tr> 
    <tr> 
     <td>清单</td> 
     <td>--checklist</td> 
     <td>显示选项列表,并允许用户选择一个或多个项目。</td> 
    </tr> 
    <tr> 
     <td>目录选择</td> 
     <td>--dselect</td> 
     <td>显示目录选择对话框。</td> 
    </tr> 
    <tr> 
     <td>编辑框</td> 
     <td>--editbox</td> 
     <td>显示基本文本文件编辑器。</td> 
    </tr> 
    <tr> 
     <td>形成</td> 
     <td>--form</td> 
     <td>允许用户在多个字段中输入文本。</td> 
    </tr> 
    <tr> 
     <td>文件选择</td> 
     <td>--fselect</td> 
     <td>文件选择对话框。</td> 
    </tr> 
    <tr> 
     <td>测量</td> 
     <td>--gauge</td> 
     <td>显示进度指示器,显示完成百分比。</td> 
    </tr> 
    <tr> 
     <td>信息框</td> 
     <td>--infobox</td> 
     <td>显示消息(带有可选的定时暂停)并终止。</td> 
    </tr> 
    <tr> 
     <td>输入框</td> 
     <td>--inputbox</td> 
     <td>提示用户输入/编辑文本字段。</td> 
    </tr> 
    <tr> 
     <td>菜单框</td> 
     <td>--menubox</td> 
     <td>显示选项列表。</td> 
    </tr> 
    <tr> 
     <td>消息框</td> 
     <td>--msgbox</td> 
     <td>显示文本消息并等待用户响应。</td> 
    </tr> 
    <tr> 
     <td>密码箱</td> 
     <td>--passwordbox</td> 
     <td>与输入框类似,但隐藏用户的条目。</td> 
    </tr> 
    <tr> 
     <td>暂停</td> 
     <td>--pause</td> 
     <td>显示文本消息和倒数计时器。当计时器用完或用户按下“确定”或“取消”按钮时,对话框将终止。</td> 
    </tr> 
    <tr> 
     <td>程序框</td> 
     <td>--programbox</td> 
     <td>显示管道命令的输出。命令完成后,对话框将等待用户按下OK按钮。</td> 
    </tr> 
    <tr> 
     <td>进度框</td> 
     <td>--progressbox</td> 
     <td>类似于程序框,除了对话框在管道命令完成时终止,而不是等待用户按OK。</td> 
    </tr> 
    <tr> 
     <td>电台名单</td> 
     <td>--radiolist</td> 
     <td>显示选项列表,并允许用户选择单个项目。之前选择的任何项目都将被取消选中。</td> 
    </tr> 
    <tr> 
     <td>范围框</td> 
     <td>--rangebox</td> 
     <td>允许用户使用基于键盘的滑块在指定范围内选择数值。</td> 
    </tr> 
    <tr> 
     <td>尾箱</td> 
     <td>--tailbox</td> 
     <td>显示具有实时更新的文本文件。像命令一样工作tail</td> 
     <td>-f。</td> 
    </tr> 
    <tr> 
     <td>文本框</td> 
     <td>--textbox</td> 
     <td>简单的文本文件查看器。支持许多相同的键盘命令less。</td> 
    </tr> 
    <tr> 
     <td>时间盒</td> 
     <td>--timebox</td> 
     <td>用于输入时间的对话框。</td> 
    </tr> 
    <tr> 
     <td>树视图</td> 
     <td>--treeview</td> 
     <td>显示树形层次结构中的项目列表。</td> 
    </tr> 
    <tr> 
     <td>是/否盒子</td> 
     <td>--yesno</td> 
     <td>显示文字信息,让用户有机会回答“是”或“否”。</td> 
    </tr> 
   </tbody> 
  </table> 
  <p><strong>五、在shell脚本中使用</strong><br>dialog图形化主要是在运维过程中图形自动化脚本人机交互时使用,图形化的选择或提示等,可操作行更强。<br><strong>dialog在脚本中使用需要主要以下两点:</strong><br><strong>a、dialog在绘制会话框本身时使用标准输出作为终端显示,所以在会话框上的输入(例如输入到输入框中的字符串)通常通过标准错误返回,这就导致了dialog获取数据的问题,要解决该问题,需要将错误输出转换为标准输出文件提示符;解决该问题的方法有两种:<br>1)、使用临时存储文件<br>2)使用文件描述符<br>b、dialog图形化中的状态码,在使用dialog前先了解状态码;如“OK”为0,“NO”为1,"ESC"为255,还可以定义其他状态码,如帮助信息等等。</strong><br><strong>六、脚本实例</strong><br>本脚本实例中为解决错误输出转换问题使用文件描述符,基本上多数dialog脚本中都使用文件描述符;格式为<br>exec 3>&1<br>dialog --widdget options 2>&1 1>&3<br>exec 3>&1;<br>该命令包括将描述符2(stderr)重定向为描述符1的副本,最后,通过复制包含备份副本的描述符3,将描述符1恢复为其原始值。可能不会立即显示的是为什么需要最后一次重定向。在子shell中,标准输出(描述符1)不指向控制终端。相反,它指向一个将其内容传递给变量的管道result。由于dialog需要标准输出指向终端以便它可以显示输入框,我们必须将标准错误重定向到标准输出(以便输出dialog结束于result 变量),然后将标准输出重定向回控制终端。<br><strong>脚本实例:</strong></p> 
  <pre><code>#!/bin/bash
#Dialog use case
#Author by woon

## Define the dialog exit status codes
#可以不定义退出码。直接使用值也行。
: ${DIALOG_OK=0}
: ${DIALOG_CANCEL=1}
: ${DIALOG_HELP=2}
: ${DIALOG_EXTRA=3}
: ${DIALOG_ITEM_HELP=4}
: ${DIALOG_ESC=255}

#定义msgbox函数
display_box() {
dialog --title "$1" \
    --no-collapse \
    --msgbox "$res" 0 0
    }
while true;do
    #将标准输出复制一份到文件描述符3,  
    exec 3>&1
    selection=$(dialog --title "系统监测" \
        --clear \
        --ok-label "Submit" \
        --cancel-label "Exit" \
        --menu "选择监测项:" 0 0 10 \
        "1" "当前用户占用资源情况" \
        "2" "当前磁盘使用情况" \
        "3" "CPU相关信息" \
        "4" "MEM相关信息" \
        2>&1 1>&3   #将错误输出转换为标准输出
        )

    exit_status=$?
    exec 3>&- #关闭文件描述符3
    case $exit_status in 
        $DIALOG_CANCEL)
        clear
        echo "程序终止"
        exit
        ;;
    $DIALOG_ESC)
    clear 
    echo "程序终止"
    exit 1
    ;;
esac
case $selection in 
    0)
        clear
        echo "程序终止"
        ;;
    1)
        pcpu=$(ps -eo user,pcpu,pmem | awk -v user=$USER '$1==user{print $0}'|awk '{pcpu+=$2}END{print pcpu}')
        pmem=$(ps -eo user,pcpu,pmem | awk -v user=$USER '$1==user{print $0}'|awk '{pcpu+=$2}END{print pcpu}')
        res="当前用户占用CPU:"$pcpu"\n当前用户占用内存:"$pmem
        display_box "当前用户占用资源情况"
        ;;
    2)
        res=$(df -h)
        display_box "当前磁盘使用情况"
        ;;
    3)
        res=$(dmesg | grep CPU | awk -F "] " '{print $2}')
        display_box "CPU硬件信息"
        ;;
    4)
        res=$(head -10 /proc/meminfo )
        display_box "系统内存信息"
        ;;
esac
done
</code></pre> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1248440950355775488"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(linux,dialog,dialog,Linux,Shell)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1947873171453571072.htm"
                           title="Shell脚本编程:从入门到精通的实战指南" target="_blank">Shell脚本编程:从入门到精通的实战指南</a>
                        <span class="text-muted">Monkey的自我迭代</span>
<a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/ssh/1.htm">ssh</a>
                        <div>一、Shell与Shell脚本概述Shell是用户与操作系统内核之间的命令解释器,它接收用户输入的命令并转换为系统调用,是Unix/Linux系统的核心交互界面。Shell脚本(ShellScript)则是将一系列Shell命令组织成文本文件,通过解释器批量执行的自动化工具,广泛应用于系统管理、日志分析和软件部署等领域。主流Shell类型:Bash(Bourne-AgainShell):Linux</div>
                    </li>
                    <li><a href="/article/1947871532411842560.htm"
                           title="linux shell watchdog,使用shell编写的极简WatchDog" target="_blank">linux shell watchdog,使用shell编写的极简WatchDog</a>
                        <span class="text-muted">weixin_39743603</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a><a class="tag" taget="_blank" href="/search/watchdog/1.htm">watchdog</a>
                        <div>WatchDog-看门狗程序用于自动监测进程的运行状态,并按照需要重启进程。对于嵌入式系统的存储服务、网络服务程序经常因为各种错误出现中断,可以使用WatchDog来自动保持服务的可用。WatchDog可以使用shell来进行编写,这里给出一个极简的实现。1、基本逻辑检查进程是否存在。如果进程不存在,则启动之。如果进程存在,则跳过,休眠给定时间。再次检查进程,重复上面的步骤。2、极简版本编写脚本,</div>
                    </li>
                    <li><a href="/article/1947871153926238208.htm"
                           title="Logcat命令详解 和 adb 常用命令" target="_blank">Logcat命令详解 和 adb 常用命令</a>
                        <span class="text-muted">九月的蓝天</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E8%B0%83%E8%AF%95/1.htm">调试</a><a class="tag" taget="_blank" href="/search/Logcat%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3/1.htm">Logcat命令详解</a><a class="tag" taget="_blank" href="/search/%E5%92%8C/1.htm">和</a><a class="tag" taget="_blank" href="/search/adb/1.htm">adb</a><a class="tag" taget="_blank" href="/search/%E5%B8%B8%E7%94%A8%E5%91%BD/1.htm">常用命</a>
                        <div>Android日志系统提供了记录和查看系统调试信息的功能。日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过logcat命令来查看和使用.在使用logcat之前,请确保手机的USB调试模式已经开启,可以通过"Setting->Application->Development->USBdebugging"来开启。logcat本身是android的shell的一个命令,你可以通过“adb</div>
                    </li>
                    <li><a href="/article/1947869135958503424.htm"
                           title="Android常用ADB和LINUX命令" target="_blank">Android常用ADB和LINUX命令</a>
                        <span class="text-muted">摸鱼摸一天</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/adb/1.htm">adb</a>
                        <div>Android常用ADB命令前言一、adb命令二、linux命令总结前言本文章主要记录android可能经常用到的一些adb命令和linux命令一、adb命令logcat日志写入外部文件adbshelllogcat-vtime>D:/log/log.txt把文件从手机拉到电脑上adbpull/data/local/tmp/log.txtD:\log把文件从电脑上推到手机里adbpushD:\apk</div>
                    </li>
                    <li><a href="/article/1947863842247733248.htm"
                           title="几种关闭进程的方式" target="_blank">几种关闭进程的方式</a>
                        <span class="text-muted">angushine</span>
<a class="tag" taget="_blank" href="/search/Shell/1.htm">Shell</a>
                        <div>方法一:使用pkill替代(推荐)pkill可直接通过进程名终止进程,无需手动提取PID,且自动处理无进程的情况:pkill-9test​​特点​​:​​简洁性​​:无需管道和grep过滤。​​健壮性​​:若无匹配进程,静默退出,无错误提示。​​信号支持​​:支持-9强制终止。方法二:通过Shell条件判断在传递PID前检查是否存在有效进程:pid=$(ps-ef|greptest|grep-vg</div>
                    </li>
                    <li><a href="/article/1947859931646455808.htm"
                           title="删除 XML 格式中双引号内的空格" target="_blank">删除 XML 格式中双引号内的空格</a>
                        <span class="text-muted">胖大和尚</span>
<a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a>
                        <div>要使用Shell命令删除XML格式中双引号内的空格(仅处理属性值中的空格,保留标签外的空格),可以使用以下sed命令:sed-i':loop;s/\("[^"]*\)\([^"]*"\)/\1\2/g;tloop'filename.xml命令详解:核心逻辑:s/\("[^"]*\)\([^"]*"\)/\1\2/g:匹配双引号内的内容,将捕获分组\1(双引号后到空格前的文本)和\2(空格后到双引号</div>
                    </li>
                    <li><a href="/article/1947859679568785408.htm"
                           title="Shell实现服务检查看门程序" target="_blank">Shell实现服务检查看门程序</a>
                        <span class="text-muted">angushine</span>
<a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a>
                        <div>最近在项目中碰到Kafka自己关闭的事件,为保证Kafka的高效可用,因此考虑使用Shell加系统定时任务检查,保证服务的高可用检查Zookeeper#!/bin/bash#配置参数TARGET_PORT=2181#监控端口SERVICE_NAME="zookeeper"#服务名称(用于日志记录)CHECK_INTERVAL=5#检测间隔(秒)LOG_FILE="/data/public/kafk</div>
                    </li>
                    <li><a href="/article/1947859301120929792.htm"
                           title="Android常用的adb和logcat命令" target="_blank">Android常用的adb和logcat命令</a>
                        <span class="text-muted">每次的天空</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/adb/1.htm">adb</a>
                        <div>ADBADB,即AndroidDebugBridge是一种允许模拟器或已连接的Android设备进行通信的命令行工具,它可为各种设备操作提供便利,如安装和调试应用,并提供对Unixshell(可用来在模拟器或连接的设备上运行各种命令)的访问。adb简单命令//查看版本adbversion//查看已经连接的设备和开始连接设备命令adbdevicesadbconnectadb应用命令//查看所有应用a</div>
                    </li>
                    <li><a href="/article/1947857029762707456.htm"
                           title="execve 继承了什么?映射、信号、文件描述符、优先级、ptrace" target="_blank">execve 继承了什么?映射、信号、文件描述符、优先级、ptrace</a>
                        <span class="text-muted">Kira Skyler</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>文章目录简介execve一次简单的跟踪入口ftrace流程bprm加载elfload\_elf\_binarybegin\_new\_exec最后总结简介execvesyscall做了什么重要参考Linux进程启动execve系统调用内核源码解析execve一次简单的跟踪入口SYSCALL_DEFINE3(execve,constchar__user*,filename,constchar__us</div>
                    </li>
                    <li><a href="/article/1947854128508104704.htm"
                           title="Linux 常用命令最全总结" target="_blank">Linux 常用命令最全总结</a>
                        <span class="text-muted">北觅_小太阳</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
                        <div>一、文件和命令1、cd命令(它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径)cd/home进入‘/home’目录cd..返回上一级目录cd../..返回上两级目录cd/返回跟目录cd-返回上次所在的目录mkdir创建目录mkdirdir1dir2同时创建两个目录mkdir-p/tmp/dir1/dir2递归创建目录树rm-ffile1删除’file1’⽂件rm</div>
                    </li>
                    <li><a href="/article/1947854002293108736.htm"
                           title="Linux命令大全之reset命令" target="_blank">Linux命令大全之reset命令</a>
                        <span class="text-muted">传说三哥</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/Linux%E5%9F%BA%E7%A1%80/1.htm">Linux基础</a><a class="tag" taget="_blank" href="/search/Linux%E5%91%BD%E4%BB%A4/1.htm">Linux命令</a>
                        <div>Linuxreset命令其实和tset是一同个命令,它的用途是设定终端机的状态。一般而言,这个命令会自动的从环境变数、命令列或是其它的组态档决定目前终端机的型态。如果指定型态是'?'的话,这个程序会要求使用者输入终端机的型别。由于这个程序会将终端机设回原始的状态,除了在login时使用外,当系统终端机因为程序不正常执行而进入一些奇怪的状态时,你也可以用它来重设终端机o例如不小心把二进位档用cat指</div>
                    </li>
                    <li><a href="/article/1947847703429967872.htm"
                           title="管道魔法:高阶组合技引爆Linux数据处理效率" target="_blank">管道魔法:高阶组合技引爆Linux数据处理效率</a>
                        <span class="text-muted">yhyvc</span>
<a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91/1.htm">后端开发</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
                        <div>管道魔法:高阶组合技引爆Linux数据处理效率核心理念管道符|是Linux哲学"一个工具只做一件事"的灵魂实践。通过串联多个单一功能指令,可构建复杂的数据处理流水线。相较于图形界面操作,管道流处理1GB日志文件的效率可提升5-10倍,且资源占用降低80%。一、经典工作流深度解析网站访问日志分析TOP10IPzcataccess.log*.gz|\#解压并读取多个压缩日志awk'$7~/\/prod</div>
                    </li>
                    <li><a href="/article/1947847577072365568.htm"
                           title="Docker原理 Namespace" target="_blank">Docker原理 Namespace</a>
                        <span class="text-muted"></span>

                        <div>Docker是一个开源的容器化平台,使用了多种Linux内核特性来实现隔离和资源管理。其中,Namespace(命名空间)是Docker实现进程隔离的核心技术之一。Namespace提供了对操作系统资源的视图隔离,使得容器内的进程以为它们独占了系统资源。本文将详细介绍Docker的Namespace机制。一、Namespace概述Namespace是Linux内核的一项关键技术,用于隔离不同进程的</div>
                    </li>
                    <li><a href="/article/1947844044730200064.htm"
                           title="docker 中安装 ONLYOFFICE 服务" target="_blank">docker 中安装 ONLYOFFICE 服务</a>
                        <span class="text-muted">两点王爷</span>
<a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>由于需要在线编译word文件,所以安装ONLYOFFICE服务(已知Linux机器中有docker环境)具体如下:1️⃣Linux中创建目录若是没有docker,可先在线安装docker,具体如下:Ubuntu在线安装docker命令如下:通过apt安装apt-getinstalldocker.io运行和使用docker命令systemctlstartdockersystemctlenabledo</div>
                    </li>
                    <li><a href="/article/1947827527728820224.htm"
                           title="Tomcat问题Cannot find /data/tomcat/bin/setclasspath.sh" target="_blank">Tomcat问题Cannot find /data/tomcat/bin/setclasspath.sh</a>
                        <span class="text-muted"></span>

                        <div>问题:linux环境下,启动startup命令报错Cannotfind/data/tomcat/bin/setclasspath.shThisfileisneededtorunthisprogram任一目录下面执行下面命令unsetCATALINA_HOME再次启动即可暂时解决问题./startup.sh根本上解决则vim/etc/profile去掉CALALINE_HOME这个变量。</div>
                    </li>
                    <li><a href="/article/1947817067054952448.htm"
                           title="MobaXterm11.1:全面的Linux/Unix远程管理工具包" target="_blank">MobaXterm11.1:全面的Linux/Unix远程管理工具包</a>
                        <span class="text-muted">芥子纳须弥1116</span>

                        <div>本文还有配套的精品资源,点击获取简介:MobaXterm是为Windows用户设计的全能型Linux/Unix服务器远程管理工具,提供包括SSH客户端、多会话管理、FTP/SFTP客户端、X11转发、Telnet/Rlogin支持和端口转发在内的多种功能。它简化了远程登录和文件传输等任务,同时与SecureCRT相比,具有更直观的界面、更高的集成性和免费版本的优势。适用于系统运维、开发测试、教育科</div>
                    </li>
                    <li><a href="/article/1947795644118790144.htm"
                           title="python 源码安装_源码安装python" target="_blank">python 源码安装_源码安装python</a>
                        <span class="text-muted">weixin_39959794</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%BA%90%E7%A0%81%E5%AE%89%E8%A3%85/1.htm">源码安装</a>
                        <div>编译安装新版本python一般来说python是linux系统的标配,但是版本一般却很老,而系统上面的很多服务可能与老的python存在依赖关系,我们又不能直接卸载。所以一般,我们可以在一个单独的目录来安装python。python安装有两种方法:1.源码编译2.使用pyenv此处我们使用源码编译安装:1.下载源码:https://www.python.org/ftp/python/此处有各个版本</div>
                    </li>
                    <li><a href="/article/1947795014541176832.htm"
                           title="python 源码安装" target="_blank">python 源码安装</a>
                        <span class="text-muted">thjinhao</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>linux环境下python3.9安装yum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devellibffi-develyum-yinstallgcc4.python环境的安装(安装pyenv</div>
                    </li>
                    <li><a href="/article/1947785816113737728.htm"
                           title="unixbench系统性能测试" target="_blank">unixbench系统性能测试</a>
                        <span class="text-muted">itas109</span>
<a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/unixbench/1.htm">unixbench</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">系统性能测试</a><a class="tag" taget="_blank" href="/search/cpu%E5%9F%BA%E5%87%86%E6%B5%8B%E8%AF%95/1.htm">cpu基准测试</a><a class="tag" taget="_blank" href="/search/cpu%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">cpu性能测试</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E5%9F%BA%E5%87%86%E6%B5%8B%E8%AF%95/1.htm">系统基准测试</a>
                        <div>unixbench系统性能测试环境:UnixBench:6.0.0(2025-05-21)简介UnixBench是一款经典的Unix/Linux系统性能测试工具,主要用于评估系统的CPU运算能力、内存性能、多线程处理能力以及部分系统调用(如进程创建、文件操作)的效率。UnixBench是开发板(如ARM架构的树莓派、RK3588等)评估CPU和系统整体性能的常用工具。2.编译和运行2.1获取Uni</div>
                    </li>
                    <li><a href="/article/1947772203613351936.htm"
                           title="Linux 基本指令详解" target="_blank">Linux 基本指令详解</a>
                        <span class="text-muted">Cherl.</span>
<a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E5%9F%BA%E6%9C%AC%E5%91%BD%E4%BB%A4/1.htm">基本命令</a>
                        <div>1.pwd(PrintWorkingDirectory)显示当前工作目录的完整路径root@hcss-ecs-a3f4:~#pwd/root2.ls(List)列出目录内容ls#查看当前目录下文件和文件夹ls-l#长格式显示(显示权限、所有者、大小、修改时间等)ls-a#显示所有文件(包括隐藏文件)ls-la#长格式显示所有文件ls-lh#以人类可读的方式显示文件大小ls-R#递归显示子目录ll为</div>
                    </li>
                    <li><a href="/article/1947763128926269440.htm"
                           title="error ‘vue‘ 不是内部或外部命令,也不是可运行的程序或批处理文件 [Windows/Mac/Linux 系统解决方案大全]" target="_blank">error ‘vue‘ 不是内部或外部命令,也不是可运行的程序或批处理文件 [Windows/Mac/Linux 系统解决方案大全]</a>
                        <span class="text-muted"></span>

                        <div>error‘vue‘不是内部或外部命令,也不是可运行的程序或批处理文件[Windows/Mac/Linux系统解决方案大全]在使用Vue.js开发时,常常会遇到如下错误提示:'vue'不是内部或外部命令,也不是可运行的程序或批处理文件。这是因为系统无法识别vue命令,可能源于多种原因:未安装或未正确配置环境变量、VueCLI未安装、Node.js管理工具(如nvm)切换版本后未重新全局安装等。作者</div>
                    </li>
                    <li><a href="/article/1947760983405555712.htm"
                           title="超简单linux上部署Apache" target="_blank">超简单linux上部署Apache</a>
                        <span class="text-muted">悟空骑猪看电影</span>
<a class="tag" taget="_blank" href="/search/apache/1.htm">apache</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>1.Apache是什么?Apache是世界上最流行的开源Web服务器软件,由Apache软件基金会维护。主要功能:接收客户端(如浏览器)的HTTP请求,返回网页、图片等静态/动态资源。特点:跨平台(Linux、Windows、macOS)模块化设计(按需加载功能)支持多语言扩展(PHP、Python等)高稳定性和安全性2.核心架构与工作原理多进程模型(MPM)Prefork:多进程模式,每个请求由</div>
                    </li>
                    <li><a href="/article/1947758078707429376.htm"
                           title="【K8s】专题四(4):Kubernetes 控制器之 StatefulSet" target="_blank">【K8s】专题四(4):Kubernetes 控制器之 StatefulSet</a>
                        <span class="text-muted"></span>

                        <div>本文内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发、订阅专栏!专栏订阅入口Linux专栏|Docker专栏|Kubernetes专栏往期精彩文章【Docker】(全网首发)KylinV10下MySQL容器内存占用异常的解决方法【Docker】(全网首发)KylinV10下MySQL容器内存占用异常的解决方法(续)【Docker】MySQL源码构建Docker镜</div>
                    </li>
                    <li><a href="/article/1947755811174412288.htm"
                           title="lvs 集群技术" target="_blank">lvs 集群技术</a>
                        <span class="text-muted"></span>

                        <div>一.lvs概述LVS是LinuxVirtualServer的缩写,中文通常称为Linux虚拟服务器。它是一个开源的、高性能的、基于四层(传输层,TCP/UDP)的服务器负载均衡解决方案。简单来说,LVS的核心功能就是:将客户端的请求流量智能地、高效地分发到后端的多个真实服务器上,对外表现为一个单一的、高性能、高可用的虚拟服务器。LVS的核心组件和工作原理负载均衡器/调度器/前端服务器:通常被称为D</div>
                    </li>
                    <li><a href="/article/1947736276459384832.htm"
                           title="LVS集群技术介绍" target="_blank">LVS集群技术介绍</a>
                        <span class="text-muted">Milgram Ma</span>
<a class="tag" taget="_blank" href="/search/lvs/1.htm">lvs</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>LVS(LinuxVirtualServer)集群,即Linux虚拟服务器集群,是一个在Unix/Linux平台下实现负载均衡集群功能的系统。它由国人章文嵩博士在1998年开发,是中国国内最早出现的自由软件项目之一,现在LVS已经是Linux内核标准的一部分。LVS集群通过将多台服务器组织起来,共同对外提供服务,以提高系统的整体性能、可扩展性和高可用性。LVS的核心作用是分发网络请求,以达到以下目</div>
                    </li>
                    <li><a href="/article/1947734890132860928.htm"
                           title="全网最详细LVS(Linux Virtual Server)讲解" target="_blank">全网最详细LVS(Linux Virtual Server)讲解</a>
                        <span class="text-muted">钮枯禄赵氏</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a>
                        <div>一、集群和分布式简介1.1系统性能扩展方式ScaleUP:向上扩展,增强ScaleOut:向外扩展,增加设备,调度分配问题,Cluster1.2集群ClusterCluster:集群是为了解决某个特定问题将堕胎计算机组合起来形成的单个系统Cluster常见的三种类型:*LB:LoadBalancing(负载均衡)由多个主机组成,每个主机只承担一部分访问*HA:HighAvailiablity(高可</div>
                    </li>
                    <li><a href="/article/1947734637518319616.htm"
                           title="Linux笔记8 web服务器的部署及优化" target="_blank">Linux笔记8 web服务器的部署及优化</a>
                        <span class="text-muted">月熊</span>
<a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>用户常用关于web的信息www概念www是worldwideweb的缩写,及万维网,也就是全球信息广播的意思通常说的上网就是使用www来查询用户所需要的信息。www可以结合文字、图形、影像以及声音等多媒体,超链接的方式将信息以Internet传递到世界各处去。当你连接www网站,该网站会提供一些数据,客户端要使用可以解析这些数据的软件来处理,那就是浏览器网址URI:UniformResourceI</div>
                    </li>
                    <li><a href="/article/1947734637958721536.htm"
                           title="Linux笔记9 DNS域名解析服务器" target="_blank">Linux笔记9 DNS域名解析服务器</a>
                        <span class="text-muted">月熊</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
                        <div>简介DNS(DomainNameSystem)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。DNS使用的是53端口,通常DNS是以UDP这个较快速的数据传输协议来查询的,但是没有查询到完整的信息时,就会再次以TCP这个协议来重新查询所以启动DNS时,会同时启动TCP以及UDP的port53。因特网的域名结构由于因特网的用户数量较多,所以因特网在</div>
                    </li>
                    <li><a href="/article/1947727076127731712.htm"
                           title="Linux(Centos 7.6)命令详解:unset" target="_blank">Linux(Centos 7.6)命令详解:unset</a>
                        <span class="text-muted">豆是浪个</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>1.命令作用删除指定的变量或函数2.命令语法Usage:unset[-f][-v][name...]3.参数详解OPTION:-f,仅删除函数(若未指定,默认优先删除变量)-v,仅删除变量(不包括只读变量)name,要删除的变量或函数名(支持多个)4.常用用例4.1.函数相关用例[root@node1~]#hello(){echo"World";}#定义函数[root@node1~]#hello#</div>
                    </li>
                    <li><a href="/article/1947727076610076672.htm"
                           title="Linux(Centos 7.6)命令详解:jobs" target="_blank">Linux(Centos 7.6)命令详解:jobs</a>
                        <span class="text-muted">豆是浪个</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>1.命令作用显示后台运行或暂停的作业列表,包括作业编号、状态(Running/Stopped/Terminated/Done)和执行命令2.命令语法Usage:jobs[-lnprs][jobspec...]orjobs-xcommand[args]3.参数详解OPTION:-l,显示进程ID(PID)和详细信息-n,显示状态刚变成Running状态的job-p,仅显示后台作业的进程ID(PID)</div>
                    </li>
                                <li><a href="/article/47.htm"
                                       title="jdk tomcat 环境变量配置" target="_blank">jdk tomcat 环境变量配置</a>
                                    <span class="text-muted">Array_06</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a>
                                    <div>Win7 下如何配置java环境变量 
 
1。准备jdk包,win7系统,tomcat安装包(均上网下载即可) 
2。进行对jdk的安装,尽量为默认路径(但要记住啊!!以防以后配置用。。。) 
3。分别配置高级环境变量。 
   电脑-->右击属性-->高级环境变量-->环境变量。 
 
 
分别配置 : 
 
path   
 &nbs</div>
                                </li>
                                <li><a href="/article/174.htm"
                                       title="Spring调SDK包报java.lang.NoSuchFieldError错误" target="_blank">Spring调SDK包报java.lang.NoSuchFieldError错误</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>        在工作中调另一个系统的SDK包,出现如下java.lang.NoSuchFieldError错误。 
org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.l</div>
                                </li>
                                <li><a href="/article/301.htm"
                                       title="LeetCode[位运算] - #136 数组中的单一数" target="_blank">LeetCode[位运算] - #136 数组中的单一数</a>
                                    <span class="text-muted">Cwind</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%A2%98%E8%A7%A3/1.htm">题解</a><a class="tag" taget="_blank" href="/search/%E4%BD%8D%E8%BF%90%E7%AE%97/1.htm">位运算</a><a class="tag" taget="_blank" href="/search/LeetCode/1.htm">LeetCode</a><a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a>
                                    <div>原题链接:#136 Single Number 
要求: 
给定一个整型数组,其中除了一个元素之外,每个元素都出现两次。找出这个元素 
注意:算法的时间复杂度应为O(n),最好不使用额外的内存空间 
难度:中等 
分析: 
题目限定了线性的时间复杂度,同时不使用额外的空间,即要求只遍历数组一遍得出结果。由于异或运算 n XOR n = 0, n XOR 0 = n,故将数组中的每个元素进</div>
                                </li>
                                <li><a href="/article/428.htm"
                                       title="qq登陆界面开发" target="_blank">qq登陆界面开发</a>
                                    <span class="text-muted">15700786134</span>
<a class="tag" taget="_blank" href="/search/qq/1.htm">qq</a>
                                    <div>今天我们来开发一个qq登陆界面,首先写一个界面程序,一个界面首先是一个Frame对象,即是一个窗体。然后在这个窗体上放置其他组件。代码如下: 
public class First {         public void initul(){        jf=ne</div>
                                </li>
                                <li><a href="/article/555.htm"
                                       title="Linux的程序包管理器RPM" target="_blank">Linux的程序包管理器RPM</a>
                                    <span class="text-muted">被触发</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>在早期我们使用源代码的方式来安装软件时,都需要先把源程序代码编译成可执行的二进制安装程序,然后进行安装。这就意味着每次安装软件都需要经过预处理-->编译-->汇编-->链接-->生成安装文件--> 安装,这个复杂而艰辛的过程。为简化安装步骤,便于广大用户的安装部署程序,程序提供商就在特定的系统上面编译好相关程序的安装文件并进行打包,提供给大家下载,我们只需要根据自己的</div>
                                </li>
                                <li><a href="/article/682.htm"
                                       title="socket通信遇到EOFException" target="_blank">socket通信遇到EOFException</a>
                                    <span class="text-muted">肆无忌惮_</span>
<a class="tag" taget="_blank" href="/search/EOFException/1.htm">EOFException</a>
                                    <div>java.io.EOFException 
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2281) 
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:</div>
                                </li>
                                <li><a href="/article/809.htm"
                                       title="基于spring的web项目定时操作" target="_blank">基于spring的web项目定时操作</a>
                                    <span class="text-muted">知了ing</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a>
                                    <div>废话不多说,直接上代码,很简单 配置一下项目启动就行 
1,web.xml 
 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="h</div>
                                </li>
                                <li><a href="/article/936.htm"
                                       title="树形结构的数据库表Schema设计" target="_blank">树形结构的数据库表Schema设计</a>
                                    <span class="text-muted">矮蛋蛋</span>
<a class="tag" taget="_blank" href="/search/schema/1.htm">schema</a>
                                    <div>原文地址: 
http://blog.csdn.net/MONKEY_D_MENG/article/details/6647488 
 
 
    程序设计过程中,我们常常用树形结构来表征某些数据的关联关系,如企业上下级部门、栏目结构、商品分类等等,通常而言,这些树状结构需要借助于数据库完成持久化。然而目前的各种基于关系的数据库,都是以二维表的形式记录存储数据信息,</div>
                                </li>
                                <li><a href="/article/1063.htm"
                                       title="maven将jar包和源码一起打包到本地仓库" target="_blank">maven将jar包和源码一起打包到本地仓库</a>
                                    <span class="text-muted">alleni123</span>
<a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a>
                                    <div>http://stackoverflow.com/questions/4031987/how-to-upload-sources-to-local-maven-repository 
 
 
 
<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupI</div>
                                </li>
                                <li><a href="/article/1190.htm"
                                       title="java IO操作 与 File 获取文件或文件夹的大小,可读,等属性!!!" target="_blank">java IO操作 与 File 获取文件或文件夹的大小,可读,等属性!!!</a>
                                    <span class="text-muted">百合不是茶</span>

                                    <div>类 File 
File是指文件和目录路径名的抽象表示形式。 
1,何为文件: 
标准文件(txt doc mp3...) 
目录文件(文件夹) 
虚拟内存文件 
  
2,File类中有可以创建文件的 createNewFile()方法,在创建新文件的时候需要try{} catch(){}因为可能会抛出异常;也有可以判断文件是否是一个标准文件的方法isFile();这些防抖都</div>
                                </li>
                                <li><a href="/article/1317.htm"
                                       title="Spring注入有继承关系的类(2)" target="_blank">Spring注入有继承关系的类(2)</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>被注入类的父类有相应的属性,Spring可以直接注入相应的属性,如下所例:1.AClass类 
package com.bijian.spring.test4;

public class AClass {

    private String a;
    private String b;
   
    public String getA() {
        retu</div>
                                </li>
                                <li><a href="/article/1444.htm"
                                       title="30岁转型期你能否成为成功人士" target="_blank">30岁转型期你能否成为成功人士</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/%E6%88%90%E9%95%BF/1.htm">成长</a><a class="tag" taget="_blank" href="/search/%E5%8A%B1%E5%BF%97/1.htm">励志</a>
                                    <div>        很多人由于年轻时走了弯路,到了30岁一事无成,这样的例子大有人在。但同样也有一些人,整个职业生涯都发展得很优秀,到了30岁已经成为职场的精英阶层。由于做猎头的原因,我们接触很多30岁左右的经理人,发现他们在职业发展道路上往往有很多致命的问题。在30岁之前,他们的职业生涯表现很优秀,但从30岁到40岁这一段,很多人</div>
                                </li>
                                <li><a href="/article/1571.htm"
                                       title="【Velocity四】Velocity与Java互操作" target="_blank">【Velocity四】Velocity与Java互操作</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/velocity/1.htm">velocity</a>
                                    <div>Velocity出现的目的用于简化基于MVC的web应用开发,用于替代JSP标签技术,那么Velocity如何访问Java代码.本篇继续以Velocity三http://bit1129.iteye.com/blog/2106142中的例子为基础, 
     POJO 
   
package com.tom.servlets;

public</div>
                                </li>
                                <li><a href="/article/1698.htm"
                                       title="【Hive十一】Hive数据倾斜优化" target="_blank">【Hive十一】Hive数据倾斜优化</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a>
                                    <div>什么是Hive数据倾斜问题 
  
 
 操作:join,group by,count distinct 
 现象:任务进度长时间维持在99%(或100%),查看任务监控页面,发现只有少量(1个或几个)reduce子任务未完成;查看未完成的子任务,可以看到本地读写数据量积累非常大,通常超过10GB可以认定为发生数据倾斜。 
 原因:key分布不均匀 
 倾斜度衡量:平均记录数超过50w且</div>
                                </li>
                                <li><a href="/article/1825.htm"
                                       title="在nginx中集成lua脚本:添加自定义Http头,封IP等" target="_blank">在nginx中集成lua脚本:添加自定义Http头,封IP等</a>
                                    <span class="text-muted">ronin47</span>
<a class="tag" taget="_blank" href="/search/nginx+lua+csrf/1.htm">nginx lua csrf</a>
                                    <div>Lua是一个可以嵌入到Nginx配置文件中的动态脚本语言,从而可以在Nginx请求处理的任何阶段执行各种Lua代码。刚开始我们只是用Lua 把请求路由到后端服务器,但是它对我们架构的作用超出了我们的预期。下面就讲讲我们所做的工作。 强制搜索引擎只索引mixlr.com 
Google把子域名当作完全独立的网站,我们不希望爬虫抓取子域名的页面,降低我们的Page rank。 
location /{</div>
                                </li>
                                <li><a href="/article/1952.htm"
                                       title="java-3.求子数组的最大和" target="_blank">java-3.求子数组的最大和</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>package beautyOfCoding;


public class MaxSubArraySum {

	/**
	 * 3.求子数组的最大和
题目描述:
输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。要求时间复杂度为O(n)。
例如输入的数组为1, -2, 3, 10, -4,</div>
                                </li>
                                <li><a href="/article/2079.htm"
                                       title="Netty源码学习-FileRegion" target="_blank">Netty源码学习-FileRegion</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/netty/1.htm">netty</a>
                                    <div>今天看org.jboss.netty.example.http.file.HttpStaticFileServerHandler.java 
可以直接往channel里面写入一个FileRegion对象,而不需要相应的encoder: 
 


		//pipeline(没有诸如“FileRegionEncoder”的handler):
		public ChannelPipeline ge</div>
                                </li>
                                <li><a href="/article/2206.htm"
                                       title="使用ZeroClipboard解决跨浏览器复制到剪贴板的问题" target="_blank">使用ZeroClipboard解决跨浏览器复制到剪贴板的问题</a>
                                    <span class="text-muted">cngolon</span>
<a class="tag" taget="_blank" href="/search/%E8%B7%A8%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">跨浏览器</a><a class="tag" taget="_blank" href="/search/%E5%A4%8D%E5%88%B6%E5%88%B0%E7%B2%98%E8%B4%B4%E6%9D%BF/1.htm">复制到粘贴板</a><a class="tag" taget="_blank" href="/search/Zero+Clipboard/1.htm">Zero Clipboard</a>
                                    <div>Zero Clipboard的实现原理 
Zero Clipboard 利用透明的Flash让其漂浮在复制按钮之上,这样其实点击的不是按钮而是 Flash ,这样将需要的内容传入Flash,再通过Flash的复制功能把传入的内容复制到剪贴板。 
Zero Clipboard的安装方法 
首先需要下载 Zero Clipboard的压缩包,解压后把文件夹中两个文件:ZeroClipboard.js </div>
                                </li>
                                <li><a href="/article/2333.htm"
                                       title="单例模式" target="_blank">单例模式</a>
                                    <span class="text-muted">cuishikuan</span>
<a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F/1.htm">单例模式</a>
                                    <div>第一种(懒汉,线程不安全): 
public class Singleton {   2     private static Singleton instance;   3     pri</div>
                                </li>
                                <li><a href="/article/2460.htm"
                                       title="spring+websocket的使用" target="_blank">spring+websocket的使用</a>
                                    <span class="text-muted">dalan_123</span>

                                    <div>一、spring配置文件 
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.or</div>
                                </li>
                                <li><a href="/article/2587.htm"
                                       title="细节问题:ZEROFILL的用法范围。" target="_blank">细节问题:ZEROFILL的用法范围。</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>   1、zerofill把月份中的一位数字比如1,2,3等加前导0 
 
      
mysql> CREATE TABLE t1 (year YEAR(4), month INT(2) UNSIGNED ZEROFILL,    -> day</div>
                                </li>
                                <li><a href="/article/2714.htm"
                                       title="Android开发10——Activity的跳转与传值" target="_blank">Android开发10——Activity的跳转与传值</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/Android%E5%BC%80%E5%8F%91/1.htm">Android开发</a>
                                    <div>Activity跳转与传值,主要是通过Intent类,Intent的作用是激活组件和附带数据。 
  
一、Activity跳转 
方法一Intent intent = new Intent(A.this, B.class); startActivity(intent) 
  
方法二Intent intent = new Intent();intent.setCla</div>
                                </li>
                                <li><a href="/article/2841.htm"
                                       title="jdbc 得到表结构、主键" target="_blank">jdbc 得到表结构、主键</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/jdbc+%E5%BE%97%E5%88%B0%E8%A1%A8%E7%BB%93%E6%9E%84%E3%80%81%E4%B8%BB%E9%94%AE/1.htm">jdbc 得到表结构、主键</a>
                                    <div>转自博客:http://blog.csdn.net/ocean1010/article/details/7266042 
假设有个con DatabaseMetaData dbmd = con.getMetaData(); rs = dbmd.getColumns(con.getCatalog(), schema, tableName, null); rs.getSt</div>
                                </li>
                                <li><a href="/article/2968.htm"
                                       title="Android 应用程序开关GPS" target="_blank">Android 应用程序开关GPS</a>
                                    <span class="text-muted">gqdy365</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>要在应用程序中操作GPS开关需要权限: 
 

<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
 
但在配置文件中添加此权限之后会报错,无法再eclipse里面正常编译,怎么办? 
1、方法一:将项目放到Android源码中编译; 
2、方法二:网上有人说cl</div>
                                </li>
                                <li><a href="/article/3095.htm"
                                       title="Windows上调试MapReduce" target="_blank">Windows上调试MapReduce</a>
                                    <span class="text-muted">zhiquanliu</span>
<a class="tag" taget="_blank" href="/search/mapreduce/1.htm">mapreduce</a>
                                    <div>1.下载hadoop2x-eclipse-plugin https://github.com/winghc/hadoop2x-eclipse-plugin.git 把 hadoop2.6.0-eclipse-plugin.jar 放到eclipse plugin 目录中。 2.下载 hadoop2.6_x64_.zip http://dl.iteye.com/topics/download/d2b</div>
                                </li>
                                <li><a href="/article/3222.htm"
                                       title="如何看待一些知名博客推广软文的行为?" target="_blank">如何看待一些知名博客推广软文的行为?</a>
                                    <span class="text-muted">justjavac</span>
<a class="tag" taget="_blank" href="/search/%E5%8D%9A%E5%AE%A2/1.htm">博客</a>
                                    <div>本文来自我在知乎上的一个回答:http://www.zhihu.com/question/23431810/answer/24588621 
互联网上的两种典型心态: 
 
  当初求种像条狗,如今撸完嫌人丑  
  当初搜贴像条犬,如今读完嫌人软  
 
你为啥感觉不舒服呢? 
难道非得要作者把自己的劳动成果免费给你用,你才舒服? 
就如同 Google 关闭了 Gooled Reader,那是</div>
                                </li>
                                <li><a href="/article/3349.htm"
                                       title="sql优化总结" target="_blank">sql优化总结</a>
                                    <span class="text-muted">macroli</span>
<a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a>
                                    <div>为了是自己对sql优化有更好的原则性,在这里做一下总结,个人原则如有不对请多多指教。谢谢! 
  
要知道一个简单的sql语句执行效率,就要有查看方式,一遍更好的进行优化。 
  
一、简单的统计语句执行时间 
declare @d datetime ---定义一个datetime的变量set @d=getdate() ---获取查询语句开始前的时间select user_id</div>
                                </li>
                                <li><a href="/article/3476.htm"
                                       title="Linux Oracle中常遇到的一些问题及命令总结" target="_blank">Linux Oracle中常遇到的一些问题及命令总结</a>
                                    <span class="text-muted">超声波</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>1.linux更改主机名 
  
(1)#hostname oracledb    临时修改主机名 
(2) vi /etc/sysconfig/network   修改hostname 
(3) vi /etc/hosts        修改IP对应的主机名 
  
2.linux重启oracle实例及监听的各种方法 
(注意操作的顺序应该是先监听,后数据库实例) 
&nbs</div>
                                </li>
                                <li><a href="/article/3603.htm"
                                       title="hive函数大全及使用示例" target="_blank">hive函数大全及使用示例</a>
                                    <span class="text-muted">superlxw1234</span>
<a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a><a class="tag" taget="_blank" href="/search/hive%E5%87%BD%E6%95%B0/1.htm">hive函数</a>
                                    <div>  
具体说明及示例参 见附件文档。  
  
  
文档目录: 
  
目录 
一、关系运算: 4 
1. 等值比较: = 4 
2. 不等值比较: <> 4 
3. 小于比较: < 4 
4. 小于等于比较: <= 4 
5. 大于比较: > 5 
6. 大于等于比较: >= 5 
7. 空值判断: IS NULL 5</div>
                                </li>
                                <li><a href="/article/3730.htm"
                                       title="Spring 4.2新特性-使用@Order调整配置类加载顺序" target="_blank">Spring 4.2新特性-使用@Order调整配置类加载顺序</a>
                                    <span class="text-muted">wiselyman</span>
<a class="tag" taget="_blank" href="/search/spring+4/1.htm">spring 4</a>
                                    <div>4.1 @Order 
 
 Spring 4.2 利用@Order控制配置类的加载顺序 
  
4.2 演示 
 
 两个演示bean 
 
package com.wisely.spring4_2.order;

public class Demo1Service {

}

 
package com.wisely.spring4_2.order;

public class</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html>