我已经用 Ubuntu 12.04 和 Debian 7 对此进行了测试。当我这样做时
echo $TERM
Run Code Online (Sandbox Code Playgroud)
我得到
xterm
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用下拉菜单“帮助”>“关于”,那么它会显示gnome terminal 3.4.1.1.
这是否意味着我只使用 gnome-terminal?还是只是xterm?还是 gnome-terminal 是 xterm 的扩展?我糊涂了。
这是情况。我把我的电脑留在家里,从 2TB 硬盘驱动器到另一个 2TB 硬盘驱动器进行 rsync(这需要一段时间,因为它们都是 USB 2.0)。我现在正在工作,并且已通过 ssh 连接到我的家用电脑。如果我这样做,ps aux | grep rsync我可以看到以下内容:
1000 7214 18.8 0.1 30636 1368 pts/0 S+ 00:52 134:00 rsync -vr /media/master /media/slave
Run Code Online (Sandbox Code Playgroud)
但是我想看看 rsync 到底在做什么。当我在家时,标准输出显示在我的终端中,rsync 的详细模式显示当前正在复制哪些文件。有没有办法读取另一个pts的stdout?
$ ps -t pts/0
7214 pts/0 02:14:42 rsync
Run Code Online (Sandbox Code Playgroud)
我做了一点谷歌搜索,似乎/proc/pid/fd可以找到答案,但我不确定这一点......
PS我当然有sudo权限。
我正在设置突袭。sda在安装过程中使用,我刚才复制的分区表sda来sdb像这样:
$ sudo sfdisk -dL /dev/sda > partition_table_sda
$ sudo sfdisk /dev/sdb < partition_table_sda
Run Code Online (Sandbox Code Playgroud)
但是我注意到sda交换空间有一个 uuid,但sdb没有:
$ sudo blkid
/dev/sda5: UUID="vvvvvvvv-wwww-xxxx-yyyy-zzzzzzzzzzzz" TYPE="swap"
/dev/sda1: UUID="vvvvvvvv-wwww-xxxx-yyyy-zzzzzzzzzzzz" TYPE="ext4"
/dev/sdb1: UUID="vvvvvvvv-wwww-xxxx-yyyy-zzzzzzzzzzzz" TYPE="ext4"
Run Code Online (Sandbox Code Playgroud)
分区看起来是正确的,只是缺少 uuid:
$ sudo fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): …Run Code Online (Sandbox Code Playgroud) 我一直无法让我的终端显示 unicode 符号。例如,在我拥有现在的操作系统之前,我将 ctrl+a 映射到 vim 中的希腊 mu,它可以在其他计算机上运行,但不能在我当前的 xterm 上运行。这是我的相关部分.vimrc:
set encoding=utf-8
"map control-a to mu
imap <C-a> <C-k>m*
Run Code Online (Sandbox Code Playgroud)
另外,我需要在 python 中输出 sympy 方程,这适用于其他计算机,但不适用于我当前的 xterm。而不是这个:
$ python
Python 2.7.3 (default, Mar 14 2014, 11:57:14)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sympy
>>> x = sympy.symbols('x')
>>> sympy.init_printing()
>>> (sympy.sqrt(x**3/(x+1)), 1)
? _______ ?
? ? 3 ?
? ? x ?
? ? ????? , 1?
??? x + …Run Code Online (Sandbox Code Playgroud) 如果我通过 SSH 连接到远程服务器,那台机器的管理员是否可以使用我的 SSH 会话将数据发送回连接并向我的本地 PC 执行某些操作?我使用 DSA 密钥并且不允许密码登录到我的 SSH 服务器,并且我不允许 root 访问。如果尽管采取了这些预防措施,这仍然是可能的,您能否解释一下代码/链接是如何完成的,以便我理解?
我担心的另一件事是,如果我连接到远程服务器,管理员可能会劫持我的 pts 会话,然后只需键入exit即可访问我的 PC。再次,请让我知道这是否可行,如果可以,请提供代码/链接
我已经做了一些谷歌搜索,到目前为止什么也没找到。
我一直在摆弄 wpa 请求者好几天了,我终于到了在谷歌上找不到任何新线索的地步。所以问题来了:我刚刚在运行 debian wheezy 的台式电脑上安装了一个新的 tp-link tl-wn881nd pci-e wifi 卡。wlan0声称已连接(ish?见下文)到接入点,ifconfig报告我分配给它的正确静态 IP 地址,但是我无法 ping 接入点并syslog说握手有错误。
首先,我读过可能network-manager会搞砸的事情。我很确定这对我来说不是问题:
$ which NetworkManager
##### blank #####
$ dpkg -l | grep -i network-manager
rc network-manager 0.9.4.0-10 amd-64 network management framework (daemon and userspace tools)
ii network-manager-openvpn 0.9.4.0-1 amd-64 network management framework (OpenVPN plugin core)
Run Code Online (Sandbox Code Playgroud)
我的电脑规格是:
$ uname -a
Linux mypc 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux
$ sudo dmidecode | grep -iA3 '^system information'
System …Run Code Online (Sandbox Code Playgroud) 在 Debian Jessie 上,使用 php5.6 和 telnet 版本:
$ dpkg -l | grep telnet
ii telnet 0.17-36 amd64 The telnet client
Run Code Online (Sandbox Code Playgroud)
我编写了一个 php 脚本来侦听端口 23 以获取传入的 tcp 连接。为了测试,我 telnet 进入它,但是我注意到它实际上在我像这样 telnet 进入它时有所不同:
$ telnet localhost 23
Run Code Online (Sandbox Code Playgroud)
vs 像这样:
$ telnet localhost
Run Code Online (Sandbox Code Playgroud)
但根据man telnet,它应该没有区别:
port 指定要联系的端口号或服务名称。如果未指定,则使用 telnet 端口 (23)。
如果我不指定端口,那么线路上会出现一些奇怪的噪音。或者也许它不是噪音?但是如果我确实指定了端口,那么我就不会在线路上听到这种噪音。噪声是以下一组 ascii 字符:
<FF><FD><03><FF><FB><18><FF><FB><1F><FF><FB><20><FF><FB><21><FF><FB><22><FF><FB><27><FF><FD><05>
Run Code Online (Sandbox Code Playgroud)
以防万一这是由于我的服务器端代码中的错误造成的,这里有一个脚本的缩减版本,它确实表现出了噪音(尽管我认为代码中没有任何错误,我只是包括这是因为肯定有人会问):
$ dpkg -l | grep telnet
ii telnet 0.17-36 amd64 The telnet client
Run Code Online (Sandbox Code Playgroud)
脚本的输出(像这样连接:)telnet localhost是:
waiting for a client to connect...
got a …Run Code Online (Sandbox Code Playgroud) 我使用的是 Debian 9。我有一台带有 2 个内置显示器的小型 PC,我打算将其用作销售点。它有一个面向顾客的显示器(非触摸屏)和一个面向收银员的显示器(触摸屏)。每台显示器的分辨率为 1366 x 768。我有一个 POS 应用程序,它作为唯一的 x 客户端运行 - 不存在窗口管理器和桌面管理器。这样系统消耗的资源最少。即我可以像这样从终端运行它:
xinit my-pos-app $* -- :1
Run Code Online (Sandbox Code Playgroud)
只要我使用鼠标,应用程序就可以正常运行。然而,目的是让这项工作仅使用触摸屏。
问题是触摸屏没有校准。我可以看到,当我触摸它时,我触摸的位置右侧大约 10 厘米处的一个点实际上正在被激活。所以我尝试使用xinput_calibrator- 一个程序,它会显示一个 gui 显示屏幕上的点来触摸并自动校准触摸屏。但是按照目前的设置,这一步是不可能完成的。这是因为只有一个显示器是触摸屏,而另一台显示器不是,但xinput_calibrator不知道这一点,它在每台显示器上放置了一半的图片。非触摸屏显示器上的校准点显然无法触摸,因此我无法完成该xinput_calibrator过程。
当我将鼠标移到第一台显示器的右侧时,我注意到它出现在第二台显示器的左侧。因此,该系统似乎并排放置了两个显示器。我不太了解这个低级监视器配置的东西,但是从 的输出来看xrandr,系统似乎认为它只有 1 个显示:
$ xrandr
Screen 0: minimum 320 x 200, current 2732 x 768, maximum 8192 x 8192
eDP-1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm
x 193mm
1366x768 60.00*+ 40.00
1360x768 59.80 59.96
1024x768 60.04 60.00
960x720 …Run Code Online (Sandbox Code Playgroud) 自从我更新了 debian 以来,evince启动速度一直很慢 - 大约需要半分钟。打开后,一切正常,就是打开速度慢。过去从来没有花那么长时间——过去只需要几秒钟。我怎样才能让它再次快速运转?
$ uname -a
Linux mypc 5.10.0-9-amd64 #1 SMP Debian 5.10.70-1 (2021-09-30) x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
我注意到它evince在以下行挂了大约半分钟:
$ strace evince
...
eventfd2(0, EFD_CLOEXEC|EFD_NONBLOCK) = 11
write(11, "\1\0\0\0\0\0\0\0", 8) = 8
write(10, "\1\0\0\0\0\0\0\0", 8) = 8
futex(0x562f5b8ffac0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x562f5b909b30, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x562f5b8bd158, FUTEX_WAKE_PRIVATE, 1) = 1
poll([{fd=11, events=POLLIN}], 1, 25000) = 1 ([{fd=11, revents=POLLIN}])
read(11, "\1\0\0\0\0\0\0\0", 16) = 8
poll([{fd=11, events=POLLIN}], 1, 25000) = 0 (Timeout) # <- hanging here …Run Code Online (Sandbox Code Playgroud) 我编写了一个函数,它的作用与tee日期戳类似,但也预先设置了日期戳。一切正常,除非我想输出到一个只有 root 可写的文件(在我的例子中是一个日志文件/var/log)。我已经简化了以下代码片段以仅包含不起作用的位:
#!/bin/bash
#script ~/test_logger.sh
logfile=/var/log/test.log
logger()
{
while read data
do
echo $data >> $logfile
done
return 0
}
sudo ls ~ | logger
Run Code Online (Sandbox Code Playgroud)
如果我像这样运行整个脚本,它工作正常,sudo ~/test_logger.sh但我不能总是这样做,因为我想在~/.bash_logout自动运行的文件中使用记录器功能。我试过sudo在 while 循环中把 echo放在前面,但这不起作用。有任何想法吗?