小编Joh*_*ino的帖子

杀死屏幕会话

我正在尝试终止屏幕会话。我注意到许多其他相关问题,但这些答案都不适用于我。我正在尝试终止以下会话:

screen -ls
There is a screen on:
    23520.pts-6.porkypig    (09/30/2013 02:49:47 PM)    (Detached)
1 Socket in /var/run/screen/S-root.

screen -r 23520.pts-6.porkypig
Run Code Online (Sandbox Code Playgroud)

现在我在会议中。根据文档:

http://www.gnu.org/software/screen/manual/screen.html#Quit

我应该按“控制 a”,然后按“控制\”。我这样做,然后什么也没有发生。

另一种解决方案是按Ctrl+a并键入 :quit。然而,它再次没有做任何事情。事实上,按control+ a,除了一条消息“没有其他窗口”之外,绝对没有任何反应

gnu-screen

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

重新附加到现有的屏幕会话

我有一个程序在屏幕下运行。事实上,当我从会话中分离并检查 netstat 时,我可以看到程序仍在运行(这正是我想要的):

udp        0      0 127.0.0.1:1720          0.0.0.0:*                           3759/ruby       
Run Code Online (Sandbox Code Playgroud)

现在我想重新连接到运行该进程的会话。所以我启动了一个新终端,然后输入 screen -r

$ screen -r
There are several suitable screens on:
    5169.pts-2.teamviggy    (05/31/2013 09:30:28 PM)    (Detached)
    4872.pts-2.teamviggy    (05/31/2013 09:25:30 PM)    (Detached)
    4572.pts-2.teamviggy    (05/31/2013 09:07:17 PM)    (Detached)
    4073.pts-2.teamviggy    (05/31/2013 08:50:54 PM)    (Detached)
    3600.pts-2.teamviggy    (05/31/2013 08:40:14 PM)    (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
Run Code Online (Sandbox Code Playgroud)

但是我怎么知道哪个会话是运行我创建的那个进程的呢?

现在我遇到的其中一份文件说:

“当你使用一个窗口时,输入 Ca A 给它一个名字。这个名字将用于窗口列表中,当你开始使用很多窗口时,它会帮助你记住你在每个窗口中所做的事情。 ”

问题是当我进入一个新的屏幕会话时,我尝试按 control+a A 并且没有任何反应。

command-line gnu-screen

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

无法在终端外使用 xclip 粘贴

我正在尝试使用 xclip 从终端复制并将其粘贴到统一桌面环境中的 gedit 文本编辑器中。我可以在终端中使用 xclip 复制和粘贴:

$ cat line-size.c | xclip
xclip -o > input5.txt
cat input5.txt
#include <stdio.h>
...
Run Code Online (Sandbox Code Playgroud)

但是,当我按 control + v 粘贴到 gedit 时,它只会粘贴我在 Unity 桌面中复制的实际最后一个内容,例如来自 Firefox 浏览器的内容。

如何将我从终端复制的内容粘贴到 gui 应用程序中?

xclip

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

终端限制滚动

我有一个运行日志,它向终端输出了很多。不幸的是,当我尝试向上滚动并查看较旧的输出时,似乎存在限制。而且我无法滚动到某个点。在 Mac 上,终端允许您向上滚动到会话的开始。有没有办法在 ubuntu 终端中做到这一点?

command-line

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

将 shell 从 zsh 更改为 bash 的可能副作用

我的 Web 服务器被使用 zsh shell 的人篡改了。我觉得使用 bash shell 更舒服,因为这是 Ubuntu 和 OS X(我使用的两个主要操作系统)附带的默认值。但是这个问题主要集中在 Ubuntu 服务器上。

我有 4 个网站在这个 Web 服务器上运行,我使用 byobu,我使用 tmux,我使用 ruby​​/ruby on rails,node.js,Apache,一些守护进程。如果我将当前的 root shell 从 zsh 切换到 bash,此切换可能会导致任何负面影响吗?例如,进程是否会因为它们的父进程(shell)被切换而被杀死?

command-line bash zsh

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

为什么要使用粘性位?

“粘滞位仅适用于目录,通常用于可公开写入的目录。在应用粘滞位的目录中,用户无法删除或重命名不属于他们个人的任何文件。”

这是否意味着如果我运行以下命令:

// only allow other users to read files in /directory
sudo chmod o-w -R /directory
sudo chmod o-x -R /directory
sudo chmod o+r -R /directory
Run Code Online (Sandbox Code Playgroud)

用户仍然可以删除或重命名任何不属于他们的文件吗?

permissions directory

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

为什么 locate 命令找不到明显的文件?

locate 命令听起来很直观。我希望它能够在文件系统上定位文件。但是,它很少在系统上找到确实存在的文件:

$ locate ipsec.secrets
Run Code Online (Sandbox Code Playgroud)

即使从文件系统根目录 / 运行,这也不会产生任何结果。该文件确实存在:

$ whereis ipsec.secrets
ipsec: /usr/sbin/ipsec /etc/ipsec.secrets /etc/ipsec.d /etc/ipsec.conf /usr/lib/ipsec /usr/share/man/man8/ipsec.8.gz
Run Code Online (Sandbox Code Playgroud)

为什么 locate 找不到这个文件?

locate

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

如何在单独的分区上使用我的主目录?

我对磁盘分区的理解一直是对磁盘进行分区以安装多个操作系统,这样您就可以在单个磁盘上从多个操作系统启动。但是,我正在阅读一本 ubuntu 服务器书籍,它讨论了对 ubuntu 安装的 /home 目录进行分区。

“/home 目录在管理员和桌面用户中都是一个流行的分区候选对象,因为它保存了该机器上用户帐户的所有个人文件。如果您将 /home 作为单独的分区维护,您可以安装新版本的发行版甚至完全不同的发行版,而不会删除任何用户设置。”

我不明白有人如何以及为什么要在 ubuntu 安装的文件系统中对主目录或任何其他目录进行分区。

partitioning

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

Ubuntu 使用什么安全上下文软件?

Ubuntu 是否默认使用 SELinux,如果没有,如何管理安全上下文?例如,允许进程在没有安全上下文的情况下以 root 身份运行可能存在安全风险。

关于 SELinux帮助页面提示 SELinux 是一个需要手动安装的程序。

那么Ubuntu是如何处理开箱即用的安全上下文的呢?

security process

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

评估 shell 脚本中的字符串

我正在关注这个 bash shell 脚本指南:

在数值比较一节中,它引用了一个例子:

anny > num=`wc -l work.txt`

anny > echo $num
201

anny > if [ "$num" -gt "150" ]
More input> then echo ; echo "you've worked hard enough for today."
More input> echo ; fi
Run Code Online (Sandbox Code Playgroud)

上面似乎发生的是我们将一串命令存储在一个 bash 变量中,然后我们对该变量调用 echo。似乎发生的是评估字符串并执行 wc 命令并将行数返回到控制终端。

好的,所以我在 Ubuntu 12.04 中启动我的终端并尝试类似的操作:

$ touch sample.txt && echo "Hello World" > sample.txt
$ cat sample.txt
Hello World
$ num='wc -l sample.txt'
echo $num
wc -l sample.txt
Run Code Online (Sandbox Code Playgroud)

等一下,它没有计算字符串并返回行数。那只是将字符串回显到终端。为什么我得到了不同的结果?

command-line bash scripts

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