标签: shell

清除终端中的一行

我有时开始在终端(iTerm2)中写入命令,我想删除其中一半写入的命令。

如何快速删除终端中正在处理的行上的所有字符?

terminal shell macos

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

相当于 Windows shell 的 `$@`

我使用批处理文件围绕一些需要额外参数才能工作的命令创建包装器。例如,我有一个文件pip.cmd,它为所有pip调用添加了一个自定义代理参数:

pip.exe --proxy="myproxy" %1 %2 %3 %4 %5
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我用%1符号来传递参数pip.cmdpip.exe,但是,我的做法休息,如果有超过5个参数。在 Linux 中,我会简单地使用"$@",它一次处理所有参数。Windows shell 是否有类似的表示法或合理的解决方法?

windows-7 shell command-line command-line-arguments

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

iTerm2 (OS X) 从 shell 更改当前窗口的背景图像?

iTerm2 允许为当前窗口或默认值(用于所有新窗口)设置背景图像或颜色。

但是,我还可以从命令行设置当前窗口的背景图像或颜色吗?即是否有一些神奇的 iTerm2 终端命令来设置活动窗口的背景?

我很想在脚本中使用它来更改反映我在某些远程系统上登录的背景,在本地或远程 shell 之间进行自动视觉差异,甚至在特定服务器上为 ssh 会话使用特定背景。

terminal shell desktop-customization iterm2

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

UNIX `basename` 命令的奇怪行为

我想用来basename获取以换行符分隔的文件路径列表的基本名称。当 n > 2 时它似乎有效:

$ basename `echo -e '/foo/bar \n /food/baz \n /oof/rab'`
bar
baz
rab
Run Code Online (Sandbox Code Playgroud)

但是,当 n = 2 时,它只输出第一行。

$ basename `echo -e '/foo/bar \n /food/baz'`
bar
Run Code Online (Sandbox Code Playgroud)

为什么不打印baz?这是一个错误basename吗?这是我的平台信息:

$ uname -a
Darwin MacBook-Pro-4.local 15.6.0 Darwin Kernel Version 15.6.0: Sun Jun  4 21:43:07 PDT 2017; root:xnu-3248.70.3~1/RELEASE_X86_64 x86_64
Run Code Online (Sandbox Code Playgroud)

unix bash shell macos

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

如何读取每个文件并在读取之前打印出文件名?

我试过

$ find Music -exec cp -v {} \>/dev/null \;
Run Code Online (Sandbox Code Playgroud)

有错误

'Music/AlbumArtSmall.jpg' -> '>/dev/null'
cp: cannot create regular file '>/dev/null': No such file or directory
Run Code Online (Sandbox Code Playgroud)

我试过

$ find Music -exec echo {} && echo cp {} \>/dev/null \;
find: missing argument to `-exec'
Run Code Online (Sandbox Code Playgroud)

$ find Music -exec echo {} \\; echo cp {} \>/dev/null \;
find: missing argument to `-exec'
Run Code Online (Sandbox Code Playgroud)

$ find Music -exec echo {} \&\& cp {} \>/dev/null \;
Music && cp Music >/dev/null
...
Run Code Online (Sandbox Code Playgroud)

我试过 …

linux bash shell

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

在 Linux 中读取用户输入

我编写了一个脚本,用于根据用户读取的月份列出文件,如下所示:-

echo "Enter Month"
read month
ls -al | awk '$6 == "$month" {print}'
Run Code Online (Sandbox Code Playgroud)

我在八月给用户输入,我没有得到任何结果。但是当我写作的时候

ls -al | awk '$6 == "Aug" {print}'
Run Code Online (Sandbox Code Playgroud)

我得到了确切的结果。难道我做错了什么?请帮忙

shell macos

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

如何在没有 shell 历史记录的情况下在 linux 上运行加密命令

我想在不将 shell 命令的任何部分记录到 bash 历史记录的情况下加密某些内容。我不希望密码或任何文件名或命令出现在 shell 历史记录中。如何使用 AES 256 和 SHA2 来做到这一点?(我相信这是今天最秘密的配置吧?)

linux encryption bash shell command-history

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

使用 bash 将逗号分隔的列表导出到 html

我有一个 cxomma 分隔的 csv,我想将其转换为自定义 html,并且我遇到了另一个执行此操作的脚本,但是自从我使用https://www.tutorialspoint.com/execute_bash_online以来,这对我来说只是问题.php来运行它。

这是我找到的脚本:https : //unix.stackexchange.com/questions/105501/convert-csv-to-html-table

我的问题是我的输出需要有点不同,而关于 ECHO 的一些东西真的是在抗争。所以这是我的清单的一个例子:

Product,100 usd 现在使用这个脚本我想把它转换成这样:Product 100 usd

基本上将列表分成 2 个单元格。但是 echo 不断剥离 "'s 所以它只是一团糟。我不知道是不是因为 bash 模拟器换行,但我不断收到错误,似乎假设 >< 和 tr 以及 td 是一个命令.

目前我的脚本看起来像这样,它反映了我对 echo.. 的困扰:

while read INPUT ; do
echo ""<tr onmouseover="this.style.backgroundColor='#ffff66';"";
echo ""onmouseout="this.style.backgroundColor='#d4e3e5';>";
echo ""<td>${INPUT//,/</td><td><b>}</b></td></tr>";""
done
Run Code Online (Sandbox Code Playgroud)

这会产生:

$bash -f main.sh
main.sh: line 2: tr: No such file or directory
main.sh: line 4: ;
echo <td>six</td><td><b>nine</td><td><b>twelve</b></td></tr>: No such file or directory
main.sh: line 4: : …
Run Code Online (Sandbox Code Playgroud)

html bash shell css

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

为什么在 Linux 中执行文件的权限不起作用?

我在用户目录中创建了一个 bash 脚本,例如,当执行该脚本时,会显示文本“Hello world”。同时,我希望能够只有我自己(文件的所有者)和我组的帐户才能执行它,其余的都可以读取。因此,我通过 chmod 设置了权限,我以非我组的用户身份登录,转到包含文件的目录,通过 sh 运行它......它突然执行并显示“Hello world”而不是“拒绝访问” ”。但这怎么可能,我不让别人表演?这是什么?这是什么意思?

[user@localhost ~]$ ls -la *.sh
-rwxr-xr-- 1 user users 0 Feb 19 01:21 file.sh
[user@localhost ~]$ sh file.sh
Hello World
[user@localhost ~]$ groups
users wheel
[user@localhost ~]$ su - testu
Password: 
[testu@localhost ~]$ groups
testu
[testu@localhost ~]$ cd ../user
[testu@localhost user]$ sh file1.txt
Hello World```
Run Code Online (Sandbox Code Playgroud)

linux bash shell permissions

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

在shell脚本中同时执行两个或多个命令

在 shell 脚本中并行运行命令通常非常有帮助,但我找不到这样做的方法。这可能吗?如果是这样,我将如何实现这一目标?我主要有兴趣为fish.

当我运行的命令需要很长时间才能完成但可以或需要同时运行以减少完成所有操作所需的时间时,它很有用。

shell shell-script fish parallel-processing

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