来自本书的第 2.7 节 -名为进程内存布局的 Linux 编程接口 :
数据定义为
static variables used by the program.
Run Code Online (Sandbox Code Playgroud)
静态这个词在这里有什么意义?我知道 Java 中的静态变量是什么,但我无法在此上下文中关联该含义。
我在理解构造时遇到了一些困难prog > file 2>&1。我读过它的意思是“将标准输出和标准错误发送到文件”。但我的问题是如何?
我知道prog > file基本上将标准输出发送到文件。我也明白这prog 2>&1意味着应该将stderr发送到stdout。但我无法将 prog > file 2>&1. 这里的专家可以帮我解码吗?
有时候,我已经看到,当一个程序(比如说A)在前台运行,并打印输出到stdout,我可以输入另一个命令(比如B),当我按下Enter它运行时,即使我没有被提示输入B,因为A有还没执行完。我可以在 tcsh shell 中执行此操作,最终结果是B在A.
这个功能叫什么?这个外壳是特定的吗?如果我不在提示符下输入命令,它如何工作?
在类 Unix 系统中 ahome directory和之间有什么区别working directory?
为什么 syslogd 和 httpd 等进程的名称后面有一个“d”?它的意义是什么?
来自Unix 环境中的高级编程一书:
Linux 使用 Bourne-again shell 作为其默认 shell。实际上,/bin/sh 是指向 /bin/bash 的链接。FreeBSD 和 Mac OS X 中的默认用户 shell 是 TENEX C shell,但是他们使用 Bourne shell 作为管理 shell 脚本,因为 C shell 的编程语言是众所周知,很难使用。Solaris 继承了 BSD 和 System V 的传统,提供了图 1.2 所示的所有 shell。Internet 上可用的大多数 shell 区域的免费端口。
作者port这里的术语是什么意思,它与 shell 有什么关系?
我触发了一个ls -1运行并显示一长串值的命令。当命令结束时,我看不到屏幕垂直长度之外的输出。我怎样才能看到那些以前的条目?
有没有办法逐步查看输出,例如:
我想检查在给我的远程 linux 机器上运行的是哪个 linux 发行版。我在超级用户上看到了这个答案,上面写着
LSB 工具提供此信息
然后它继续说,在大多数流行的发行版没有安装 LSB 的系统上,以下方法可以解决问题:
cat /etc/*{release,version}
Run Code Online (Sandbox Code Playgroud)
现在这是我使用这两种技术所看到的:
[subhrcho@slc04lyo pcbpel]$ lsb_release -irc
Distributor ID: EnterpriseEnterpriseServer
Release: 5.8
Codename: Carthage
[subhrcho@slc04lyo pcbpel]$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.8 (Tikanga)
Run Code Online (Sandbox Code Playgroud)
我的问题为什么我从运行这些命令中得到相互矛盾的信息?我在这里错过了什么?
附加信息:发出 uname -or 命令时,我得到以下信息:
2.6.18-308.4.1.0.1.el5xen GNU/Linux
Run Code Online (Sandbox Code Playgroud) 出于调试目的,有时我会通过 VNC 访问远程 Linux 机器。那时其他人可能正在通过 VNC 在同一个 Linux 机器上工作,而我可能没有能力与那个人聊天。所以基本上发生的事情是我在 GNOME 中启动一个新选项卡并输入如下消息:
[xxx@slc04lyo abc]$ Hi this is X. I will use the box for some time
Hi: Command not found.
Run Code Online (Sandbox Code Playgroud)
是否可以不让shell 打印以下内容?
Hi: Command not found.
Run Code Online (Sandbox Code Playgroud)
如果是,我怎么能有选择地而不是总是这样做呢?以便在需要时我可以将外壳用作原始聊天平台?
PS:我不需要看到输出。另一个用户已经在 VNC 中,可以看到我输入的内容。所以输出是多余的。
我CTRL-在命令行中打了几个,我看到终端中的文本随着每次调用而变小。这里发生了什么,有没有办法重做,即放大文本以通过命令将其恢复到原始大小?
编辑:根据克里斯托弗在评论中的建议,我可以通过点击回到我原来的字体大小,CTRL+但我仍然想了解这里幕后发生的事情。