Unix & Linux

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


1
从/ proc / pid / smaps获取有关进程的内存使用情况的信息
对于中的给定过程/proc/<pid>/smaps,对于给定的映射条目,为: Shared_Clean Shared_Dirty 私人清洁 私人脏话 是Shared_Clean+ Shared_Dirty与其他进程共享的内存量吗?就像共享RSS? 同样,Private_Clean+ 仅可用于一个进程Private_Dirty的内存量吗?就像私人RSS? PSS值是否= PrivateRSS +(SharedRSS /共享它的进程数)? 阅读此链接后还有其他问题:LWN 现在,让我们讨论整个过程,我们正在查看其smap条目。 我注意到,如果我这样做Shared_Clean+ Shared_Dirty+ Private_Clean+ Private_Dirty,每smaps条目的过程中,我得到的报告过程中的RSS ps,这是很酷。例如 ps -p $$ -o pid,rss 能不能给我的RSS的(约)相同的值的每一个总和Shared_Clean,Shared_Dirty,Private_Clean,Private_Dirty在/ proc / $$ / smaps项。 但是整个过程的PSS呢?因此,从上面的示例中,如何获得$$的PSS?我可以为每个smap映射添加PSS条目,然后以$$的价格到达PSS吗? 那么在整个过程中USS呢?再次以上述示例为例,我猜想我可以通过对$$ ..的每个smaps条目仅汇总Private_ *条目来以$$到达USS。 注意: PSS =比例设置大小。 USS =唯一的集合大小。

7
如何更改FAT32文件系统的卷名?
我知道我可以使用-n选项格式化分区时设置卷名mkfs.vfat。但是如何仅更改名称而不格式化? 我特别希望能够使用大写和小写字母。在最坏的情况下,我可以使用Windows工具,但Windows默认情况下会将所有字母都转换为大写(但在使用创建的卷中使用小写字母时效果很好mkfs.vfat)。
46 partition  fat 

8
是否有程序可以在过程完成后向我发送通知电子邮件?
我是一名计算科学家,并且在Linux上运行了大量冗长的计算。具体来说,我使用GROMACS软件包运行分子动力学(MD)模拟。 这些仿真可能需要几天或几周的时间,才能在(例如)8至24个内核上运行。我可以访问群集的多个节点,这意味着在任何给定时间,我都在运行大约4或5个作业(每个作业在不同的节点上,每个作业在8-24个内核上)。 问题在于模拟需要花费可变的时间。我想让所有节点全天候进行仿真,但是要开始新的仿真,我需要使用终端登录并做一些手动工作。但是我总是忘记模拟中还剩下多少时间,因此我总是不断地检查它们。 Linux进程完成后,有什么方法可以接收电子邮件?会有Linux程序可以执行此操作吗?这样,我将知道何时使用终端登录并准备下一个模拟。 我正在使用Ubuntu Linux。谢谢你的时间。
46 shell  process  email 

4
*仅在用户不存在时将其添加到系统中*
useradd {user}尽管我计划在自动化环境中运行此命令,但是我一直在运行将该命令添加到系统中的命令,即使用户已经存在,它也可能最终再次运行。 有没有一种方法可以仅在用户不存在的情况下运行?用户没有主文件夹。
46 users 

7
如何手动创建DEB文件?
我想手动创建一个DEB文件。我只想提供一个包含要安装的数据的文件夹,以及一个要在安装后执行的脚本。 这可能吗?
46 debian 

12
使CD自动ls
我发现我经常做以下事情: %> cd bla/bla %> ls 我希望每当我cd进入目录时,它就会自动执行ls。 我摆弄.bashrc了一段时间,但不知道如何实现它。

5
测量程序的RAM使用率
time 如果您想弄清楚给定命令需要多少CPU时间,这是一个很棒的命令。 我正在寻找类似的东西,可以测量程序和任何子级的最大RAM使用率。最好,它应该区分已使用和未使用的已分配内存。也许它甚至可以给出内存使用率的中位数(因此,长时间运行时您应该期望的内存使用率)。 所以我想做: rammeassure my_program my_args 并获得类似于以下内容的输出: Max memory allocated: 10233303 Bytes Max memory used: 7233303 Bytes Median memory allocation: 5233303 Bytes 我已经看过memusg https://gist.github.com/526585/590293d6527c91e48fcb08edb8de9fd6c88a6d82,但我认为这有点黑。

15
在许多服务器上通过SSH自动运行命令
.txt文件中有一个IP地址列表,例如: 1.1.1.1 2.2.2.2 3.3.3.3 每个IP地址的后面都有一个服务器,并且每个服务器上的端口22上都运行着一个sshd。known_hosts列表中并不是每个服务器(在我的PC上为Ubuntu 10.04 LTS / bash)。 如何在这些服务器上运行命令并收集输出? 理想情况下,我想在所有服务器上并行运行命令。 我将在所有服务器上使用公钥身份验证。 以下是一些潜在的陷阱: ssh提示我将给定服务器的ssh密钥放入我的known_hosts文件中。 给定的命令可能返回非零退出代码,指示输出可能无效。我需要认识到这一点。 例如,由于网络错误,可能无法建立到给定服务器的连接。 如果命令的运行时间比预期的长,或者服务器在运行命令时关闭,则应该有一个超时时间。 服务器是AIX / ksh(但我认为那并不重要。



6
如何使用cp以幂等方式递归复制文件夹?
当我使用 cp -R inputFolder outputFolder 结果取决于上下文: 如果outputFolder不存在,将创建它,并且克隆的文件夹路径为outputFolder。 如果outputFolder存在,则创建的克隆将为outputFolder/inputFolder 这太可怕了,因为我想创建一些安装脚本,并且如果用户错误地运行了两次安装脚本,那么他将outputFolder是第一次创建该脚本,然后在第二次运行时,将在中再次创建所有内容outputFolder/inputFolder。 我总是想要第一个行为:在原始对象旁边(作为同级对象)创建一个副本。 我想使用cp便携式(例如MINGW尚未rsync发货) 我查了一下cp -R --parents,但这个重新创建的路径一路目录树(因此克隆也不会outputFolder,但是some/path/outputFolder) --remove-destination或者--update如果2不做任何更改,仍然将内容复制到outputFolder/inputFolder 有没有一种方法,而无需先检查是否存在outputFolder(如果文件夹不存在,则...)或使用rm -rf outputFolder? 达成共识的可移植UNIX方式是什么?
46 cp  recursive 

2
为什么ZSH用高亮的百分比符号结束一行?
我有时会在各种应用程序中注意到这一点。我经常以为这是因为输出被提前取消(例如ctrl + c)或类似的操作,而zsh则填充了新的换行符。但是现在,好奇心已经成为我最好的,因为它似乎并没有做到那么快。 sh 重击 该Sequence程序是我在阅读Java认证时从书中摘录的,只是想看看它是否可以编译和运行。我确实注意到它没有使用包/类中的println()方法System.out。相反,它使用普通old print()。 缺少换行符是我得到此符号的原因吗?
46 bash  zsh  prompt  newlines 


5
用于确定设备端口的命令(例如/ dev / ttyUSB0)
我对Linux中的端口有疑问。如果我通过USB连接设备并想检查其端口,则无法使用命令lsusb来执行此操作,该命令仅指定此总线上的总线号和设备号: [ziga@Ziga-PC ~]$ lsusb Bus 003 Device 007: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC 是否有命令告诉我设备直接连接的端口?到目前为止,唯一的方法就是断开连接并重新连接,并使用以下命令: [ziga@Ziga-PC ~]$ dmesg | grep tty [ 0.000000] console [tty0] enabled [ 0.929510] 00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A [ 4.378109] systemd[1]: Starting system-getty.slice. [ …
46 usb  serial-port  dmesg 

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.