标签: bash

bash 变量在哪里定义?

如何找到在那里定义了 bash 变量的文件?

假设echo命令显示

$ echo $DB_ROOT
/home/mahmood/db-4.0
Run Code Online (Sandbox Code Playgroud)

现在,我怎样才能找到在那里定义了这个变量的文件?我不得不说我没有在~/.bashrc.

linux bash

4
推荐指数
1
解决办法
207
查看次数

如何按日期范围列出文件?

我想列出 3 天前的文件。我在stackoverflow找到了这个:

find . -type f -printf "%-.22T+ %M %n %-8u %-8g %8s %Tx %.8TX %p\n" | sort | cut -f 2- -d ' ' | grep 2012
Run Code Online (Sandbox Code Playgroud)

但我有点不明白整个命令是什么意思。我想知道是否有一些简短易懂的东西。

linux bash command-line find

4
推荐指数
1
解决办法
2万
查看次数

SED:如何使用 Sed 在第一个字符串实例后打印每一行?

我有一个类似格式的文件...

16:28 asdfasdf
16:29 4398upte
16:30 34liuthr
16:31 34tertio
Run Code Online (Sandbox Code Playgroud)

如何使用 SED 打印出包括“16:30”行和之后的每一行?

结果会是...

16:30 34liuthr
16:31 34tertio
Run Code Online (Sandbox Code Playgroud)

现在,我使用 sed 如下,但我必须手动找到第一行的行号,例如“562697”:

sed -n '562697,$p'
Run Code Online (Sandbox Code Playgroud)

linux bash shell sed

4
推荐指数
2
解决办法
3882
查看次数

输出出现2次以上的项目

如何选择出现 4 次或更多的 ip,例如这里?

输入文件是

192.168.1.28
192.168.1.100
192.168.1.31
192.168.101.2
192.168.1.31
192.168.11.02
192.168.1.31
192.168.1.28
192.168.1.28
192.168.1.31
192.168.21.31
192.168.1.28
192.168.1.31
Run Code Online (Sandbox Code Playgroud)

然后我想得到这个输出:

192.168.1.28
192.168.1.31  
Run Code Online (Sandbox Code Playgroud)

首选使用 AWK

谢谢你们!:)

bash shell awk bash-scripting

4
推荐指数
2
解决办法
6541
查看次数

如何将bash自动完成的结果作为字符串获取?

我正在寻找的不是如何在 bash 中为另一个程序添加自动完成功能,而是一种将 bash 中发生的事情的结果转换为字符串的方法,基本上:

autocomplete "/etc/apa"
Run Code Online (Sandbox Code Playgroud)

会回来

/etc/apache2/
Run Code Online (Sandbox Code Playgroud)

所以我可以在我的脚本中使用它。

非常感谢任何帮助,因为我能找到的只是如何使用“完整”的 bash 函数,它做了一些不同的事情;)

干杯,拉斐尔

bash command-line autocomplete bash-scripting

4
推荐指数
1
解决办法
735
查看次数

osx:有选择地压缩大量文件:-@ 选项可以吗?

我需要制作一个 zip 文件,从包含 ~500k 文件的目录中归档 ~100k 文件。当我尝试明显的命令时,我收到“参数列表太长”错误:

zip archive.zip *pattern*.txt                        # fails
zip archive.zip `find . -name "*pattern*.txt"`       # fails
Run Code Online (Sandbox Code Playgroud)

一种方法是使用-@选项通过标准输入提供文件列表:

find . -name "*pattern*.txt" | zip -@ archive.zip
Run Code Online (Sandbox Code Playgroud)

但是,zip手册页说:

如果文件列表指定为 -@ [Not on MacOS],则 zip 从标准输入而不是从命令行获取输入文件列表。

困扰我的是“不在 MacOS 上”。我继续尝试了这个-@选项,它似乎有效;但我对它是否真的在做正确的工作感到紧张(归档所有文件,完整无缺)。

以下是我的问题:

  1. 为什么-@在 MacOS 上不行?
  2. 是否有某些版本的 MacOS/bash/zip 出现此警告,而其他版本则不然?这是一个过时的警告,如果是,分界线在哪里?
  3. 在不使用的情况下,解决此问题的可行方法是-@什么?

请注意,此处给出的解决方案zip: Argument list too long (80.000 files in total)将不起作用;我需要归档目录中的一些文件,而不是全部。

我正在运行 Mac OS 10.7.5。这是一些版本信息:

$ bash --version
GNU bash, version 3.2.48(1)-release …
Run Code Online (Sandbox Code Playgroud)

zip bash command-line macos

4
推荐指数
1
解决办法
1496
查看次数

当有人运行 sudo 时给我发邮件

我已将以下几行添加到 /etc/sudoers.d/my_sudoers

Defaults    mail_always
Defaults    mailto="email@domain.com"
Run Code Online (Sandbox Code Playgroud)

每次sudo运行时我都会收到一封电子邮件

我该如何修改它,以便我只在特定人员运行 sudo 时收到电子邮件(除 2 个用户外的所有人)

谢谢

sudo bash shell ubuntu

4
推荐指数
1
解决办法
4060
查看次数

Linux:如何评估 STDOUT 的内容?

假设您有一个带有某种终端命令的文件。每行如何执行?你能把 more 的输出传送到一个eval?

%> more ./foo.txt
Run Code Online (Sandbox Code Playgroud)

编辑:

在从评论中获得一些帮助/指导之后,我想我还应该注意,我已经有一段时间没有完成任何 shell 脚本了,所以虽然我说eval我可能是指echo或其他一些执行代码的方式。

如果 foo.txt 包含多行代码,但我想执行包含 的行echo 'bar bar',我正在寻找一种方法来做到这一点,假设一个grep. 逻辑上类似于:

grep echo foo.txt | xargs echo
Run Code Online (Sandbox Code Playgroud)

linux bash sh tcsh

4
推荐指数
1
解决办法
3513
查看次数

尽管在 PATH 中,但未找到可执行文件

我的 $PATH 设置为很多目录,包括~/bin~/target/bin

我想执行里面的 script.sh~/target/bin但我收到错误bash: ~/bin/script.sh: No such file or directory

这让我很困惑,因为which找到了正确的目录 ~/target/bin 并且 ~/target/bin/script.sh 执行得很好。

bash 中是否有任何特殊设置可能导致这种错误的路径处理?

linux bash shell path

4
推荐指数
1
解决办法
2699
查看次数

如何在没有密码的情况下执行bash脚本?

我需要在系统启动后执行脚本。例如:

(sleep 5 && (sudo dhcpcd wlp4s0))
Run Code Online (Sandbox Code Playgroud)

我需要什么:执行脚本。我所拥有的:[sudo] eugene 的密码:我已经编辑了 /etc/sudoers,所以:

eugene ALL=NOPASSWD: /home/eugene/dhcpcdstart.sh
Run Code Online (Sandbox Code Playgroud)

但它是无效的。如何在没有密码的情况下执行当前脚本?Arch Linux 2013.05.01

linux bash arch-linux

4
推荐指数
1
解决办法
1234
查看次数

标签 统计

bash ×10

linux ×6

shell ×4

command-line ×3

bash-scripting ×2

arch-linux ×1

autocomplete ×1

awk ×1

find ×1

macos ×1

path ×1

sed ×1

sh ×1

sudo ×1

tcsh ×1

ubuntu ×1

zip ×1