Unix & Linux

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


2
有选择地使用chmod命令
我想对特定目录下的所有文件和子目录设置755权限,但是我只想对不具有755权限的那些组件执行chmod 755。 find /main_directory/ -exec chmod 755 {} \; 如果find命令返回一个长列表,则将花费大量时间。我知道我可以使用stat命令来检查每个组件的八进制文件级别权限,然后使用if-else来切换文件权限,但是是否有任何单行方法使用find并xargs首先检查文件/目录具有的权限,然后将chmod其更改为755(如果设置为其他值)。

1
如何使Gnu / Linux信任开箱即用的Windows信任的证书?
如此SSL检查所报告,服务器的SSL链断开了: 我知道这是应该在服务器本身上解决的问题,但是有时很难解决(我不是服务器的管理员)。 事实是,Windows上的Chrome / Mozilla / Edge 仍然信任站点证书: 但是,在Gnu / Linux部署(Docker中的Ubuntu 18.04)中,证书不受信任: curl: (60) SSL certificate problem: unable to get local issuer certificate 我尝试过update-ca-certificates甚至导入了Globalsign根证书。update-ca-certificates在这种情况下报告了重复的证书。无论如何,什么都没有。 如何繁殖 使用Docker: docker run -it ubuntu:18.04 # within container: apt-get update apt-get -y install curl curl https://betriebsheft.vog.it # <---- "unable to get local issuer certificate" 如何使Gnu …

4
为什么使用dd写入随机数据会导致磁盘分区?
在运行dd命令之前,该命令lsblk返回以下输出: NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 931.5G 0 disk 该命令dd if=/dev/urandom of=/dev/sda conv=fsync status=progress已运行。但是,设备断电并关闭。恢复电源后,该命令lsblk将返回以下输出: NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 931.5G 0 disk sda2 8:2 0 487.5G 0 disk
11 partition  dd  lsblk 

3
如何通过命令替换生成另一个命令的参数
从以下内容开始: Shell命令替换中的意外行为 我有一个命令,可以接收大量参数,其中一些参数可以合法地包含空格(可能还有其他内容) 我写了一个脚本,可以为我生成带引号的参数,但是我必须复制并粘贴输出,例如 ./somecommand <output on stdout with quoting> ./othercommand some_args <output from above> 我试图通过简单地简化 ./othercommand $(./somecommand) 并遇到了上面提到的意外行为。问题是-可以可靠地使用命令替换生成参数,othercommand前提是某些参数需要引用并且不能更改?

2
为什么不能将变量用作设置环境变量的命令的前缀?
通常,可以通过为命令设置前缀来设置环境变量,如下所示: hello=hi bash -c 'echo $hello' 我也知道我们可以使用变量来替代命令调用的任何部分,如下所示: $ cmd=bash $ $cmd -c "echo hi" # equivalent to bash -c "echo hi" 我很惊讶地发现您不能使用变量来为设置环境变量的命令添加前缀。测试用例: $ prefix=hello=hi $ echo $prefix # prints hello=hi $ $prefix bash -c 'echo $hello' hello=hi: command not found 为什么不能使用变量设置环境变量?前缀部分是特殊的部分吗?我可以通过在前面使用eval使其工作,但是我仍然不明白为什么。我正在使用bash 4.4。

3
超级用户进程可以更改进程的真实用户ID和组ID,而不匹配密码文件中的用户ID和组ID吗?
从APUE 进程的真实用户ID和真实组ID标识了我们真正的身份。这两个字段取自我们登录时在密码文件中的输入。通常,在登录会话期间,这些值不会更改,尽管超级用户进程可以通过多种 方法来更改它们 超级用户进程可以更改进程的真实用户ID和真实组ID,以使真实用户ID和真实组ID之间的关系与密码文件中的关系不匹配吗?例如,如果每个密码文件中用户Tim都不是组的成员ocean,那么超级用户进程可以将进程的真实用户ID和真实组ID 分别更改为Tim和ocean吗?
11 linux  users  group 

2
当运行`top -n1 |时,光标消失。头
跑步时 top -n1 | head 终端的光标消失。运行top -n1使它恢复原状。 经测试,在gnome-terminal和tilix在Ubuntu 16.04和CentOS 7.5。 运行top -n1 | tail不存在此问题,因此我认为,top输出末尾的某些内容会使光标重新出现,而head仅打印时该光标不会执行。 是什么原因造成的?如何才能更优雅地返回光标?

3
陷阱'Ctrl + c'用于bash脚本,但不用于在该脚本中打开进程
我试图在bash脚本中有一个交互式程序: my_program 我希望能够使用“ Ctrl + c”将其关闭。但是,当我这样做时,我的脚本也会关闭。 我知道 trap '' 2 my_program trap 2 但是在这种情况下,我无法my_program使用Ctrl + c 关闭。 您是否知道如何在程序上允许Ctrl + c而不关闭运行脚本的脚本? 编辑:添加示例 #!/bin/bash my_program my_program2 如果我使用Ctrl + c关闭my_program,my_program2则不会执行,因为会退出整个脚本。
11 bash  trap 

1
Bash使用参数列表有性能问题吗?
在bash 5.0中解决 背景 对于背景(和理解(并试图避免这个问题似乎吸引人们的投票)),我将解释导致该问题的途径(嗯,两个月后我能记得的最好的)。 假设您正在对一些Unicode字符进行shell测试: printf "$(printf '\\U%x ' {33..200})" 并且有超过一百万个Unicode字符,测试其中的20.000个字符似乎并不多。 还假设您将字符设置为位置参数: set -- $(printf "$(printf '\\U%x ' {33..20000})") 目的是将字符传递给每个函数以不同的方式处理它们。因此,函数应具有形式test1 "$@"或类似形式。现在,我意识到这在bash中是多么糟糕的主意。 现在,假设需要时间(n = 1000)每个解决方案以找出哪个更好,在这种情况下,您将得到一个类似于以下的结构: #!/bin/bash -- TIMEFORMAT='real: %R' # '%R %U %S' set -- $(printf "$(printf '\\U%x ' {33..20000})") n=1000 test1(){ echo "$1"; } >/dev/null test2(){ echo "$#"; } >/dev/null …
11 linux  bash  time 

4
如何使用grep命令将字符串搜索放入if语句?
我想在两个文件中搜索多个字符串。如果在两个文件中都找到一个字符串,则进行处理。如果仅在一个文件中找到一个字符串,则进行另一件事。 接下来是我的命令: ####This is for the affirmative sentence in both files if grep -qw "$users" "$file1" && grep -qw "$users" "$file2"; then ####This is for the affirmative sentence in only one file, and negative for the other one if grep -qw "$users" "$file1" ! grep -qw "$users" "$file2"; then 否定和确认声明的正确方法吗?pd我正在使用KSH …

2
为什么GNU Bash手册中没有“时间”?
[fakename]$ help time time: time [-p] pipeline Report time consumed by pipeline's execution... 由此看来,似乎time是Bash内置的。但是,我无法在此页面上找到其描述:https : //www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html#Shell-Builtin-Commands。为什么会这样呢?
11 bash  man  time 

2
文件描述符的寿命是多少?
如上所述这里,使用重定向open()写入到一个文件中。在外壳程序中创建了一个内部(?)文件描述符,然后在需要时使用它。 内部描述符是在脚本或Shell生命周期的整个过程中创建的吗?经过一段时间,多次操作等,它会被销毁吗? 我的意思是特别是shell本身为其内置操作打开的文件的文件描述符。是否为每个操作创建了描述符并打开了文件?他们保留了多久?例: #!/bin/bash >>x echo something ...do many other things not related to the file x >>x echo something more 是否将第一个描述符实例保留到第二个操作? 我在终端中使用的外壳呢?有时,我每天开放一次会议,甚至可能持续数周。它是否仍保留我使用Shell内置程序操作的所有文件的描述符?

8
检查文件的所有行是否唯一
我有一个包含以下内容的文本文件: This is a thread 139737522087680 This is a thread 139737513694976 This is a thread 139737505302272 This is a thread 139737312270080 . . . This is a thread 139737203164928 This is a thread 139737194772224 This is a thread 139737186379520 我如何确定每一行的唯一性? 注意:目的是测试文件,如果存在重复的行,则不要修改它。

2
远程开启加密系统
我的系统中充满了非常敏感的数据,因此我需要尽可能地对其进行加密。 我有一个加密的Debian安装程序,每次引导时都要求输入长密码。有没有简单的设置方法,以便我可以远程输入该密码? 如果其他发行版可以做到,那么我不介意安装其他东西代替Debian。
11 debian  remote  luks 

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.