Unix & Linux

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

1
如何获得启动`sudo`的用户名
我的问题:我有一个Python程序,用户使用来启动它sudo。有时我必须要到用户的家,而我只能知道它的名字才能做到这一点: import pwd pwd.getpwnam(username) 那么:如何获得启动该程序的用户名?
12 users  sudo  python 



2
在zsh别名中转义引号
关于这个关于从文本中去除换行符的问题之后,我想将其转换为zsh别名,如下所示: alias striplines=' awk " /^$/ {print \"\n\"; } /./ {printf( \" %s \",$0);}"' 我尝试将awk脚本中的引号转义,但出现此错误: awk: (FILENAME=bspsrobustness FNR=1) fatal: division by zero attempted (该文件称为bspsrobustness) 有什么方法可以做我想要的吗?我想我可以将其转换为awk脚本而不是zsh别名,这是我的最佳选择吗?
12 shell  zsh  quoting  alias 


5
防止USB外置硬盘进入休眠状态
有谁知道是否有一种优雅的方式告诉外部USB驱动器在一段时间不活动后不停止旋转?我见过基于cron的解决方案,该解决方案每分钟都会写入一个文件,但是没有什么闻起来像unixey一样优雅。我必须发出一个hdparm或scsi命令(通过OpenBSD中的sd驱动程序访问usb驱动器),以告诉该驱动器不休眠。恐怕这可能是机箱控制器内置的功能,因此除了将驱动器从机箱中取出并直接放入机器中之外,没有什么可以改变的,但是我想我会问,机缘巧合。 理想情况下,我正在寻找OpenBSD解决方案,但我知道还有其他问题/问题,因此将考虑使用任何解决方案作为答案。

1
如何使用DNF找出不同版本的Fedora中可用的软件包版本?
是否可以使用dnf(或其他实用程序)搜索Fedora不同版本的存储库? 例如,在我当前的版本中搜索我可以做的所有版本的软件包dnf --showduplicates list <package name>。是否可以按照以下方式做一些事情: dnf --showduplicates list [--fedora29] <package name> 该参数[--fedora29]可用于指定我想搜索的Fedora版本? 如果无法使用dnf,是否可以使用其他命令行工具?
12 fedora  repository  dnf 

1
ACPI BIOS错误/ AE_NOT_FOUND
每当我重新启动桌面时,我都会收到这些错误消息(还有一些其他消息,我不知道它在关闭时如何保留,但到目前为止与该问题无关): [gorre@uplink ~]$ journalctl -p err..alert ... -- Reboot -- May 11 21:47:03 uplink kernel: ACPI BIOS Error (bug): Failure looking up [\_SB.PCI0.RP04.PXSX._SB.PCI0.RP05.PXSX], AE_NOT_FOUND (20180105/dswload2-194) May 11 21:47:03 uplink kernel: ACPI Error: AE_NOT_FOUND, During name lookup/catalog (20180105/psobject-252) May 11 21:47:03 uplink kernel: ACPI Error: Method parse/execution failed \_SB.PCI0.RP04.PXSX, AE_NOT_FOUND (20180105/psparse-550) …

1
我如何弄清楚为什么我的systemctl服务没有在CentOS 7上启动?
我正在使用CentOS7。如何弄清为什么服务无法启动?我已经创建了这项服务 [rails@server ~]$ sudo cat /usr/lib/systemd/system/nodejs.service [Unit] Description=nodejs server [Service] User=rails Group=rails ExecStart=/home/rails/NodeJSserver/start.sh ExecStop=/home/rails/NodeJSserver/stop.sh [Install] WantedBy=multi-user.target 文件指向这个 [rails@server ~]$ cat /home/rails/NodeJSserver/start.sh #!/bin/bash forever start /home/rails/NodeJSserver/server.js 我可以单独运行此文件。但是,当我尝试将其作为服务的一部分运行时,我注意到我的nodeJS服务器没有启动。即使我检查“ sudo systemctl --state = failed”,我也看不到任何错误... [rails@server ~]$ sudo systemctl enable NodeJSserver [rails@server ~]$ sudo systemctl start NodeJSserver [rails@server ~]$ [rails@server ~]$ [rails@server ~]$ forever …

2
了解Shell内置命令
在bash手册中,写道 Builtin commands are contained >>> within <<< the shell itself 另外,这个答案指出 A built-in command is simply a command that the shell carries out itself, instead of interpreting it as a request to load and run some >>> other program <<< 在上运行compgen -b时bash 4.4,我会收到所有shell内置命令的列表。我看到例如,[并且kill被列为shell内置程序。但是它们的实际位置是: /usr/bin/[ /bin/kill 我认为这是builtin将命令编译为/bin/bash可执行文件的一种手段。因此,真正使我感到困惑的是:请纠正我,但是builtin当一个单独的命令实际上不属于shell的一部分时,它又如何成为a 呢?

3
Bash =〜正则表达式和https://regex101.com/
我使用https://regex101.com/构建了一个正则表达式,以返回字符串中IP地址的首次出现。 RegExp: (?:\d{1,3}\.)+(?:\d{1,3}) RegExp包括定界符: /(?:\d{1,3}\.)+(?:\d{1,3})/ 使用以下测试字符串: eu-west 140.243.64.99 它返回完全匹配的: 140.243.64.99 无论我对锚等如何尝试,以下bash脚本都无法与生成的正则表达式一起使用。 temp="eu-west 140.243.64.99 " regexp="(?:\d{1,3}\.)+(?:\d{1,3})" if [[ $temp =~ $regexp ]]; then echo "found a match" else echo "No IP address returned" fi

2
systemctl命令在RHEL 6中不起作用
在RHEL 7或CentOS 7上,systemctl或systemd命令可以正常工作。我知道它在RHEL 6或CentOS 6中将不起作用。您能告诉我启动/停止服务的替代命令systemctl start iptables.service吗,例如:
12 centos  rhel  services 

4
KDE5从暂停恢复后,我的图标下的标签已损坏
我正在使用KDE霓虹灯发行版(Ubuntu 16.04 LTS +最新的KDE5 DE)。 Suspend + resume似乎主要在我的笔记本上工作,但是图标下的标签(我在血浆外壳中设置为“文件夹视图”作为背景)已损坏,如下所示: 在左侧损坏图标,右侧固定通过拖动图标几个像素,让它回落到原来的位置。 在我看来,这可能不是图形驱动程序的问题,甚至KDE5等离子文件夹视图缓存错误? 题: 如何轻松刷新整个桌面?KDE菜单“刷新桌面”没有帮助(我想这里有一些图标缓存,并且它没有失效)。 如何创建一些高质量的错误报告,应该使用哪种日志/命令输出,以及从哪里开始寻找该报告。 当我自己是程序员时,我不做任何Qt / KDE5开发,所以我什至都不知道,KDE的哪一部分负责这些,在哪里查找错误以及哪些工具可用于诊断。快速查看dmesg并/var/log/Xorg.0.log没有带来任何东西可疑。 lshw -c video *-display description: 3D controller product: GM107M [GeForce GTX 960M] vendor: NVIDIA Corporation physical id: 0 bus info: pci@0000:01:00.0 version: a2 width: 64 bits clock: 33MHz capabilities: pm msi pciexpress bus_master cap_list …
12 kde  nvidia  suspend  kde5 

1
CTRL + V在vim中做什么?
在vim处于insert模式时,如果按CTRL + V,则会陷入所谓的状态x mode (^[,^D...),当我按某个键(例如,逃逸键)时,我会遇到以^[或开头的其他内容^。在我的编辑器中,它也会变成绿色。 这是做什么用的?

4
我如何查看何时启动/停止/重新启动systemd服务?
我有一个在Debian(Jessie)服务器上运行的服务(由我自己编写),该服务自己的日志恰好表明它在特定时间重新启动。没有迹象表明存在段错误或其他崩溃,因此我现在试图确定应用程序是否以某种方式静默失败并被systemd重新生成,或者用户是否通过故意重新启动了服务systemctl。 外壳程序历史记录未显示此类活动,但是export HISTCONTROL=ignoreboth由于SSH会话可能已超时,从而阻止了先前登录名的bash历史记录写入磁盘,因此尚无定论。当时服务器未重启。 但是我希望systemd本身应该保留一个日志,指示何时有意重新启动服务。令我惊讶的是,我找不到任何journalctl有关如何获取此类日志的文档(例如)。 其他一些帖子(例如,哪里/为什么普通用户systemd服务没有日志?)似乎表明应该有这样的日志消息: Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Starting chatty.service... Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Started chatty.service. 但是我在系统上看不到这样的日志消息。 有没有办法找出何时启动,停止或重新启动systemd服务? 编辑:看来人们可能遇到的典型问题是他们journalctl以非特权用户身份运行。对我来说不是这样,我一直都在工作root。作为对评论的回应,运行grep systemd /var/log/syslog仅给我以下内容: Jun 6 09:28:35 server systemd[22057]: Starting Paths. Jun 6 09:28:35 server systemd[22057]: Reached target Paths. Jun 6 09:28:35 server systemd[22057]: Starting Timers. Jun 6 09:28:35 server …

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.