Tag: bash

读写文件:tee命令

众所周知,这样的命令: cat filename | some_sed_command >filename 擦除文件filename,作为在命令之前执行的输出重定向,导致文件名被截断。 可以通过以下方式解决问题: cat file | some_sed_command | tee file >/dev/null 但我不确定这在任何情况下都会起作用:如果file(以及sed命令的结果)非常大,会发生什么? 操作系统如何避免覆盖仍未读取的某些内容? 我看到还有一个海绵命令在任何情况下都应该起作用:它比发球台“更安全”吗?

fish和bash之间的区别是将命令行参数传递给别名函数?

从我在这里的其他问题的答案中我了解了将命令行参数传递给Bash中的别名函数的可能性。 在Fish中,我可以通过编辑~/.config/fish目录中的config.fish文件并添加这样的行来编辑别名 alias lsp=’ls -ah –color=always | less -R;’ 它完美无缺。 这应该相当于在bash中编辑~/.bash_aliases 但是当我尝试设置别名函数来传递这样的参数时 alias lsp=’_(){ ls -ah –color=always $* | less -R; }; _’ 它对鱼不起作用? 在设置别名以传递命令行参数的方式中,fish和bash之间是否存在任何差异,这些参数阻止了第二个别名使用fish而不是bash?

为什么Ubuntu说“命令未找到”需要这么长时间

出于某种原因,在我的设置中,当我意外地错误命令时,Ubuntu可能需要几秒钟来响应“未找到命令”。 为什么需要这么长时间? 有没有办法缩短我必须等待的时间? 我的PATH中有13个目录,但即便如此(其中大多数只有几个文件),搜索13个目录的命令不需要几秒钟吗?

Rsync –delete选项不会删除目标目录中的文件

我正在尝试使用rsync的–delete选项删除目标目录中原始目录中不存在的文件 这是我正在使用的命令: rsync -avz –ignore-existing –recursive –delete /var/www/* root@mydomaintest.com:/var/www 所以我的问题是,如何删除目标目录中原始目录中不存在的所有文件?

应用程序在哪里……真的吗?

我是Linux / Ubuntu的全新用户(14.04) 我在寻找BASH。 我点击左侧的UbuntuSoftwareCenter,然后点击顶部的“All Software”图标。 我在右上方的搜索字段中输入“Bash”,结果顶部是“GNU Bourne Again SHell”,它被标记为“已安装”(绿色检查等)但我不能“做”任何事情它从那里 – 我无法打开程序,将其拖到左侧菜单栏等等。没有。 所以,仍然在Ubuntu软件中心,我点击顶部的“已安装”,但现在无法找到程序“GNU Bourne Again SHell”。 所以,我关闭窗口然后点击“Dash”并输入“BASH”或“Bourne”或“SHell”(不同大写),我还打开了“应用程序”部分以显示所有……没有“BASH” “ 任何人都可以解释我所看到的以及在哪里可以找到所谓的安装BASH,并将其固定在左侧菜单中?

常用脚本的非sudo替代/ usr / local / bin

我习惯将常用脚本放在/usr/local/bin这样我就可以在终端的任何地方执行它们。 例如,我创建一个名为1的shell脚本,使用chmod +x 1将其设置为可执行文件并将其放在/usr/local/bin ,在脚本中我在第一行输入#!/bin/sh ,然后我的命令。 从那以后,通过打字可以非常方便地使用并快速执行 1 Enter 在终端上,从任何文件夹里面。 我的问题是,我目前正在一台无法做sudo的计算机上工作,我也不能指望得到它,所以我不能将我的脚本放在/usr/local/bin 。 我有什么选择? 是否有另一条路径具有相同的“从任何地方运行”function,我可以在没有sudo情况下访问,或者以其他方式实现相同的function? 这篇文章接受的答案是 对于用户范围的脚本,请在主目录中使用bin /。 我尝试了,但我的主目录中没有bin文件夹,当我创建一个文件夹时,我仍然无法从其他任何地方运行该脚本。 我正在使用Ubuntu 12.04 LTS。

在linux脚本中使用“while read …”

有人可以解释下面的代码如何工作? echo ‘1 2 3 4 5 6’ | while read abc do echo $c $b $a done 具体来说,我想知道为什么这个循环的输出是3 4 5 6 2 1 ,而不是3 2 1和6 5 4在两条独立的线上? 我好像无法绕过它…

‘rm -r~’对我的主目录做了什么?

gedit创建以’〜’结尾的隐藏备份文件。 我想对目录树进行递归清理。 命令rm *~将删除所有以’〜’结尾的本地文件 我以为rm -r *~ . 会删除整棵树中的所有文件,但我输错了rm -r ~ 。 有一条消息,某些目录无法删除,我退出命令。 问题是:我删除了什么? 我注意到我的Filezilla配置已经消失了。 此命令是否从主目录中删除所有隐藏目录?

如何使脚本在单独的文件中记录它执行的次数?

我需要编写一个脚本来写一个文件这个脚本执行了多少次。 我怎样才能做到这一点?

在干净安装后创建安装软件的脚本?

我发现自己最近在多台新机器之间移动(新笔记本电脑,工作中的新电脑等)。 我想创建一个bash脚本来安装我使用的所有软件。 Ninite不够丰富。 我没有bash脚本的经验,我正在学习它。 我正在计划使用aptitude search来查找软件包名称(如果它们存在于存储库中)并创建多行aptitude install 。 然后,从头开始安装Ubuntu后我要做的就是安装aptitude并运行脚本。 脚本会一个接一个地运行(而不是并行运行并失败)吗? 我可以进行“静默安装”,以便安装程序不会提示答案(预先定义答案或用户默认)吗? 有没有办法通过bash脚本定义一些系统设置?