目录
❀dialog命令运用于linux❀
msgbox部件(消息框)
yesno部件(yesno框)
inputbox部件(输入文本框)
textbox部件(文本框)
fselect部件(文件选框)
passwordbox部件(密码框)
checklist部件(复选框)
calendar部件(显示日历)
gauge部件(进度框架)
form部件(表单)
综合应用示例
❀dialog命令运用于linux❀
功能说明:dialog 工具是一个可以和shell脚本配合使用的文本界面下的创建对话框的工具。
(ps.dialog实用程序是基于ncurses库的。Ncurses是一个用于在文本终端上创建图形用户界面的库,它允许开发者创建基于文本的用户界面,而无需依赖图形环境或窗口系统。这使得ncurses库非常适合在命令行环境下创建交互式的用户界面。dialog实用程序利用ncurses库提供的功能,允许用户在终端中以对话框的形式进行交互。它可以用于创建各种对话框,如菜单、输入框、消息框等,使得用户能够在命令行环境下进行简单的图形化交互操作。Ncurses通常被发音为 "en-curses"。 "en" 是字母 "n" 的读音,而 "curses" 的发音类似于英文中的 "curses"。因此,它的发音类似于 "en-curses"。)
基本语法:通用选项 common options:(这个选项来设置dialog box的背景,颜色和标题等)[--title
] 指定将在对话框的上方显示的标题字符串 </p>
<p style="margin-left:.0001pt;text-align:left;"><strong><strong>通用选项:</strong></strong></p>
<p style="margin-left:.0001pt;text-align:left;">[ --backtitle ] 背景的标题</p>
<p style="margin-left:.0001pt;text-align:left;">[--title ] 标题</p>
<p style="margin-left:.0001pt;text-align:left;">[<strong><span style="color:#ff0000;"><strong>--stdout </strong></span></strong>] 改为<strong><strong>正常输出流</strong></strong>,可以使用变量获dialog命令的执行结果,dialog的默认输出流为2></p>
<p style="margin-left:.0001pt;text-align:left;">[--insecure ] 不安全的,显示星号(可以看到密码位数)</p>
<p style="margin-left:.0001pt;text-align:left;">[--begin y x ] 窗体左上角处于屏幕的位置 例:--begin 4 10</p>
<p style="margin-left:.0001pt;text-align:left;">[--colors ] 文本的颜色:0-7,1表示红色 ;\Z开始 ;\Zn结束</p>
<p style="margin-left:.0001pt;text-align:left;">[--defaultno ] 默认为no yesno标签,对于yesno窗体类型,光标默认在no标签上</p>
<p style="margin-left:.0001pt;text-align:left;">[--default-item string ] 默认条目,menu窗体类型中使用</p>
<p style="margin-left:.0001pt;text-align:left;">[--nocancel ] 取消cancel键</p>
<p style="margin-left:.0001pt;text-align:left;">[ --nook ] 取消ok键</p>
<p style="margin-left:.0001pt;text-align:left;">[ --no-shadow ] 取消阴影</p>
<p style="margin-left:.0001pt;text-align:left;">[ --ok-label string ] OK标签上不显示OK,而显示你输入的文本信息</p>
<p style="margin-left:.0001pt;text-align:left;">[ --exit-label string ] 可以添加一个exit的标签</p>
<p style="margin-left:.0001pt;text-align:left;">[ --timeout secs ] 超时时间间隔,秒</p>
<p style="margin-left:.0001pt;text-align:left;">[ --extra-button ] 多添加一个按钮</p>
<p style="margin-left:.0001pt;text-align:left;">[ --extra-labrl string ] 新增按钮上显示的内容,那这个按钮的功能这需要自己实现?用不来</p>
<p style="margin-left:.0001pt;text-align:left;"><strong><strong>部 件 </strong></strong><strong> </strong><strong> </strong><strong> </strong><strong><strong>描 述</strong></strong></p>
<p style="margin-left:.0001pt;text-align:left;">----------------------------------------------------------------</p>
<p style="margin-left:.0001pt;text-align:left;"><strong><strong><span style="color:#fe2c24;">calendar</span> </strong></strong> 提供<strong><strong>选择日期的日历</strong></strong></p>
<p style="margin-left:.0001pt;text-align:left;"><span style="color:#fe2c24;"><strong><strong>checklist </strong></strong></span> 显示<strong><strong>多个选项</strong></strong>(其中<strong><strong>每个选项都能打开或关闭</strong></strong>)</p>
<p style="margin-left:.0001pt;text-align:left;"><strong><strong><span style="color:#fe2c24;">form</span> </strong></strong> 构建一个带有<strong><strong>标签</strong></strong>以及<strong><strong>文本字段</strong></strong>(<strong><strong>可以</strong></strong><strong><strong>填写内容</strong></strong>)的表单</p>
<p style="margin-left:.0001pt;text-align:left;"><strong><span style="color:#ff0000;"><strong>fselect </strong></span></strong> 提供<strong><strong>一个文件选择</strong></strong>窗口来<strong><strong>浏览选择文件</strong></strong></p>
<p style="margin-left:.0001pt;text-align:left;"><span style="color:#fe2c24;"><strong><strong>gauge</strong></strong></span> 显示完成的<strong><strong>百分比进度条</strong></strong></p>
<p style="margin-left:.0001pt;text-align:left;"><span style="color:#0d0016;"><strong>infobox</strong></span><strong><strong> </strong></strong> 显示<strong><strong>一条消息</strong></strong>,但不用等待回应</p>
<p style="margin-left:.0001pt;text-align:left;"><strong><span style="color:#ff0000;"><strong>inputbox </strong></span></strong> 提供<strong><strong>一个输入文本用的文本表单</strong></strong></p>
<p style="margin-left:.0001pt;text-align:left;"><strong><strong>inputmenu</strong></strong> 提供<strong><strong>一个可编辑的菜单</strong></strong></p>
<p style="margin-left:.0001pt;text-align:left;"><strong><span style="color:#ff0000;"><strong>menu </strong></span></strong> 显示<strong><strong>可选择的一系列选项</strong></strong></p>
<p style="margin-left:.0001pt;text-align:left;"><strong><span style="color:#ff0000;"><strong>msgbox </strong></span></strong> 显示<strong><strong>一条消息</strong></strong>,并要求用户选择OK按钮</p>
<p style="margin-left:.0001pt;text-align:left;"><strong><strong>pause </strong></strong> 显示<strong><strong>一个进度条</strong></strong>来显示<strong><strong>暂定期间的状态</strong></strong></p>
<p style="margin-left:.0001pt;text-align:left;"><strong><strong><span style="color:#fe2c24;">passwordbox</span> </strong></strong> 显示一个<strong><strong>文本框</strong></strong>,但会<strong><strong>隐藏输入的文本</strong></strong></p>
<p style="margin-left:.0001pt;text-align:left;"><strong><strong>passwordform</strong></strong> 显示一个<strong><strong>带标签</strong></strong>和<strong><strong>隐藏文本字段的表单</strong></strong></p>
<p style="margin-left:.0001pt;text-align:left;"><strong><strong>radiolist</strong></strong> 提供一组<strong><strong>菜单选项</strong></strong>,但<strong><strong>只能选择其中一个</strong></strong></p>
<p style="margin-left:.0001pt;text-align:left;"><strong><strong>tailbox</strong></strong> 用tail命令在滚动窗口中<strong><strong>显示文件的内容</strong></strong></p>
<p style="margin-left:.0001pt;text-align:left;"><strong><strong>tailboxbg</strong></strong> 跟tailbox一样,但是在后台模式中运行</p>
<p style="margin-left:.0001pt;text-align:left;"><strong><span style="color:#ff0000;"><strong>textbox</strong></span></strong><strong> </strong> 在滚动窗口中显示文件的内容</p>
<p style="margin-left:.0001pt;text-align:left;"><strong><strong>timebox</strong></strong> 提供一个选择小时、分钟和秒数的窗口</p>
<p style="margin-left:.0001pt;text-align:left;"><strong><span style="color:#ff0000;"><strong>yesno </strong></span></strong> 提供一条带有Yes和No按钮的简单消息</p>
<p style="margin-left:.0001pt;text-align:left;">要在命令行上指定某个特定的部件,需使用<strong><strong>双破折线</strong></strong>格式。</p>
<p style="margin-left:.0001pt;text-align:left;"><strong><strong>dialog </strong></strong><strong><span style="color:#ff0000;"><strong>--</strong></span></strong><strong><strong>widget parameters</strong></strong></p>
<p style="margin-left:.0001pt;text-align:left;">widget是部件名, parameters定义了部件窗口的大小以及部件需要的文本。每个dialog部件都提供了两种形式的输出:</p>
<p style="margin-left:.0001pt;text-align:left;">①使用<strong><strong>STDERR</strong></strong></p>
<p style="margin-left:.0001pt;text-align:left;">②使用<strong><strong>退出状态码</strong></strong></p>
<p style="margin-left:.0001pt;text-align:left;">可以通过dialog命令的退出状态码来确定用户选择的按钮。如果选择了Yes或OK按钮,dialog命令会返回退出状态码0。如果选择了Cancel或No按钮,dialog命令会返回退出状态码1。可以用标准的<strong><strong>$?</strong></strong>变量来确定dialog部件中具体选择了哪个按钮。</p>
<p style="margin-left:.0001pt;text-align:left;">如果部件返回了数据,比如菜单选择,那么dialog命令会将数据发送到STDERR。可以用标准的bash shell方法来将<strong><strong>STDERR输出重定向到另一个文件</strong></strong>或文件描述符中。</p>
<p style="margin-left:.0001pt;text-align:left;"><strong>dialog --inputbox "Enter your age:" 10 20 2>age.txt</strong></p>
<p style="margin-left:.0001pt;text-align:left;"><strong><strong>一些其他的选项</strong></strong><strong><strong>描述:</strong></strong></p>
<p style="margin-left:.0001pt;text-align:left;">--add-widget 继续下个对话框,直到按下Esc或Cancel按钮</p>
<p style="margin-left:.0001pt;text-align:left;">--aspect ratio 指定窗口宽度和高度的宽高比</p>
<p style="margin-left:.0001pt;text-align:left;">--backtitle title 指定显示在屏幕顶部背景上的标题</p>
<p style="margin-left:.0001pt;text-align:left;">--begin x y 指定窗口左上角的起始位置</p>
<p style="margin-left:.0001pt;text-align:left;">--cancel-label label 指定Cancel按钮的替代标签</p>
<p style="margin-left:.0001pt;text-align:left;">--clear 用默认的对话背景色来清空屏幕内容</p>
<p style="margin-left:.0001pt;text-align:left;">--colors 在对话文本中嵌入ANSI色彩编码</p>
<p style="margin-left:.0001pt;text-align:left;">--cr-wrap 在对话文本中允许使用换行符并强制换行</p>
<p style="margin-left:.0001pt;text-align:left;">--create-rc file 将示例配置文件的内容复制到指定的file文件中(1)</p>
<p style="margin-left:.0001pt;text-align:left;">--defaultno 将yes/no对话框的默认答案设为No</p>
<p style="margin-left:.0001pt;text-align:left;">--default-item string 设定复选列表、表单或菜单对话中的默认项</p>
<p style="margin-left:.0001pt;text-align:left;">--exit-label label 指定Exit按钮的替代标签</p>
<p style="margin-left:.0001pt;text-align:left;">--extra-button 在OK按钮和Cancel按钮之间显示一个额外按钮</p>
<p style="margin-left:.0001pt;text-align:left;">--extra-label label 指定额外按钮的替代标签</p>
<p style="margin-left:.0001pt;text-align:left;">--help 显示dialog命令的帮助信息</p>
<p style="margin-left:.0001pt;text-align:left;">--help-button 在OK按钮和Cancel按钮后显示一个Help按钮</p>
<p style="margin-left:.0001pt;text-align:left;">--help-label label 指定Help按钮的替代标签</p>
<p style="margin-left:.0001pt;text-align:left;">--help-status 当选定Help按钮后,在帮助信息后写入多选列表、单选列表或表单信息</p>
<p style="margin-left:.0001pt;text-align:left;">--ignore 忽略dialog不能识别的选项</p>
<p style="margin-left:.0001pt;text-align:left;">--input-fd fd 指定STDIN之外的另一个文件描述符</p>
<p style="margin-left:.0001pt;text-align:left;">--insecure 在password部件中键入内容时显示星号</p>
<p style="margin-left:.0001pt;text-align:left;">--item-help 为多选列表、单选列表或菜单中的每个标号在屏幕的底部添加一个帮助栏</p>
<p style="margin-left:.0001pt;text-align:left;">--keep-window 不要清除屏幕上显示过的部件</p>
<p style="margin-left:.0001pt;text-align:left;">--max-input size 指定输入的最大字符串长度。默认为2048</p>
<p style="margin-left:.0001pt;text-align:left;">--nocancel 隐藏Cancel按钮</p>
<p style="margin-left:.0001pt;text-align:left;">--no-collapse 不要将对话文本中的制表符转换成空格</p>
<p style="margin-left:.0001pt;text-align:left;">--no-kill 将tailboxbg对话放到后台,并禁止该进程的SIGHUP信号</p>
<p style="margin-left:.0001pt;text-align:left;">--no-label label 为No按钮指定替代标签</p>
<p style="margin-left:.0001pt;text-align:left;">--no-shadow 不要显示对话窗口的阴影效果</p>
<p style="margin-left:.0001pt;text-align:left;">--ok-label label 指定OK按钮的替代标签</p>
<p style="margin-left:.0001pt;text-align:left;">--output-fd fd 指定除STDERR之外的另一个输出文件描述符</p>
<p style="margin-left:.0001pt;text-align:left;">--print-maxsize 将对话窗口的最大尺寸打印到输出中</p>
<p style="margin-left:.0001pt;text-align:left;">--print-size 将每个对话窗口的大小打印到输出中</p>
<p style="margin-left:.0001pt;text-align:left;">--print-version 将dialog的版本号打印到输出中</p>
<p style="margin-left:.0001pt;text-align:left;">--separate-output 一次一行地输出checklist部件的结果,不使用引号</p>
<p style="margin-left:.0001pt;text-align:left;">--separator string 指定用于分隔部件输出的字符串</p>
<p style="margin-left:.0001pt;text-align:left;">--separate-widget string 指定用于分隔部件输出的字符串</p>
<p style="margin-left:.0001pt;text-align:left;">--shadow 在每个窗口的右下角绘制阴影</p>
<p style="margin-left:.0001pt;text-align:left;">--single-quoted 需要时对多选列表的输出采用单引号</p>
<p style="margin-left:.0001pt;text-align:left;">--sleep sec 在处理完对话窗口之后延迟指定的秒数</p>
<p style="margin-left:.0001pt;text-align:left;">--stderr 将输出发送到STDERR(默认行为)</p>
<p style="margin-left:.0001pt;text-align:left;">--stdout 将输出发送到STDOUT</p>
<p style="margin-left:.0001pt;text-align:left;">--tab-correct 将制表符转换成空格</p>
<p style="margin-left:.0001pt;text-align:left;">--tab-len n 指定一个制表符占用的空格数(默认为8)</p>
<p style="margin-left:.0001pt;text-align:left;">--timeout sec 指定无用户输入时, sec秒后退出并返回错误代码</p>
<p style="margin-left:.0001pt;text-align:left;">--title title 指定对话窗口的标题</p>
<p style="margin-left:.0001pt;text-align:left;">--trim 从对话文本中删除前导空格和换行符</p>
<p style="margin-left:.0001pt;text-align:left;">--visit-items 修改对话窗口中制表符的停留位置,使其包括选项列表</p>
<p style="margin-left:.0001pt;text-align:left;">--yes-label label 为Yes按钮指定替代标签</p>
<p style="margin-left:.0001pt;text-align:justify;"><strong><strong>实例:</strong></strong></p>
<h3 id="msgbox%E9%83%A8%E4%BB%B6%EF%BC%88%E6%B6%88%E6%81%AF%E6%A1%86%EF%BC%89" style="text-align:justify;"><strong>msgbox部件</strong><strong>(消息框)</strong></h3>
<p style="margin-left:.0001pt;text-align:justify;">msgbox部件是对话框中最常见的类型。它会在窗口中显示一条简单的消息,直到用户单击OK按钮后才消失。使用msgbox部件时要用下面的格式。</p>
<p style="margin-left:.0001pt;text-align:justify;"><strong><strong>dialog --msgbox text height width</strong></strong></p>
<p style="margin-left:.0001pt;text-align:justify;">如果想在<strong><strong>窗口顶部</strong></strong>放一个<strong><strong>标题</strong></strong>,也可以用 <strong><span style="color:#ff0000;"><strong>--title</strong></span></strong>参数,后接作为标题的文本。</p>
<p style="margin-left:.0001pt;text-align:justify;"># <strong><strong>dialog --title "</strong></strong><strong><strong>标题</strong></strong><strong><strong>" </strong></strong><strong><span style="color:#ff0000;"><strong>--msgbox</strong></span></strong><strong><strong> "</strong></strong><strong><strong>这是文本内容~</strong></strong><strong><strong>" 10 25</strong></strong></p>
<p style="margin-left:.0001pt;text-align:justify;"><a href="http://img.e-com-net.com/image/info8/5603f6a6c02f422f88d7b888da5fbf01.jpg" target="_blank"><img alt="❀dialog命令运用于linux❀_第1张图片" height="188" src="http://img.e-com-net.com/image/info8/5603f6a6c02f422f88d7b888da5fbf01.jpg" width="252" style="border:1px solid black;"></a></p>
<h3 id="yesno%E9%83%A8%E4%BB%B6%EF%BC%88yesno%E6%A1%86%EF%BC%89" style="text-align:justify;"><strong>yesno部件</strong><strong>(yesno框)</strong></h3>
<p style="margin-left:.0001pt;text-align:justify;">yesno部件进一步扩展了msgbox部件的功能,允许用户对窗口中显示的问题选择yes或no。它会在窗口底部生成两个按钮:一个是Yes,一个是No。用户可以用鼠标、制表符键或者键盘方向键来切换按钮。要选择按钮的话,用户可以按下<strong><strong>空格键</strong></strong>或者<strong><strong>回车键</strong></strong>。</p>
<p style="margin-left:.0001pt;text-align:justify;">如果用户<strong>选择了No按钮,退出状态码是1</strong>;如果选择了<strong>Yes按钮,退出状态码就是0</strong>。</p>
<p style="margin-left:.0001pt;text-align:justify;"># <strong><strong>dialog --title "</strong></strong><strong><strong>标题</strong></strong><strong><strong>" </strong></strong><strong><span style="color:#ff0000;"><strong>--yesno</strong></span></strong><strong><strong> "</strong></strong><strong><strong>yes还是no?</strong></strong><strong><strong>" 10 25</strong></strong><strong><strong>;</strong></strong><strong><strong>echo $?</strong></strong></p>
<p style="margin-left:.0001pt;text-align:justify;"><a href="http://img.e-com-net.com/image/info8/d113dd9c24324f93affbf10fe22e2032.jpg" target="_blank"><img alt="❀dialog命令运用于linux❀_第2张图片" height="211" src="http://img.e-com-net.com/image/info8/d113dd9c24324f93affbf10fe22e2032.jpg" width="257" style="border:1px solid black;"></a></p>
<p style="margin-left:.0001pt;text-align:justify;">选择<strong><strong>no</strong></strong>退出状态码是<strong><strong>1:</strong></strong><img alt="" height="24" src="http://img.e-com-net.com/image/info8/344e04b4ec034eb0a187f0e8f3b71c24.jpg" width="49"></p>
<p style="margin-left:.0001pt;text-align:justify;">选择<strong><strong>yes</strong></strong>退出状态码是<strong><strong>0:</strong></strong><img alt="" height="31" src="http://img.e-com-net.com/image/info8/496de6af70cb4cdfaa592872856a0446.jpg" width="44"></p>
<h3 id="inputbox%E9%83%A8%E4%BB%B6%EF%BC%88%E8%BE%93%E5%85%A5%E6%96%87%E6%9C%AC%E6%A1%86%EF%BC%89" style="text-align:justify;"><strong>inputbox部件</strong><strong>(输入文本框)</strong></h3>
<p style="margin-left:.0001pt;text-align:justify;">inputbox部件为用户提供了一个简单的文本框区域来输入文本字符串。 dialog命令会将文本字符串的值发给STDERR。你必须重定向STDERR来获取用户输入。</p>
<p style="margin-left:.0001pt;text-align:justify;">inputbox提供了两个按钮: OK和Cancel。如果选择了OK按钮,命令的退出状态码就是0;反之,退出状态码就会是1。</p>
<p style="margin-left:.0001pt;text-align:justify;"><strong><strong># </strong></strong><strong><strong>dialog </strong></strong><strong><span style="color:#ff0000;"><strong>--inputbox</strong></span></strong><strong><strong> "Enter your age:" 10 25 2>age.txt</strong></strong><strong><strong>;</strong></strong><strong><strong>echo $?</strong></strong></p>
<p style="margin-left:.0001pt;text-align:justify;"><strong><strong># </strong></strong><strong><strong>cat age.txt</strong></strong></p>
<p style="margin-left:.0001pt;text-align:justify;"><strong><strong>21</strong></strong></p>
<p style="margin-left:.0001pt;text-align:justify;"><a href="http://img.e-com-net.com/image/info8/5ebda87484594645a456ab3475c0c0b7.jpg" target="_blank"><img alt="❀dialog命令运用于linux❀_第3张图片" height="256" src="http://img.e-com-net.com/image/info8/5ebda87484594645a456ab3475c0c0b7.jpg" width="554" style="border:1px solid black;"></a></p>
<p style="margin-left:.0001pt;text-align:justify;">还可以直接在前面加一个参数<strong><span style="color:#fe2c24;">--stdout</span></strong>,直接<strong>改为正常输出流</strong>,可以使用变量获dialog命令的执行结果:</p>
<p style="margin-left:.0001pt;text-align:justify;">#<strong><strong> dialog</strong></strong><strong><span style="color:#ff0000;"><strong> --stdout --inputbox</strong></span></strong><strong><strong> "Enter your age:" 10 25 >age1.txt;echo $?</strong></strong></p>
<p style="margin-left:.0001pt;text-align:justify;"><strong><strong># </strong></strong><strong><strong>cat age</strong></strong><strong><strong>1</strong></strong><strong><strong>.txt</strong></strong></p>
<p style="margin-left:.0001pt;text-align:justify;"><strong><strong>23</strong></strong></p>
<p style="margin-left:.0001pt;text-align:justify;"><a href="http://img.e-com-net.com/image/info8/bab8b80f336f4ba9a4c5be895408004b.jpg" target="_blank"><img alt="❀dialog命令运用于linux❀_第4张图片" height="265" src="http://img.e-com-net.com/image/info8/bab8b80f336f4ba9a4c5be895408004b.jpg" width="554" style="border:1px solid black;"></a></p>
<h3 id="textbox%E9%83%A8%E4%BB%B6%EF%BC%88%E6%96%87%E6%9C%AC%E6%A1%86%EF%BC%89" style="text-align:justify;"><strong>textbox部件(文本框)</strong></h3>
<p style="margin-left:.0001pt;text-align:justify;">textbox部件是在窗口中<strong><strong>显示大量信息</strong></strong>的极佳办法。它会生成一个滚动窗口来显示由参数所指定的文件中的文本。</p>
<p style="margin-left:.0001pt;text-align:justify;"># <strong><strong>dialog </strong></strong><strong><span style="color:#ff0000;"><strong>--textbox</strong></span></strong><strong><strong> /etc/passwd 15 45</strong></strong></p>
<p style="margin-left:.0001pt;text-align:justify;"><a href="http://img.e-com-net.com/image/info8/91d4b0228ff4420496627c1ad2e33126.png" target="_blank"><img alt="❀dialog命令运用于linux❀_第5张图片" height="274" src="http://img.e-com-net.com/image/info8/91d4b0228ff4420496627c1ad2e33126.png" width="402" style="border:1px solid black;"></a></p>
<h3 id="menu%E9%83%A8%E4%BB%B6%EF%BC%88%E8%8F%9C%E5%8D%95%E6%A1%86%EF%BC%89" style="text-align:justify;"><strong>menu部件(菜单框)</strong></h3>
<p style="margin-left:.0001pt;text-align:justify;">#<strong> </strong><strong><strong>dialog </strong></strong><strong><span style="color:#ff0000;"><strong>--menu</strong></span></strong><strong><strong> "Sys Admin Menu" 20 30 10 </strong></strong><strong><span style="background-color:#ffff00;"><strong>1 "Display disk space"</strong></span></strong><strong> </strong><strong><span style="background-color:#ffff00;"><strong>2 "Display users"</strong></span></strong><strong> </strong><strong><span style="background-color:#ffff00;"><strong>3 "Display memory usage"</strong></span></strong><strong> </strong><strong><span style="background-color:#ffff00;"><strong>4 "Exit"</strong></span></strong><strong><strong> 2> test.txt</strong></strong></p>
<p style="margin-left:.0001pt;text-align:justify;"><a href="http://img.e-com-net.com/image/info8/4bd03153746a467abb0dcf53ae8f9080.jpg" target="_blank"><img alt="❀dialog命令运用于linux❀_第6张图片" height="215" src="http://img.e-com-net.com/image/info8/4bd03153746a467abb0dcf53ae8f9080.jpg" width="198" style="border:1px solid black;"></a></p>
<h3 id="fselect%E9%83%A8%E4%BB%B6%EF%BC%88%E6%96%87%E4%BB%B6%E9%80%89%E6%A1%86%EF%BC%89" style="text-align:justify;"><strong>fselect部件(文件选框)</strong></h3>
<p style="margin-left:.0001pt;text-align:justify;">fselect部件在<strong><strong>处理文件名</strong></strong>时非常方便。不用强制用户键入文件名,你就可以用fselect部件来浏览文件的位置并选择文件。</p>
<p style="margin-left:.0001pt;text-align:justify;">fselect选项后的第一个参数是窗口中使用的起始目录位置。 fselect部件窗口由<strong><strong>左侧的目录列表</strong></strong>、<strong><strong>右侧的文件列表</strong></strong>。</p>
<p style="margin-left:.0001pt;text-align:justify;"># <strong><strong>dialog </strong></strong><strong><span style="color:#ff0000;"><strong>--title</strong></span></strong><strong><strong> "Select a file" </strong></strong><strong><span style="color:#ff0000;"><strong>--fselect</strong></span></strong><strong><strong> $HOME/ 10 50 2>file.txt</strong></strong></p>
<p style="margin-left:.0001pt;text-align:justify;"><a href="http://img.e-com-net.com/image/info8/d648048584274c77b68d7c7b8a3b6304.jpg" target="_blank"><img alt="❀dialog命令运用于linux❀_第7张图片" height="264" src="http://img.e-com-net.com/image/info8/d648048584274c77b68d7c7b8a3b6304.jpg" width="335" style="border:1px solid black;"></a></p>
<h3 id="passwordbox%E9%83%A8%E4%BB%B6%EF%BC%88%E5%AF%86%E7%A0%81%E6%A1%86%EF%BC%89" style="text-align:justify;"><strong>passwordbox部件(密码框)</strong></h3>
<p style="margin-left:.0001pt;text-align:justify;">格式: dialog --passwordbox text height width [init]</p>
<p style="margin-left:.0001pt;text-align:justify;">#<strong><strong> dialog --title "Password" </strong></strong><strong><span style="color:#ff0000;"><strong> --passwordbox</strong></span></strong><strong><strong> "Please give a password for the new user:" 10 35</strong></strong></p>
<p style="margin-left:.0001pt;text-align:justify;"><a href="http://img.e-com-net.com/image/info8/9e2607ae6f5e497d9556a19707fcc9b4.jpg" target="_blank"><img alt="❀dialog命令运用于linux❀_第8张图片" height="177" src="http://img.e-com-net.com/image/info8/9e2607ae6f5e497d9556a19707fcc9b4.jpg" width="287" style="border:1px solid black;"></a></p>
<p style="margin-left:.0001pt;text-align:justify;">这样我们的密码就暴露出来了,是不是很不安全,所以通常我们会加上一个安全选项</p>
<p style="margin-left:.0001pt;text-align:justify;"><strong><span style="color:#ff0000;"><strong>--insecure</strong></span></strong>将每个字符用*来显示出来</p>
<p style="margin-left:.0001pt;text-align:justify;"># <strong><strong>dialog --title "Password" </strong></strong><strong><span style="color:#ff0000;"><strong>--insecure</strong></span></strong><strong><strong> --passwordbox "Please give a password for the new user:" 10 30</strong></strong></p>
<p style="margin-left:.0001pt;text-align:justify;"><a href="http://img.e-com-net.com/image/info8/7a5bebec9a884e6396d41cef963dcf08.jpg" target="_blank"><img alt="❀dialog命令运用于linux❀_第9张图片" height="200" src="http://img.e-com-net.com/image/info8/7a5bebec9a884e6396d41cef963dcf08.jpg" width="291" style="border:1px solid black;"></a></p>
<h3 id="checklist%E9%83%A8%E4%BB%B6%EF%BC%88%E5%A4%8D%E9%80%89%E6%A1%86%EF%BC%89" style="text-align:justify;"><strong>checklist部件(复选框)</strong></h3>
<p style="margin-left:.0001pt;text-align:justify;">格式:dialog --checklist "Test" height width menu-height tag1 item1 tag2 item2 …</p>
<p style="margin-left:.0001pt;text-align:justify;">例子:</p>
<p style="margin-left:.0001pt;text-align:justify;">#<strong><strong> dialog --stdout --backtitle "Checklist" </strong></strong><strong><span style="color:#ff0000;"><strong>--checklist</strong></span></strong><strong><strong> "Test" 20 50 10<span style="background-color:#ffd900;"> Memory Memory_Size 1</span> <span style="background-color:#ffd900;">Dsik Disk_Size 2</span></strong></strong></p>
<p style="margin-left:.0001pt;text-align:justify;"><a href="http://img.e-com-net.com/image/info8/0903194924ea4a908f3e7790eea909e2.jpg" target="_blank"><img alt="❀dialog命令运用于linux❀_第10张图片" height="247" src="http://img.e-com-net.com/image/info8/0903194924ea4a908f3e7790eea909e2.jpg" width="554" style="border:1px solid black;"></a></p>
<h3 id="calendar%E9%83%A8%E4%BB%B6%EF%BC%88%E6%98%BE%E7%A4%BA%E6%97%A5%E5%8E%86%EF%BC%89" style="text-align:justify;"><strong>calendar部件(显示日历)</strong></h3>
<p style="margin-left:.0001pt;text-align:justify;">格式:dialog --calendar "Date" height width day month year</p>
<p style="margin-left:.0001pt;text-align:justify;">例子:</p>
<p style="margin-left:.0001pt;text-align:justify;">#<strong><strong> dialog --title "Calendar"</strong></strong><strong><span style="color:#ff0000;"><strong> --calendar</strong></span></strong><strong><strong> "Date" 5 50 </strong></strong>#显示<strong><strong>当前</strong></strong>日期</p>
<p style="margin-left:.0001pt;text-align:justify;"><a href="http://img.e-com-net.com/image/info8/bffa97bc555842ceb844cef83ec30ad0.jpg" target="_blank"><img alt="❀dialog命令运用于linux❀_第11张图片" height="281" src="http://img.e-com-net.com/image/info8/bffa97bc555842ceb844cef83ec30ad0.jpg" width="332" style="border:1px solid black;"></a><br> #<strong><strong> dialog --title "Calendar"</strong></strong><strong><span style="color:#ff0000;"><strong> --calendar </strong></span></strong><strong><strong>"Date" 5 50 </strong></strong><strong><span style="color:#ff0000;"><strong>1 2 2013</strong></span></strong><strong> </strong>#显示<strong><strong>指定</strong></strong>日期</p>
<p style="margin-left:.0001pt;text-align:justify;"><a href="http://img.e-com-net.com/image/info8/0b3e007242084651843cc211c839a7df.jpg" target="_blank"><img alt="❀dialog命令运用于linux❀_第12张图片" height="284" src="http://img.e-com-net.com/image/info8/0b3e007242084651843cc211c839a7df.jpg" width="359" style="border:1px solid black;"></a></p>
<h3 id="gauge%E9%83%A8%E4%BB%B6%EF%BC%88%E8%BF%9B%E5%BA%A6%E6%A1%86%E6%9E%B6%EF%BC%89" style="background-color:transparent;text-align:justify;"><strong>gauge部件(进度框架)</strong></h3>
<p style="margin-left:.0001pt;text-align:justify;">格式:dialog --gauge text height width [<percent>]</p>
<p style="margin-left:.0001pt;text-align:justify;">例子:</p>
<p style="margin-left:.0001pt;text-align:justify;">#<strong><strong>dialog --title "installation pro"</strong></strong><strong><span style="color:#ff0000;"><strong> --gauge</strong></span></strong><strong><strong> "installation" 10 30 10 </strong></strong>#固定进度显示</p>
<p style="margin-left:.0001pt;text-align:justify;"><a href="http://img.e-com-net.com/image/info8/54310b68b25649bd9841b2aa99da7ce8.jpg" target="_blank"><img alt="❀dialog命令运用于linux❀_第13张图片" height="209" src="http://img.e-com-net.com/image/info8/54310b68b25649bd9841b2aa99da7ce8.jpg" width="333" style="border:1px solid black;"></a></p>
<p style="margin-left:.0001pt;text-align:justify;">#<strong><strong>for i in {1..100} ;do echo $i;done | dialog --title "installation pro"</strong></strong><strong><span style="color:#ff0000;"><strong> --gauge</strong></span></strong><strong><strong> "installation" 10 30</strong></strong><strong> </strong>#实时动度进度</p>
<p style="margin-left:.0001pt;text-align:justify;"><strong><strong>编辑一个</strong></strong><strong><span style="background-color:#ffff00;"><strong>gauge.sh 的脚本</strong></span></strong><strong><strong>,</strong></strong><strong><strong>内容如下:</strong></strong> </p>
<pre><code class="language-bash">#!/bin/bash # 指定脚本使用的解释器为 Bash
declare -i PERCENT=0 #定义一个整型变量 PERCENT 并初始化为 0
( #开始一个子 shell
for I in /etc/*;do #遍历 /etc 目录下的所有文件
if [ $PERCENT -le 100 ];then #如果进度条未达到 100%,则执行以下命令
cp -r $I /tmp/test 2> /dev/null#将当前文件复制到 `/tmp/test` 目录中,忽略错误信息
echo "XXX" #输出分隔符
echo "Copy the file $I ..." #输出正在复制的文件名
echo "XXX" #输出分隔符
echo $PERCENT #输出当前进度百分比
fi
let PERCENT+=1 # 将进度百分比加 1
sleep 0.1 #等待 0.1 秒
done #结束循环
) | dialog --title "coping" --gauge "starting to copy files..." 6 50 0
# ) 结束子 shell
# | 将子 shell 的输出传递给下一个命令
#显示进度条对话框,标题为 "coping",提示信息为 "starting to copy files...",大小为 6 行 50 列,初始进度为 0</code></pre>
<p style="margin-left:.0001pt;text-align:justify;"><a href="http://img.e-com-net.com/image/info8/9c4bd2f69f8748a5ad5f619a3f5372c2.jpg" target="_blank"><img alt="❀dialog命令运用于linux❀_第14张图片" height="150" src="http://img.e-com-net.com/image/info8/9c4bd2f69f8748a5ad5f619a3f5372c2.jpg" width="554" style="border:1px solid black;"></a></p>
<h3 id="form%E9%83%A8%E4%BB%B6%EF%BC%88%E8%A1%A8%E5%8D%95%EF%BC%89" style="margin-left:.0001pt;text-align:justify;"><strong>form部件(表单)</strong></h3>
<p style="margin-left:.0001pt;text-align:justify;">格式:dialog --form text height width formheight [ label y x item y x flen ilen ] ...其中 flen 表示field length,定义了:选定字段中显示的长度 ilen 表示 input-length, 定义了:在外地输入的数据允许的长度 使用up/down(或ctrl/ N,ctrl/ P)在使用领域之间移动。使用tab键在窗口之间切换。</p>
<p style="margin-left:.0001pt;text-align:justify;">例子:</p>
<p style="margin-left:.0001pt;text-align:justify;">#<strong><strong> dialog --title "Add a user" </strong></strong><strong><span style="color:#ff0000;"><strong>--form</strong></span></strong><strong><strong> "Please input the infomation of new user:" 12 40 4 </strong></strong><strong><span style="background-color:#ffff00;"><strong>"Username:" 1 1 "" 1 </strong></span></strong><strong><strong>15 15 0 </strong></strong><strong> </strong><strong><span style="background-color:#ffff00;"><strong>"Full name:" 2 1 "" 2 </strong></span></strong><strong><strong> 15 15 0</strong></strong><strong> </strong><strong><span style="background-color:#ffff00;"><strong>"Home Dir:" 3 1 "" 3 </strong></span></strong><strong><strong> 15 15 0 </strong></strong><strong><span style="background-color:#ffff00;"><strong>"Shell:" 4 1 "" 4 </strong></span></strong><strong><strong>15 15 0 </strong></strong></p>
<p style="margin-left:.0001pt;text-align:justify;"><a href="http://img.e-com-net.com/image/info8/a257554e67604ac992bf553ed29bf559.jpg" target="_blank"><img alt="❀dialog命令运用于linux❀_第15张图片" height="204" src="http://img.e-com-net.com/image/info8/a257554e67604ac992bf553ed29bf559.jpg" width="339" style="border:1px solid black;"></a></p>
<p style="margin-left:.0001pt;text-align:justify;">1)dialog启动时会先去检查是否设置了DIALOGRC环境变量,该变量会保存配置文件名信息。如果未设置该变量或未找到该文件,它会将$HOME/.dialogrc作为配置文件。如果这个文件还不存在的话,就尝试查找编译时指定的GLOBALRC文件,也就是/etc/dialogrc。如果这个文件也不存在的话,就用编译时的默认值。</p>
<p style="margin-left:.0001pt;text-align:justify;">2)--backtitle选项是为脚本中的菜单创建公共标题的简便办法。如果你为每个对话窗口都指定了该选项,那么它在你的应用中就会保持一致,这样会让脚本看起来更专业。</p>
<h3 id="%E7%BB%BC%E5%90%88%E5%BA%94%E7%94%A8%E7%A4%BA%E4%BE%8B%EF%BC%9A" style="margin-left:.0001pt;text-align:justify;">综合应用示例</h3>
<pre><code class="language-bash">#!/bin/bash
yesno() {
dialog --title "First screen" --backtitle "Test Program" --clear --yesno \
"Start this test program or not ? \nThis decesion have to make by you. " 16 51
# yes is 0, no is 1 , esc is 255
result=$?
if [ $result -eq 1 ] ; then
exit 1;
elif [ $result -eq 255 ]; then
exit 255;
fi
username
}
username() {
cat /dev/null >/tmp/test.username
dialog --title "Second screen" --backtitle "Test Program" --clear --inputbox \
"Please input your username (default: hello) " 16 51 "hello" 2>/tmp/test.username
result=$?
if [ $result -eq 1 ] ; then
yesno
elif [ $result -eq 255 ]; then
exit 255;
fi
password
}
password() {
cat /dev/null >/tmp/test.password
dialog --insecure --title "Third screen" --backtitle "Test Program" --clear --passwordbox \
"Please input your password (default: 123456) " 16 51 "123456" 2>/tmp/test.password
result=$?
if [ $result -eq 1 ] ; then
username
elif [ $result -eq 255 ]; then
exit 255;
fi
occupation
}
occupation() {
cat /dev/null >/tmp/test.occupation
dialog --title "Forth screen" --backtitle "Test Program" --clear --menu \
"Please choose your occupation: (default: IT)" 16 51 3 \
IT "The worst occupation" \
CEO "The best occupation" \
Teacher "Not the best or worst" 2>/tmp/test.occupation
result=$?
if [ $result -eq 1 ] ; then
password
elif [ $result -eq 255 ]; then
exit 255;
fi
finish
}
finish() {
dialog --title "Fifth screen" --backtitle "Test Program" --clear --msgbox \
"Congratulations! The test program has finished!\n Username: $(cat /tmp/test.username)\n Password: $(cat /tmp/test.password)\n Occupation: $(cat /tmp/test.occupation)" 16 51
result=$?
if [ $result -eq 1 ] ; then
occupation
elif [ $result -eq 255 ]; then
exit 255;
fi
}
yesno</code></pre>
<h3 style="text-align:justify;"></h3>
</div>
</div>
</div>
</div>
</div>
<!--PC和WAP自适应版-->
<div id="SOHUCS" sid="1731794803626160128"></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学习笔记:),linux,服务器,运维,学习,安全)</h4>
<div id="paradigm-article-related">
<div class="recommend-post mb30">
<ul class="widget-links">
<li><a href="/article/1897197261310455808.htm"
title="Spring Boot中的策略模式:如何基于ID灵活选择服务类?" target="_blank">Spring Boot中的策略模式:如何基于ID灵活选择服务类?</a>
<span class="text-muted">墨瑾轩</span>
<a class="tag" taget="_blank" href="/search/%E4%B8%80%E8%B5%B7%E5%AD%A6%E5%AD%A6Java%E3%80%90%E4%B8%80%E3%80%91/1.htm">一起学学Java【一】</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E7%AD%96%E7%95%A5%E6%A8%A1%E5%BC%8F/1.htm">策略模式</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a>
<div>关注墨瑾轩,带你探索编程的奥秘!超萌技术攻略,轻松晋级编程高手技术宝库已备好,就等你来挖掘订阅墨瑾轩,智趣学习不孤单即刻启航,编程之旅更有趣SpringBoot中的策略模式:如何基于ID灵活选择服务类?在软件开发中,策略模式是一种行为设计模式,它使你能够在运行时更改算法或行为。在SpringBoot应用中,通过策略模式实现基于某种条件(如ID)来动态选择不同的服务类,可以使代码更加灵活和可维护。本</div>
</li>
<li><a href="/article/1897196501206102016.htm"
title="Rust入门学习笔记" target="_blank">Rust入门学习笔记</a>
<span class="text-muted">凌云行者</span>
<a class="tag" taget="_blank" href="/search/Rust/1.htm">Rust</a><a class="tag" taget="_blank" href="/search/rust/1.htm">rust</a><a class="tag" taget="_blank" href="/search/%E5%85%A5%E9%97%A8%E7%AC%94%E8%AE%B0/1.htm">入门笔记</a>
<div>Rust简介特点即安全又高效,并发是一种静态编译语言,要在写代码时声明数据类型擅长领域高性能WebServiceWebAssembly命令行工具网络编程嵌入式设备系统编程操作更新rust:rustupupdate卸载rust:rustupselfuninstall查看rust版本:rustc--version查看本地文档:rustupdoc用vscode打开某项目:进入项目目录后code.文件名后</div>
</li>
<li><a href="/article/1897195868897996800.htm"
title="Node.js——fs模块-文件删除" target="_blank">Node.js——fs模块-文件删除</a>
<span class="text-muted">Fan_web</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E5%AD%A6%E4%B9%A0%E5%88%86%E4%BA%AB/1.htm">前端学习分享</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
<div>1、在Node.js中,我们可以使用unlink或unlinkSync来删除文件。2、语法:fs.unlink(path,callback)fs.unlinkSync(path)参数说明:path文件路径callback操作后的回调函数本文的分享到此结束,欢迎大家评论区一同讨论学习,下一篇继续分享Node.js的fs模块进行文件夹操作的学习。</div>
</li>
<li><a href="/article/1897195742473285632.htm"
title="Node.js——fs模块-文件读取" target="_blank">Node.js——fs模块-文件读取</a>
<span class="text-muted">Fan_web</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E5%AD%A6%E4%B9%A0%E5%88%86%E4%BA%AB/1.htm">前端学习分享</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
<div>1、文件读取:通过程序从文件中去除其中的数据2、方法方法说明readFile异步读取readFileSync同步读取createReadStrean流式读取3、readFile异步读取语法:本文的分享到此结束,欢迎大家评论区一同讨论学习,下一篇继续分享Node.js的fs模块进行文件读取应用场景的学习。</div>
</li>
<li><a href="/article/1897195364482609152.htm"
title="GitLab 密钥详解:如何安全地使用 SSH 密钥进行身份验证" target="_blank">GitLab 密钥详解:如何安全地使用 SSH 密钥进行身份验证</a>
<span class="text-muted">Crazy learner</span>
<a class="tag" taget="_blank" href="/search/Linux%E5%9F%BA%E6%9C%AC%E5%91%BD%E4%BB%A4/1.htm">Linux基本命令</a><a class="tag" taget="_blank" href="/search/gitlab/1.htm">gitlab</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/ssh/1.htm">ssh</a>
<div>目录一、什么是GitLabSSH密钥?二、为什么要使用SSH密钥?三、如何生成SSH密钥?1.Linux/macOS2.Windows四、将公钥添加到GitLab五、配置SSH客户端六、常见问题及解决方案七、总结GitLab是一个功能强大的Git仓库管理平台,它支持通过SSH密钥进行身份验证,提供了比传统的用户名和密码登录方式更安全的认证机制。本文将深入探讨GitLab的SSH密钥,包括如何生成、</div>
</li>
<li><a href="/article/1897194984478666752.htm"
title="数据分类分级:如何用AI自动打标签(附Python代码示例)" target="_blank">数据分类分级:如何用AI自动打标签(附Python代码示例)</a>
<span class="text-muted">活力板蓝根</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%B2%BB%E7%90%86/1.htm">数据治理</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E7%B1%BB/1.htm">分类</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
<div>数据分类分级:如何用AI自动打标签(附Python代码示例)1.引言在当今数字化时代,数据的安全管理变得越来越重要。数据分类分级不仅是合规要求,更是保护核心资产的重要手段。然而,随着数据量的激增,传统的人工分类方式已经难以应对这个问题。本文将介绍如何利用AI技术实现数据的自动分类分级。希望大家享用愉快!2.技术方案概述2.1问题定义目标:将数据按照敏感度(公开、内部、机密)和业务类型(财务、人事、</div>
</li>
<li><a href="/article/1897193722777497600.htm"
title="Node.js学习分享(上)" target="_blank">Node.js学习分享(上)</a>
<span class="text-muted">miraculous111</span>
<a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a>
<div>Node.jsfs文件系统模块fs.readFile()fs.writeFile()path路径模块路径拼接path.join()获取路径中的文件名path.basename()的语法格式获取路径中的文件扩展名path.extname()的语法格式http模块服务器相关概念IP地址域名和域名服务器端口号创建最基本的web服务器创建web服务器的基本步骤request请求对象解决中文乱码问题根据不同</div>
</li>
<li><a href="/article/1897193596487004160.htm"
title="jQuery学习笔记:属性操作、内容文本值、元素操作、尺寸、位置操作、事件注册与处理、对象拷贝(浅拷贝与深拷贝)、多库共存问题" target="_blank">jQuery学习笔记:属性操作、内容文本值、元素操作、尺寸、位置操作、事件注册与处理、对象拷贝(浅拷贝与深拷贝)、多库共存问题</a>
<span class="text-muted">miraculous111</span>
<a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
<div>文章目录jQuery属性操作设置或获取元素固有属性值prop()设置或者获取自定义属性值attr()数据缓存data()jQuery内容文本值普通元素内容html()(相当于原生innerHTML)普通元素文本内容text()(相当于原生innerText)表单的val()jQuery元素操作遍历元素语法一:语法二:创建元素添加元素内部添加外部添加删除元素jQuery尺寸、位置操作jQuery尺寸</div>
</li>
<li><a href="/article/1897193092591710208.htm"
title="基于K8S设计实现机器学习管理调度平台" target="_blank">基于K8S设计实现机器学习管理调度平台</a>
<span class="text-muted">richenlin</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a>
<div>设计和实现一套基于Kubernetes(K8s)的机器学习管理调度平台,目标是利用K8s的容器化和调度能力,提供高效的资源管理、任务调度、可扩展性及灵活性,适应机器学习(ML)训练、推理等不同场景的需求。以下是平台设计的主要模块和实施步骤:1.系统架构概述该平台需要一个多层架构,其中K8s作为底层容器调度和资源管理平台,机器学习任务管理与调度层作为平台的核心模块。平台应具备高可用、弹性伸缩、任务监</div>
</li>
<li><a href="/article/1897193045414178816.htm"
title="基于 MySQL 8.0 细粒度授权:单独授予 KILL 权限的优雅解决方案" target="_blank">基于 MySQL 8.0 细粒度授权:单独授予 KILL 权限的优雅解决方案</a>
<span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93mysql/1.htm">数据库mysql</a>
<div>基于MySQL8.0细粒度授权:单独授予KILL权限的优雅解决方案一、引言作为一名数据库从业者,我在日常工作中经常会遇到一个棘手的问题:如何在保证安全的前提下,让业务团队拥有足够的权限去管理数据库执行的SQL,尤其是终止那些失控的慢查询或异常线程?这个问题看似简单,却牵涉到权限设计、安全合规以及数据库稳定性等多方面的权衡。今天,我们就来聊聊MySQL8.0如何通过权限体系的革新,特别是对KILL权</div>
</li>
<li><a href="/article/1897191454091046912.htm"
title="LKT4202UGM新一代安全认证加密芯片,守护联网设备和服务安全" target="_blank">LKT4202UGM新一代安全认证加密芯片,守护联网设备和服务安全</a>
<span class="text-muted">Zero_Era</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E7%89%A9%E8%81%94%E7%BD%91/1.htm">物联网</a>
<div>LKT4202UGM是提供身份验证、机密性和平台完整性服务的安全元件产品,可保护原始设备制造商免受克隆、伪造、恶意软件注入和未经授权生产的侵害。LKT安全元件经过最为严格的安全认证,可提供一站式解决方案。为满足市场对LKT产品的需求,凌科芯安也在不断更新迭代LKT系列的产品。LKT4202UGM芯片作为新一代安全认证加密芯片,可为本地或远程主机提供身份验证和安全数据管理服务,还提供哈希、加密和解密</div>
</li>
<li><a href="/article/1897190823724904448.htm"
title="【python数据挖掘之numpy】-数组及对象属性和数据转换" target="_blank">【python数据挖掘之numpy】-数组及对象属性和数据转换</a>
<span class="text-muted">sc.溯琛</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</a><a class="tag" taget="_blank" href="/search/numpy/1.htm">numpy</a>
<div>Numpy是一个Python库,用于处理多维数组和矩阵,以及针对这些数组执行数学运算的函数。它提供了高效的数组对象和相关的操作,可以用于快速处理大量数据。Numpy的主要功能包括:创建数组、数组运算、数组索引和切片、线性代数、随机数生成等。Numpy在科学计算、数据分析、机器学习等领域都广泛应用。tips:(本博文在jupyter中实训)目录一、创建数组对象1.array()函数来创建数组的对象2</div>
</li>
<li><a href="/article/1897190697136615424.htm"
title="【前端】Node.js使用教程" target="_blank">【前端】Node.js使用教程</a>
<span class="text-muted">m0_74825172</span>
<a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF/1.htm">学习路线</a><a class="tag" taget="_blank" href="/search/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4/1.htm">阿里巴巴</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/vim/1.htm">vim</a>
<div>目录一、?Node.js开发环境和编译1.1安装Node.js1.2创建一个Node.js项目1.3编写Node.js程序1.4运行Node.js程序1.5使用Node.js模块二、高级的Node.js编程概念和示例2.1异步编程2.2错误处理2.3网络请求2.4构建Web服务器2.5数据库交互三、Node.js开发中重要方面和概念3.1环境变量和配置文件3.1.1使用环境变量3.1.2使用配置文</div>
</li>
<li><a href="/article/1897189432759480320.htm"
title="赋能农业数字化转型 用DeepSeek大模型开启智慧农业新纪元" target="_blank">赋能农业数字化转型 用DeepSeek大模型开启智慧农业新纪元</a>
<span class="text-muted">jingwang-cs</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%90%8E%E7%AB%AF/1.htm">人工智能后端</a>
<div>赋能农业数字化转型用DeepSeek大模型开启智慧农业新纪元当农业遇见DeepSeek大模型:从经验驱动到数据智能的跨越传统农业依赖“看天吃饭”,而「智慧农业」平台依托公司自主研发的农业大模型,深度融合DeepSeek前沿AI技术,构建“数据-模型-决策”全链路智能服务体系。通过深度学习历史种植数据、气象信息、土壤墒情等多维农业要素,平台可精准预测病虫害风险、产量波动及市场趋势,为农户提供科学种植</div>
</li>
<li><a href="/article/1897184892098244608.htm"
title="【数据分析之道-NumPy(二)】多种方式创建数组_创建一个3行4列的二维数组(1)" target="_blank">【数据分析之道-NumPy(二)】多种方式创建数组_创建一个3行4列的二维数组(1)</a>
<span class="text-muted">2401_84159839</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a><a class="tag" taget="_blank" href="/search/numpy/1.htm">numpy</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</a>
<div>专栏导读✍作者简介:i阿极,CSDNPython领域新星创作者,专注于分享python领域知识。✍本文录入于《数据分析之道》,本专栏针对大学生、初级数据分析工程师精心打造,对python基础知识点逐一击破,不断学习,提升自我。✍订阅后,可以阅读《数据分析之道》中全部文章内容,包含python基础语法、数据结构和文件操作,科学计算,实现文件内容操作,实现数据可视化等等。✍还可以订阅进阶篇《数据分析之</div>
</li>
<li><a href="/article/1897184514048847872.htm"
title="三次握手内部实现原理" target="_blank">三次握手内部实现原理</a>
<span class="text-muted">yourkin666</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
<div>socket()创建一个新的套接字intsocket(intdomain,inttype,intprotocol);参数:domain:地址族,如AF_INET(IPv4),AF_INET6(IPv6)type:套接字类型,如SOCK_STREAM(TCP),SOCK_DGRAM(UDP)protocol:协议类型,通常为0(默认协议)返回值:成功返回套接字描述符,失败返回-1Linux操作系统流</div>
</li>
<li><a href="/article/1897180860831035392.htm"
title="K8S学习之基础十:初始化容器和主容器" target="_blank">K8S学习之基础十:初始化容器和主容器</a>
<span class="text-muted">云上艺旅</span>
<a class="tag" taget="_blank" href="/search/K8S%E5%AD%A6%E4%B9%A0/1.htm">K8S学习</a><a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a>
<div>init容器和主容器init容器和主容器的区别初始化容器不支持Readinessprobe,因为他们必须在pod就绪之前运行完成每个init容器必须运行成功,下一个才能够运行#定义两个初始化容器,完成后再运行主容器vipod-init.yamlapiVersion:v1kind:Podmetadata:name:myapp-podlabels:app:myappspec:initContainer</div>
</li>
<li><a href="/article/1897179471480418304.htm"
title="解锁 ES6 访问器属性 Getter & Setter" target="_blank">解锁 ES6 访问器属性 Getter & Setter</a>
<span class="text-muted">代码里的小猫咪</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E8%AE%BF%E9%97%AE%E5%99%A8%E5%B1%9E%E6%80%A7/1.htm">访问器属性</a><a class="tag" taget="_blank" href="/search/Getter/1.htm">Getter</a><a class="tag" taget="_blank" href="/search/Setter/1.htm">Setter</a>
<div>在JavaScriptES6及其后续版本中,可以使用访问器属性(AccessorProperties)来定义getter和setter,从而拦截对象属性的访问和赋值。这种机制不仅提供了更灵活的属性管理方式,还能增强数据的封装性和安全性。1.访问器属性(Getters和Setters)在ES6的class语法中,可以使用get和set关键字定义访问器属性,这样可以像访问普通属性一样调用方法,而不需要</div>
</li>
<li><a href="/article/1897177452774486016.htm"
title="服务器托管主要的应用场景" target="_blank">服务器托管主要的应用场景</a>
<span class="text-muted">wanhengidc</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/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
<div>随着科学技术的不断发展,大多数的企业都会选择服务器托管和服务器租用两种服务,服务器托管主要是负责服务器的物理管理、安全保障和日常维护等工作,而服务器租用则不需要企业自行购买服务器硬件设备,下面,主要来探讨一下服务器托管的应用场景都有哪些!对于需要处理大量数据信息的企业来说,服务器托管服务能够为其提供高性能的计算资源和可扩展的网络基础设施,可以让企业高效的处理数据信息,同时进行复杂的数据分析和机器学</div>
</li>
<li><a href="/article/1897175681121447936.htm"
title="vue学习笔记 export ‘default‘ (imported as ‘Vue‘) was not found in ‘vue‘" target="_blank">vue学习笔记 export ‘default‘ (imported as ‘Vue‘) was not found in ‘vue‘</a>
<span class="text-muted">xiaoweiwei99</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a>
<div>版本:vue3vue/cli5.0.0做写store时报错importVuefrom"vue";importVuexfrom"vuex";importgettersfrom"./getters";importuserfrom"./modules/user";Vue.use(Vuex);conststore=newVuex.Store({modules:{user,},getters,});expo</div>
</li>
<li><a href="/article/1897173535550402560.htm"
title="常见加密软件厂商的参数对比" target="_blank">常见加密软件厂商的参数对比</a>
<span class="text-muted">大刘讲IT</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a>
<div>本文主要介绍主要的加密软件的一些公开资料的对比,不做任何价值推断和评价,请根据企业实际的需求进行合理评估选择。一、核心加密机制对比1.算法架构与密钥管理IP-Guard亿赛通天锐绿盾迅软DSE文件创建厂商策略触发式AES-256加密全生命周期SM4加密智能分类AES+SM4混合加密行为触发动态密钥轮换分布式密钥池集中式密钥服务器双因子认证+分片存储量子密钥预分发试验维度IP-Guard亿赛通天锐绿</div>
</li>
<li><a href="/article/1897172274310606848.htm"
title="XGBoost系列文章(四):参数调优与模型训练" target="_blank">XGBoost系列文章(四):参数调优与模型训练</a>
<span class="text-muted">什么都想学的阿超</span>
<a class="tag" taget="_blank" href="/search/%E5%8E%9F%E7%90%86%E6%A6%82%E5%BF%B5/1.htm">原理概念</a><a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/xgboost/1.htm">xgboost</a>
<div>XGBoost系列文章(四):参数调优与模型训练本文是XGBoost系列的第四篇,聚焦参数调优与模型训练实战,从参数分类到调优技巧,结合代码示例解析核心方法。内容涵盖学习率、正则化、采样策略、早停法等关键环节,帮助读者快速掌握工业级调参方案。1.XGBoost的三大类参数(通用参数、Booster参数、任务参数)分别是什么?XGBoost参数分为三大类,控制不同层面的行为:参数类型作用范围常用参数</div>
</li>
<li><a href="/article/1897172272498667520.htm"
title="强化学习实践 openai gymnasium CartPole-v1 DQN算法实现" target="_blank">强化学习实践 openai gymnasium CartPole-v1 DQN算法实现</a>
<span class="text-muted">abstcol</span>
<a class="tag" taget="_blank" href="/search/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0/1.htm">强化学习</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a>
<div>文章目录前言DQN简介环境简介任务实现说开来去我的Github实现:gym(GitHub)本篇博客主要是个人实现过程的主观感受,如果想要使用模型可以直接去GitHub仓库,注释完善且规范。觉得有用请给我点个star!前言最近在学习强化学习,大致过了一遍强化学习的数学原理(视频)。视频讲的很好,但是实践的部分总是感觉有点匮乏(毕竟解决gridworld方格世界(GitHub)的问题的很难给人特别大的</div>
</li>
<li><a href="/article/1897172273601769472.htm"
title="神经网络:人工智能的核心技术" target="_blank">神经网络:人工智能的核心技术</a>
<span class="text-muted">m0_75126181</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a>
<div>神经网络简介神经网络是一种模仿生物神经系统的计算模型,由大量相互连接的神经元组成。它通过学习大量的数据来完成复杂的模式识别和决策任务,是当前人工智能和机器学习领域最重要的技术之一。神经网络的基本结构包括输入层、隐藏层和输出层。输入层接收外部数据,隐藏层对数据进行处理和特征提取,输出层产生最终结果。神经元之间通过带权重的连接相互作用,通过调整这些权重来实现学习过程。神经网络的工作原理神经网络的工作原</div>
</li>
<li><a href="/article/1897170759437053952.htm"
title="org.springframework.transaction.CannotCreateTransactionException: Could not open" target="_blank">org.springframework.transaction.CannotCreateTransactionException: Could not open</a>
<span class="text-muted">CptainLee</span>
<a class="tag" taget="_blank" href="/search/Spring/1.htm">Spring</a><a class="tag" taget="_blank" href="/search/SSH/1.htm">SSH</a>
<div>1.看看用户名/密码是否正确2.数据库是否启动3.看看spring的数据库、事务等配置文件我遇到这个问题是因为拷贝学习项目的时候,忘记改mysql密码了。。。。。</div>
</li>
<li><a href="/article/1897170125996486656.htm"
title="我想学网络安全,但是没基础,请问学安全要先学什么?" target="_blank">我想学网络安全,但是没基础,请问学安全要先学什么?</a>
<span class="text-muted">网络安全工程师教学</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E8%B7%B3%E6%A7%BD/1.htm">跳槽</a>
<div>前言本人从事网络安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。下面就开始进入正题,如何从一个萌新一步一步进入网络安全行业。正题首先,在准备进入这个行业之前,我们要问一下我们的内心,工作千千万,为什么要想进入这个行业?相信每个人的答案都不一样,有的人会说,这个行业整体上比其他行业赚钱多,有的人会说特别喜欢技术,想钻研一</div>
</li>
<li><a href="/article/1897167859348467712.htm"
title="在智能AI服务众多的今天,为什么真智AI(True Science AI)是你的最佳选择?" target="_blank">在智能AI服务众多的今天,为什么真智AI(True Science AI)是你的最佳选择?</a>
<span class="text-muted">真智AI</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
<div>在智能AI服务众多的今天,为什么真智AI(TrueScienceAI)是你的最佳选择?答案很简单:更快、更强、更智能、更实惠!1.领先的模型,极速响应真智AI接入真正满血DeepSeek,同时提供更快、更强的领先模型,确保你的每一次交互都精准、高效,不受服务器繁忙影响。2.便捷的人性化体验直接在对话框输入@,指令快速调用,或自定义专属指令,让你的工作和学习更加高效。无需繁琐操作,一键直达所需功能!</div>
</li>
<li><a href="/article/1897167224595083264.htm"
title="打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第一天)" target="_blank">打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第一天)</a>
<span class="text-muted">井队Tell</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/HDRP/1.htm">HDRP</a><a class="tag" taget="_blank" href="/search/3d/1.htm">3d</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/unity/1.htm">unity</a>
<div>打造高清3D虚拟世界|零基础学习UnityHDRP高清渲染管线(第一天)前言最后前言说真的,用Unity工作这几年,经历的项目大大小小,对于场景的渲染算是有一定的经验,但涉及到HDRP高清渲染管线的了解,真是少之又少,一方面由于现有项目的要求不高,二是HDRP的学习存在一些门槛,所以下定决心,从零开始,每天记录一点点,打造一个属于自己的高清世界!我会从各种渠道,多方面记录,形成笔记,没有什么特殊的</div>
</li>
<li><a href="/article/1897161808549048320.htm"
title="【HTML学习笔记基础篇】" target="_blank">【HTML学习笔记基础篇】</a>
<span class="text-muted">努力的小好</span>
<a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
<div>HTML学习笔记基础篇一、HTML概述1.1什么是HTML1.2HTML文档的基本结构二、HTML基础标签2.1标题标签2.2段落标签2.3换行标签2.4链接标签2.6列表标签2.7表格标签三、HTML进阶知识3.1行级元素与块级元素3.3语义化标签四、开发工具与技巧4.1开发工具4.2常用技巧五、总结六、示例一、HTML概述1.1什么是HTMLHTML,全称超文本标记语言(HyperTextMa</div>
</li>
<li><a href="/article/1897159909498220544.htm"
title="Redis数据库以及非关系型数据库基本概念" target="_blank">Redis数据库以及非关系型数据库基本概念</a>
<span class="text-muted">成长中的Mr.Wu</span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/%E7%BC%93%E5%AD%98/1.htm">缓存</a>
<div>Redis1缓存概念缓存是为了调节速度不一致的两个或多个不同的物质的速度,在中间对速度较慢的一方起到加速作用,比如CPU的一级、二级缓存是保存了CPU最近经常访问的数据,内存是保存CPU经常访问硬盘的数据,而且硬盘也有大小不一的缓存,甚至是物理服务器的raid卡有也缓存,都是为了起到加速CPU访问硬盘数据的目的,因为CPU的速度太快了,CPU需要的数据由于硬盘往往不能在短时间内满足CPU的需求,因</div>
</li>
<li><a href="/article/9.htm"
title="apache ftpserver-CentOS config" target="_blank">apache ftpserver-CentOS config</a>
<span class="text-muted">gengzg</span>
<a class="tag" taget="_blank" href="/search/apache/1.htm">apache</a>
<div><server xmlns="http://mina.apache.org/ftpserver/spring/v1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://mina.apache.o</div>
</li>
<li><a href="/article/136.htm"
title="优化MySQL数据库性能的八种方法" target="_blank">优化MySQL数据库性能的八种方法</a>
<span class="text-muted">AILIKES</span>
<a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
<div>1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的 性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很</div>
</li>
<li><a href="/article/263.htm"
title="JeeSite 企业信息化快速开发平台" target="_blank">JeeSite 企业信息化快速开发平台</a>
<span class="text-muted">Kai_Ge</span>
<a class="tag" taget="_blank" href="/search/JeeSite/1.htm">JeeSite</a>
<div>JeeSite 企业信息化快速开发平台
平台简介
JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的开源Java EE快速开发平台。
JeeSite本身是以Spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层, Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,Activit为工作流</div>
</li>
<li><a href="/article/390.htm"
title="通过Spring Mail Api发送邮件" target="_blank">通过Spring Mail Api发送邮件</a>
<span class="text-muted">120153216</span>
<a class="tag" taget="_blank" href="/search/%E9%82%AE%E4%BB%B6/1.htm">邮件</a><a class="tag" taget="_blank" href="/search/main/1.htm">main</a>
<div>原文地址:http://www.open-open.com/lib/view/open1346857871615.html
使用Java Mail API来发送邮件也很容易实现,但是最近公司一个同事封装的邮件API实在让我无法接受,于是便打算改用Spring Mail API来发送邮件,顺便记录下这篇文章。 【Spring Mail API】
Spring Mail API都在org.spri</div>
</li>
<li><a href="/article/517.htm"
title="Pysvn 程序员使用指南" target="_blank">Pysvn 程序员使用指南</a>
<span class="text-muted">2002wmj</span>
<a class="tag" taget="_blank" href="/search/SVN/1.htm">SVN</a>
<div>源文件:http://ju.outofmemory.cn/entry/35762
这是一篇关于pysvn模块的指南.
完整和详细的API请参考 http://pysvn.tigris.org/docs/pysvn_prog_ref.html.
pysvn是操作Subversion版本控制的Python接口模块. 这个API接口可以管理一个工作副本, 查询档案库, 和同步两个.
该</div>
</li>
<li><a href="/article/644.htm"
title="在SQLSERVER中查找被阻塞和正在被阻塞的SQL" target="_blank">在SQLSERVER中查找被阻塞和正在被阻塞的SQL</a>
<span class="text-muted">357029540</span>
<a class="tag" taget="_blank" href="/search/SQL+Server/1.htm">SQL Server</a>
<div>SELECT R.session_id AS BlockedSessionID ,
S.session_id AS BlockingSessionID ,
Q1.text AS Block</div>
</li>
<li><a href="/article/771.htm"
title="Intent 常用的用法备忘" target="_blank">Intent 常用的用法备忘</a>
<span class="text-muted">7454103</span>
<a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/Google/1.htm">Google</a><a class="tag" taget="_blank" href="/search/Blog/1.htm">Blog</a><a class="tag" taget="_blank" href="/search/F%23/1.htm">F#</a>
<div>Intent
应该算是Android中特有的东西。你可以在Intent中指定程序 要执行的动作(比如:view,edit,dial),以及程序执行到该动作时所需要的资料 。都指定好后,只要调用startActivity(),Android系统 会自动寻找最符合你指定要求的应用 程序,并执行该程序。
下面列出几种Intent 的用法
显示网页:
</div>
</li>
<li><a href="/article/898.htm"
title="Spring定时器时间配置" target="_blank">Spring定时器时间配置</a>
<span class="text-muted">adminjun</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E6%97%B6%E9%97%B4%E9%85%8D%E7%BD%AE/1.htm">时间配置</a><a class="tag" taget="_blank" href="/search/%E5%AE%9A%E6%97%B6%E5%99%A8/1.htm">定时器</a>
<div>红圈中的值由6个数字组成,中间用空格分隔。第一个数字表示定时任务执行时间的秒,第二个数字表示分钟,第三个数字表示小时,后面三个数字表示日,月,年,< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />
测试的时候,由于是每天定时执行,所以后面三个数</div>
</li>
<li><a href="/article/1025.htm"
title="POJ 2421 Constructing Roads 最小生成树" target="_blank">POJ 2421 Constructing Roads 最小生成树</a>
<span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%80%E5%B0%8F%E7%94%9F%E6%88%90%E6%A0%91/1.htm">最小生成树</a>
<div>来源:http://poj.org/problem?id=2421
题意:还是给你n个点,然后求最小生成树。特殊之处在于有一些点之间已经连上了边。
思路:对于已经有边的点,特殊标记一下,加边的时候把这些边的权值赋值为0即可。这样就可以既保证这些边一定存在,又保证了所求的结果正确。
代码:
#include <iostream>
#include <cstdio></div>
</li>
<li><a href="/article/1152.htm"
title="重构笔记——提取方法(Extract Method)" target="_blank">重构笔记——提取方法(Extract Method)</a>
<span class="text-muted">ayaoxinchao</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%87%8D%E6%9E%84/1.htm">重构</a><a class="tag" taget="_blank" href="/search/%E6%8F%90%E7%82%BC%E5%87%BD%E6%95%B0/1.htm">提炼函数</a><a class="tag" taget="_blank" href="/search/%E5%B1%80%E9%83%A8%E5%8F%98%E9%87%8F/1.htm">局部变量</a><a class="tag" taget="_blank" href="/search/%E6%8F%90%E5%8F%96%E6%96%B9%E6%B3%95/1.htm">提取方法</a>
<div>提取方法(Extract Method)是最常用的重构手法之一。当看到一个方法过长或者方法很难让人理解其意图的时候,这时候就可以用提取方法这种重构手法。
下面是我学习这个重构手法的笔记:
提取方法看起来好像仅仅是将被提取方法中的一段代码,放到目标方法中。其实,当方法足够复杂的时候,提取方法也会变得复杂。当然,如果提取方法这种重构手法无法进行时,就可能需要选择其他</div>
</li>
<li><a href="/article/1279.htm"
title="为UILabel添加点击事件" target="_blank">为UILabel添加点击事件</a>
<span class="text-muted">bewithme</span>
<a class="tag" taget="_blank" href="/search/UILabel/1.htm">UILabel</a>
<div> 默认情况下UILabel是不支持点击事件的,网上查了查居然没有一个是完整的答案,现在我提供一个完整的代码。
UILabel *l = [[UILabel alloc] initWithFrame:CGRectMake(60, 0, listV.frame.size.width - 60, listV.frame.size.height)]</div>
</li>
<li><a href="/article/1406.htm"
title="NoSQL数据库之Redis数据库管理(PHP-REDIS实例)" target="_blank">NoSQL数据库之Redis数据库管理(PHP-REDIS实例)</a>
<span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/NoSQL/1.htm">NoSQL</a>
<div>一.redis.php
<?php
//实例化
$redis = new Redis();
//连接服务器
$redis->connect("localhost");
//授权
$redis->auth("lamplijie");
//相关操</div>
</li>
<li><a href="/article/1533.htm"
title="SecureCRT使用备注" target="_blank">SecureCRT使用备注</a>
<span class="text-muted">bingyingao</span>
<a class="tag" taget="_blank" href="/search/secureCRT/1.htm">secureCRT</a><a class="tag" taget="_blank" href="/search/%E6%AF%8F%E9%A1%B5/1.htm">每页</a><a class="tag" taget="_blank" href="/search/%E8%A1%8C%E6%95%B0/1.htm">行数</a>
<div>SecureCRT日志和卷屏行数设置
一、使用securecrt时,设置自动日志记录功能。
1、在C:\Program Files\SecureCRT\下新建一个文件夹(也就是你的CRT可执行文件的路径),命名为Logs;
2、点击Options -> Global Options -> Default Session -> Edite Default Sett</div>
</li>
<li><a href="/article/1660.htm"
title="【Scala九】Scala核心三:泛型" target="_blank">【Scala九】Scala核心三:泛型</a>
<span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a>
<div>泛型类
package spark.examples.scala.generics
class GenericClass[K, V](val k: K, val v: V) {
def print() {
println(k + "," + v)
}
}
object GenericClass {
def main(args: Arr</div>
</li>
<li><a href="/article/1787.htm"
title="素数与音乐" target="_blank">素数与音乐</a>
<span class="text-muted">bookjovi</span>
<a class="tag" taget="_blank" href="/search/%E7%B4%A0%E6%95%B0/1.htm">素数</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E5%AD%A6/1.htm">数学</a><a class="tag" taget="_blank" href="/search/haskell/1.htm">haskell</a>
<div> 由于一直在看haskell,不可避免的接触到了很多数学知识,其中数论最多,如素数,斐波那契数列等,很多在学生时代无法理解的数学现在似乎也能领悟到那么一点。
闲暇之余,从图书馆找了<<The music of primes>>和<<世界数学通史>>读了几遍。其中素数的音乐这本书与软件界熟知的&l</div>
</li>
<li><a href="/article/1914.htm"
title="Java-Collections Framework学习与总结-IdentityHashMap" target="_blank">Java-Collections Framework学习与总结-IdentityHashMap</a>
<span class="text-muted">BrokenDreams</span>
<a class="tag" taget="_blank" href="/search/Collections/1.htm">Collections</a>
<div> 这篇总结一下java.util.IdentityHashMap。从类名上可以猜到,这个类本质应该还是一个散列表,只是前面有Identity修饰,是一种特殊的HashMap。
简单的说,IdentityHashMap和HashM</div>
</li>
<li><a href="/article/2041.htm"
title="读《研磨设计模式》-代码笔记-享元模式-Flyweight" target="_blank">读《研磨设计模式》-代码笔记-享元模式-Flyweight</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/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a>
<div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java</div>
</li>
<li><a href="/article/2168.htm"
title="PS人像润饰&调色教程集锦" target="_blank">PS人像润饰&调色教程集锦</a>
<span class="text-muted">cherishLC</span>
<a class="tag" taget="_blank" href="/search/PS/1.htm">PS</a>
<div> 1、仿制图章沿轮廓润饰——柔化图像,凸显轮廓
http://www.howzhi.com/course/retouching/
新建一个透明图层,使用仿制图章不断Alt+鼠标左键选点,设置透明度为21%,大小为修饰区域的1/3左右(比如胳膊宽度的1/3),再沿纹理方向(比如胳膊方向)进行修饰。
所有修饰完成后,对该润饰图层添加噪声,噪声大小应该和</div>
</li>
<li><a href="/article/2295.htm"
title="更新多个字段的UPDATE语句" target="_blank">更新多个字段的UPDATE语句</a>
<span class="text-muted">crabdave</span>
<a class="tag" taget="_blank" href="/search/update/1.htm">update</a>
<div>更新多个字段的UPDATE语句
update tableA a
set (a.v1, a.v2, a.v3, a.v4) = --使用括号确定更新的字段范围
</div>
</li>
<li><a href="/article/2422.htm"
title="hive实例讲解实现in和not in子句" target="_blank">hive实例讲解实现in和not in子句</a>
<span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a><a class="tag" taget="_blank" href="/search/not+in/1.htm">not in</a><a class="tag" taget="_blank" href="/search/in/1.htm">in</a>
<div>本文转自:http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2842855.html
当前hive不支持 in或not in 中包含查询子句的语法,所以只能通过left join实现。
假设有一个登陆表login(当天登陆记录,只有一个uid),和一个用户注册表regusers(当天注册用户,字段只有一个uid),这两个表都包含</div>
</li>
<li><a href="/article/2549.htm"
title="一道24点的10+种非人类解法(2,3,10,10)" target="_blank">一道24点的10+种非人类解法(2,3,10,10)</a>
<span class="text-muted">dsjt</span>
<a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
<div>这是人类算24点的方法?!!!
事件缘由:今天晚上突然看到一条24点状态,当时惊为天人,这NM叫人啊?以下是那条状态
朱明西 : 24点,算2 3 10 10,我LX炮狗等面对四张牌痛不欲生,结果跑跑同学扫了一眼说,算出来了,2的10次方减10的3次方。。我草这是人类的算24点啊。。
然后么。。。我就在深夜很得瑟的问室友求室友算
刚出完题,文哥的暴走之旅开始了
5秒后</div>
</li>
<li><a href="/article/2676.htm"
title="关于YII的菜单插件 CMenu和面包末breadcrumbs路径管理插件的一些使用问题" target="_blank">关于YII的菜单插件 CMenu和面包末breadcrumbs路径管理插件的一些使用问题</a>
<span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a><a class="tag" taget="_blank" href="/search/framework/1.htm">framework</a>
<div>在使用 YIi的路径管理工具时,发现了一个问题。 <?php </div>
</li>
<li><a href="/article/2803.htm"
title="对象与关系之间的矛盾:“阻抗失配”效应[转]" target="_blank">对象与关系之间的矛盾:“阻抗失配”效应[转]</a>
<span class="text-muted">come_for_dream</span>
<a class="tag" taget="_blank" href="/search/%E5%AF%B9%E8%B1%A1/1.htm">对象</a>
<div>概述
“阻抗失配”这一词组通常用来描述面向对象应用向传统的关系数据库(RDBMS)存放数据时所遇到的数据表述不一致问题。C++程序员已经被这个问题困扰了好多年,而现在的Java程序员和其它面向对象开发人员也对这个问题深感头痛。
“阻抗失配”产生的原因是因为对象模型与关系模型之间缺乏固有的亲合力。“阻抗失配”所带来的问题包括:类的层次关系必须绑定为关系模式(将对象</div>
</li>
<li><a href="/article/2930.htm"
title="学习编程那点事" target="_blank">学习编程那点事</a>
<span class="text-muted">gcq511120594</span>
<a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/%E4%BA%92%E8%81%94%E7%BD%91/1.htm">互联网</a>
<div>一年前的夏天,我还在纠结要不要改行,要不要去学php?能学到真本事吗?改行能成功吗?太多的问题,我终于不顾一切,下定决心,辞去了工作,来到传说中的帝都。老师给的乘车方式还算有效,很顺利的就到了学校,赶巧了,正好学校搬到了新校区。先安顿了下来,过了个轻松的周末,第一次到帝都,逛逛吧!
接下来的周一,是我噩梦的开始,学习内容对我这个零基础的人来说,除了勉强完成老师布置的作业外,我已经没有时间和精力去</div>
</li>
<li><a href="/article/3057.htm"
title="Reverse Linked List II" target="_blank">Reverse Linked List II</a>
<span class="text-muted">hcx2013</span>
<a class="tag" taget="_blank" href="/search/list/1.htm">list</a>
<div>Reverse a linked list from position m to n. Do it in-place and in one-pass.
For example:Given 1->2->3->4->5->NULL, m = 2 and n = 4,
return </div>
</li>
<li><a href="/article/3184.htm"
title="Spring4.1新特性——页面自动化测试框架Spring MVC Test HtmlUnit简介" target="_blank">Spring4.1新特性——页面自动化测试框架Spring MVC Test HtmlUnit简介</a>
<span class="text-muted">jinnianshilongnian</span>
<a class="tag" taget="_blank" href="/search/spring+4.1/1.htm">spring 4.1</a>
<div>目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T</div>
</li>
<li><a href="/article/3311.htm"
title="Hadoop集群工具distcp" target="_blank">Hadoop集群工具distcp</a>
<span class="text-muted">liyonghui160com</span>
<div>
1. 环境描述
两个集群:rock 和 stone
rock无kerberos权限认证,stone有要求认证。
1. 从rock复制到stone,采用hdfs
Hadoop distcp -i hdfs://rock-nn:8020/user/cxz/input hdfs://stone-nn:8020/user/cxz/运行在rock端,即源端问题:报版本</div>
</li>
<li><a href="/article/3438.htm"
title="一个备份MySQL数据库的简单Shell脚本" target="_blank">一个备份MySQL数据库的简单Shell脚本</a>
<span class="text-muted">pda158</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E8%84%9A%E6%9C%AC/1.htm">脚本</a>
<div> 主脚本(用于备份mysql数据库): 该Shell脚本可以自动备份
数据库。只要复制粘贴本脚本到文本编辑器中,输入数据库用户名、密码以及数据库名即可。我备份数据库使用的是mysqlump 命令。后面会对每行脚本命令进行说明。
1. 分别建立目录“backup”和“oldbackup” #mkdir /backup #mkdir /oldbackup </div>
</li>
<li><a href="/article/3565.htm"
title="300个涵盖IT各方面的免费资源(中)——设计与编码篇" target="_blank">300个涵盖IT各方面的免费资源(中)——设计与编码篇</a>
<span class="text-muted">shoothao</span>
<a class="tag" taget="_blank" href="/search/IT%E8%B5%84%E6%BA%90/1.htm">IT资源</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E6%A0%87%E5%BA%93/1.htm">图标库</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E7%89%87%E5%BA%93/1.htm">图片库</a><a class="tag" taget="_blank" href="/search/%E8%89%B2%E5%BD%A9%E6%9D%BF/1.htm">色彩板</a><a class="tag" taget="_blank" href="/search/%E5%AD%97%E4%BD%93/1.htm">字体</a>
<div>
A. 免费的设计资源
Freebbble:来自于Dribbble的免费的高质量作品。
Dribbble:Dribbble上“免费”的搜索结果——这是巨大的宝藏。
Graphic Burger:每个像素点都做得很细的绝佳的设计资源。
Pixel Buddha:免费和优质资源的专业社区。
Premium Pixels:为那些有创意的人提供免费的素材。
</div>
</li>
<li><a href="/article/3692.htm"
title="thrift总结 - 跨语言服务开发" target="_blank">thrift总结 - 跨语言服务开发</a>
<span class="text-muted">uule</span>
<a class="tag" taget="_blank" href="/search/thrift/1.htm">thrift</a>
<div>官网
官网JAVA例子
thrift入门介绍
IBM-Apache Thrift - 可伸缩的跨语言服务开发框架
Thrift入门及Java实例演示
thrift的使用介绍
RPC
POM:
<dependency>
<groupId>org.apache.thrift</groupId>
</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>