我想永久保存我使用和录制的键盘宏。有没有一种简单的方法可以为我新录制的宏“查看源代码”,以便我可以将它绑定到 ~/.inputrc 中的键盘快捷键?C-x (C-x )
我以为dump-macros会做,但似乎没有...
我正在为我的个人桌面从 Windows 迁移到 Ubuntu,我想知道一种简单的方法来备份个人数据,例如 Firefox 书签、个人文档等...
在 Windows 中,我手动复制所有内容,而在 Ubuntu 中,我想创建一个 bash 脚本来自动完成。
除了创建文件并使其可执行之外,我对 bash 脚本一无所知,还有这个简单的例子:
#!/bin/bash
cp /files/file.doc /media/flashdrive/
Run Code Online (Sandbox Code Playgroud)
如何自动检测我当前的个人资料?(我的电脑上目前有 3 个配置文件,一个我不使用,一个给我的没有书签的妻子,还有我的)。
我有一个包含大量.gz文件的目录层次结构。我希望能够为字符串“foo”递归地grep它们。根据我在网上阅读的内容,以下内容应该有效:
zgrep -R -H "foo" .
Run Code Online (Sandbox Code Playgroud)
但是,这永远不会返回任何结果。如果我用文件名替换点,它确实有效。例如,
zgrep -R -H "foo" myFile.gz
Run Code Online (Sandbox Code Playgroud)
然而,显然,这不再是递归的。
我知道“foo”在一些文件中,因为以下命令返回许多结果:
find . -iname "*.gz" | xargs zgrep "output" | less
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么我的递归 zgrep 命令不起作用。我在 RHEL linux 机器上
我在 OSX 上有一个应用程序,它反复进入“无响应”状态并且必须被强制终止。我希望将其自动化,但是在使用ps检查流程时,我没有看到任何与“未响应”状态相对应的内容。我查看了状态指示器,但无论是否响应,应用程序都显示为S。
state 状态由字符序列给出,例如“RWNA”。第一个字符表示进程的运行状态:
- I 标记一个空闲的进程(睡眠时间超过大约 20 秒)。
- R 标记一个可运行的进程。
- S 标记睡眠时间少于 20 秒的进程。
- T 标记一个停止的进程。
- U 将进程标记为不间断等待。
- Z 标记一个死进程(一个“僵尸”)。
我如何确定进程是否像活动管理器那样没有响应?
我也对 AppleScript 解决方案持开放态度。
我正在将一个 heredoc 回显到一个文件中,但换行符正在丢失
运行这个脚本
#!/bin/bash
NAME="$1"
mkdir -p $NAME
FILE=$(cat <<SETVAR
name = "$NAME"
type = "test"
SETVAR
)
echo $FILE > $NAME/$NAME.txt
Run Code Online (Sandbox Code Playgroud)
使用 arg: foo,导致 foo/foo.txt 中的文件包含
name = "foo" type = "test"
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢
我想找到一系列文件(基于通配符表达式)并汇总它们的磁盘使用量。
像这样的东西:
$ find . -name 'flibble*' -ctime +90 -exec du -sh {} \;
2.1G ./flibble_116.log
2.1G ./flibble_83.log
2.1G ./flibble_211040_157.log
2.1G ./flibble3747_51.log
Run Code Online (Sandbox Code Playgroud)
这项工作。但它不会产生我正在寻找的结果。它列出了每个文件使用的空间,就像find遍历它们一样。
我想要的是du找到的所有文件的总数。
我无法从 Ansible 剧本“分离地”运行远程应用程序启动脚本。脚本将运行,但我无法让它获得/保持分离。我可能做错了什么,但什么?
这是我的复制器。
我在 Test.java 中的远程 Java 应用程序运行了 10 秒:
class Test {
public static void main(String[] args) {
for (int I = 1; I <= 10; i++) {
System.out.println("Hello world " + I);
try { Thread.sleep(1000);
} catch (Exception e) { System.out.println("Exception caught: " + e);
}
} } }
Run Code Online (Sandbox Code Playgroud)将其编译为 Test.class (javac Test.java),然后使用“java Test”运行该类按预期工作(给出 10 条输出消息,然后退出)。
我运行此应用程序的可执行 shell 脚本(如在 chmod 755 中)如下所示:
#!/bin/bash
java Test &
Run Code Online (Sandbox Code Playgroud)手动运行它也完全没问题:Java 应用程序在我的控制台中运行并生成相同的标准输出,但 shell 脚本已经退出,我重新控制了我的 bash 会话。
现在通过来自另一台服务器的 ansible playbook 运行它。我尝试以不同的方式使用“command”模块和“shell”模块,但无济于事......
--- …Run Code Online (Sandbox Code Playgroud)为什么以下两次执行的输出不同?(我的最终命令中的变量需要双引号)
$ sudo su -c "echo `cat /root/root_file`"
cat: /root/root_file: Permission denied
$ sudo su -c 'echo `cat /root/root_file`'
Yay, highly classified content!
Run Code Online (Sandbox Code Playgroud) 我有几台机器,我定期 ssh 进入,只是为了使用sudo su我的会话的其余部分作为某个特殊用途的用户登录。一般工作流程是:
mymachine:~ me$ ssh me@othermachine
othermachine:~ me$ sudo su - specialuser # note: no password needed
othermachine:~ specialuser$ # do stuff
Run Code Online (Sandbox Code Playgroud)
我想把它归结为一个可以别名的单行代码,这样我就可以为每台机器设置一个别名,然后在一个命令中到达我需要的地方,而无需键入sudo su - specialuser样板。我也许me@othermachine可以sudo su在登录时设置为,但我想保持操作的灵活性,就像me我需要的那样。
(注意:我无法控制othermachine或控制它的设置方式;这是我在受雇时采用的既定工作流程。)
我的第一个想法是
ssh me@othermachine "sudo su - specialuser"
Run Code Online (Sandbox Code Playgroud)
和这种工作,但它没有提示我,^C杀死它并将我注销,我认为其他各种事情也可能是错误的。
在阅读Run Remote ssh command with Full Login Shell 之后,我尝试了一些更奇特的东西,比如
ssh me@othermachine 'bash -l -c "sudo su - specialuser"'
Run Code Online (Sandbox Code Playgroud)
和
ssh me@othermachine 'bash -l -c …Run Code Online (Sandbox Code Playgroud) 为什么这不能解压给定目录中的所有 zip 文件?
find -name "*.zip" -exec unzip {} + \;
Run Code Online (Sandbox Code Playgroud)
相反,对于每个匹配项,我得到“警告:文件名不匹配:”