Unix & Linux

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


1
跟踪丢包的源IP
我有一台运行CentOS 7的服务器,它显示了相当多的RX dropped packetson ifconfig。我相信这些可能是由硬件问题引起的,例如电缆和连接故障。但是,由于它是一个具有约20个Windows终端的网络,因此我无法检查所有连接以查找有问题的连接。有什么方法可以发现丢弃的数据包来自哪个IP地址?提前致谢。

2
如何找到yum安装的软件包?
我使用yum list php-imap列出php-imap: # yum list php-imap Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.zju.edu.cn * epel: ftp.cuhk.edu.hk * extras: mirrors.zju.edu.cn * updates: mirrors.zju.edu.cn * webtatic: sp.repo.webtatic.com Installed Packages php-imap.x86_64 5.4.16-7.el7 @epel 但是如何找到它的位置?我知道我可以用它find / -name php-imap来搜索,但是它很长一段时间,甚至命令都没有反应性。 在我的CentOS 7中,该/var/tmp/目录为空。并列出/var/cache/yum/x86_64/7/以下内容: base epel extras mysql56-community mysql-connectors-community mysql-tools-community timedhosts timedhosts.txt …
1 yum 

1
替换File1中的模式,并用File2中相应的匹配模式+列替换
我研究了许多类似的问答,但仍然停留在解决方案上。 我有2个档案。 文件1 cow aaaaa brown bbbbb often ccccc farts ddddd 文件2 在File2中,以“ space”作为分隔符,然后输入col 1 =“ brown”和col2 =“ 149,456,foo”。另外,File1和File2的顺序不同(排序在这里不起作用,我想依靠匹配的键进行替换)。 brown 149,456,foo cow 192,231,bar farts 81,2007,tip often 427,541,top 我想创建File3 cow 192,231,bar aaaaa brown 149,456,foo bbbbb often 427,541,top ccccc farts 81,2007,tip ddddd 换句话说,记下column1-in-File2(棕色)并在File1中搜索它。在File1中找到该匹配项后,请将匹配项替换为相应File2的整行(棕色149,456,foo)。 我已经试过了: $ awk 'NR==FNR{a[NR]=$0;next}{$6=a[FNR]}1' file2 file1 但是结果似乎占用了每个row1,然后将其与其他文件中的row1一起打印,不涉及匹配/替换。 brown brown …
1 awk  sed 

1
无法在新的ASUS Eeebook上启动Ubuntu
我刚刚购买了华硕Eeebook E403SA。我使用pendrivelinux YUMI工具在Ubuntu 16.04.2。中创建了实时USB。我通过USB进入了实时会话,没有任何问题,然后选择擦除驱动器,并用Ubuntu替换了整个组件。安装完成,没有问题。 但是,计算机现在无法启动到Ubuntu,并且BIOS根本无法检测到硬盘驱动器。在实时会话中挂载时,我可以看到文件系统,但BIOS无法检测到它。 我尝试使用“引导修复”将Grub手动重新安装到计算机上的每个驱动器。当使用安装了Grub的Live USB启动它时,我最终遇到了Grub Rescue终端。它进入此终端时出现错误,无法识别驱动器,将丢失的驱动器称为UUID。 Eeebok本身并没有真正的硬盘驱动器,而是内部MMC存储。我不知道这是否重要。另外,(愚蠢地)我没有备份原始驱动器映像,因此无法将其恢复出厂设置。 那么,有什么想法吗? 这是通过Live USB运行的Boot Repair输出的pastebin

2
ksh:将awk命令的输出存储在数组中
我有以下awk命令: awk -F ' ' '{ print $NF }' log filename 它给出的输出如下: 06:00:00 parameters: SDS (2) no no no no doc=4000000000). information: 0 5898 5898 06:06:25 问题是我需要将其保存在数组中。例如当我打印或回显$array[0] 我应该得到 06:00:00 同样 $array[1] = parameters: . . . $array[n] = 06:06:25 我的最终目标是使用打印语句打印它们,即 printf("start time: %d and end time: %d", array[0], array[n]") 输出量 …
1 ksh 

1
从文件中提取两个值
我想从一系列.txt文件中提取两个值。 这是我的.txt文件的最后两行(第49行和第50行) 1 13593 3434 2.2585 0.9 2 3333 333 3.7118 0.8 我想从每个.txt文件中提取第49行和第50行的第4列(例如2.2585和3.7118)。 有办法吗? 非常感谢
1 scripting 

2
即使我的用户组不在sudoers文件中,为什么以sudo的身份运行命令时也没有得到密码提示?
我在/etc其中具有以下权限: drwxr-xr-x 23 root wheel 2560 Jul 1 20:47 etc $ whoami pierre $ groups pierre 我必须跑sudo,如果我想touch foo在/etc。 我想要的是提示输入root的密码,但是即使更改了此行,我也没有得到提示: %wheel ALL=(ALL) NOPASSWD: ALL 在sudo visudo到: %wheel ALL=(ALL) PASSWD: ALL 不过,考虑到我当前的用户不在组中,这甚至都没有关系wheel...我已经确保该root帐户已设置了密码(通过使用进行设置sudo passwd root)。 我在FreeBSD 10.3-RELEASE-p11云服务器上。 非常感谢您对为什么没有提示输入密码的任何见解! 这是添加@jesse_b答案中建议的行之后的我的suoders文件。 ## sudoers file. ## ## This file MUST be edited with the 'visudo' command …
1 sudo  freebsd  root 

4
所有子流程均为Bash(!),
我尝试使用GDB,发现无论何时尝试生成我正在调试的程序,都会生成Bash(GDB会说starting myProg...,然后Bash出现。当我杀死Bash时,我会回到GDB中,会告诉我Bash的退出状态)。最初,我认为这是GDB的一个奇怪问题,但是后来我发现,尝试从Vim生成进程也只是生成了Bash。 经过一阵奇怪的启发,我将此问题与我的默认外壳程序是Tcsh联系了起来,并且由于不允许更改它,我只需将我的contains设置.tcshrc为exec bash。当我将其更改为bash或仅使用Tcsh时,问题消失了。 我对Tcsh的问题如何导致我的问题完全不了解。有人可以提供吗? 顺便说一句,我能够通过运行GDB PATH="" /usr/bin/gdb而不是just 获得临时修复gdb。它吐出bash: command not found,然后继续生成我要调试的程序。
1 bash  shell  tcsh  exec 

3
如何在shell中表达换行?
我是debian7.8 bash shell。 str="deb http://ftp.cn.debian.org/debian/ wheezy main contrib non-free \n deb-src http://ftp.cn.debian.org/debian/ wheezy main contrib non-free " echo $str > test 在我的测试文件中是: deb http://ftp.cn.debian.org/debian/ wheezy main contrib non-free \n deb-src http://ftp.cn.debian.org/debian/ wheezy main contrib non-free 我想要的是: deb http://ftp.cn.debian.org/debian/ wheezy main contrib non-free deb-src http://ftp.cn.debian.org/debian/ wheezy main contrib non-free 如何正确表达换行符?
1 bash  shell  quoting 

3
查找文件,应用更改以及以不同名称写入另一个目录的简单方法?
我编写了一些脚本foo,该脚本接受文件路径,读取文件,对其进行一些更改,然后将更改后的文件输出到stdout: foo src/file.foo > dest/file.changed.foo # works fine cat src/file.foo | foo > dest/file.changed.foo # also works fine 现在,我想将此命令应用于目录中的多个文件,并对每个文件执行以下操作: src / file.foo-> foo-> dest / file.changed.foo 基于对类似问题的回答,我提出了以下建议: find src -name '*.foo' \ -exec bash -c 'for x; do dest=${x/src/dest}; foo ${x} > ${dest/\.foo$/.changed.foo}; done' _ {} + 上面的方法有效,但是问题在于它对于日常使用来说太复杂了。没有更简单的方法吗?我想知道是否foo是使事情变得复杂的方法。
1 shell  find 

1
如何从外部ini文件向变量添加关联数组?
我正在修改一个简单的脚本以添加功能,并详细了解如何编写bash脚本。当前,该脚本使用以下函数创建关联数组: declare -A site theme add_site() { local shortcut=$1 site[$shortcut]=$2 theme[$shortcut]=$3 } add_site x1 example1.com alpha add_site x2 example2.com beta 现在,我希望它读取变量的ini文件。但是,我遇到的所有文档都说明了如何获取文件,但是仅使用单个数组作为示例。如何使用类似于以下内容的数据文件创建数组以创建关联数组: [site1] shortcut=x1 site=example1.com theme=alpha [site2] shortcut=x2 site=example2.com theme=beta
1 bash  array 

2
我不小心从多个组中删除了我的用户,如何找到他们是什么?
当尝试我的用户添加到新组运行一个应用程序(天命),我不小心使其成为唯一一组我的用户是。我已经运行groups命令,只见七八所以其他团体我是,但是当我登录退出并重新登录以保存我的更改,其他组消失了。 我具有root用户访问权限,但是我的bash历史记录不显示输出。 如何找出我所在的小组?我知道如何让自己重回他们的生活,而不是如何弄清楚他们是什么。
1 users  group 

1
如何找出内核信息?
我试图弄清楚我的Linux内核的年份,但是当我输入时uname -a,它不会显示给我,输出是这样的: Linux xx-xx-xx-xx 3.2.0-4-amd64 #1 SMP Debian 3.2.82-1 x86_64 GNU/Linux 我什至写了这个: $ cat /proc/version Linux version 3.2.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Debian 3.2.82-1 无论如何,有没有找到有关我的内核的完整信息? 我想要这样的输出(用于其他系统) Linux xx-xx-xx-xx 3.14.32-xxxx-std-ipv6-64 #7 SMP Wed Jan 27 18:35:08 CET 2016 x86_64 GNU/Linux

5
如何grep / awk / sed随机模式
我有一个尝试从中拉出字符串的日志文件。数字字符串是随机生成的,到目前为止,我使用grep / sed / awk的所有尝试均未成功。 我有一个类似以下的条目: "id":"30c962de-b448-40ac-ade8-da6a8f49ce88","title": 我想解析的是随机生成的 30c962de-b448-40ac-ade8-da6a8f49ce88 任何人都有快速而肮脏的方法来使它起作用吗?
awk  sed  grep 

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.