在 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) 在安装大多数(如果不是全部)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) 我偶然发现了一个提到以下命令的博客。
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命令的任何记录。它有什么作用?
您如何记录某人输入到 shell 中的每个命令?
如果您登录到其他人的服务器并出现故障,或者是否有其他人(有意或恶意地)登录到您的服务器,我会在保护自己的基础上询问。
即使新手也能够分流历史与unset history或创建一个新的外壳,以隐藏自己的踪迹。
我很好奇高级 linux 管理员如何跟踪已输入的命令/对系统所做的更改。
我有一个使用 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)
我试图解决这个错误的事情。
这里建议的解决方案:
sudo rm -rf /var/lib/apt/lists/*
sudo apt-get 更新
sudo apt-get clean
删除并读取了 puppet labs 包
我也尝试过在 google 的前几页中找到的类似建议。我什至尝试过多台计算机和多个互联网连接。
这影响了多个互联网连接上的多个 …
我正在尝试设置一个 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) ll是许多 Linux 发行版中的常见别名。
我怎么知道它的别名是什么?
我试过检查我的.bashrc,但我不知道什么ll是等价的。
我注意到我的虚拟机和服务器上 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 ?
用户定义的默认路径在哪里?
您将如何在日志文件中搜索日期范围?
日志文件如下所示:
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) 根据手册页和维基百科;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)