探索Linux命令行学习指南:从入门到精通

需积分: 11 8 下载量 181 浏览量 更新于2024-08-08 收藏 1.78MB PDF 举报
《numerical optimization 2nd》是一本针对Linux新手编写的指南,旨在通过系统化的教学方式介绍Unix的思维方式和命令行操作。书籍分为五个部分: 1. **入门篇**:这部分是你现在正在阅读的部分,提供基础的命令行知识,包括命令组成、文件系统浏览、编写命令和查找帮助文档,帮助读者建立起Linux环境下的基本操作习惯。 2. **Shell语言**:第二部分深入探讨shell,它是命令行的基本语言,涉及命令结构、配置文件的编写和使用,以及如何通过命令行控制计算机。 3. **配置文件与环境管理**:这部分讲解如何编写和理解配置文件,以便更有效地利用命令行进行个性化设置和自动化任务。 4. **常见任务与工具**:第四部分聚焦于常用的命令行工具,介绍如何处理日常任务,如数据操作和管理,涉及经典的Unix命令行程序。 5. **Shell编程**:最后,书的第五部分教授shell编程,这是一种强大的自动化工具,通过学习,读者能掌握基本编程概念,并将其应用到其他编程语言中。 阅读这本书的方法是按照顺序进行,把它当作一本故事书,每个章节都有起承转合。作者强调,虽然不像技术手册那样罗列具体操作,但通过逐步引导,读者将建立起对Linux命令行的深入理解和实际操作能力。 书中还特别提到了一些关键点,如理解文件系统的结构,如绝对路径和相对路径的区别,以及使用各种命令(如`ls`、`cp`、`mv`、`rm`等)及其选项,这些都是Linux命令行操作的基础。此外,书中的实践环节,如创建游戏场、符号链接和硬链接的创建,有助于读者通过实际操作加深理解。 《快乐的Linux命令行》一书还包含了一些实用技巧,如使用`type`命令识别命令类型和使用`less`命令浏览文件内容。通过阅读这本书,无论是Linux初学者还是希望提升命令行技能的用户,都能从中受益匪浅。阅读时,先确保对基本概念有所了解,然后逐步跟随书中的示例和练习,不断深化自己的技能。

ind = find(desc<0); stepmax = min(-(SigmaNew(ind))./desc(ind)); deltmax = stepmax; if isempty(stepmax) || stepmax==0 Sigma = SigmaNew; return end if stepmax > 0.1 stepmax=0.1; end %----------------------------------------------------- % Projected gradient %----------------------------------------------------- while costmax<costmin [costmax, S] = costgraph(KH,stepmax,desc,SigmaNew); if costmax<costmin costmin = costmax; SigmaNew = SigmaNew + stepmax * desc; %------------------------------- % Numerical cleaning %------------------------------- % SigmaNew(find(abs(SigmaNew<option.numericalprecision)))=0; % SigmaNew=SigmaNew/sum(SigmaNew); % SigmaNew =SigmaP; % project descent direction in the new admissible cone % keep the same direction of descent while cost decrease %desc = desc .* ( (SigmaNew>0) | (desc>0) ) ; desc = desc .* ( (SigmaNew>option.numericalprecision)|(desc>0)); desc(coord) = - sum(desc([[1:coord-1] [coord+1:end]])); ind = find(desc<0); if ~isempty(ind) stepmax = min(-(SigmaNew(ind))./desc(ind)); deltmax = stepmax; costmax = 0; else stepmax = 0; deltmax = 0; end end end %----------------------------------------------------- % Linesearch %----------------------------------------------------- Step = [stepmin stepmax]; Cost = [costmin costmax]; [val,coord] = min(Cost); % optimization of stepsize by golden search while (stepmax-stepmin)>option.goldensearch_deltmax*(abs(deltmax)) && stepmax > eps stepmedr = stepmin+(stepmax-stepmin)/gold; stepmedl = stepmin+(stepmedr-stepmin)/gold; [costmedr, S1] = costgraph(KH,stepmedr,desc,SigmaNew); [costmedl, S2] = costgraph(KH,stepmedl,desc,SigmaNew); Step = [stepmin stepmedl stepmedr stepmax]; Cost = [costmin costmedl costmedr costmax]; [val,coord] = min(Cost); switch coord case 1 stepmax = stepmedl; costmax = costmedl; S = S2; case 2 stepmax = stepmedr; costmax = costmedr; S = S2; case 3 stepmin = stepmedl; costmin = costmedl; S = S2; case 4 stepmin = stepmedr; costmin = costmedr; S = S1; end end %--------------------------------- % Final Updates %--------------------------------- CostNew = Cost(coord); step = Step(coord); % Sigma update if CostNew < CostOld SigmaNew = SigmaNew + step * desc; end Sigma = SigmaNew;

2023-05-25 上传