Questions tagged «bash»

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


2
当有多个文件/目录时,如何使终端自动完成?
如果我有几个目录,例如: afoo abar 有时,当我按Tab键时(例如,“ cd a”然后按Tab键),终端会拒绝自动完成功能,而是打印目录列表。有时它甚至会发出嘈杂的声音。知道如何在这种情况下使其自动完成吗?例如,它可以先显示abar,然后再次显示tab则显示afoo。我在Windows中看到了这种情况,或者在Ubuntu中出现了一些应用

4
如何使用/ dev /(u)random
如何/dev/(u)random在Ubuntu或任何* nix系统上使用? 我尝试了此操作,但它表示拒绝权限。 注意:我也以root用户身份尝试过。 /dev/(u)random sudo /dev/(u)random sudo -s; /dev/(u)random
32 kernel  bash 

3
如何grep 2或3行,其中一行包含我想要的文本,而另一行仅位于文本下方?
这是错误日志的快照: 06:16:29,933 ERROR EmailRMManager$:45 - Exception In get Message com.rabbitmq.client.AlreadyClosedException: clean connection shutdown; reason: Attempt to use closed channel at com.rabbitmq.client.impl.AMQChannel.ensureIsOpen(AMQChannel.java:195) at com.rabbitmq.client.impl.AMQChannel.rpc(AMQChannel.java:222) at com.rabbitmq.client.impl.AMQChannel.rpc(AMQChannel.java:208) at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:139) at com.rabbitmq.client.impl.ChannelN.basicGet(ChannelN.java:645) 我执行以下命令: cat foo.log | grep ERROR 得到一个OP: 06:16:29,933 ERROR EmailRMManager$:45 - Exception In get Message 我应该执行什么命令来获得输出 06:16:29,933 ERROR EmailRMManager$:45 - Exception …

2
文件夹中每个文件的bash命令
我有一组文件,我想对它们应用相同的命令,并且输出应包含与已处理文件相同的名称,但扩展名不同。 目前,我正在将/my/data/Andrew.doc重命名为/my/data/Andrew.txt。我想对/ my / data /文件夹中的所有.doc文件执行此操作,并保留名称。 我尝试了多个版本,但是我猜想我在linux入门时语法上有问题。


3
隐藏命令的输出
我有一个脚本,用于检查是否安装了软件包以及特定进程是否正在使用端口8080。我对bash完全没有经验,所以我做了这样的事情: if dpkg -s net-tools; then if netstat -tlpn | grep 8080 | grep java; then echo "Shut down server before executing this script" exit fi else echo "If the server is running please shut it down before continuing with the execution of this script" fi # the rest of …
31 bash  scripts 



2
为什么Ubuntu的默认〜/ .profile源〜/ .bashrc?
这些是~/.profile我的13.10附带的库存内容(已删除注释行): if [ -n "$BASH_VERSION" ]; then if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi 这是从Debian继承的,但是Canonical为什么决定保留它?据我所知,这不是标准的* nix方式,而且我已经看到各种系统都没有发生这种情况,因此我认为它们一定有充分的理由。当运行用户不希望获得~/.bashrc源代码的登录Shell(例如,在ssh进入计算机)时,这可能会导致意外行为。 我能想到的唯一好处是,不会使用户混淆许多启动文件,并允许他们.bashrc单独编辑并可以读取该文件,而不管外壳类型如何。但是,这是一个可疑的好处,因为为登录名和交互式shell设置不同的设置通常很有用,这会阻止您这样做。此外,登录外壳程序通常不在图形环境中运行,这可能会导致错误,警告和问题(哦,天哪!),具体取决于您在这些文件中设置的内容。 那么,为什么Ubuntu会这样做,我想念的是什么?
30 bash  bashrc  .profile  design 

5
删除名为〜的文件夹
这是输出 ls -l ls -l total 53484 drwxr-xr-x 3 root root 4096 2011-02-10 05:59 ~ -rw-r--r-- 1 root root 54313810 2011-02-13 05:09 jobs.jar -rw-r--r-- 1 root root 384035 2011-02-15 05:33 jobsLog.out 我不能这样做,rm -rf ~ 因为这将删除我的主目录。 我该怎么办?对我来说这不是一个问题,只是一个令人痛苦的问题。
30 bash  rm 

4
使用波浪号如何将其用作主目录的快捷方式?
我很困惑,试图将某些文件从一台PC复制到另一台PC。我知道了,但是语法仍然让我感到困惑。这有效: scp ~/Desktop/Volenteer.png jay@server.ip:~j0h/b 放在Volenteer.png文件夹中/home/j0h/b。但是,这不起作用: scp ~Desktop/Volenteer.png jay@server.ip:~j0h/b 这也将失败,给出未找到退出状态1的文件: scp ~/Desktop/Volenteer.png jay@server.ip:~/j0h/b 就像这样: scp ~Desktop/Volenteer.png jay@server.ip:~j0h/b 很明显,~和之间存在一些差异,~/ 不同之处在于/ $~/ bash: /home/j0h/: Is a directory $ ~ bash: /home/j0h: Is a directory 那么,为什么要在scp中~解决~/?这是一个猜测,我无法验证正在发生的事情。但这似乎不一致,因此令人困惑。这是scp中的错误吗?还是我想念的代字号?
30 bash  ssh  scp 

4
&>和2>&1有什么区别
有两种形式重定向的标准输出和标准错误到标准输出。但是哪个更好?为什么&>认为完美? 我找不到什么区别,因此许多教程,甚至bash手册状态 &>都更好! 所以,我为什么要使用&>而不是2>&1 主要使用bash外壳 编辑:感谢评论员 仅>&可在csh或tcsh中使用 在ksh中,只有2>&1有效。 短划线使用>文件2>&1重定向 然后使用哪一个来确保我的脚本与其他系统兼容,无论使用的shell是什么!

2
“ su-”,“ sudo bash”和“ sudo sh”有什么区别?
我想知道两者之间有什么区别 su - sudo bash sudo sh 我在执行su -操作时无法以root用户身份登录,因为我没有root密码-我的意思是我拥有可以使用的用户密码,sudo "command" 但是该密码不起作用,因为su - 我可以sudo bash使用用户密码以root 用户身份登录,并且在这样做,sudo sh但随后我收到此格式的命令提示符 #

3
Bash自动补全并添加空格-为什么以及如何解决?
我使用制表符完成比输入字母更多。我曾经打过字rm ~/De<TAB>,然后输入完成,rm ~/Desktop/这样我就可以继续下一个级别了。 最近,这种行为发生了变化。现在rm ~/Desktop<SPACE>,完成将产生,这意味着如果要继续,必须退格并键入斜杠。这让我哭了。 所做的更改似乎位于中的函数_longopt()中/etc/bash_completion,但是据我所知。此更改是否是有意的?如果是,那么这样做有什么好处?我能否恢复旧的行为,最好是通过config选项,而不是仅仅从其他系统复制旧的代码? 编辑:该功能供参考。 _longopt() { local cur prev split=false _get_comp_words_by_ref -n = cur prev _split_longopt && split=true case "$prev" in --*[Dd][Ii][Rr]*) _filedir -d return 0 ;; --*[Ff][Ii][Ll][Ee]*|--*[Pp][Aa][Tt][Hh]*) _filedir return 0 ;; esac $split && return 0 if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen …
29 bash 

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.