小编sps*_*sps的帖子

'cat' 是内置的 shell 还是外部程序?

当我使用该type命令来确定cat是 shell 内置程序还是外部程序时,我得到以下输出:

-$ type cat
cat is hashed (/bin/cat)
-$
Run Code Online (Sandbox Code Playgroud)

这是否意味着这cat是一个外部程序/bin/cat

我很困惑,因为当我检查下面的输出时,echo我看到它既是built-in一个程序,又是一个程序/bin/echo

-$ type echo
echo is a shell builtin
-$ which echo
/bin/echo
-$ 
Run Code Online (Sandbox Code Playgroud)

所以我不能使用/bin/cat必然意味着外部程序的逻辑,因为 echo/bin/echo仍然是内置的。

那我怎么知道是什么cat?内置还是外置?

bash echo cat shell-builtin

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

我如何能够 telnet 到 HTTP 端口 80?

在谷歌搜索后,我发现我们可以telnet将网络服务器连接到其 http 端口并用于GET检索 html 页面。

例如:

$ telnet web-server-name 80
Run Code Online (Sandbox Code Playgroud)

但我无法理解这怎么可能?

我认为如果端口 80 用于 http 服务器,那么端口 80 只会侦听http请求。但是我怎么能telnet到一个HTTP端口呢?

不是telnetHTTP两个不同的协议吗?

networking http telnet

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

如何检查逻辑卷的文件系统类型

如何使用lvm或任何其他实用程序检查逻辑卷的文件系统类型?

例如,如果我的逻辑卷是/dev/vg1/lv1那么如何检查它的文件系统类型?

ext4在逻辑卷中使用mkfs -t ext4 /dev/vg1/lv1. 但是不知道怎么验证。我看不到瘦的任何选项lvm

partition lvm hard-disk

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

如何使用 GNU Parted 在可用空间中创建分区

下面是我在 gnu parted 中显示的硬盘:

(parted) print free                                                       
Model: ATA HGST HTS541075A9 (scsi)
Disk /dev/sda: 750GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system     Name                     
       17.4kB  1049kB  1031kB  Free Space
1      1049kB  538MB   537MB   fat32           EFI System Partition  boot
2      538MB   468GB   467GB   ext4
       468GB   520GB   52.4GB  Free Space
6      520GB   527GB   6353MB  linux-swap(v1)
4      527GB   527GB   524MB   ext4
5      527GB   744GB   217GB                                         lvm
3      744GB   750GB   6352MB
    750GB   750GB   892kB   Free Space

(parted) 
Run Code Online (Sandbox Code Playgroud)

你可以看到我有 52.4GB …

partition parted hard-disk

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

使用“邮件”从命令行读取电子邮件

我知道我们可以mail在终端中使用命令mail以交互模式开始使用程序。

但是,我想以mail非交互方式使用命令阅读电子邮件。

有没有类似的命令

$ mail -optionToReadMail -mailNumber 1;
Run Code Online (Sandbox Code Playgroud)

这将在 stdout 中显示电子邮件的内容?

scripting bash mailx

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

为什么 grep 不打印整行?

当我输入ls命令时,我得到以下输出。

-$ ls
aNode  ANode  bNode  BNode  cNode  CNode  DUMP  file1  hello.txt  TEST.txt
-$
Run Code Online (Sandbox Code Playgroud)

如所看到的,上面的输出是one已线filenames由separeted spaces

接下来当我grep用来查找匹配项时。

我期待如果找到匹配项,那么将打印整行。

但是,相反,grep 只打印匹配项,而不打印包含匹配项的整行。请参阅下文。

-$ ls | grep 'aNode'
aNode
-$
Run Code Online (Sandbox Code Playgroud)

为什么会这样?为什么grep 不打印整行?

ls grep bash

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

如何使用正则表达式匹配末尾没有特定字符串的模式

我如何使用“POSIX BRE”或“POSIX ERE”正则表达式匹配的字符串(线或字),它具有bak在结束了吗?

我想做一个ls | egrep '<regex>'查找文件bak名末尾没有的所有文件。

例如,如果有三个文件file1file2_bak、 和bak_file3,则正则表达式应该只匹配file1bak_file3(而不是file2_bak)。

我知道这可以用 来完成ls | grep -v 'bak$',但我想在不使用or-v选项的情况下做到这一点。我不想使用,因为这只是关于 POSIX 正则表达式的理论/学术问题。grepegrep-v

这就是我匹配最后确实有的文件名bak的方式:

$ ls | egrep 'bak$'
file2_bak
$ 
Run Code Online (Sandbox Code Playgroud)

上面的正则表达式, bak$, 匹配最后有的所有字符串bak。但我怎么能写一个匹配所有的字符串正则表达式没有具备 bak在结束了吗?

grep regular-expression

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