Tag: bash

bash中的`(括号中的感叹号)通配符

我遇到了通配模式和通配符,我特别感兴趣的是[!] 。 此构造类似于[!]构造,除了匹配括号内的任何字符外,它将匹配任何字符,只要它不在[和]之间列出即可。 rm myfile [!192] 以上我认为将删除所有/所有文件,除了名称中包含192的任何/所有文件。 然而,我担心使用文件扩展名正确使用它,特别是多个条件。 在这种情况下,正确的语法是什么? rm myfile [!.gif .csv. mp3] 要么 rm myfile [!.gif !.csv !.mp3] 我担心的是,这个时期可能是错位的,所以任何一个文件都有. 当我试图操纵特定文件时,它们会被操纵。 此构造类似于[ ]构造,除了匹配括号内的任何字符外,它将匹配任何字符,只要它不在[和]之间列出即可。 (引自http://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm ) 现在; 对我来说,这意味着一个单数! 足够,其后的所有值都包含在该范围内。

如何从`ls -l`的输出中选择字段/列?

我的目标看似简单(至少对我来说)。 我希望获取ls -l或ls -lh的输出并选择一个字段。 我正在寻找尽可能的防弹,我的意思是,假设文件名可以有可变数量的空格,而不是字段中的所有内容都具有相同的长度等。 具有脚本的加分点将采用该字段的名称(或甚至只是一个字段编号),然后返回该字段的内容。 我想转 成:

Exec中的时间戳= .desktop文件的行可能吗?

Lubuntu 16.04 – Openbox会话 我可以使用终端用gedit打开带时间戳的文件: gedit ~/$(date +%Y%m%d%H%M%S).txt 该命令也可以通过Openbox中的键盘快捷方式使用。 # gedit time-stamped file sh -c ‘gedit ~/$(date +%Y%m%d%H%M%S).txt’ 但我不能通过.desktop文件的Exec=行来做同样的事情。 Exec=sh -c ‘gedit ~/$(date +%Y%m%d%H%M%S).txt’ 只需创建一个名为~/.txt的文件 那么我如何获得.desktop文件来做我想要的呢?

将输入删除回上一个正斜杠

我经常会在服务器上的几个文件之间进行浏览。 我将按顺序运行以下示例命令: nano /web/site/path/to/file /web/site/script.py nano /web/site/path/to/anotherFile nano /web/site/path/to/yetAnotherFile /web/site/script.py nano /web/site/path/to/etc 要从一个nano命令转到下一个命令,我现在按Up和Backspace来替换路径的最后一段。 这个问题是我真的非常懒惰。 是否有键盘快捷键(或Bashism)可以: 被最后使用的路径替换(最后添加一个路径) 在当前行中删除(例如在按下Up后 )回到最后一行/

检查文件以及文件是否可读写

我正在尝试编写一个脚本来查找保存到我桌面的某个.txt文件。 我希望脚本能够检查此文件是否存在,然后检查它是否可读写。 任何提示?

运行bash脚本后退出终端

我正在尝试使用gnome-open命令编写一个bash脚本来打开某些文件(主要是pdf文件)。 我还希望终端在打开pdf文件后退出。 我已经尝试将exit添加到我的脚本的末尾,但是没有关闭终端。 我确实尝试在线搜索我的问题的答案,但我找不到任何合适的答案,如果你们能提供帮助我真的很感激。 我需要一个只能杀死运行命令的终端的答案,不是所有的终端都可以吗? 我接受的上一个答案会杀死所有打开的终端窗口。 我直到今天才意识到这种情况。

打开多个终端选项卡和运行命令

我需要打开多个终端选项卡,给它们标题,转到目录,并使每个选项卡运行命令。 我是Linux和shell脚本的新手,在网上搜索并检查了一些解决方案之后,我制作了这个脚本(根据下面的答案编辑 ): #!/bin/bash cd /media/Extra/Project tab=” –tab-with-profile=Default” options=(–tab –title=Terminal) cmds[1]=”‘rails s'” titles[1]=”Server” cmds[2]=”‘rails c'” titles[2]=”Console” for i in 1 2; do options+=($tab –title=”${titles[i]}” -e “bash -c \”${cmds[i]} ; bash\”” ) done gnome-terminal “${options[@]}” exit 0 它会打开选​​项卡,命名它们,但无法执行生成此错误的命令: 为此终端创建子进程时出错 另一个缺点是,如果我暂停运行命令,它会关闭标签,这是我不想要的。 我需要能够停止命令并在同一个选项卡中再次运行它。 脚本有什么问题? 还有另一种更简单的方法吗? 注意:如果我从命令中删除了(-e“\”bash -c $ {cmds [i]}; bash \“”)部分,它将打开给定目录中的选项卡并命名它们,没有错误。 – 编辑-1: 在应用下面的@Tuknutx答案并编辑脚本后,错误不再出现了,但是它给了我bash: rails c: command […]

如何在登录时显示包含用户名和日期的消息?

如何在登录Ubuntu时显示消息“hello $ username,今天的日期是$ date”。

解释“-bash:没有这样的文件或目录”

为什么bash声称文件不存在时显然不存在? $ ls -la -rx—— 1 configurator configurator 3904 Dec 7 10:36 a $ file a a: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, stripped $ ./a -bash: ./a: No such file or directory

如何在不使用鼠标的情况下有效地将在命令行输入的文本发送到系统剪贴板?

假设我在命令行中输入了以下long命令 $ some very long command that I want to copy to the clipboard 如何有效地将其放入系统剪贴板? 我正在使用Gnome Terminal 2.23.1。 我知道我可以获得鼠标并突出显示并复制它,但我想要一个通用的键盘解决方案。 如果它推广到多个命令行程序也会很好。 例如,在vi模式下的bash中,我可以按v然后在vim中编辑命令,从而使用Vim的副本到剪贴板function,但是在命令行中使用R时这不起作用。 它也有点慢。 我喜欢它,如果在vi模式下,我可以按yy并将该行的内容复制到系统剪贴板,但这似乎不起作用。 此外,任何yanking命令似乎都不会将内容复制到系统剪贴板; 它们似乎只复制到bash使用的缓冲区。 更新: 发帖后我发现了 关于SO的类似问题 关于readline修改的这一有希望的讨论