小编six*_*ude的帖子

如何在 bash 别名中使用空格?

我正在尝试在 bash 中创建别名。我想做的是映射ls -lals -la | more

在我的 .bashrc 文件中,这是我尝试的:

alias 'ls -la'='ls -la | more'

但是它不起作用,因为(我假设)它的别名中有空格。有解决办法吗?

unix bash alias

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

为什么 Zip 能够压缩比具有相同内容的多个文件更小的单个文件?

假设我有 10,000 个 XML 文件。现在假设我想将它们发送给朋友。在发送它们之前,我想压缩它们。

方法 1:不要压缩它们

结果:

Resulting Size: 62 MB
Percent of initial size: 100%
Run Code Online (Sandbox Code Playgroud)

方法 2:压缩每个文件并向他发送 10,000 个 xml 文件

命令:

for x in $(ls -1) ;  do   echo $x ; zip "$x.zip" $x ; done
Run Code Online (Sandbox Code Playgroud)

结果:

Resulting Size: 13 MB
Percent of initial size: 20%
Run Code Online (Sandbox Code Playgroud)

方法 3:创建包含 10,000 个 xml 文件的单个 zip

命令:

zip all.zip $(ls -1)
Run Code Online (Sandbox Code Playgroud)

结果:

Resulting Size: 12 MB
Percent of initial size: 19%
Run Code Online (Sandbox Code Playgroud)

方法 4:将文件连接成一个文件并压缩它

命令:

cat *.xml > oneFile.txt ; zip …
Run Code Online (Sandbox Code Playgroud)

linux zip

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

我可以使用哪些命令来重置和清除我的终端?

我一直在使用命令:

reset
Run Code Online (Sandbox Code Playgroud)

清除我的终端。虽然我很确定这不是我应该做的。重置,顾名思义,重置你的整个终端(改变很多东西)。这是我想要的:

我基本上想使用命令clear。但是,如果您清除然后向上滚动,您仍然会收到大量以前的内容。一般来说,这不是问题,但我正在查看很长的总日志,我想确保我只是查看最新的日志。我知道我可以使用more或类似的东西,但我更喜欢这种方法。

unix terminal

83
推荐指数
6
解决办法
11万
查看次数

命令:sudo su -

我明白了什么su -

  • 使用 root 环境将您登录到 root 中
  • (与su将您登录到您的环境中的根相反)

我明白了什么sudo

  • 你是一个命令的 root

但我不确定这是做什么的: sudo su -

任何人都想澄清

unix sudo bash su

42
推荐指数
3
解决办法
15万
查看次数

如何调用bash函数

也许我正在以错误的方式看待这个..但在这里我正在尝试做。我的大部分工作都是用 Java 完成的,但只是切换到了 unix (bash) 环境。我正在这样做:

[~/Desktop/bashPlay]% cat myFunc
#!/bin/bash

ls2(){
        echo "Hello World"
}

ls3(){
        echo "Testing"
}

echo "this is a test"   
ls2 # this calls a function

[~/Desktop/bashPlay]% myFunc
this is a test
Hello World
Run Code Online (Sandbox Code Playgroud)

但是我的文件中有两个函数,我希望能够从命令行分别调用它们。即:myFunc.ls2()甚至只是ls2. 我知道我可以将这些函数添加到我的.bashrc文件中,但是有没有其他方法可以在不将它们添加到我的文件中的情况下执行这些函数.bashrc

bash

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

如何查找在 VMware 上运行的虚拟机的 IP 地址(或其他使用虚拟机的方法)

我在 Linux 机器上运行 VMware Workstation。

当我打开 centOS (Linux) 虚拟机时,我无法获得该机器的鼠标或键盘控制权。我怀疑它与错误消息有关:

您没有在此客户机中安装 VMware Tools。从 VM 菜单中选择“安装 VMware Tools”。

如果我单击该菜单选项,它会插入一个带有驱动程序等的虚拟 CD。这对我没有帮助,因为我没有对机器进行键盘或鼠标控制。

我在想,如果我能找出 IP 地址或主机名,我就可以使用任意数量的协议进入机器(想到 SSH)。

如何获取这台机器的 IP 地址或主机名?

注意:我没有创建这台机器。一位不再在公司工作的同事创建了它。如果我能进入机器,会为我节省很多时间。我有登录凭据,所以不会有问题。

vmware-workstation ip

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

Vim 可视模式,保持选中状态

我喜欢 vim 的视觉模式。但是,当我选择一些文本然后对其执行某些操作时,该文本将被取消选择。

例如,假设我选择了一个代码块并将其缩进,然后取消选择该代码,因此如果您按下4 >而不是5 >那么您必须重新选择代码以将其缩进一个选项卡。

无论如何在执行操作后不取消选择代码块?或者,有没有一种方法可以在执行操作后再次选择相同的代码(一次按键)?

keyboard-shortcuts vim selection visual-mode

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

Bash 手册页:kill <pid> 与 kill -9 <pid>

我的手册页没有记录两者之间的区别

kill <pid>
Run Code Online (Sandbox Code Playgroud)

kill -9 <pid>
Run Code Online (Sandbox Code Playgroud)

既然这些做了不同的事情,为什么 -9 没有记录在kill联机帮助页中? 我想也许这是一个特定于 shell 的东西,所以我也查看了 bash 手册页,但没有运气。

额外问题: -9 有什么作用?

unix bash kill manpages

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

Mac OS X:双击文件时如何在终端中打开vim

我已经定义了我自己的自定义 vim 文件类型,并带有突出显示等功能。当我双击它时,我想使用基于终端的 vim 打开它。我正在使用 mac os x。关于如何开始的任何指示?

mac vim macos

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

从命令行使用 vim split 命令获得 4 个季度的拆分

我想在命令行上打开四个 vim 文件:

vim file1 file2 file3
Run Code Online (Sandbox Code Playgroud)

但我希望每个文件都在单独的拆分中打开:

vim -c "split file1" -c "split file2" -c "split file3" file4
Run Code Online (Sandbox Code Playgroud)

(以上将屏幕水平分割4次)

理想情况下,我想做的是将屏幕分成 4 个方块,例如:

|-------|-------|
|       |       |
|       |       |
|-------|-------|
|       |       |
|       |       |
|-------|-------|
Run Code Online (Sandbox Code Playgroud)

一旦 vim 打开,我知道如何执行此操作,但是我无法从命令行执行此操作(使用vs)。有任何想法吗?我尝试的一切最终看起来像这样(或不同的变体):

|-------|-------|
|       |       |
|-------|       |
|       |       |
|-------|       |
|       |       |
|       |       |
|-------|-------|
Run Code Online (Sandbox Code Playgroud)

vim

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