Questions tagged «bash»

与其他Bourne / POSIX shell相对,GNU的Bourne Again SHell特有的问题。对于一般关于Unix shell的问题,请改用/ shell标记。


5
了解bash中的感叹号(!)
我用了 history | less 为了获得先前命令的行,并从左侧的数字中发现我要重复的行(例如22),并做了 !22 在命令提示符下,它起作用了-在我当时执行的那一行上执行命令集。我无法弄清楚在何处使用感叹号,根据bash采取的操作,感叹号代表什么,以及在哪里使用。从文档中,我看不到“有形的”解释。

5
生成一定大小的文件?
我想生成一个名称为的文件example.file。我可以用 touch example.file 但我希望文件大小恰好为24MB。我已经检查了touch的联机帮助页,但是没有像这样的参数。有一种简单的方法可以生成一定大小的文件吗?
106 bash  command-line  files 


2
如何将输出从cron重定向到文件?
我有一个备份脚本,需要在一天的特定时间运行,因此我正在cron执行此任务,并且在cron中,我还尝试将备份脚本的输出重定向到logfile。 crontab -e */1 * * * * /home/ranveer/backup.sh &>> /home/ranveer/backup.log 在上面的cron条目中,我都将两者都重定向stderr and stdout到日志文件。 上面的cron作业可以很好地执行,syslog 并且可以执行backup.sh文件中提到的任务,但不会向日志文件写入任何内容。 /var/log/syslog Oct 19 20:26:01 ranveer CRON[15214]: (ranveer) CMD (/home/ranveer/backup.sh &>> /home/ranveer/backup.log) 当我从cli运行脚本时,它会按要求运行,并且输出将写入日志文件 ranveer@ranveer:~$ ./backup.sh &>> backup.log ranveer@ranveer:~$ cat backup.log Fri Oct 19 20:28:01 IST 2012 successfully copied testdir test.txt successfully copied ------------------------------------------------------------------------------------- ranveer@ranveer:~$ 因此,为什么文件输出没有从cron中重定向到文件。


3
临时数据的伪文件
我经常想将相对较短的字符串数据(尽管可能是几行)馈送到命令行程序,这些程序仅以重复的方式接受来自文件(例如wdiff)的输入。当然,我可以创建一个或多个临时文件,将字符串保存在那里,然后以文件名作为参数运行命令。但是在我看来,如果将数据实际写入磁盘,此过程似乎效率很低,而且如果我多次重复此过程(例如,如果我要馈送一行长文本),则对磁盘的损害可能超过必要。文件到wdiff。有没有建议的方法来避免这种情况,例如使用伪文件(例如管道)来临时存储数据,而无需实际将其写入磁盘(或仅在超过临界长度时才将其写入)。请注意,wdiff具有两个参数,并且,wdiff <"text"。
98 bash  files  pipe 


10
当我检查某件事时,请记住一个半类型的命令
我经常发现自己处于以下位置:我已经开始在bash提示符下键入一个长命令,但是到一半时,我发现需要使用另一个命令检查某些内容。当我在控制台(不是X)时(通常是这种情况),这是一个问题,因为那时我只有以下几种令人满意的方式来做到这一点,我知道: 点击ctrl+ alt+ F2并登录另一个虚拟控制台,找出我想要的内容,然后返回并继续 ctrl+ a,键入echo + space+ enter,找出我想要的内容,按↑直到找到我的命令ctrl+ a,delx 5,ctrl+ e,然后继续 突出显示到目前为止我用鼠标键入的内容(如果正在运行gpm,通常是这样),按ctrl+ c中断,找出我想要的内容,同时注意不要用鼠标突出显示内容,然后按鼠标中键在新提示下继续 向命令行中的上帝祈祷,半写的命令不会产生任何不良影响,而只是失败,然后小心地按Enter键,然后找出我想要的内容,按向上箭头,直到我重新获得命令,然后继续 跳到我的时间机器中,回到过去并提醒自己在开始键入命令之前先进入屏幕,回到现在,按ctrl+ a c,找出我想要的内容,按ctrl+ a ctrl+a并继续 所以我想知道的是,是否有一些更优雅的方法?一种subshel​​l命令还是类似命令? 我对不需要任何准备或设置即可工作的方法最感兴趣。
97 bash  command-line  zsh 

5
“ foo(){}函数”和“ foo(){}”之间的区别
我可以bash使用或省略function关键字来定义函数。有什么区别吗? #!/bin/bash function foo() { echo "foo" } bar() { echo "bar" } foo bar 调用函数foo和bar成功都没有,我看不出有什么区别。所以我想知道这是否只是为了提高可读性,还是我缺少某些东西... BTW在其他shell中dash(例如/bin/sh,dash在debian / ubuntu中被符号链接)在使用function关键字时失败。
96 bash  shell  function  posix 

5
bash的历史记录存储在哪里?
如果运行history,我可以看到最新执行的命令。 但是,如果我做的tail -f $HISTFILE还是tail -f ~/.bash_history,他们没有得到上市。 文件是否被锁定,是否存在临时位置或类似位置?

2
括号是否真的将命令放在子外壳中?
根据我的阅读,将命令放在括号中应该将其运行在子外壳中,类似于运行脚本。如果是这样,如果不导出x,它将如何看到变量x? x=1 (echo $x)在命令行上运行会导致1 echo $x如预期那样,在脚本中运行不会产生任何结果

4
如何在查找中结合2名条件?
我想搜索不符合2个-name条件的文件。我可以这样做: find /media/d/ -type f -size +50M ! -name "*deb" ! -name "*vmdk" 这将产生适当的结果,但是我可以以某种方式加入这两个条件吗?
94 bash  shell  find 


6
如何清除终端历史记录?
我正在使用Linux Mint 17.1 Rebecca大约2天,并且不小心将密码输入了终端,该终端现在显示在我先前键入的命令的历史记录列表中。 我想彻底清除终端历史记录。我尝试在终端中使用以下命令,我认为这将永远清除历史记录,但它们并不能清除: history -c reset tput reset 上面的命令“将”从终端清除历史记录,但是当我退出并显示一个新的历史记录时,我以前的所有历史记录仍然存在,并且可以使用-history命令并按键盘上的UP箭头再次列出所有历史记录。在完全清除历史记录之前,我不希望发生这种情况,然后再继续使用它。 如何彻底清除终端历史记录-永远重新开始? 请注意:我不想在不保存历史记录的情况下退出终端,只是在这种情况下永远将其清除。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.