小编chi*_*cks的帖子

自定义 bash shell:粗体/颜色命令

网上有很多教程/帖子(例如http://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/)关于如何通过设置在 bash 中自定义提示PS1。有没有办法自定义我输入的命令的颜色/粗体?

换句话说,作为一个例子,假设我想要一个绿色的提示,一个粗体的蓝色命令,然后以任何默认的颜色输出。在下面的示例中,我已经知道如何joe>通过设置PS1. 但是有没有一种方法可以让我git status显示为粗体?

joe> git status
# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
#
...
Run Code Online (Sandbox Code Playgroud)

colors bash

14
推荐指数
2
解决办法
7435
查看次数

将 Byobu 与 tmux 一起使用时,在 Vim 中使用 Ctrl+箭头键的问题

在 Vim 中,我设置了 Ctrl+箭头键来跳过单词。在 gnome-terminal 中运行 Vim 时,这工作得很好。

但是,当使用byobu (tmux) 时,它显示出奇怪的行为:它会删除光标后的所有内容。

作为参考,这些是我的 vim 设置:

:inoremap <C-Left> <C-\><C-O>b
:inoremap <C-Right> <C-\><C-O>w
Run Code Online (Sandbox Code Playgroud)

vim tmux byobu

13
推荐指数
1
解决办法
2449
查看次数

谁重命名了目录?

我在任何地方都找不到答案。我如何知道谁重命名了目录?

ls -al 仅显示创建该目录的用户的名称。

forensics rename files

11
推荐指数
2
解决办法
2963
查看次数

最繁忙的文件列表

我正在寻找一种工具,它将列出按文件中的活动量排序的打开文件。所以lsof不能完成这项工作(除非我忽略了一种使用方式lsof)。理想情况下,该工具应该像 一样工作top,并且应该能够在特定的排序活动之间切换:读取、写入、字节、每秒搜索。最好,它应该在 RHEL/CentOS/EPEL 中很容易获得。

有这样的工具吗?

linux monitoring top open-files

9
推荐指数
1
解决办法
205
查看次数

为什么当我用 CTRL-Z 停止时 sleep 命令进程仍在后台运行?

我要做的是:

sleep 5 
Run Code Online (Sandbox Code Playgroud)

并立即CTRL-Z所以当我打开时,jobs我看到:

[1]+  Stopped                 sleep 5
Run Code Online (Sandbox Code Playgroud)

接下来,当我执行fg %1sleep 过程不再运行时,它已完成,这意味着它在运行 5(也许 4?)秒的同时运行Stopped。为什么?

process jobs background-process

9
推荐指数
1
解决办法
475
查看次数

"w" 与 urandom 有什么关系?

> strace w 2>&1 | grep urandom
read(4, "/usr/bin/grep\0urandom\0", 2047) = 22
> 
Run Code Online (Sandbox Code Playgroud)

为什么“w”需要urandom?如何避免这种情况?

更新:

> strace w 2>&1 | awk '/urandom/'
read(4, "awk\0/urandom/\0", 2047)       = 14
> 
Run Code Online (Sandbox Code Playgroud)

那么过滤与urandom有关吗?

> strace who 2>&1 | grep urandom
> 
Run Code Online (Sandbox Code Playgroud)

那么为什么“谁”没有受到影响呢?

random w

8
推荐指数
2
解决办法
1256
查看次数

在运行 Debian 的 BeagleBone Black 上禁用 GUI

他们网站上的 BeagleBone Black 的 Debian 映像默认带有 GUI。我想完全禁用 GUI,但要以最简单的方式。它用作无头设备,不需要占用这些资源。

我已经成功禁用了它,但我觉得我的程序在幕后破坏了它。我所做的就是:

$ sudo apt-get remove lightdm
Run Code Online (Sandbox Code Playgroud)

问题

  • 回想起来,也许purge会更好?
  • 任何人都可以看到方法中的漏洞,或推荐更好的方法吗?

debian beagleboneblack

7
推荐指数
1
解决办法
8946
查看次数

Makefile 中的多行 sed

我有一个sed要在Makefile. 它在终端中工作。命令是

sed -n '/[{]/,/[}]/{
p
/[}]/a\
 //end of block matching brace
}' myfile.txt
Run Code Online (Sandbox Code Playgroud)

这会导致以下错误消息make

/bin/sh: 2: Syntax error: Unterminated quoted string
Run Code Online (Sandbox Code Playgroud)

如果我添加反斜杠或将所有内容放在一行上,我会得到

sed: -e expression #1, char 14: extra characters after command
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

make sed

7
推荐指数
1
解决办法
706
查看次数

为什么 sudo 不总是生成 shell 子进程?

我试图理解为什么某些 shell 在使用sudo调用时似乎会受到特殊处理调用时似乎会受到特殊处理。例如,似乎有两种可能的行为:

\n

“隐式”组(pstree是sudo的直接子级,中间没有 shell):

\n
$ sudo pstree -s $$\nsystemd\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80login\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80bash\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80sudo\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80pstree\n$ sudo bash -c \'pstree -s $$\'\nsystemd\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80login\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80bash\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80sudo\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80pstree\n$ sudo zsh -c \'pstree -s $$\'\nsystemd\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80login\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80bash\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80sudo\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80pstree\n$ sudo dash -c \'pstree -s $$\'\nsystemd\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80login\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80bash\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80sudo\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80pstree\n
Run Code Online (Sandbox Code Playgroud)\n

“显式”组(shell 是sudo的直接子级)的直接子级):

\n
$ sudo ksh -c \'pstree -s $$\'\nsystemd\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80login\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80bash\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80sudo\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80ksh\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80pstree\n$ sudo tcsh -c \'pstree -s $$\'\nsystemd\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80login\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80bash\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80sudo\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80tcsh\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80pstree\n$ sudo fish -c \'pstree -s $fish_pid\'\nsystemd\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80login\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80bash\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80sudo\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80fish\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80pstree\n
Run Code Online (Sandbox Code Playgroud)\n

显然sudo和一些 shell 之间似乎发生了某种集成,但我找不到任何相关文档。我还 grep 了sudobash的源代码,但也找不到任何线索。

\n

这个另一个问题似乎相关:Why (...) does not …

bash process zsh sudo dash

7
推荐指数
1
解决办法
1387
查看次数

Kickstart:是否可以在没有挂载点的情况下进行分区?

我想对磁盘进行分区,但不应挂载某些分区,到目前为止我必须遵循以下解决方法:

part /srv/tmp1 --fstype=ext4 --size=1000 --ondisk=sda
Run Code Online (Sandbox Code Playgroud)

然后在安装后脚本的分区是从fstab中除去,/srv/tmp1umount编然后被删除。

我想知道是否有 100% kickstart 解决方案?

rhel kickstart

6
推荐指数
1
解决办法
2328
查看次数