Linux命令行教程:重定向输出与错误到同一文件

需积分: 11 8 下载量 67 浏览量 更新于2024-08-08 收藏 1.78MB PDF 举报
"这篇资源主要介绍了如何在Linux命令行中重定向标准输出和错误到同一个文件,以及Linux命令行的基本操作。" 在Linux系统中,重定向是将命令的输出或错误信息导向到指定文件而不是默认的显示器。在标题提到的场景中,如果希望将一个命令的所有输出(包括标准输出和标准错误)捕获到同一个文件,可以采用两种方法。第一种方法是传统的重定向方式,适用于较旧版本的shell: ```bash [me@linuxbox ~]$ ls -l /bin/usr > ls-output.txt 2>&1 ``` 在这个命令中,`>` 符号用于重定向标准输出(文件描述符 1)到 `ls-output.txt` 文件,而 `2>&1` 表示将标准错误(文件描述符 2)重定向到文件描述符 1,即与标准输出相同的目标。重要的是要注意重定向的顺序,标准错误的重定向必须在标准输出重定向之后,否则标准错误会被重定向到默认的地方,比如屏幕。 描述中提到,如果顺序颠倒,例如 `2>&1 >ls-output.txt`,那么标准错误会被重定向到屏幕,而非指定的文件。 除了重定向技巧,资源还提到了一本名为《快乐的Linux命令行》的书籍,该书详细介绍了Linux命令行的使用,包括但不限于以下内容: 1. **引言**:解释了为何使用命令行,书籍的目的,目标读者,以及如何阅读本书。 2. **什么是shell**:涵盖了终端仿真器、首次使用键盘,命令历史,光标移动,鼠标与光标交互,以及执行简单命令。 3. **文件系统中跳转**:解释了文件系统树的概念,当前工作目录,列出目录内容,改变当前目录,绝对路径与相对路径,以及快捷键的使用。 4. **探究操作系统**:涉及了`ls`命令的使用,选项和参数,长格式输出,确定文件类型,使用`less`查看文件内容,以及符号链接和硬链接。 5. **操作文件和目录**:涵盖了通配符,`mkdir`,`cp`,`mv`,`rm`,`ln`等命令的使用,以及各种操作的选项和实例。 6. **使用命令**:讨论了命令的本质,如何识别命令,以及`type`命令来显示命令的类型。 通过这些内容,用户可以全面了解并掌握Linux命令行的基本操作和高级技巧,提高在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 上传