Questions tagged «bash»

Bash是Bourne Again SHell,它是经典Unix sh(shell)的继承者。



3
Bash:如何知道最后一条命令的输出是否以换行符结尾?
大多数情况下,命令的输出以换行符结束。但是有时却不是,因此下一个shell提示与输出一起打印在同一行中。 例: root @ hostname [〜]#echo -n你好 helloroot @ hostname [〜]# 我总是觉得很烦。 现在,我可以在PS1变量的开头添加“ \ n”,但是大多数情况下,这将打印我不需要的额外一行。 是否可以知道最后一条命令的输出是否以换行符结尾? 解决方案:( 感谢丹尼斯) PS1='$(printf "%$((`tput cols`-1))s\r")\u@\h [\w]\$ '
10 linux  bash  shell  prompt 

5
如何更改到我刚刚将该文件移动到的目录?
因此,假设我已经完成: mv ./myfile /to/some/other/place/ 现在,我决定要跟踪该文件,然后进入该目录。 我可以选择鼠标,选择文本,键入“ cd”,然后右键单击以粘贴-我希望使用基于键盘的快捷目录。 那么,什么是最好的方法呢? (通常,如果不同,则特别是Centos + Bash)
10 linux  unix  bash  shell  directory 

4
为什么在cygwin下无法读取我的.bashrc?
我的.bashrc看起来像这样: alias name@server="ssh server sname" echo "bashrc read" 该echo语句仅用于检查是否已读取。但是回声什么也没做。我想为一个更快的ssh设置一个别名,使其在框中执行某些命令,这是远程设备上的有效别名。
10 bash  cygwin  bashrc 


13
有用的bash别名并生成最常用命令的列表
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我发现这个文章讨论了一个快速的方法来排序您的bash的历史,看到您最常使用哪些命令: cut -f1 -d" " .bash_history | sort | uniq -c | sort -nr | head -n 30 对于您应该为哪些任务创建别名以及应该彻底完成哪些任务,它确实让您大开眼界。 我很乐意看到ServerFault推荐命令行别名列表,这些列表可以节省您的工作时间。你有什么? 在我们之间,我敢打赌,我们可以节省每天至少10分钟阅读这篇文章的每个用户。(减去第一天,他们将所有时间都浪费在阅读ServerFault上,而不是当然去做!)
10 bash  alias 

3
如何在bash中一起使用ssh和sudo?
我没有找到描述此特定情况的问题。 我正在尝试执行一个非常基本的bash脚本,以从多台计算机检索日志记录。我在本地运行脚本,但需要通过ssh访问外部计算机,以及在该计算机上一次将sudo转换为特权用户... ssh myuser@machine.net sudo su - privledged_user cat logs > file.txt 使用sh -x运行它表明bash卡在了'ssh'行中。所以我尝试将其修改为: ssh myuser@machine.net sudo su - privledged_user cat logs > file.txt 这似乎也无限期地停滞。有没有更好的解决方案来解决这个问题?据我所知,我看不到使用sudo su的方法... 谢谢你的帮助!
10 linux  bash 

2
在此文档中通过SSH运行命令时不存在TTY
我试图在here-document中通过SSH运行命令: ssh example.com <<END sudo /etc/init.d/apache2 reload END 除了当我尝试运行需要输入的内容(例如sudo的密码)时,该选项通常可以正常工作。在这种情况下,我收到以下消息: sudo: no tty present and no askpass program specified 我知道我可以使用-tSSH上的标志来分配伪tty,例如: ssh -t example.com "sudo /etc/init.d/apache2 reload" 它将起作用,但是当我对here-document尝试相同的操作时,它将不起作用,并且我将收到关于不存在tty的相同错误: ssh -t example.com <<END sudo /etc/init.d/apache2 reload END 知道如何使这项工作有效吗? 另外,如果您想知道为什么我希望它与here-document一起使用,而不是仅将其传递在同一行上,那是因为输入命令(可能有几个)来自脚本读取的配置文件而且我听说它避免了转义引号,双引号等命令的麻烦。
10 ssh  bash  sudo 

4
在Shell脚本级别限制文件大小(stdout)的简便方法?
好的,从我的角度来看,这是一个非常实用的用例。 假设我有一个简单的shell oneliner,它确实将输出记录到文件中。这可以是任何东西,例如tcpdump。是否有任何通用且简单的方法来确保输出文件不会超过给定的大小? 在此背后产生共鸣,是为了防止错误地填充安装点上的整个可用空间。如果我忘记了该脚本,或者它每小时会产生GB的数据,那么此简单的调试任务可能会导致潜在的系统崩溃。 现在,我知道某些工具中内置的选项(例如tcpdump中-W / -C的组合)。我需要的是一个非常通用的故障保险。 长话短说-当我运行以下脚本时: % this -is --my=very|awsome|script >> /var/tmp/output.log 如何确保output.log永远不会超过1GB。 脚本可能崩溃,被杀死或任何其他原因。 我正在寻找的解决方案应该简单易用,仅使用流行发行版中可用的工具,例如ubuntu / debian / fedora。一般而言,一些东西可以广泛使用。无论语言/技术如何,都不能选择复杂的多行程序。
10 bash 

4
方便地解析带有单位后缀的数字?
假设您的数据量具有人类可以理解的格式,例如的输出du -h,并希望进一步处理这些数字。假设您要通过grep传递数据,以对该数据的子集求和。您可以在许多从未见过的系统上临时执行此操作,并且只有很少的实用程序。您需要所有标准10 ^ n后缀的后缀转换。 是否存在一个gnu-linux实用程序将流水线中的后缀数字转换为实数?您是否编写了一个bash函数来执行此操作,或者是否编写了一些容易记住的perl,而不是使用一定长度的regex替换或几个sed步骤? 38M /var/crazyface/courses/200909-90147 2.7M /var/crazyface/courses/200909-90157 1.1M /var/crazyface/courses/200909-90159 385M /var/crazyface/courses/200909-90161 1.3M /var/crazyface/courses/200909-90169 376M /var/crazyface/courses/200907-90171 8.0K /var/crazyface/courses/200907-90173 668K /var/crazyface/courses/200907-90175 564M /var/crazyface/courses/200907-90178 4.0K /var/crazyface/courses/200907-90179 | grep 200907 | <amazing suffix conversion> | awk '{s+=$1} END {print s}' 相关参考: 如何按大小对du -h输出进行排序 /programming/2557649/convert-memory-size-human-read-into-actual-number-bytes-in-perl

3
Ubuntu dpkg,非交互式安装
我试图安装一堆.deb文件,而不必与它们进行交互。例如,MySQL服务器将提示dpkg进行配置时,提供交互式菜单以输入管理密码。 我努力了。 export DEBIAN_FRONTEND=noninteractive && export DEBIAN_PRIORITY=critical && sudo /usr/bin/dpkg -i ./files/* 我知道我可以无需配置即可提取文件。我试图创建一个bash脚本来部署预先配置为默认安装Apache,php,mySQL等的服务器。但是,这种“交互式安装”引起了问题。 关于如何禁用它的任何想法?还是可以解决? 谢谢

1
如何在FreeBSD中更改默认shell?
FreeBSD的默认shell是sh,我实在受不了:自动完成功能非常有限,而rehash命令会杀死我。我觉得自己像个武装和一条腿的人。 如何为root以及所有当前和将来的用户将shell全局更改为- zsh或bash-?
10 bash  shell  freebsd  zsh  sh 

2
如果wget的进度怎么办:mega不再削减了?
我有用于在队列中下载大文件的脚本。现在,如果我有一个不错的日志,我将不胜感激。指定-oor -a选项显然是专门为此目的而设计的,但是,正如我在手册中指出的那样,截至我撰写此“非常大的文件”时,其大小不再是50m,而是千兆字节。--progress=dot:mega仅仅为一个3GB的文件产生1000行输出(显然它将是3000 * 80点(。))。所以我想知道:是否有任何方法可以自定义进度样式设置,以便实际上可以使用日志功能?


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.