小编ddz*_*wmm的帖子

使用我刚刚输入的前缀搜索上一个命令

我们可以使用向上和向下箭头在命令历史中导航。

在某些 IDE(例如 Matlab)中,如果我们输入一些内容然后按箭头键,我们只会在以我们输入的内容开头的历史命令之间滚动。这真的很方便,但是在 shell 终端中,这不起作用。

有没有办法在 shell 终端中获得类似的功能?还有其他提高终端使用效率的技巧吗?

shell bash command-history

104
推荐指数
6
解决办法
7万
查看次数

我可以在私有目录下创建公共目录吗?

我在服务器上有一个权限为 700 的个人文件夹 /a/b。我不希望其他人列出 /a/b 中的内容。/a 的所有者是 root。

现在我需要向所有用户打开目录 /a/b/c 的完整权限。

我把/a/b/c的权限改成了777,但是其他人还是无法访问。

linux shell permissions directory

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

+/- 在后台工作完成后

在后台运行作业

$ command &
Run Code Online (Sandbox Code Playgroud)

完成后,终端打印

[n]+    command
Run Code Online (Sandbox Code Playgroud)

或者

[n]-    command
Run Code Online (Sandbox Code Playgroud)

所以有时它是一个加号,有时它是一个减号跟随[n]

加/减是什么意思?

shell job-control background-process

21
推荐指数
1
解决办法
2432
查看次数

将命令行参数传递给 shell 脚本内的程序

至于./script.sh arg1 [arg2 arg3 ...], 命令行参数arg1, arg2, ... 可以通过$1, $2, ... 获取,但参数数量固定。

在 shell 脚本中,我想将参数从开始传递arg2给程序,

#/bin/bash
...
/path/to/a/program [I want to pass arg2 arg3 ... to the program]
...
Run Code Online (Sandbox Code Playgroud)

因为可能有一个或多个参数,我该怎么做?

shell bash shell-script arguments

17
推荐指数
2
解决办法
3万
查看次数

\[\e]0 的含义;在 PS1 中的 .bashrc

.bashrc

case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac
Run Code Online (Sandbox Code Playgroud)

我明白${debian_chroot:+($debian_chroot)}\u@\h: \w,但不是\[\e]0;。它有什么作用?

bash prompt escape-characters

15
推荐指数
2
解决办法
7012
查看次数

如何使用 grep 显示没有两个特定字符串中的任何一个的行?

对于大型日志文件,如何在没有“成功”或未以“确定”终止的情况下显示这些行?

grep text-processing

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

将pdf图片转换为png文件会使图片太小

我正在将一堆 pdf 矢量图形转换为 png 文件。

for f in *.pdf
   do convert -trim ${f} "${f}.png"
done
rename 's/\.pdf//' *.png
Run Code Online (Sandbox Code Playgroud)

但是图片的尺寸太小了。

的文档convert告诉了一个-size width height选项,但我不能为所有图片指定一个唯一的大小。还有其他方法吗?

pdf imagemagick conversion images

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

通过正则表达式删除文件

我想保留名称匹配的文件[0-9A-Z]{1,2}_\d{4}_\w+?\.dat,例如,A1_2001_pm23aD.dat, K_1998_12.dat,并删除其余文件。

但是,lsrm命令不支持此类正则表达式。我怎样才能做到这一点?

shell bash filenames regular-expression wildcards

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

使用rsync时只更新修改时间而不复制文件是否可行?

大量本地文件修改时间不正确。我想通过同步服务器上的时间戳来更新时间戳。

如果文件本身是同步的,那将会很耗时。我知道--size-only可以用来防止真正的数据传输。但我不知道如何同步时间戳。

有没有办法只同步时间戳

rsync timestamps files

3
推荐指数
1
解决办法
629
查看次数

仅在必要时从文本文件中删除尾随空格

我正在使用删除尾随空格

sed -i 's/[ \t]*$//' *.txt
Run Code Online (Sandbox Code Playgroud)

但是,此命令将重写所有文件。

有没有一种方便的方法来判断文本文件中是否有尾随空格并跳过那些没有尾随空格的?

shell bash sed awk text-processing

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

ssh 连接断开后单击鼠标

ssh我已通过终端登录到远程服务器。由于服务器故障或网络问题,连接被终止。

然后出现一些烦人的东西。一旦我在终端上单击鼠标,它会自动输入如下内容:
$ 0;85;36M0;85;36m0;94;38M32;95;38M0;95;38m0;68;42M32;67;42M32;66;42M32;65;42M32;65;41M32;64;41M32;63;41M32;62;41M32;61;41M32;60;41M32;59;41M32;58;41M32;57;41M32;55;41M32;54;41M32;53;41M32;52;41M32;51;41M32;50;41M32;49;41M0;49;41m

这些东西到底是什么?有没有办法阻止或减少它们而不需要重新启动终端?

linux shell ssh input

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

打印具有特定数量的特定字符的行

我有一个大文本保存了很多文件路径及其信息

# just for demostration
/a/b/c/d/e
/a/b/c/d
/a/b/c
/a/b
/a
/b/c
/b
/c/d
/c
....
Run Code Online (Sandbox Code Playgroud)

我只想显示那些具有特定数量的特定字符,例如,

  1. 只有一个 /
  2. 不超过两个 /

这样我只提取根文件夹或只提取到第一级子文件夹。

shell text-processing

0
推荐指数
1
解决办法
33
查看次数