Unix & Linux

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


5
给定〜/ .ssh / authorized_keys格式的密钥,您可以轻松确定密钥强度吗?
〜/ .ssh / authorized_keys [2]包含公钥列表。 不幸的是,每个公共密钥都没有指定密钥强度(位数)。 是否有实用程序可以逐行处理此文件并输出键强度? 我检查了手册页中的ssh-keygen,但看起来只能使用私钥。 另外,是否有一种工具可以像在pageant腻子工具中一样显示sha1哈希值? 我正在寻找的格式: Key Algorithm Strength Hash Comment ssh-rsa 2048 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff user1@host1 ssh-rsa 2048 11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:11 user2@host2
17 ssh  openssh 


2
是否可以模拟Debian软件包的安装,并仍将其标记为已安装?
这就是我想要的: 从没有安装软件包的虚拟系统开始。然后,我调用一个工具,类似于apt-get要求它计算依赖性并标记所有将安装的软件包。 让我清楚一点:它表示已安装软件包,但实际上没有安装文件。 然后,如果我要求“安装”更多软件包,它可能会建议添加或删除其他软件包。它实际上并不会删除软件包,但显然只是将它们标记为已删除。 这将很有用,因为我将能够在裸露的Debian或Ubuntu系统上测试软件包的安装。它可以让我知道在特定情况下是否可以安装软件包。 进行实际安装会占用大量磁盘空间和时间。 apt 具有“模拟”选项,但不会将软件包标记为已安装。

3
我应该如何配置grub从USB硬盘启动Linux内核?
我的笔记本电脑硬盘驱动器在一个外接盒中,用作大型笔式驱动器。另外,我已经在上面安装了Linux,因此可以选择自己的发行版来引导任何计算机(例如,用于数据恢复或修复已保存的系统,或者仅使用借用的笔记本电脑而不会破坏预装的Windows)。问题是,根据硬件配置,USB硬盘驱动器可能在不同路径下可见。对于grub配置,我只使用(hda0,0)它,因为它与启动grub的设备有关。我在中有UUID条目/etc/fstab。我还在rootwait内核参数中指定了它,以便它在尝试挂载设备之前等待USB子系统稳定下来。 我应该以什么形式传递给内核root=?当前从笔式/dev/sdX驱动器引导一次,检查调试消息以查看内核已将哪些设备分配给USB驱动器,然后重新引导并编辑grub配置。除了启用Boot from USB hard driveBIOS并将其设置为比内部硬盘驱动器更高的优先级之外,我无法在PC上进行任何更改。 有各种各样的initrd生成脚本,其中包括对根设备路径中的UUID的支持,不幸的是,Gentoo本机脚本(genkernel)不支持rootwait,我没有运气尝试使用其他脚本。 引导过程如下(在Windows中非常相似): BIOS选择引导设备并加载其MBR(碰巧是grub stage-1)。 Grub从它设置为的设备中加载配置文件和Stage-2文件root,(hd0)用于从BIOS加载该设备的设备。 Grub加载并启动了内核(仍然是相同的编号,因此我可以(hd0,0)再次使用)。 内核初始化所有内置设备(rootwait现在这样做很神奇)。 内核安装传递它的分区root(这是内核参数,而不是grub参数)。 init.d开始userland引导过程,包括从安装/etc/fstab。 第五部分是给我麻烦的那一部分。
17 linux  kernel  boot  usb  grub2 

2
如何创建到inode(ext4)的硬链接?
如果我知道文件的索引节点(索引节点),但不知道其路径(或其任何路径),是否可以直接创建到该索引节点的硬链接? 我可以使用找到文件sudo find / -inum 123546,然后创建一个硬链接,但这对于我的应用程序来说太慢了。 注意:我正在使用ext4文件系统。
17 inode  hard-link 

1
如何更改Linux上下文切换频率?
如何更改Linux(linaro,ubuntu,debian)上下文切换频率? 我可以权衡使用响应速度较慢的系统来获得更高效的系统。 EDIT1:我有一个主要进程,我想尽可能快地运行(每秒最大时钟周期),因此我想降低上下文切换频率(=增加时间片)。问题是如何做到这一点,并且会产生重大影响。我可以计算上下文切换的成本吗?意思是,我可以估计是否将时间片增加两倍,对于我关心的主要流程,我的性能提升将是多少?

4
bash中管道(|)和逻辑与(&&)的优先级
具有操作符优先级的经典场景,您会看到如下一行: (cd ~/screenshots/ && ls screenshot* | head -n 5) 而且您不知道它是否已解析((A && B) | C)或(A && B | C) ... 在这里找到的几乎官方文档没有在列表中列出管道,因此我不能简单地在表中检查。 此外,在bash中,(不仅用于更改操作顺序,而且还创建了一个subshel​​l,所以我不是100%确信此行与上一行等效: ((cd ~/screenshots/ && ls screenshot*) | head -n 5) 更笼统地说,如何知道bash线的AST?在python中,我有一个给我树的函数,这样我就可以轻松地仔细检查操作顺序。
17 bash 

1
CPU如何知道有待处理的IO?
我一直iowait在研究顶级实用程序输出中显示的属性,如下所示。 top - 07:30:58 up 3:37, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 86 total, 1 running, 85 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st iowait 一般定义如下: “这是CPU空闲并且有一些IO挂起的时间。” 据我了解,一个进程在单个CPU上运行。由于它已经用尽了时隙而进行了调度,或者由于阻塞而被调度之后,最终可以在任何一个CPU上再次对其进行调度。 在有IO请求的情况下,使进程处于不间断睡眠状态的CPU负责跟踪iowait时间。因为其他CPU确实处于空闲状态,所以它们在结束时将报告与空闲时间相同的时间。这个假设正确吗? 此外,假设有一个较长的IO请求(意味着该进程有几次机会可以调度,但由于IO未完成而没有调度),CPU如何知道有“待处理的IO”?这种信息是从哪里获取的?一个CPU如何简单地找出某个进程已进入休眠状态,以便某个IO完成某个时间,因为任何CPU都可能使该进程进入休眠状态。如何确认“待处理的IO”状态?
17 linux  cpu  top  load-average 

6
如何缩短终端上显示的当前目录路径?
如果我在深层目录中,可以说: ~/Desktop/Dropbox/School/2017/C/A3/ 然后当我打开终端时,它说 bob@bob-ubuntu:~/Desktop/Dropbox/School/2017/C/A3/$ 然后我写我的命令。这很长,我在终端中写的每一行都转到下一行。我想知道是否有办法只显示当前目录。我希望它显示: bob@bob-ubuntu: A3/$ 这样就很清楚了,我总是可以pwd看到我的整个目录。我只是不希望整个目录在终端中可见,因为它占用了太多空间。

3
哪个外壳解释器运行没有shebang的脚本?
假设我帐户的默认外壳是zsh,但是我打开了终端并启动了bash并执行了一个名为的脚本prac002.sh,那么该外壳解释器将用于执行zsh或bash脚本?考虑以下示例: papagolf@Sierra ~/My Files/My Programs/Learning/Shell % sudo cat /etc/passwd | grep papagolf [sudo] password for papagolf: papagolf:x:1000:1001:Rex,,,:/home/papagolf:/usr/bin/zsh # papagolf's default shell is zsh papagolf@Sierra ~/My Files/My Programs/Learning/Shell % bash # I fired up bash. (See that '%' prompt in zsh changes to '$' prompt, indicating bash.) papagolf@Sierra:~/My Files/My Programs/Learning/Shell$ ./prac002.sh …

1
使用大小写敏感的搜索,使用smartcase小写字符串
我通常能smartcase在我的.vimrc。 没有smartcase: 如果我要进行不区分大小写的搜索,则可以使用大写或小写形式(没关系),并\c在查询末尾附加a 。 默认情况下,区分大小写的搜索发生。 与smartcase: 如果我要进行不区分大小写的搜索,请全部使用小写字母。 如果要区分大小写的搜索,请以大写形式写大写字母。 但是,smartcase启用后,如何说我要区分大小写的小写模式搜索?我期望追加a \c会还原搜索的类型(因此,如果我全部写成小写,即不区分大小写的搜索,它将变成区分大小写的搜索;如果我写了一些大写的字母,即区分大小写的搜索,它将变为不区分大小写的搜索),但事实并非如此(无双关语)。
17 vim  search 

2
fstab安装等待网络
我尝试在系统引导后挂载CIF设备。 但是系统会在网络建立之前尝试挂载系统,因此它会失败。 登录系统后,我可以使用以下方法挂载它: sudo mount -a 如何告诉我的Arch(手臂)等待网络可用? 编辑: 我用systemd

2
有没有一种方法可以衡量ext4lazyinit的进度?
我在这里问了一个关于ext4lazyinit的问题。从我已阅读和理解的所有内容来看,它仅使您可以开始使用hdd,而无需为文件系统创建所有inode。 您知道或可以测量的唯一方法是ext4lazyinit在中进行监视iotop。有没有办法取得百分比进展?
17 debian  kernel  ext4 

2
如何转换ssh主机密钥?
我正在尝试将ssh服务器从2048位RSA密钥升级到更大的密钥,因为建议尽快淘汰2048位密钥。 我生成了一个新密钥,然后将其添加到sshd配置中,如下所示: HostKey / etc / ssh / ssh_host_rsa_key (旧的2k位密钥在前) HostKey / etc / ssh / ssh_host_rsa4096_key (新的较大键2nd) 重新启动后sshd,我将切换到主机,没有收到标识更改警告,但是新的标识也未缓存在中~/.ssh/known_hosts。如果我以相反的顺序放置这些行,则会收到标识更改警告。同样,当我添加ed25519密钥时,无论我按什么顺序输入,客户端都不会将新密钥添加到已知主机文件中。 这似乎使SSH主机密钥无法翻转-很难相信确实如此,但是,考虑到常规的安全性需要升级密钥。 我知道您可以交换密钥,然后每个客户端都需要运行ssh-keygen -R以删除旧密钥,然后手动验证并接受新密钥,但这确实很麻烦,特别是如果您有许多客户端连接或不进行管理所有的客户。更不用说,如果您不管理客户,那么他们很有可能不会实际检查主机密钥,而是直接点击Y,因此提高安全性的尝试实际上可能会让您接触到中间攻击。 有什么方法可以使SSH主机密钥升级起作用?也就是说,客户应该学习新的更安全的密钥(并希望也不要学习过时的密钥)。并且在没有提供主机密钥的情况下更改了中间人警告。
17 ssh  openssh 

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.