Unix & Linux

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

1
男人不工作(争论太多)
尝试man在Linux系统上运行时出现此错误: $ LC_ALL=C man man man: Too many arguments Try 'man --help' or 'man --usage' for more information. 我的man命令似乎不是别名: command -v man: /usr/bin/man 这是怎么回事?
23 man 


6
在计算机上工作或做任何事情时,如何获得30分钟的休息时间?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 12个月前关闭。 我正在运行Debian。很多次,我因长时间呆在计算机上而感到局促(或其他)。是否有工具会在30-40分钟后告诉我休息一下? 我记得看到过什么,但我忘记了它的名字。

5
为什么在[[]]测试中使用双引号?
假设我们在bash脚本中有2个整数: value1=5 value2=3 那为什么要在测试中使用双引号呢?例如: if [[ "$value1" -eq "$value2" ]] 为什么不只使用以下内容? if [[ $value1 -eq $value2 ]] 对我来说,双引号没有任何意义。
23 bash  shell  quoting  variable  test 


4
POSIX兼容的方法来获取与用户ID关联的用户名
我经常想获取与用户ID相关联的登录名,并且由于事实证明这是一种常见用例,因此我决定编写一个Shell函数来完成此操作。当我主要使用GNU / Linux发行版时,我尝试编写脚本以使其尽可能具有可移植性,并检查我在做什么与POSIX兼容。 解析 /etc/passwd 我尝试的第一种方法是解析/etc/passwd(使用awk)。 awk -v uid="$uid" -F: '$3 == uid {print $1}' /etc/passwd 但是,这种方法的问题在于登录名可能不是本地的,例如,用户身份验证可以通过NIS或LDAP进行。 使用getent命令 使用getent passwd比解析更具可移植性,/etc/passwd因为它还会查询非本地NIS或LDAP数据库。 getent-维基百科 getent(1)-Linux手册页 getent passwd "$uid" | cut -d: -f1 不幸的是,该getent实用程序似乎未由POSIX指定。 使用id命令 id 是POSIX标准化的实用程序,用于获取有关用户身份的数据。 BSD和GNU实现接受用户ID作为操作数: id(1)-OpenBSD手册页 id(1)– FreeBSD手册页 GNU Coreutils:id调用 这意味着它可用于打印与用户ID关联的登录名: id -nu "$uid" 但是,未在POSIX中指定提供用户ID作为操作数。它仅描述使用登录名作为操作数。 结合以上所有 我考虑过将以上三种方法合并为以下内容: get_username(){ uid="$1" # First …
23 users  posix 

2
/ proc / cpuinfo的“ bug”部分实际上显示了什么?
在具有当前内核和已安装微码的Debian Stretch和测试/总线系统上,我仍然看到崩溃和幽灵被列为错误/proc/cpuinfo。 但是,运行spectre-meltdown-checker节目并不容易。 所以我想知道/proc/cpuinfo显示了什么。这些只是该CPU的漏洞吗?尽管系统已打补丁,仍会始终列出这些漏洞吗?
23 linux  cpu  proc 


3
Linux中的设备驱动程序是程序/进程还是仅仅是库?
是设备驱动程序是独立运行的程序,还是仅仅是加载到内存中的库(一组函数),并且程序可以调用其功能之一(因此它不能独立运行)。 并且,如果它是一个程序,它是否具有进程ID,那么例如,我可以像终止任何其他进程一样终止设备驱动程序吗?
23 linux  drivers 


5
在GRUB之前Linux / xBSD是如何启动的?
根据Wikipedia的说法,GRUB于1995年发布。那时Linux和xBSD已经存在了几年。我知道Unix的早期版本是在70年代和80年代与硬件联系在一起的,但是Linux和xBSD可以自由分发和安装。哪个引发了一个问题,那您将如何重新引导Linux?发行版是否附带了自己的引导加载程序实现?

1
在/ bin / file的输出中引用可执行文件时,“ LSB”是什么意思?
我在Linux 的命令输出中找到了术语“ LSB可执行文件”或“ LSB共享对象”file。例如: $ file /bin/ls /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=4637713da6cd9aa30d1528471c930f88a39045ff, stripped 在这种情况下,“ LSB”是什么意思?

5
可以恢复失败文件传输的程序如何知道从何处开始追加数据?
某些文件复制程序类似,rsync并且curl能够恢复失败的传输/复制。 注意这些失败可能有很多原因,在某些情况下程序可以执行“清理”,在某些情况下程序无法执行。 当这些程序恢复时,它们似乎只是在计算成功传输的文件/数据的大小,然后才开始从源中读取下一个字节并将其附加到文件片段上。 例如,“到达目的地”的文件片段的大小为1378字节,因此它们只是从原始文件的1379字节开始读取并添加到片段中。 我的问题是,知道字节是由位组成的,并且并非所有文件的数据都按原始字节大小的块进行分段,这些程序如何知道它们选择开始向其添加数据的正确点呢? 在写目标文件时,是否在程序,内核或文件系统级别发生某种类似于SQL数据库的缓冲或“事务”,以确保只有干净,格式正确的字节才能到达基础块设备? 还是程序假设最新的字节可能不完整,所以他们假设它坏了就将其删除,重新复制该字节并从那里开始追加? 知道并非所有数据都以字节表示,所以这些猜测似乎是不正确的。 当这些程序“恢复”时,他们如何知道它们从正确的位置开始?
23 file-copy 

3
在启动时使用单个密码短语来解锁多个加密磁盘
我的机器有一个SSD(用于安装系统)和一个HDD(用于存储大型和/或不经常使用的文件)。两者都是加密的,但是我选择对它们使用相同的密码。SSD安装在/HDD 上,HDD 安装在/usr/hdd(每个用户都有一个目录,可以根据需要从主目录进行符号链接)。 系统启动后,立即要求输入SSD密码,仅几秒钟后输入HDD密码(自动安装)。鉴于两个密码短语都相同,是否可以将系统配置为只询问一次?

6
程序是否可以在POSIX中获取命令行参数之间的空格数?
假设我用下面的代码写了一个程序: int main(int argc, char** argv) 现在,通过检查的内容,知道将哪些命令行参数传递给它argv。 程序可以检测参数之间有多少空格吗?就像我在bash中键入以下内容一样: ibug@linux:~ $ ./myprog aaa bbb ibug@linux:~ $ ./myprog aaa bbb 环境是现代Linux(例如Ubuntu 16.04),但是我想答案应该适用于任何POSIX兼容系统。

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.