Unix & Linux

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


3
bash:我摔坏了[[<]]
我正在编写bash脚本,突然开始出现此行为: [[ 1 &lt; 2 ]]; echo $? # outputs 0 [[ 2 &lt; 13 ]]; echo $? # outputs 1 但-lt运作良好: [[ 1 -lt 2 ]]; echo $? # outputs 0 [[ 2 -lt 13 ]]; echo $? # outputs 0 我不小心&lt;以某种方式覆盖了吗? 这是我编写的用于测试此行为的脚本: #!/bin/bash for a in {1..5} do …
14 bash  test 

2
如何在Mint 17.3上手动添加启动应用程序
我已经完全更新了Linux Mint 17.3。 我需要添加一些应用程序来启动。 问题是,以下对话框不起作用-不会从列表中添加我一个应用程序,也不会添加任何自定义命令。 无论如何,我可能必须通过其他方式手动添加这些应用程序,可能是通过编辑一些启动文件?

3
我如何在bash中使用二进制文件来逐字复制字节而不进行任何转换?
由于种种原因,我正在雄心勃勃地尝试将c ++代码转换为bash。 这段代码读取和处理特定于我的子字段的文件类型,该文件类型完全以二进制形式编写和结构化。我的第一个与二进制相关的任务是按原样复制标头的前988个字节,并将它们放入一个输出文件中,在生成其余信息时,我可以继续写这些输出文件。 我非常确定我当前的解决方案无法正常工作,实际上我还没有找到确定此问题的好方法。因此,即使它实际上写得正确,我也必须知道如何测试才能确定! 这就是我现在正在做的: hdr_988=`head -c 988 ${inputFile}` echo -n "${hdr_988}" &gt; ${output_hdr} headInput=`head -c 988 ${inputTrack} | hexdump` headOutput=`head -c 988 ${output_hdr} | hexdump` if [ "${headInput}" != "${headOutput}" ]; then echo "output header was not written properly. exiting. please troubleshoot."; exit 1; fi 如果我使用hexdump / xxd检出文件的这一部分,尽管我无法完全读取其中的大部分内容,但似乎有些问题。我编写的用于比较的代码仅告诉我两个字符串是否相同,而不告诉我是否按照我希望的方式复制它们。 有更好的方法来执行此操作吗?我可以简单地复制/读取本机二进制文件中的二进制字节以逐字复制到文件中吗?(最好也存储为变量)。
14 bash  binary  head 

1
POSIX是否等同于GNU超时?
timeout对于某些脚本情况,GNU coreutils 命令非常方便,如果可以快速运行,则允许使用命令的输出;如果花费太长时间,可以跳过该命令的输出。 如何近似timeout仅使用POSIX指定的实用程序的基本行为? (我想它可能涉及的组合wait,sleep,kill和谁知道什么,但也许我失去了一个更简单的方法。)

2
使用`find -exec`有哪些安全问题和竞争条件?
从find手册页: -exec command ; There are unavoidable security problems surrounding use of the -exec action; you should use the -execdir option instead. -execdir command {} + Like -exec, but the specified command is run from the subdirectory containing the matched file, which is not normally the directory in which you …
14 shell  find  security 

1
如何将/etc/nixos/configuration.nix拆分为单独的模块?
假设我有一个非常简单的NixOS配置文件: { config, pkgs, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ]; # SOME STUFF environment.systemPackages = with pkgs; [ emacs gitFull ]; # SOME STUFF } 我知道NixOS实现了一个模块系统,而一个模块就是一个.nix文件。每个.nix文件应包含任何有效的Nix表达式(例如,函数或集合)。这意味着NixOS配置文件/etc/nixos/configuration.nix本身就是一个包含Nix表达式的模块。 我也知道,要使另一个模块中的Nix表达式对我正在使用的模块可见,我可以使用内置import函数。 我想将系统软件包的声明(包含emacs和的列表gitFull)拆分成file packages.nix。如何将NixOS配置文件拆分为单独的模块?
14 nixos  nix 


4
Bash完成在centos 7上非常不完整
我已经使用安装了bash补全 yum install --enablerepo=epel bash-completion。虽然它适用于一些基本命令(git和yum),但我缺少大部分的完成程序。 我的 /etc/bash_completion.d包含以下内容: bash_completion.d] $ ls git iprutils redefine_filedir yum yummain.py yum-utils.bash 但是,我知道有bash_completion,例如make(已安装),还有更多,请与即 此处示例输出。 如何获得缺少的完成程序脚本?(最好使用yum,因此我不必手动更新它们) 如果很重要:制表符补全就可以了,但是我没有在.bashrc中采购任何东西。安装软件包后,它才开始工作。 更新:检查完bash的版本后,我已经安装了@fduff,提示我看到了以下内容: $ yum列表已安装| grep完成 bash-completion.noarch 1:2.1-6.el7 @base 但是尝试卸载它并迫使centos从epel存储库中安装bash_completion并sudo yum install --enablerepo=epel bash-completion --disablerepo=base产生package not found。 进一步检查发现,现在位于@base 中的新程序包将完成文件放入/usr/share/bash-completion/completions,但是我仍然缺少一些文件,即ssh和sudo(有些sudo command [tab]虽然command [tab]并没有完成的糟透了),但是我仍然找不到make(应列出中的目标Makefile) UPDATE2: 更改日志指出: 2013年11月1日星期五,彼得·斯托杜卡-2.1-6 仅安装不带“ tar”的可用补全(#810343-注释15),然后删除另一个补全。 2013年9月13日星期五罗马Rakus-2.1-5 添加了另外一个缺少的条件解析:#1007839 2013年9月13日星期五罗马Rakus-2.1-4 添加了条件以不添加某些命令的完成;程序包具有自己的完成名称:#1007839 因此,在我安装了bash_completion之后,重新安装sudo可以sudo完成安装,但是make运气不好。 …

3
整个内核在启动时是否已加载到内存中?
我通读了这份流行的IBM文档(我在网络上经常看到该文档),解释了初始RAM磁盘的功能。 我在构想这是如何工作的过程中碰壁了。 在文档中说 引导加载程序(例如GRUB)标识要加载的内核,并将该内核映像和任何相关的initrd复制到内存中 我已经很困惑:它将整个内核复制到内存中还是仅复制其中一部分?如果整个内核都在内存中,那为什么我们还需要初始的RAM磁盘? 我认为initrd的目的是为了拥有一个小的通用内核映像,并且initrd会在加载内核映像之前在其中安装正确的模块。但是,如果整个内核已经在内存中,为什么我们需要initrd? 这也引起了另一件事,使我感到困惑-装入内核的模块在哪里?是否所有内核模块都存储在initrd中?

5
如何找到长路径中第一个丢失的目录?
想象一下,我有一条不存在的路径: $ ls /foo/bar/baz/hello/world ls: cannot access /foo/bar/baz/hello/world: No such file or directory 但是,说/foo/bar 确实存在。有没有一种快速的方法可以让我确定baz路径的起点? 我正在使用Bash。
14 bash  shell  directory  ls 

2
是否有非交互式登录外壳?
我知道交互式/非交互式外壳程序和登录/非登录外壳程序之间有什么区别,但是在实践中似乎永远不会有非交互式登录外壳程序,除非您/bin/bash --login some-script.sh在脚本中有类似的东西(甚至看起来有点奇怪)。这是正确的还是更常见?
14 shell 

1
如何在不使用btrfs复制数据的情况下复制文件?
我没有使用btrfs的经验,但是它被宣传为能够删除重复数据文件。 在我的应用程序中,我需要复制整个目录树。 据我了解,btrfs仅在某些后期扫描中进行重复数据删除,而不是立即进行重复数据删除。即使只是使用cp似乎也不会触发任何重复数据删除(至少df表明复制文件的大小增加了磁盘使用量)。 我是否可以完全避免移动数据并btrfs直接告诉文件在另一个位置重复,而实际上只是克隆其元数据? 从本质上讲,类似于硬链接,但具有独立的元数据(权限,修改时间等)。

6
如何使用撰写键创建小写pi(“π”)?
我很确定我曾经能够使用创建小写的pi字符Composepi(例如fsymbols.com上的描述),但是它不再起作用。我的撰写键适用于其他字符(例如Composeaa“å”),那么可能出什么问题了? 我没有/usr/share/X11/locale/en_GB.utf8/Compose(或~/.XCompose),应该安装/生成某些东西吗?有一个/usr/share/X11/locale/en_US.utf8/Compose; 将其符号链接/usr/share/X11/locale/en_GB.utf8/Compose以解决此问题是否足够? $ locale LANG=en_GB.utf8 LC_CTYPE="en_GB.utf8" LC_NUMERIC="en_GB.utf8" LC_TIME="en_GB.utf8" LC_COLLATE="en_GB.utf8" LC_MONETARY="en_GB.utf8" LC_MESSAGES="en_GB.utf8" LC_PAPER="en_GB.utf8" LC_NAME="en_GB.utf8" LC_ADDRESS="en_GB.utf8" LC_TELEPHONE="en_GB.utf8" LC_MEASUREMENT="en_GB.utf8" LC_IDENTIFICATION="en_GB.utf8" LC_ALL= 分拆问题。

5
用定界符三重管道符号“ |||”逐行合并两个文件
我有两个并行文件,两种语言的行数相同,并计划使用定界符逐行合并这两个文件|||。例如,两个文件如下: 档案A: 1Mo 1,1 I love you. 1Mo 1,2 I like you. Hi 1,3 I am hungry. Hi 1,4 I am foolish. 档案B: 1Mo 1,1 Ich liebe dich. 1Mo 1,2 Ich mag dich. Hi 1,3 Ich habe Durst. Hi 1,4 Ich bin neu. 预期的输出是这样的: 1Mo 1,1 I love you. ||| …

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.