Unix & Linux

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

6
找到图案后仅打印输出
有一个脚本(我们称它为echoer)可以打印以显示大量信息。我希望只能在找到图案后才能看到线条。 我想象一种解决方案的用法看起来像 echoer | solution_command <pattern> 理想情况下pattern将是一个正则表达式,但是硬值字符串对我而言就足够了。
13 echo  printf 

1
名为“ test”的可执行文件位于$ PATH中,但不会运行
我在$ HOME / bin中有一个文件(在您询问之前,是的,它在我的路径中)test,我已经确认可以在使用文件的完整路径运行该文件时执行该文件。但是,如果不这样运行,就会遇到一个非常奇怪的问题。当我只test在终端中运行时,它什么也不做,并立即返回。我知道,由于以下几个原因,这不是查找文件的问题: 没有错误信息。通常,如果找不到或无法执行该文件,则会显示一条消息,提示您。 运行which test仍会返回正确的文件路径。 可能是所有方法中最怪异的-运行脚本时,脚本工作正常strace。我尝试使用strace看看是否可以弄清楚发生了什么,但是当我使用进行运行时strace,它按预期运行了0个问题。

2
shell中$ @的数据结构是什么?
我们通常$@用来表示除$ 0以外的所有参数。但是,我不知道数据结构$@是什么。 为什么$*在包含双引号时它的行为方式不同,有人可以给我解释级别的解释吗? 可以在for循环中对其进行迭代,因此它似乎是数组。但是,它也可以使用simple完全回显echo $@,如果它是一个数组,则仅显示第一个元素。由于外壳的限制,我无法编写更多的实验代码来执行它。 这篇文章之间的区别:这篇文章展示了$@与$*。但是我想知道的数据类型$@。像Python一样,Shell是一种解释语言,应根据一系列基本类型表示数据。换句话说,我想知道$ @如何存储在计算机内存中。 它是字符串,多行字符串还是数组? 如果它是唯一数据类型,是否可以将自定义变量定义为这种类型的实例?
13 bash  shell 

1
这是zip加密错误吗?
我最近发现了一个漏洞,利用该漏洞,我(或假设有人)可以重新加密我的加密zip文件,而无需知道密码: #zip --encrypt encrypted.zip -r dir1/ 上面的内容将提示用户输入新密码。有什么我想念的东西吗,或者这是一个已知问题?
13 encryption  zip 

3
du错误地报告了空目录
我正在使用以下命令: du -sh --apparent-size ./* du -sh ./* 两者都报告: 4.0K ./Lightroom_catalog_from_win_backup 432M ./Lightroom catalog - wine_backup 而这些目录包含: $ll ./"Lightroom catalog - wine_backup" total 432M -rwxrwx--- 1 gigi gigi 432M Mar 18 2018 Lightroom 5 Catalog Linux.lrcat -rwxrwx--- 1 gigi gigi 227 Nov 21 2015 zbackup.bat $ll ./Lightroom_catalog_from_win_backup total 396M -rwxrwx--- …
13 disk-usage 

1
继续MV的最佳实践
我使用终端将文件从一个驱动器复制到另一个驱动器。 sudo mv -vi /location/to/drive1/ /location/to/drive2/ 但是,在创建目录后,它突然停止了,虽然花了几个小时,但没有错误。 我自己的解决方案通常是哈希和比较的混合,这主要是耗时的混乱,因为我现在必须从中间副本中恢复而实际上不知道丢失了哪些文件(为zsh写了很长的单行代码—请注意,此脚本无法按书面形式在bash中运行): source_directory="/path/to/source_directory/"; target_directory="/path/to/target_directory/"; while read hash_and_file; do { echo "${hash_and_file}" | read hash file; echo "${file}" | sed "s/^/${source_directory}/g" | read copy_from; echo "${copy_from}" | sed "s/${source_directory}/${target_directory}/g" | read copy_to; mv -v "${copy_from}" "${copy_to}" | tee -a log; rm -v "${copy_from}" | tee …
13 data-recovery  mv 


3
bash [[]]命令中的自动变量扩展
在中取消引用变量时bash,必须使用$符号。不过,似乎以下各项工作正常: x=5 [[ x -gt 2 ]] 有人可以解释吗? 编辑:(更多信息) 我的意思是[[]]命令如何以及为什么取消引用不带$号的变量x。是的,如果x = 1,则该语句的计算结果为false(返回状态1)

2
重命名标准命名的.deb文件是否安全?
.deb文件名的已建立结构为package_version_architecture.deb。 根据本段: 有些软件包不遵循名称结构 package_version_architecture.deb。用dpkg-name重命名的软件包将遵循此结构。通常,这不会影响dselect / dpkg如何安装软件包,但是其他安装工具可能取决于此命名结构。 题: 但是,重命名时,是否有任何实际情况.deb包文件强烈联合国建议?.deb为我的软件提供自定义文件名是一种正常做法吗? 例: My Program for Linux v1.0.0 (Pro).deb —自定义命名 my-program_1.0.0-1_amd64.deb -正确的官方命名 注意: 我不打算创建存储库,而只是.deb在我的网站上托管软件包以直接下载。
13 debian  ubuntu  packaging  deb 

7
Linux机器上以太网和Wi-Fi接口的命名约定标准
Linux机器上的以太网和Wi-Fi接口的命名约定标准是什么? 我们正在开发一种仅显示Linux机器的以太网和Wi-Fi接口及其当前状态的工具。 例如,以下是我的Linux(Ubuntu)计算机上的网络接口(物理和虚拟)列表: docker0,enp0s25,lo,wlp3s0 当我运行该工具时,得到的结果如下: enp0s25, wlp3s0 我们编写的代码具有以下逻辑:所有以太网接口始终以字母开头,e而Wi-Fi接口始终以字母开头w。 逻辑对吗?如果没有,我们如何解决呢?

2
复制到USB驱动器的文件的时间戳
我从PC或笔记本电脑复制到USB驱动器的文件的时间戳有问题:原始文件的最后修改时间与复制文件的最后修改时间不同。因此,在PC和USB驱动器之间同步文件非常麻烦。 逐步说明 我可以使用GUI或命令将任意文件从PC /笔记本电脑复制到USB驱动器 cp -a file.txt /media/gabor/CORSAIR/ 我检查了原始文件的最后修改时间: $ ls -l --time-style=full-iso file.txt -rw-rw-r-- 1 gabor gabor 0 2018-09-22 15:09:23.317098281 +0200 file.txt 我检查复制文件的最后修改时间: $ ls -l --time-style=full-iso /media/gabor/CORSAIR/file.txt -rw-r--r-- 1 gabor gabor 0 2018-09-22 15:09:23.000000000 +0200 /media/gabor/CORSAIR/file.txt 如您所见,复制文件的最后修改时间中的秒数被截断为零个十进制数字。但是,如果我输入命令 if ! [ file.txt -nt /media/gabor/CORSAIR/file.txt ] && ! [ file.txt …

1
Debian上的apt软件包管理器将软件包列出为可升级但未升级
此问题类似于Debian Linux上未更新的软件包,但就我而言,较新的软件包并非来自backports: § apt list --upgradable Listing... Done firefox-esr-l10n-en-gb/stable 60.2.0esr-1~deb9u2 all [upgradable from: 52.9.0esr-1~deb9u1] N: There is 1 additional version. Please use the '-a' switch to see it § sudo apt upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done 0 upgraded, 0 newly …
13 debian  apt  upgrade  firefox 

2
是什么阻止stdout / stderr交错?
假设我运行一些流程: #!/usr/bin/env bash foo & bar & baz & wait; 我像这样运行上面的脚本: foobarbaz | cat 据我所知,当任何进程写入stdout / stderr时,它们的输出都不会交错-stdio的每一行似乎都是原子的。这是如何运作的?哪个实用程序控制每行的原子性?
13 shell  osx  stdout  output  stderr 

2
误删除了yum.conf
我不知道我要做什么,但是我基本上删除了yum.conf。我在github上找到了yum的旧配置,但仍然无法正常工作。我该怎么办?我正在使用Centos 7。
13 centos  yum 


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.