我正在尝试终止屏幕会话。我注意到许多其他相关问题,但这些答案都不适用于我。我正在尝试终止以下会话:
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,除了一条消息“没有其他窗口”之外,绝对没有任何反应
我有一个程序在屏幕下运行。事实上,当我从会话中分离并检查 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 并且没有任何反应。
我正在尝试使用 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 应用程序中?
我有一个运行日志,它向终端输出了很多。不幸的是,当我尝试向上滚动并查看较旧的输出时,似乎存在限制。而且我无法滚动到某个点。在 Mac 上,终端允许您向上滚动到会话的开始。有没有办法在 ubuntu 终端中做到这一点?
我的 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)被切换而被杀死?
“粘滞位仅适用于目录,通常用于可公开写入的目录。在应用粘滞位的目录中,用户无法删除或重命名不属于他们个人的任何文件。”
这是否意味着如果我运行以下命令:
// 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)
用户仍然可以删除或重命名任何不属于他们的文件吗?
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 找不到这个文件?
我对磁盘分区的理解一直是对磁盘进行分区以安装多个操作系统,这样您就可以在单个磁盘上从多个操作系统启动。但是,我正在阅读一本 ubuntu 服务器书籍,它讨论了对 ubuntu 安装的 /home 目录进行分区。
“/home 目录在管理员和桌面用户中都是一个流行的分区候选对象,因为它保存了该机器上用户帐户的所有个人文件。如果您将 /home 作为单独的分区维护,您可以安装新版本的发行版甚至完全不同的发行版,而不会删除任何用户设置。”
我不明白有人如何以及为什么要在 ubuntu 安装的文件系统中对主目录或任何其他目录进行分区。
Ubuntu 是否默认使用 SELinux,如果没有,如何管理安全上下文?例如,允许进程在没有安全上下文的情况下以 root 身份运行可能存在安全风险。
关于 SELinux的帮助页面提示 SELinux 是一个需要手动安装的程序。
那么Ubuntu是如何处理开箱即用的安全上下文的呢?
我正在关注这个 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 ×4
bash ×2
gnu-screen ×2
directory ×1
locate ×1
partitioning ×1
permissions ×1
process ×1
scripts ×1
security ×1
xclip ×1
zsh ×1