标签: bash

如何*向上*搜索文件?(反向查找)

我想在 shell 脚本中“向上”搜索文件,例如检查 $PWD,然后 $PWD/..,然后 $PWD/../.. 等,直到找到根目录。在我自己动手之前,是否有一些内置的 bash/zsh/find 魔法可以为我做到这一点?

bash zsh file-search shell-script

5
推荐指数
1
解决办法
2140
查看次数

tmux:将窗格标题设置为当前运行的命令?

如何使 tmuxpane_title自动设置为当前运行的命令?

其实这个设置automatic-rename正是我想要的pane_title,但它只是为了window_name

linux unix bash tmux

5
推荐指数
1
解决办法
6261
查看次数

bash 补全不适用于新添加的用户

我在我的 ubuntu 系统中添加了一个新用户

sudo useradd -d /home/peeyush -m peeyush
sudo passwd peeyush
Run Code Online (Sandbox Code Playgroud)

上面的命令列表成功创建了一个新用户,但新用户无法正确使用 bash 补全功能。使用bashrc文件解决了这个问题。

传统的创建用户 GUI 通常不会出现此问题。这背后的原因是什么??他们是否将此用户的默认 shell 设置为 bash ?

bash shell

5
推荐指数
1
解决办法
715
查看次数

获取合并和分离的 stdout 和 stderr

我正在寻找一种运行程序Prog并最终得到 3 个文件的方法:

  1. 标准输出为Prog
  2. 标准错误Prog
  3. Prog如果没有发生重定向,stdout 和 stderr 的组合就像它们在屏幕上一样。

是否有重定向、管道等的组合可以实现这一目标?

注意:我通常使用bash。

linux bash redirection

5
推荐指数
1
解决办法
2677
查看次数

Bash/csh:测试 stdin 的文件结尾 (EOF)

我想要做:

if not eof(stdin):
   pass stdin to program
else:
   do nothing
Run Code Online (Sandbox Code Playgroud)

我有一种感觉,它可以写得相当接近:

if test ! --is-eof - ; then
  exec program
Run Code Online (Sandbox Code Playgroud)

我试图解决的问题是program从标准输入读取,但如果没有输入就会崩溃。我无权访问源代码,program因此program无法更改。二进制输入大于内存大小,因此首先将标准输入放入文件的速度慢得令人无法接受。在 bash 中逐行处理所有输入的速度也慢得令人无法接受。

理想情况下,该解决方案应该在 csh 和 bash 下都能工作。

bash eof stdin

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

SSH远程命令不读取所有环境变量

我已经在远程计算机的“.bashrc”文件中声明了一些“PATH”变量。当我登录到远程计算机时,所有这些“PATH”变量都工作正常。但是当我执行“ssh user@remote env”时,不会读取“.bashrc”中声明的“PATH”。我怎样才能解决这个问题?

这是远程计算机主目录中的“.bash_profile”:

# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs
PATH=$PATH:$HOME/bin:

export PATH
Run Code Online (Sandbox Code Playgroud)

这是远程计算机主目录中的“.bashrc”:

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

# PATH
export PATH=$HOME/git-1.8/bin/:$PATH
Run Code Online (Sandbox Code Playgroud)

这是我本地计算机上命令“ssh user@remote env”的当前输出:

SHELL=/bin/bash
SSH_CLIENT=NNNNNNNNNNNNNNN
USER=XXXXXXXXX
MAIL=/var/mail/XXXXXXXX
PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/openssh/bin
PWD=/volume2/home/hp120242/XXXXXXXXX
SHLVL=1
HOME=/home/hp120242/XXXXXXXXXX
LOGNAME=XXXXXXXXXXXXX
SSH_CONNECTION=NNNNNNNNNNNNNNNNNNN
LC_CTYPE=en_US.UTF-8
_=/bin/env
Run Code Online (Sandbox Code Playgroud)

我没有遥控器的 root 权限。

ssh bash git

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

管道命令的输出到对话框并允许向上滚动

我想运行任意命令,例如 find / -name "a*" 我想将其输出通过管道传输到对话框。--tailbox 和 --progressbox 可以很好地处理这个问题,但如果输出太多,您只能看到屏幕适合的内容。

我需要能够使用向上/向下箭头和/或 pg up/pg dn 键向上滚动并查看之前的输出。还有其他允许滚动条的选项,但它们似乎都不允许向其进行管道输出。

编辑:我找到了一个旨在执行此操作的示例,但老实说,我不明白它是如何工作的或如何将其转换为find / -name "a*". 请参阅http://mywiki.wooledge.org/BashFAQ/040上的最后一个示例

编辑2:唯一的要求是使用对话框(或类似的东西,允许ncurses,如用于命令行的gui,以及本机gui框,如果X可用的话。

bash

5
推荐指数
1
解决办法
9883
查看次数

Bash:颜色提示和命令与输出流不同

我想为 shell 的提示和命令设置与输出流中打印的文本不同的颜色。

\n\n

我当前的导出PS1如下:

\n\n
export PS1="\\e[0;36m\\h:\\e[m \\e[1;33m\\w\\e[m\\[\\033[32m\\]\\$(parse_git_branch)\\[\\033[00m\\]\\n\\e[0;37m\xe2\x9e\x9c\\e[m "\n
Run Code Online (Sandbox Code Playgroud)\n\n

我正在正确地为多行提示的第一行着色,但在第二行中,我想将提示箭头\xe2\x9e\x9c和命令本身都着色为白色,同时将输出保留为灰色。

\n\n

例如,请参阅我的 shell 的以下屏幕截图。ls除了提示箭头之外,我还尝试将命令颜色设置为白色\xe2\x9e\x9c,但没有其他颜色。我无法弄清楚如何在不更改整个终端主题的文本颜色设置的情况下为命令着色。

\n\n

shell 输出的屏幕截图

\n

bash shell command-line colors

5
推荐指数
1
解决办法
3210
查看次数

使用 shell 删除 zip 文件中的 __MACOSX 目录

我想删除 Mac 制作的 zip 文件中的 __MACOSX 目录。

配合zip foo.zip -qd "__MACOSX/*"效果很好。

然后我写了如下。 for file in "*.zip"; do zip $file -qd "__MACOSX/*"; done

但该脚本仅对目录中的第一个 zip 文件有效。

接下来我尝试使用“find”和“xargs”。但它根本不起作用。 find . -name "*.zip" -print0 | xargs -0 zip -qd "__MACOSX/*"

如何编写一个脚本来删除多个 zip 文件中的所有 __MACOSX 目录。

zip bash

5
推荐指数
1
解决办法
3503
查看次数

程序检测其输出上的管道以禁用着色

有些程序有彩色输出(例如grepemerge在我的 gentoo 系统上),但如果它们的输出通过管道传输到less例如或文件中,则彩色输出将被禁用。

然而,我知道less能够显示彩色输出,如命令

ccze -A < /var/log/emerge.log | less
Run Code Online (Sandbox Code Playgroud)

显示彩色文本。所以我这里有两个问题:

  • 是否有可能“欺骗”其他彩色输出程序来保持颜色?
    我想保留颜色,例如:

    emerge -puND world | less
    
    Run Code Online (Sandbox Code Playgroud)
  • 这些程序如何检测它们的输出被重定向?

linux bash pipe

5
推荐指数
1
解决办法
1436
查看次数

标签 统计

bash ×10

linux ×3

shell ×2

colors ×1

command-line ×1

eof ×1

file-search ×1

git ×1

pipe ×1

redirection ×1

shell-script ×1

ssh ×1

stdin ×1

tmux ×1

unix ×1

zip ×1

zsh ×1