Questions tagged «bash»

Bash(Bourne-Again SHell)是默认情况下在Ubuntu命令行界面中使用的shell。

1
带“ >>”符号的回声有什么作用?
我看过一些命令 echo '* - nofile 65535' >> /etc/security/limits.conf 我知道echo在屏幕上打印了一些东西。 而limits.conf是该/ etc / security路径中的文件。 但是想在>>这里做吗?它意味着像“到”还是“在”中?


2
如何防止grep多次打印相同的字符串?
如果我grep包含以下内容的文件: These are words These are words These are words These are words ...对于单词These,它将打印字符串These are words四次。 如何防止grep打印多次重复字符串?否则,如何处理grep的输出以删除重复的行?

4
在bash中查找目录路径时如何传递正则表达式?
我已经写了一个小bash脚本找到,如果一个名为anaconda或miniconda在我的用户$HOME。但是它找不到miniconda2我家中的目录。 我该如何解决? if [ -d "$HOME"/"(ana|mini)conda[0-9]?" ]; then echo "miniconda directory is found in your $HOME" else echo "anaconda/miniconda is not found in your $HOME" fi PS:如果我有[ -d "$HOME"/miniconda2 ]; then,那么它将找到miniconda2目录,所以我认为错误在于部分"(ana|mini)conda[0-9]?" 我希望脚本是通用的。对我而言,它是miniconda2,但对于其他一些用户,可能是anaconda2,miniconda3等。



2
如何通过管道将每个命令传递给外壳?
我想编辑我的.bashrc,以便将外壳程序上执行的每个命令通过管道传递给某些内容,例如: $ sudo apt update _________________ < sudo apt update > ----------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || 我已经完成了一些类似的工作,但并不完全是: $ bash $ exec > >(cowsay) $ echo "Hello AU!" $ exit _______ < Hello AU! > ------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || …

7
如何计算具有特定扩展名的文件及其所在目录?
我想知道.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输出会在文件名中显示换行符),并写入一大堆空文件(哎呀)。 如何可靠地枚举我的.c文件及其包含的目录? 如果有帮助,可以使用以下命令创建带有错误名称和符号链接的测试结构: mkdir -p cfiles/{1..3}/{a..b} && cd …

5
隐藏bash历史记录中的“ history -d”
如果我不小心在bash中键入密码或其他敏感内容,则可以轻松地用删除该行history -d ROW#,但是history -d ROW#历史记录中始终会显示命令,向所有人显示有人纠正了错误。 我可以在命令后面附加一些内容以防止它出现在bash历史记录中吗?



5
为ssh连接创建别名
我想加快连接到特定服务器的速度。 我有说的服务器: 123.123.123.1 123.123.123.2 123.123.123.3 我通常连接以下内容: ssh -p 12345 my_user@123.123.123.1 这很痛苦,因为服务器之间的唯一区别是ip的最后一个数字。 我尝试了以下代码: alias ssht='{ ip=$(cat -); ssh -p 12345 my_user@"123.123.123.$ip"; }<<<' 但是我得到一个错误: karl@karls-laptop ~/scripts $ ssht 1 Pseudo-terminal will not be allocated because stdin is not a terminal. 有没有办法让这个工作?
14 bash  ssh  alias 


2
什么是/ bin / rbash?
我正在学习Common Shell程序。 当我运行时cat /etc/shells,它显示: # /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash /bin/rbash 这是/bin/rbash什么 它用于脚本编制吗?

1
为什么“!” 快捷方式无法执行先前运行的命令?
最近我在终端机上打字 username:~$ !! 并从bash得到错误: bash: !!: command not found 同时,当在超级用户下完成时,它会成功。 我调查了用户PATH的内容,发现没有可疑的地方: /home/username/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin 这是输出: username:~$ history | tail 1993 date 1994 cal 1995 vcal 1996 uptime 1997 uname 1998 uptime 1999 uname 2000 uptime 2001 uname 2002 history | tail 另一个: username:~$ echo foo foo username:~$ !! bash: !!: command not …

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.