Unix & Linux

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

2
磁盘使用混乱:SSD上的Linux主分区上缺少10G
Linux Mint告诉我,我只有622 MB的可用磁盘空间,但应该还有几GB的空间。 看着分区,我被告知大约有10 GB未使用。我在问题上进行了搜索,但没有找到解决方案,但确实找到了应该使用来检查磁盘使用情况的提示df -h。 sudo df -h /home Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p8 189G 178G 622M 100% /home 输出对我来说没有任何意义:Size和之间的区别Used是11GB,但仅显示622M为Available。 SSD并不老,所以我不希望出现这样的差异。 我该怎么办?
15 linux  disk-usage  ssd 

2
我正在重新安装Linux桌面,如何保持SSH登录名正常工作?
很久以前,我使用生成了一个密钥对,ssh-keygen并且我曾经使用ssh-copy-id它可以登录许多开发VM,而无需手动输入密码。我还将公共密钥上传到了GitHub,GitLab上,并使用git@代替来向git存储库进行身份验证https://。 如何重新安装我的Linux桌面并使所有这些登录正常工作?备份和还原是否~/.ssh/足够?
15 ssh 

4
如果为安全起见,将堆初始化为零,那么为什么堆栈只是未初始化?
在我的Debian GNU / Linux 9系统上,执行二进制文件时, 堆栈未初始化,但是 堆是零初始化的。 为什么? 我认为零初始化可以提高安全性,但是,如果对于堆,为什么不对堆栈也这样做呢?堆栈也不需要安全性吗? 据我所知,我的问题并非专门针对Debian。 示例C代码: #include <stddef.h> #include <stdlib.h> #include <stdio.h> const size_t n = 8; // -------------------------------------------------------------------- // UNINTERESTING CODE // -------------------------------------------------------------------- static void print_array( const int *const p, const size_t size, const char *const name ) { printf("%s at %p: ", name, …
15 linux  security  memory 

6
回音模糊
我需要在屏幕上打印一些变量,但是我需要优先混淆前几个字符,我想知道bash中是否有一个echo命令,可以在将其打印到终端时混淆秘密值的前几个字符: echo 'secretvalue' ********lue
15 bash  security 

3
一台计算机系统(Linux)是否只有一个主机名?
hostname 用于显示系统的DNS名称,以及显示或设置其主机名或NIS域名。 一台计算机系统(Linux)是否只有一个主机名? 在虚拟主机中,可以将多个主机名解析为Web服务器中的不同根目录。如果一台计算机系统(Linux)只能有一个主机名,那么如何进行虚拟主机? 谢谢。
15 linux  hostname 

3
如何创建UDP数据包?
当我执行以下Netcat命令并使用Wireshark查看数据包时,它说UDP数据包格式错误。 $ echo "this is a test" | nc -u 127.0.0.1 53 同样,$ echo "this is a test" > /dev/udp/127.0.0.1/53在Wireshark中使用类似的命令会产生“格式错误的数据包”错误。 echo命令被发送/传递到Netcat服务器,没有错误。但这让我感到奇怪:是否可以通过echo或其他一些本机Unix工具手动构建适当的UDP数据包? 我正在使用Debian和macOS。
15 linux  debian  osx  netcat  udp 

6
如果Bourne shell在发行版中不可用,则在hashbang中使用/ bin / sh是否正确?
通常,shell脚本在脚本文件的第一行包含以下注释:#!/bin/sh。根据我所做的研究,这称为“哈希爆炸”,这是常规注释。该注释通知Unix该文件由Bourne Shell在目录下执行/bin。 我的问题从这一点开始。到目前为止,我还没有看到这样的评论#!/bin/bash。一直如此#!/bin/sh。但是,Ubuntu发行版没有Bourne Shell程序。他们有Bourne Again Shell(bash)。 在这一点上,将注释#!/bin/sh放在用Ubuntu发行版编写的Shell脚本中是否正确?

8
Linux Shell脚本:仅在程序存在时运行,如果不存在则将其忽略
我编程一个Linux的shell脚本,将只有在合适的工具,比如它的执行过程中打印状态横幅figlet,被安装(是这样的:到达系统的路径)。 例: #!/usr/bin/env bash echo "foo" figlet "Starting" echo "moo" figlet "Working" echo "foo moo" figlet "Finished" 我想为我的脚本工作无差错,即使figlet在没有安装。 什么是实用的方法?

7
如何检查是否可以在bash中创建文件或将其截断/覆盖?
用户使用文件路径调用我的脚本,该文件路径将在脚本中的某个点被创建或覆盖,例如foo.sh file.txt或foo.sh dir/file.txt。 创建或覆盖行为与将文件放在>输出重定向运算符右侧或将其作为参数传递给tee(实际上,将其作为参数传递给tee我的要求)非常相似。)。 在深入探讨脚本之前,我想进行一次合理的检查,以确定是否可以创建/覆盖文件,但实际上无法创建文件。此检查不一定是完美的,是的,我意识到情况可能会在检查和实际写入文件的位置之间发生变化-但在这里,我可以采用尽力而为的类型的解决方案,因此我可以尽早进行纾困如果文件路径无效。 无法创建文件的原因示例: 该文件包含目录组件,例如dir/file.txt但该目录dir不存在 用户在指定目录中没有写权限(如果未指定目录,则没有CWD 是的,我认识到“预先”检查权限不是UNIX Way™,而是我应该尝试操作并稍后再请求宽恕。但是,在我的特定脚本中,这会导致不良的用户体验,并且我无法更改负责任的组件。

8
如何只获取php的版本号?
我只想在CentOS上安装php版本。 输出 php -v PHP 7.1.16 (cli) (built: Mar 28 2018 13:19:29) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies 我尝试了以下方法: php -v | grep PHP | awk '{print $2}' 但是我得到的输出是: 7.1.16 (c) 我怎样才能只获得7.1.16?
15 php  version 

4
全局别名化叉子炸弹会阻止其执行吗?
如果要全局设置 alias ':(){ :|:& };:'='echo fork bomb averted' 这将是避免执行Bash fork炸弹的有效安全策略,还是仍然有执行该炸弹的方法? 我想问题就变成了这样:当别名为其他东西时,是否有一种方法可以执行命令?
15 bash  security  alias 


1
将“ memfd”视为“拥有文件的进程”是否错误?
https://dvdhrm.wordpress.com/2014/06/10/memfd_create2/ 从理论上讲,您可以在memfd_create()不引入新系统调用的情况下实现[ ]行为,如下所示: int fd = open("/tmp", O_RDWR | O_TMPFILE | O_EXCL, S_IRWXU); (请注意,为了在此处更方便地保证tmpfs,我们可以使用“ /dev/shm”代替“ /tmp”)。 因此,最重要的问题是为什么我们到底需要第三种方式? [...] 后备内存用于拥有文件且不受安装配额限制的进程。 ^我认为这句话的第一部分不值得依靠吗? 所述memfd_create()的代码被作为“的字面实施链接的文件居住在[α] TMPFS必须是内核内部 ”。跟踪代码,我知道它与不实施LSM检查有所不同,正如博客文章继续说明的那样,它还创建了memfds以支持“密封”。但是,我非常怀疑memfds正在考虑不同的,以原则上TMPFILE。 具体来说,当OOM杀手敲门时,我认为它不会解决memfds持有的内存问题。这可能总计高达RAM的50%-tmpfs的size = option的值。内核不会为内部tmpfs设置其他值,因此它将使用默认大小50%。 因此,我认为我们通常可以期望拥有大memfd的进程,但是没有其他重要的内存分配不会被OOM杀死。那是对的吗?

4
联想X1 Carbon Gen.6(2018)触摸板和Linux的跟踪点问题
我无法使触摸板正常工作。它在大多数时间都不会检测到运动或咔嗒声,只会非常零星地“唤醒”,响应约一秒钟然后停止。跟踪点也是如此。我已经尝试过Fedora(27),Mint和Ubuntu(17.10),并且所有版本的问题都相同。随之而来的是Ubuntu 17.10。 hwinfo 给 Unique ID: AH6Q.Y_f5kDtfqz2 触摸板未显示在xinput:(它在Mint中显示,但该位置也存在问题)。使用libinput debug-events,我得到: (...) -event5 DEVICE_ADDED SynPS/2 Synaptics TouchPad seat0 default group9 cap:pg size 70x50 (...) (When swiping around on the touchpad, nothing happens. Then, suddenly, it will show:) -event6 DEVICE_ADDED PS/2 Generic Mouse seat0 default group11 cap:p left scroll-nat scroll-button -event5 POINTER_MOTION +7.73s …
15 ubuntu  touchpad 

2
bash中的双引号如何匹配(配对)?
我正在使用GNU bash 4.3.48。考虑以下两个仅相差一个美元符号的命令。 指令1: echo "(echo " * ")" 指令2: echo "$(echo " * ")" 它们的输出分别是 (echo test.txt ppcg.sh ) 和 * 因此很明显,在第一种情况下,*会出现问题,这意味着第一个引号与第二个引号形成一个对,而第三个和第四个引号形成另一个对。 在第二种情况下,*不会被混淆,并且输出中恰好有两个额外的空格,一个在星号之前,另一个在空格之后,这意味着第二个引号与第三个引号一起使用,第一个引号与第四个引号一起使用。 除了$()引号不与下一个引号匹配,而是嵌套的引号之外,还有其他情况吗?此行为是否已得到充分记录?如果是,我在哪里可以找到相应的文件?

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.