小编spu*_*der的帖子

`cd` 在哪里?

在 bash 子 shell 中,运行 cd 时出现以下错误

sudo: cd: command not found
Run Code Online (Sandbox Code Playgroud)

这是意料之中的,因为我没有路径。通常要解决这个问题,我只提供完整路径,如下所示:(/usr/local/bin/foo)

令我惊讶的是,cd它似乎不在任何正常的地方。

which cd
whereis cd
ls /bin | grep cd
Run Code Online (Sandbox Code Playgroud)

相比之下,ls正是我所期望的。

which ls
/bin/ls
Run Code Online (Sandbox Code Playgroud)

cd命令位于何处?为什么与所有其他命令不同?

更新

另一个有趣的花絮,cd 没有出现在 hash

hash
0   /bin/ls
2   /usr/bin/find
2   /sbin/ip
1   /usr/bin/updatedb
1   /usr/bin/apt-get
Run Code Online (Sandbox Code Playgroud)

shell fhs bash cd-command

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

多个交换文件的目的是什么

在安装大多数(如果不是全部)Linux 发行版期间,默认情况下硬盘驱动器被分区为包括交换分区。

可以通过以下方式更改此行为 swapon -p priority

根据手册页,优先级是:

PRIORITY
Each swap area has a priority, either high or low. The default priority is 
low. Within the low-priority areas, newer areas are even lower priority 
than older areas.
All priorities set with swapflags are high-priority, higher than default. 
They may have any non-negative value chosen by the caller. Higher numbers 
mean higher priority.

Swap pages are allocated from areas in priority order, highest priority 
first. For areas with different priorities, a higher-priority …
Run Code Online (Sandbox Code Playgroud)

swap

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

`who mom likes` 是真正的 linux 命令吗?

我偶然发现了一个提到以下命令的博客。

who mom likes
Run Code Online (Sandbox Code Playgroud)

它似乎相当于

who am i 
Run Code Online (Sandbox Code Playgroud)

作者警告永远不要在命令行中输入以下内容(我怀疑他是在开玩笑)

who mom hates
Run Code Online (Sandbox Code Playgroud)

没有关于该mom命令的任何记录。它有什么作用?

who whoami

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

你如何记录输入的每个命令

您如何记录某人输入到 shell 中的每个命令?

如果您登录到其他人的服务器并出现故障,或者是否有其他人(有意或恶意地)登录到您的服务器,我会在保护自己的基础上询问。

即使新手也能够分流历史unset history或创建一个新的外壳,以隐藏自己的踪迹。

我很好奇高级 linux 管理员如何跟踪已输入的命令/对系统所做的更改。

shell security command-history history

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

你如何修复 apt-get 更新“哈希和不匹配”

我有一个使用 Vagrant 实例化的 Ubuntu 12.04 虚拟机 vm。

git clone https://github.com/spuder/puppet-gitlab
vagrant up
Run Code Online (Sandbox Code Playgroud)

一旦 vagrant box 运行apt-get update,我就会收到以下错误。

...
W: Failed to fetch gzip:/var/lib/apt/lists/partial/apt.puppetlabs.com_dists_precise_main_binary-amd64_Packages  Hash Sum mismatch
W: Failed to fetch gzip:/var/lib/apt/lists/partial/apt.puppetlabs.com_dists_precise_main_binary-i386_Packages  Hash Sum mismatch
W: Failed to fetch gzip:/var/lib/apt/lists/partial/apt.puppetlabs.com_dists_precise_dependencies_binary-i386_Packages  Hash Sum mismatch
W: Failed to fetch http://br.archive.ubuntu.com/ubuntu/dists/precise-updates/restricted/binary-i386/Packages  404  Not Found
Run Code Online (Sandbox Code Playgroud)

我试图解决这个错误的事情。

  • 使用了来自“ http://www.vagrantbox.es ”的3 个不同的 ubuntu 12.04 盒子
  • 这里建议的解决方案:

    sudo rm -rf /var/lib/apt/lists/*
    sudo apt-get 更新
    sudo apt-get clean

  • 删除并读取了 puppet labs 包

我也尝试过在 google 的前几页中找到的类似建议。我什至尝试过多台计算机和多个互联网连接。

这影响了多个互联网连接上的多个 …

ubuntu apt

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

当我 Ctrl+C 时,如何杀死并等待后台进程在 shell 脚本中完成?

我正在尝试设置一个 shell 脚本,以便它运行后台进程,当我Ctrlc使用 shell 脚本时,它会杀死孩子,然后退出。

我设法想出的最好的就是这个。似乎kill 0 -INT在等待发生之前也杀死了脚本,所以 shell 脚本在孩子们完成之前就死了。

关于如何让这个 shell 脚本在发送后等待孩子们死亡的任何想法INT

#!/bin/bash
trap 'killall' INT

killall() {
    echo "**** Shutting down... ****"
    kill 0 -INT
    wait # Why doesn't this wait??
    echo DONE
}

process1 &
process2 &
process3 &

cat # wait forever
Run Code Online (Sandbox Code Playgroud)

shell bash kill signals job-control

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

我怎么知道别名代表什么命令?

ll是许多 Linux 发行版中的常见别名。
我怎么知道它的别名是什么?

我试过检查我的.bashrc,但我不知道什么ll是等价的。

bash alias

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

为什么 root 路径中没有 /usr/local ?

我注意到我的虚拟机和服务器上 root 的默认路径不包括 /usr/local/bin

sudo -s  
echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin
Run Code Online (Sandbox Code Playgroud)

而服务器上的普通用户确实有 /usr/local/bin

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/sowen/bin
Run Code Online (Sandbox Code Playgroud)

为什么 root 在路径中不需要 /usr/local ?

用户定义的默认路径在哪里?

root path

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

用于数字范围的 Grep

您将如何在日志文件中搜索日期范围?

日志文件如下所示:

01/14 00:00:01  INFO:     received connect request from 10.10.10.10 
Run Code Online (Sandbox Code Playgroud)

我需要将日志压缩为 10 分钟,从 8:25 开始一直持续到 8:35

当我使用以下 egrep 时,我发现结果太多,例如00:08:25 01:08:25... 08:25:00..

我怎么才能08:25:00通过08:35:59

我试过的

cat foo | egrep "08:2[5-9]|08:3[0-5]"
cat foo | egrep "08:2[5-9]:??|08:3[0-5]:??"
cat foo | egrep "08:2[5-9]:[0-9][0-9]|08:3[0-5]:[0-9][0-9]"
Run Code Online (Sandbox Code Playgroud)

grep regular-expression

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

(-) 的 niceness 值是什么意思?

根据手册页和维基百科;nice范围从 -20 到 20。

但是,当我运行以下命令时,我发现某些进程具有非数值,例如 (-)。请参阅标题为“NI”的左起第六列。

(-) 的美好表示什么?

 ps axl 
 F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0     1     0  20   0  19356  1548 poll_s Ss   ?          0:00 /sbin/init
1     0     2     0  20   0      0     0 kthrea S    ?          0:00 [kthreadd]
1     0     3     2 -100  -      0     0 migrat S    ?          0:03 [migration/0]
1     0     4     2  20   0      0     0 ksofti S    ?          0:51 [ksoftirqd/0]
1     0     5 …
Run Code Online (Sandbox Code Playgroud)

linux process-management priority nice linux-kernel

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