Tag: bash

Bash花了很多时间加载

因此,当我打开一个终端(ctrl + alt + t)时,显示提示大约需要6秒钟,我可以观察到(在另一个终端上运行顶部)它需要99%的CPU来执行此操作。 可能导致什么? 它之前立即加载。 我正在运行Ubuntu 13.04,我的CPU是英特尔核心i7-2600K @ 3.4GHz,我有16GB的RAM。 〜/ .profile文件: # ~/.profile: executed by the command interpreter for login shells. # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login # exists. # see /usr/share/doc/bash/examples/startup-files for examples. # the files are located in the bash-doc package. # the default umask […]

/etc/cron.hourly的function

如果我创建一个脚本然后将其放在这个文件夹(/etc/cron.hourly)中,我的系统会每小时运行一次这个脚本吗? 或者我的脚本是否也需要以命令开头?

双击.sh文件打开终端并执行一系列命令?

我正在尝试双击执行此操作的文件: #!/bin/bash #Mount USB Jump, Copy files to it, Unmount it. [open terminal (so that I can see what ‘s going on)] pmount /dev/sdc JUMP sleep 2s cp -p -u source/path/ destination/path/ read -p “Press enter to unmount Jump or ctrl c to abort.” pumount /dev/sdc [close terminal] 我不知道怎么写的两行是[open terminal]和[close terminal]谁知道怎么做? 编辑:非常感谢大家,我把你的输入捆绑在一起,最终到达那里。 我双击.sh文件,上面写着:’terminal -hold -e […]

我可以用吗 ‘!!’ 在别名或脚本中?

在终端我可以使用!! 这将引用我以前的命令。 是否可以在别名中使用它? 我已经尝试过了,但是会发生双重感叹号的字面解释。 我想要的是: 我输入一些命令 我键入了一个别名,其中包含在步骤1中输入的内容 如果有使用脚本的解决方案也是可以接受的。

如何计算具有特定扩展名的文件及其所在的目录?

我想知道有多少常规文件在大型复杂目录结构中具有扩展名.c ,以及这些文件分布在多少个目录中。 我想要的输出只是那两个数字。 我已经看到了关于如何获取文件数量的问题,但我还需要知道文件所在的目录数量。 我的文件名(包括目录)可能包含任何字符; 他们可能会开始. 或-并有空格或换行符。 我可能有一些符号链接,其名称以.c结尾,符号链接到目录。 我不希望跟踪或计算符号链接,或者我至少想知道它们是否以及何时被计算在内。 目录结构有许多级别,顶级目录(工作目录)中至少有一个.c文件。 我急忙在(Bash)shell中写了一些命令来自己计算,但我不认为结果是准确的…… shopt -s dotglob shopt -s globstar mkdir out for d in **/; do find “$d” -maxdepth 1 -type f -name “*.c” >> out/$(basename “$d”) done ls -1Aq out | wc -l cat out/* | wc -l 这会输出关于模糊重定向,错过当前目录中的文件以及查找特殊字符(例如, 重定向find输出在文件名中打印换行符 )的投诉,并写入一大堆空文件(oops)。 如何可靠地枚举我的.c文件及其包含的目录? 如果它有帮助,这里有一些命令来创建一个具有错误名称和符号链接的测试结构: mkdir -p cfiles/{1..3}/{a..b} […]

在bash脚本中忽略sudo

我有一个小的bash脚本: #!/bin/bash touch dummy.txt 如果我用sudo执行这个脚本,那么它将创建一个将受root保护的 dummy.txt 。 我想做的是: 无论此脚本是使用sudo还是普通用户执行,文件dummy.txt 都不应受root保护。

如何理解输出重定向的顺序?

所以我正在努力学习如何将标准输出和标准错误传递到各个领域。 假设我只有here.txt的文件夹。 所以,如果我这样做 ls here.txt not-here.txt 1>out 2>&1 由于here.txt存在,我将有一些输出指向文件out但由于not-here.txt不存在,错误将通过标准错误发送,我将重定向到标准输出2>&1 。 但是,为什么这不起作用: ls here.txt not-here.txt 2>&1 1>out 似乎只有在标准输出指令后进行重定向才能工作? 为什么?

在目录名中使用’&’

我有一个目录名称与ISO和模拟器有一些重要文件。 并且此目录位于不同的分区中,并且分区未显示在我的FileManager(Nautilus)中。 所以我挂载我的分区并从终端访问它,但我无法进入目录,因为它的名称 。 当我试图更改目录时: cd ISO&Emulator 结果: [1] 1635 bash: Emulator: command not found bash: cd: ISO: No such file or directory [1]+ Exit 1 它将目录名称作为命令。 从终端访问此目录的任何方法? 怎么解决这个问题?

使用cd命令导航Ubuntu中具有特殊字符的目录

当我想导航到名称中包含特殊字符的目录时,我收到一条错误消息。 例如: aman@desktop:~/Aman$ cd !)e$!gn&(reate bash: !: event not found aman@desktop:~/Aman$ 这里!)e$!gn&(reate是我想要导航的目录名称。 如何纠正这个错误? 如何使用cd命令导航Ubuntu中具有特殊字符的目录名的目录?

如何在一个命令行中运行多个命令?

我遇到了头痛的问题。 我想在后台执行多个命令,所以我想在bash中逐个启动它们。 在后台的linux shell中启动一个命令很容易,就像这样: myCommand & 启动多个命令也很容易,就像这样: myCommand1 && myCommand2 要么 myCommand1 ; myCommand2 但是如果我想在后台运行多个命令,我尝试了以下命令格式,但是失败了: myCommand1 & && myCommand2 & 要么 myCommand1 & ; myCommand2 & 两种格式都失败了 如何在一个命令行中运行多个命令?