标签: bash

Bash 未在 Linux 上的新会话中加载“.profile”

我正在设置从 IT 部门获得的新 Linux 机器,但注意到.profile在我开始新的终端会话时没有加载。当前的 shell 是Bash,尽管我从它附带的默认sh更改了它。如何让它.profile在启动时加载?

我通过访问外壳SSHssh myusername@remotemachine。我有管理员权限。

terminal bash shell bashrc .bash-profile

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

终端*输出*历史?

我广泛使用这些功能来浏览终端中的命令历史记录;我想知道是否还有某种方法可以导航命令输出历史记录?(除了保持大的 histsize 并依靠 pgup 键)

我不能只是“重新运行命令”,因为在我的特定情况下,命令的来源会发生变化;我经常需要回顾以前更改的输出。

欢迎黑客。

谢谢!

2010年编辑:

我给了 'tee' 功劳;在其他地方记录会话的所有方法中,它是最广泛适用的(即它是 gnu coreutils 的一部分,并且不需要特定的 shell 或实用程序即可工作)。这不是我真正要寻找的东西,但我意识到这样的东西并不存在。

我能想到的最接近的近似方法是使用类似screen(byobu/tmux) 的东西记录到文件,并编写(和键绑定)一个自定义命令来页面/搜索该日志文件(想想less按提示而不是屏幕进行分页)。谢谢大家。

2012年编辑:

@Dustin Kirkland 的回答显然是最好的,至少一般来说是这样;终端的回滚缓冲区是导航命令输出历史记录的侵入性最小的方式。Byobu 似乎保存了大量的默认历史记录行数(10K;tmux 有 2K,GNU screen 100),并且它允许正则表达式搜索(粗略的观察表明 GNU screen 没有回滚搜索,而 tmux 只有纯文本搜索)。

bash history byobu

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

检查 Ubuntu 中待处理的安全更新数量

首先让我说我被禁止在我们的 Ubuntu 服务器上启用自动更新,用于安全和常规包。

当我登录到我的四个 Ubuntu 服务器中的任何一个时,欢迎消息包含以下内容:

39 packages can be updated.
26 updates are security updates.
Run Code Online (Sandbox Code Playgroud)

但是,当我运行监控 APT 的 Nagios 插件时,我得到:

% /usr/lib/nagios/plugins/check_apt
APT WARNING: 33 packages available for upgrade (0 critical updates). 
Run Code Online (Sandbox Code Playgroud)

我需要知道如何正确检测有待处理的安全更新和定期更新。一旦我能做到这一点,我计划编写一个 Nagios 脚本,该脚本将对挂起的定期更新返回WARNING,对挂起的安全更新返回CRITICAL

有谁知道如何检测这两个条件?

linux bash shell nagios ubuntu

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

删除bash中的第一行

你有没有办法在 bash shell 中快速删除文件的第一行?我的意思是使用 sed 或类似的东西。

bash

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

如何找到默认的文件管理器?

作为 Linux 用户,我看到某些应用程序可以请求打开路径,这会导致启动文件管理器。我想以编程方式执行此操作,但我怎么知道哪个是默认文件管理器?有没有办法找到这些信息?任何环境变量?“文件管理器”是指允许您管理文件的应用程序:创建、重命名、创建文件夹等,例如 Nautilus(在 GNOME 中)或 Dolphin(在 KDE 中)。

提前致谢!

linux gnome kde bash

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

bash - 删除所有目录(和内容),但不删除 pwd 中的文件

我想从密码中删除所有目录,但将文件单独留在密码中。如果我的密码的内容是:

mydir1
mydir2
myfile1
myfile2
Run Code Online (Sandbox Code Playgroud)

那么我想只剩下

myfile1
myfile2
Run Code Online (Sandbox Code Playgroud)

我假设我需要使用 rm -r -i

我对么?

linux bash mingw

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

为什么在安装新软件之前使用 echo?

我是计算世界的新手。在安装 ROS Indigo 时,第一步指导我使用以下代码:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
Run Code Online (Sandbox Code Playgroud)

为什么我们在这种情况下使用该echo命令sh -c?我也看到过在其他安装过程中使用 echo 命令。

注 -使用 sh 命令ROS Indigo Installation Wiki

linux bash command-line ubuntu echo

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

如何做一个语句来检查某物是否可以被其他东西整除而没有余数(BASH)

#!/bin/bash


Echo “Enter a number”

Read  $number

If [$number ] ; then 

Echo “Your number is divisible by 5”

Else

Echo “Your number is not divisible by 5”

fi
Run Code Online (Sandbox Code Playgroud)

if [$number] 语句是我不知道如何设置的

unix script bash

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

这个神秘的 Bash 命令是什么意思?

我正在阅读 Ubuntu 论坛关于恶意命令的警告,并发现了这个有趣的 gem:

:(){ :|:& };:

警告:上面的代码会使你的机器崩溃,除非你有严格的 proc 限制(你可能没有)提示硬重启。

考虑这个类似于运行的代码sudo rm -rf /

但是,这是什么意思?即使有我的编程经验,我也从未见过一个不是汇编语言的神秘命令。

bash

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

bash 在不退出的情况下保存历史记录

在 linux ubuntu bash 终端中。有没有办法在不写退出的情况下保存 bash 历史记录?我已将配置设置为“HISTCONTROL=erasedups”

在我看来,这比忽略的向上效果更好。

无论如何,它不会将最后几个命令保存在 bash 终端中,除非我输入“exit”。我习惯于点击终端窗口上的叉号,所以我总是很恼火,当我重新登录时,最后的命令没有保存。

提醒:http : //www.thegeekstuff.com/2008/08/15-examples-to-master-linux-command-line-history/#more-130

bash linux-terminal ubuntu command-history

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