Questions tagged «bash»

Bash是来自GNU Project的类Unix操作系统的免费外壳。

5
获取文件的父目录
我只想获取文件的父目录的名称。 示例:当我有时path=/a/b/c/d/file,我只希望d而不是/a/b/c/d(从中得到dirname $path)作为输出。 有什么复杂的方法可以做到这一点吗?
24 linux  bash  shell 

4
Windows 10 Linux子系统SSH客户端资源暂时不可用
我正在尝试使用Windows 10 Linux子系统中的SSH服务器。我正在使用MS Windows 10 Home Insider Preview内部版本14366。 在命令提示符下,键入: ssh user@domain.com 键入ssh命令几秒钟后,我收到以下消息: ssh:连接到host domain.com端口22:资源暂时不可用 我可以使用Putty以及Git Bash中的ssh成功进行连接。 因此,这使我相信问题出在我的本地PC上,更具体地说是在Linux子系统内。我对Linux环境仍然很满意,不确定如何解释此消息。哪些资源不可用,我应该怎么做才能使其可用?
24 windows-10  bash  ssh 

2
如何在if / else语句中将变量与文本字符串而不是整数进行比较?
在编写shell脚本的过程中,我遇到了以下if / else语句出现在脚本中间的问题: if [ $act -eq "add" ] then read - "add or update: " $comm git commit -m "$comm $file" else git commit -m "$act $file" fi 返回错误为: ./gitup: line 13: [: add: integer expression expected 然后继续执行脚本的其余部分。我如何让if段将变量评估/比较为字符串输入而不是整数;在我尝试过的其他几件事中,使用“!=”时需要一个不同的错误。

4
在系统重置或重新安装之前,如何备份(WSL)Windows 10的Linux子系统?
我的问题是,由于某些问题,我必须重置或重新安装Windows,但是我花了很多时间来配置WSL进行开发,并且不想丢失它。 有什么方法可以备份整个WSL及其设置和已安装的模块,插件,用户等,并在重置或重新安装Windows之后将其还原?我在这个主题上进行了大量搜索,但是找不到任何有用的信息。 否则,如果没有备份方法,Windows 10重设会完全删除WSL吗?

2
当我“退出” SSH会话时,如何防止清除终端输出?
此问题是从Stack Overflow 迁移而来的,因为可以在Super User上回答。 迁移 9年前。 这是这种情况:我在Ubuntu中打开一个终端,然后执行do ssh host-1,它可以按预期工作。在host-1上,我这样做了ssh host-2,它再次正常工作,并将我连接到host-2。例如,在host-2中echo "blah",它会打印blah到屏幕上。问题:如果执行此操作exit,则屏幕将清除,并且仅剩下以下内容: Connection to host-2 closed. myusername$ 回到主机1 blah后,如何防止清除主机2上运行的命令(即等等)生成的屏幕输出exit? 我已经进行了一些调试:与上面的完全一样,我已经有一个朋友登录到host-1和host-2,并且当他exit来自host-2时,他的屏幕没有清除。所以这一定与我的环境有关...对吗?有什么想法吗? 我已经在Windows XP中以及从Ubuntu的终端中使用PuTTY进行了尝试-无论如何都是相同的行为。
23 bash  ssh 

3
如何在控制台上链接命令?
在中bash,有时我想连续运行几个命令,而又不想等到它们完成后再键入新命令。所以我做这样的事情: cmd1; cmd2; cmd3 不幸的是,其中一个命令可能会失败。在这种情况下,我想停下来。有一种简单的方法可以做到这一点,但是要确保只有在上一个命令的退出代码为0时,我才继续运行这些命令?

3
是什么导致bash在执行错误命令后暂停?
当您输入错误的命令时,说您想做: $ cd .. $ ls 但是相反,您输入的速度太快,最终在l和s之间输入了回车,因此得到: $ cd .. $ l sbash: l: command not found... 当然,当我们快速键入时,这种情况一直都会发生。我很好奇的是错误命令文本出现在屏幕上之后2.5秒(在我的系统上)暂停的来源。在我看来,它会立即识别出错误的命令,并打印有关此错误的消息,但是为了娱乐起见,我需要等待2.5秒才能将我返回命令行。是什么原因造成的?有办法解决吗?这是一个小麻烦,但我想摆脱它。:) 编辑:运行Fedora 16系统
23 bash 

3
这个神秘的Bash命令是什么意思?
我在阅读Ubuntu论坛上有关恶意命令的警告,发现了这个有趣的宝石: :(){ :|:& };: 警告:除非您有严格的proc限制(您可能没有),否则上面的代码将使您的计算机崩溃,这将提示硬重启。 考虑此代码类似于running sudo rm -rf /。 但是,这是什么意思?即使具有编程经验,我也从未见过非汇编语言的神秘命令。
23 bash 

1
为什么我们有登录,非登录,交互式和非交互式bash shell?
因此,bash手册页解释了什么是登录和交互式shell: 登录外壳是一个参数为零的第一个字符为-的外壳程序,或以--login选项开头的外壳程序。 交互式外壳程序是一个不带非选项参数且不带-c选项(其标准输入和错误均连接到终端(由isatty(3)确定))启动的外壳程序,或一个以-i选项启动的外壳程序。如果bash是交互式的,则设置PS1并且$-包括i,从而允许shell脚本或启动文件测试此状态。 我认为这意味着我们可以有4种不同类型的Shell: 交互式登录外壳, 非交互式登录外壳, 交互式非登录外壳, 非交互式非登录外壳 但是为什么我们首先要有交互式/非交互式和登录/非登录shell?为什么是品种?如果只有一种外壳,我们会损失什么? 另外,当尝试通过运行来确定我是否在登录外壳程序中时echo $-,它也会输出: himBH 关于这些标志的解释这里,但是h,H和m没有解释。是否有描述所有这些标志的地方?

5
linux管道符号“ |”有什么作用?[重复]
这个问题已经在这里有了答案: 了解如何将输入发送到Bash中的管道 (4个答案) 5年前关闭。 这是一个以相反顺序对文件夹中的文件进行排序的命令 ls | sort -r |该命令中的符号有什么作用? 我在这里真正要寻找的是针对Linux初学者的高级(易于理解)管道解释。我在Superuser上看到了有关管道的其他问题,但是没有一个问题可以用简单的术语来解释它们的作用以及它们与重定向(>或<符号)的区别。

2
如何从终端CD到smb://user@100.100.100.100?
我在计算机上使用ubuntu和gnome。 当我打开文件浏览器时,在左侧栏杆上,我可以方便地看到一个名为“工作服务器”的文件夹。当我将鼠标悬停在其上时,以下标题显示为“ smb://john@69.100.100.1”。如果单击该文件夹,则可以看到该文件夹​​的内容。一切都很棒。 所以现在当我打开一个终端/外壳时,我输入 cd smb://john@69.100.100.1 我收到一条错误消息,指出该目录不存在。如何通过shell / terminal输入此目录?
23 bash  terminal  mount  smb 

3
将反向杀伤词绑定到Ctrl + w
我正在尝试从长时间使用Tcsh切换到最近对Bash的探索。 我已经设法移植了所有我喜欢的功能,但Ctrl + w则将空格和斜杠视为单词边界,很可能是后杀单词。但是,在Bash中,readline会一直删除到第一个空格,并删除它们之间的所有斜杠。 我已经尝试了\ Cw的多种组合:使用bind在.inputrc和.bashrc中都使用了反向杀伤词,但是我无法使其按我想要的方式工作。 有趣的是,通过Windows中的Putty,我可以使用Alt + Backspace(手册也说这是默认绑定)来产生我想要的确切行为。但是在我的Mac电脑上的Terminal.app中,此操作无效。我碰巧从Terminal.app登录的任何FreeBSD或Linux服务器也是如此。 因此,我向超级用户寻求帮助。
23 bash  readline 

7
并行运行命令,同时限制命令数
顺序:for i in {1..1000}; do do_something $i; done-太慢 并行:for i in {1..1000}; do do_something $i& done-负载过多 如何并行运行命令,但每秒钟最多运行20个实例? 现在通常使用hack like for i in {1..1000}; do do_something $i& sleep 5; done,但这不是一个好的解决方案。 更新2:将接受的答案转换为脚本:http : //vi-server.org/vi/parallel #!/bin/bash NUM=$1; shift if [ -z "$NUM" ]; then echo "Usage: parallel <number_of_tasks> command" echo " Sets environment …

3
如何在Vim中插入日期
在vim中,您可以用“!”执行命令。您可以将其与“ r”组合以将输出插入到当前缓冲区中。 :r!date Fri Jul 20 09:39:26 SAST 2012 将日期插入文件中。 现在,当我尝试做一些更有趣的事情时,例如使用不同格式+%F的日期。在命令行上 $日期+%F 2012-07-20 Vim :r!date“ +%F” message.to.followup.lstF 将文件名放到文件名后面。一些如何在vim中扩展r!date“ +%F”而不在命令行上运行。我需要做些什么来运行它,以便将其内容放入vim中。 也许vim有一种更好的方法将日期插入文件中。
23 linux  command-line  bash  vim  date 

5
如何在bash中获取文件的完整路径?
我想要一种简单的方法来获取文件的完整路径。我目前输入: echo `pwd`/file.ext 为了缩短它,我做了一个bash别名: alias fp='echo `pwd`/' 但是现在如果我输入的话fp file.ext,在/和之间会出现一个空格file.ext。 这样的命令是否已经存在,而我却错过了?如果没有,我将如何在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.