Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

3
什么是分词?为什么它在Shell编程中很重要?
我对单词拆分在其中扮演的角色感到困惑zsh。在使用C,Python或MATLAB进行编程时,我没有接触过这个概念,这引起了我的兴趣,为什么单词拆分似乎是Shell编程特有的。 之前,我已经在此站点和其他站点上阅读过分词的知识,但没有找到关于此概念的明确解释。维基百科对分词有一个定义,但似乎没有关于如何将其应用于Unix shell的参考。 这是我对以下方面感到困惑的示例zsh: 在Z Shell FAQ中,我阅读以下内容: 3.1:为什么在$var哪里var="foo bar"没有我所期望的? 在大多数Bourne-shell派生词中,诸如多词变量var="foo bar" 在传递给命令或在for foo in $var循环中使用时都会分解为多个词 。默认情况下,zsh没有这种行为:该变量保持不变。(这不是错误!请参阅下文。)SH_WORD_SPLIT存在此选项是为了提供兼容性。 但是,在《 Z Shell手册》中,我读到以下内容: SH_WORD_SPLIT (-y) <K> <S> 导致对未引用参数扩展执行字段拆分。请注意,此选项 与分词无关。(请参阅参数扩展。) 为什么会说SH_WORD_SPLIT有没有做与分词?单词拆分难道不是一本正经吗?
16 shell  zsh 

4
查找进程的ID并杀死它
每当我需要终止后台进程时,我都会这样做 ps -e | grep <process_name> 它打印这样的事情1766 ? 00:00:13 conky,然后我使用进程ID,以kill它喜欢这样kill 1766。 有什么办法可以简化吗?使其更快?减少打字量?
16 process  grep  kill  ps 

2
当我关闭文件描述符时会发生什么?
我正在尝试使用文件描述符获取整个图片。假设我有process1,它最初具有这些文件描述符: _process1_ | | | 0 stdin | | 1 stdout | | 2 stderr | |__________| 然后我关闭文件描述符1: close(1); 文件描述符1转换(指向)内核的Open Files Table中的stdout FILE结构。 使用上面的代码,文件描述符1从进程表中删除,该表变为: _process1_ | | | 0 stdin | | 2 stderr | |__________| 但是内核中会发生什么呢?stdoutFILE结构是否被释放?如果stdout是一个特殊文件(监视器)并且可能被其他进程使用,那怎么可能?只是普通文件(例如.txt)的FILE结构怎么样?如果其他进程正在使用该文件怎么办?

2
KVM guest虚拟机中更快的图形
有什么方法可以改善KVM guest虚拟机的图形性能吗? 我怀疑这个问题过于笼统,因此我将给出我的设置和要求。 我的最终目标是使用Ubuntu来宾作为主要操作系统。我唯一要做的图形密集型工作就是观看视频和玩1990年代的游戏。 当前设置:Debian主机(X + Fluxbox),带有SDL图形的KVM来宾,(模拟的)vmware图形卡(另一个具有大于0.5s的重绘时间)和标准的Ubuntu安装。我可以看视频,但是游戏有点不稳定。 似乎不起作用:非SDL图形(VNC和X转发都非常不稳定),VGA直通(未在KVM中实现; Xen需要IOMMU,我的计算机似乎不支持) 我正在考虑的内容(但是我对此知识知之甚少):尝试从主机中消除X。我曾经听说过有关“帧缓冲”的神话,但我对此了解不多。
16 kvm 

2
NTFS文件系统上的“ rm”与Windows自己的实现有何不同?
我有一个外部USB磁盘,上面装有NTFS文件系统。 如果我从Windows中删除了文件,并且运行了几个“未删除”实用程序(例如TestDisk)之一,则可以轻松恢复该文件(因为“它仍然存在,但被标记为已删除”)。 如果我从Linux中删除该文件,则没有实用程序(除非我使用基于深度搜索签名的工具)可以恢复该文件。为什么?如何在Linux的NTFS文件系统代码中实现取消链接?看起来不仅是“将其标记为已删除”,而且还擦除了一些磁盘上的结构,是这种情况吗?

8
仅限tar文件,没有目录
我可能可以编写一个Shell脚本以仅查找文件,然后将列表传递给tar,但是我想知道tar中是否已经有一个内置功能可以在一个命令行中执行此操作? 例如,我找到了--no-recursion开关,但是当我这样做时: tar --no-recursion -cvf mydir.tar mydir 它仅存档目录中条目的名称(包括子目录!),但不存档任何文件。 我也尝试过: tar --no-recursion -cvf mydir.tar mydir/* 但是,尽管它仅归档文件,但它也归档子目录的名称。 有没有办法只告诉tar文件而不告诉目录?
16 tar 

9
如何在没有root特权的情况下获取dmidecode信息?
我正在编写一个显示各种系统信息的程序(在CentOS系统上)。例如,处理器类型和速度(从/proc/cpuinfo),上次启动时间(从/proc/uptime)计算,IP地址(从ifconfig输出),以及已安装打印机的列表(从lpstat输出)。 当前,从dmidecode程序中获得了一些数据: 平台类型(dmidecode -s system-product-name) BIOS版本(dmidecode -s bios-version) 物理内存量(个dmidecode -t17 | grep Size) 仅当我的程序以root身份运行时,这些才可用(因为否则,dmidecode子进程会因/dev/mem: Permission denied错误而失败)。有没有其他方法可以获取此信息,普通用户可以访问?


6
如何将自定义时区时钟添加到XFCE面板?
我的当地时间是欧洲中部时间(Pruague,EU),我还需要查看UTC和MSK时间。我可以在XFCE的面板中添加具有不同区域的多个时钟吗?我实际上知道如何添加多个时钟,但是如何自定义每个时钟的时区?
16 xfce  timezone 

4
稳健地构建路径
假设我在Shell脚本中有几个变量(例如在zsh中): FOLDER_1, FOLDER_2, etc. 这些变量指的是从降序的文件夹/。例如,如果我有一条路/home/me/stuff/items 变量将是: FOLDER_1='home' FOLDER_2='me' FOLDER_3='stuff' 现在,说我想通过连接变量来构建相应的路径。一种可能的方法是按照以下方式构建路径: PATH=$FOLDER_1/$FOLDER_2/$FOLDER_3/ 但是,说一些变量FOLDER_i带有尾随的正斜杠,而另一些则不是(我们也不知道哪个),例如 FOLDER_1='home' FOLDER_2='stuff/' FOLDER_3='items' 我的问题是:我该如何稳健地构建路径?(例如,避免双斜杠,并在需要的地方添加它们)。 我认为这样做的一种方法是/在变量对之间添加Always,然后使用删除所有重复项sed,但是我无法使其正常工作(我不确定我在中/正确处理了sed)。 另外,我是否正在重新发明轮子?(即是否已经有内置的功能?)。 最后,如果变量位于数组中,例如FOLDERS,是否可以不循环而进行此操作?(或替代地,通过循环但不知道FOLDERS数组中有多少个)。


2
如何在AWK中使用正则表达式作为字段分隔符?
我正在尝试使用regex作为中的字段分隔符awk。从我的阅读看来,这似乎是可行的,但我无法正确理解语法。 rpm -qa | awk '{ 'FS == [0-9]' ; print $1 }' awk: cmd. line:1: { FS awk: cmd. line:1: ^ unexpected newline or end of string 有什么想法吗?目的(如果不是很明显)是获得没有版本号的软件列表。

4
UNIX的标准键/值数据存储
我知道unix 的键/值库(berkeleydb,gdbm,redis ...)。但是在开始编码之前,我想知道是否存在用于Unix的标准工具,该工具可以让我执行以下操作: $ tool -f datastore.db put "KEY" "VALUE" $ tool -f datastore.db put -f file_key_values.txt $ tool -f datastore.db get "KEY" $ tool -f datastore.db get -f file_keys.txt $ tool -f datastore.db remove "KEY" $ etc... 谢谢
16 database 

4
CentOS中Yum缺少软件包bash-completion
我正在尝试使Tab-completion在CentOS 6的Yum中工作(所以我可以做类似的事情yum install firefo<TAB>然后找回去firefox),并且我发现很多教程说可以简单地做到这一点yum install bash-completion,但是当我这样做时,我就得到了: Loaded plugins: fastestmirror, refresh-packagekit Loading mirror speeds from cached hostfile * base: mirror.anl.gov * extras: yum.singlehop.com * updates: mirror.ubiquityservers.com Setting up Install Process No package bash-completion available. Error: Nothing to do 我应该添加一些存储库吗?
16 centos  yum  dnf 

1
从哪里获得Kate配色方案?
有谁知道在哪里可以找到一些好的Kate配色方案来突出显示语法? 我发现只有zenburn和mdark可以正常工作。 除了这两个之外,我找不到其他东西(有效)。kde外观上还有其他一些方案,但我无法使它们起作用..(无法导入它们) 有人知道其他凯特工作配色方案吗?谢谢。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.