小编Evg*_*gin的帖子

相当于“tail -f”的“less”命令行

我想使用less打开一个文件,并让它自动滚动类似于tail -f.

我知道我可以做到less file,然后Shift-F永远向前冲;喜欢tail -f

我需要,less因为它提供了--raw-control-chars标志,这是必要的,因为我的输入是丰富多彩的。

shell less tail

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

如何检查 /etc/localtime 的内容?

我可以使用什么命令来检查时区文件的内容,例如/etc/localtime或 下的文件/usr/share/zoneinfo/*

timezone

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

命令行工具如何拥有自己的自动完成列表?

Ubuntu 中的 Bash 如何知道工具的特定操作列表?

例如,如果我键入apt-get和 tab 两次,我只能看到删除、更新、升级...等,但看不到另一个命令的操作或当前目录中的文件。

我正在用 Go 开发一个命令行工具,并希望为支持它的发行版提供此功能。

bash ubuntu autocomplete

26
推荐指数
1
解决办法
4545
查看次数

如何找到字符最少的行

我正在编写一个 shell 脚本,使用任何通用的 UNIX 命令。我必须检索字符最少的行(包括空格)。最多可以有大约 20 行。

我知道我可以用它head -$L | tail -1 | wc -m来查找 L 行的字符数。问题是,我能想到的唯一方法是手动编写一堆 if 语句,比较这些值。

示例数据:

seven/7
4for
8 eight?
five!
Run Code Online (Sandbox Code Playgroud)

将返回,4for因为该行的字符最少。

就我而言,如果多行的长度最短,则应返回一条。选择哪一个并不重要,只要它是最小长度即可。但我没有看到为其他情况下的其他用户显示两种方式的危害。

shell text-processing wc

25
推荐指数
9
解决办法
6750
查看次数

阅读历史

如何read通过按向上/向下键循环浏览内置命令支持历史记录?

当你按下向上键时,我试过捕捉,但它似乎不适用于read

read -p '> ' -n 3 foo
echo
echo -n "$foo" | hexdump
Run Code Online (Sandbox Code Playgroud)

按箭头键似乎有效,我可以使用它检测到它,但是如果我按aa,它将失败,因为它只会读取向上箭头标识符的第一个字符,而需要第三个字符来区分不同的箭头键。

bash command-history readline

13
推荐指数
2
解决办法
2969
查看次数

在执行之前展开子shell?

我经常使用子外壳运行命令,有时希望在运行某些东西之前扩展子外壳。这样我可以验证我在做什么,并可能编辑即将发生的事情。

例如,如何在运行之前扩展以下命令行,以便我可以编辑子shell的结果?

例如

$ find -name "test.txt" 
/tmp/test.txt

$ mv $(!!) /tmp/new.txt
Run Code Online (Sandbox Code Playgroud)

我希望运行命令之前看到扩展的子shell ,如下所示:

$ mv /tmp/test.txt /tmp/new.txt
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

shell bash command-history subshell

12
推荐指数
1
解决办法
1767
查看次数

如何在没有 Tab 键的情况下触发自动完成?

我正在使用 iPhone 和一个名为 ServerAuditior 的应用程序通过 ssh-ing 连接到我的机器。它没有tab键。见截图。

如何在没有 Tab 键的情况下触发自动完成?我不想为 cd-ing 键入很多字符。

我在这个应用程序中有箭头键。我可以向左向右向下滑动以使用箭头键。如果我可以在命令结束时闪烁时将其绑定到向前箭头键,那将是令人惊奇的

在此处输入图片说明

bash ssh keyboard autocomplete

12
推荐指数
3
解决办法
4860
查看次数

非交互式 shell 扩展别名

当我运行如下命令时,我无法获取别名以扩展我的主机帐户:

ssh user@server "bash -c \"alias\""
Run Code Online (Sandbox Code Playgroud)

我的 .bashrc 文件是:

echo .bashrc
# .bashrc

shopt -s expand_aliases

# Source global definitions (commenting this out does nothing)
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
alias php="php55"
alias composer="php ~/bin/composer.phar"
Run Code Online (Sandbox Code Playgroud)

当我运行上面的 ssh 命令时,我确实看到了“.bashrc”回显。但是如果我尝试运行别名,我什么也得不到。

我可以尝试“bash -ic”,但这实际上是在我无法轻易更改的脚本中,我想知道为什么这不起作用。

输出 ssh user@server "bash -c \"shopt\""

.bashrc
autocd          off
cdable_vars     off
cdspell         off
checkhash       off
checkjobs       off
checkwinsize    off
cmdhist         on
compat31        off
compat32        off
compat40        off
dirspell        off
dotglob …
Run Code Online (Sandbox Code Playgroud)

bash ssh alias bashrc

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

为什么“she-bang”以“#!”开头?

为什么“she-bang”以#!,开头#!/bin/bash?我一直接受这是如何完成的,但这背后有什么原因吗?

为什么从#;开始 这不是通常的评论吗?或者它应该是评论的重点?

shell history shebang

10
推荐指数
1
解决办法
1008
查看次数

如何将环境变量传递给脚本?

好的,我可以从命令行显示一个环境变量:

echo $COLUMNS

并得到回应。

但是我无法从 shell 脚本中执行它,我什么也得不到。因此,必须有一种方法可以导入该环境变量 - 但我找不到简单的解决方案/解释。

曾几何时,我记得看到过类似的东西$ENV_COLUMNS,但那是不正确的(或遗漏了某些东西)。

我正在尝试这样的事情:

    for x in $COLUMNS
     do echo -n "-"
    done
    echo #to get the /n
Run Code Online (Sandbox Code Playgroud)

shell-script environment-variables

9
推荐指数
4
解决办法
3万
查看次数