Unix & Linux

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

3
每天1小时后如何开始cronjob?
我需要每天开始一次cronjob,但每天要过一个小时。到目前为止,除一年中的1天外,我大部分时间都可以使用: 0 0 * * * sleep $((3600 * (10#$(date +\%j) \% 24))) && /usr/local/bin/myprog 当一年的日期是365时,工作将从5:00开始,但是第二天(不计​​算counting年)的一年中的一天将为1,因此,工作将从1:00开始。我该如何摆脱这种困境?
16 cron 

1
在进程仍在运行时旋转日志文件
我正在运行一个将标准输出和标准错误写入日志文件的进程/var/log/dragonturtle.log。无论如何,有没有旋转日志文件的过程,并且该进程可以继续写入新的日志文件而不会终止该进程? 当前发生了什么(鉴于下面的logrotate配置): 处理写入 /var/log/dragonturtle.log logrotate的移动/var/log/dragonturtle.log来/var/log/dragonturtle.log.1 流程继续写入 /var/log/dragonturtle.log.1 我想发生的事情: 处理写入 /var/log/dragonturtle.log 将副本/var/log/dragonturtle.log对数旋转/var/log/dragonturtle.log.1 Logrotate截断 /var/log/dragonturtle.log 流程继续写入 /var/log/dragonturtle.log /etc/logrotate.d/dragonturtle: /var/log/dragonturtle.log { daily missingok rotate 7 compress delaycompress notifempty create 644 dragonturtle dragonturtle }
16 logs  stdout  logrotate 

4
为什么ls接受重复的开关?
我很好奇- ls -l和之间有区别ls -lllllllllllllllllllllllllllll吗? 输出似乎是相同的,我对为什么ls允许重复开关感到困惑。这是大多数命令中的标准做法吗?
16 ls  options 

5
提取双引号之间的值
我的查询是提取双引号之间的值""。样本输入为: 10.219.41.68---[11 / Jun / 2014:10:23:04 -0400] Sec:0 MicSec:1797“ GET / balancer-manager HTTP / 1.1” 200 28980“-”“ curl / 7.15.5(i386 -redhat-linux-gnu)libcurl / 7.15.5 OpenSSL / 0.9.8b zlib / 1.2.3 libidn / 0.6.5“ 我的日志文件很大,因此每行的值可能会有所不同,因此需要在首次出现双引号之间提取值。 预期产量: GET /balancer-manager HTTP/1.1 任何人有任何想法,然后建议。
16 awk 

1
违规处罚的agrep
我使用tre-agrep (手册页),的实施方案agrep (手册页),来执行近似模式匹配。该实用程序根据Levenshtein距离搜索匹配项,并且用户可以配置应用于替换,插入或删除编辑的罚分。 但是,我想在查询的整个长度上应用不同的权重,即在查询的开头(左端)要比在右边的删除权重低。该man实用程序的页面并不表示可以进行这种控制。 是否有其他命令行工具可以近似匹配并更好地控制不匹配惩罚?
16 grep  agrep 

3
取决于系统单元(sleep.target)的系统用户单元
我正在阅读doc,但对于以下情况是否可以实现尚不清楚: 其中定义的服务~/.config/systemd/user/task.service取决于系统sleep.target(~/.config/systemd/user/sleep.target.wants/task.service)。 现在,我希望task.service在运行时启动$ systemctl suspend,但是task.service尚未启动。 我正在运行debian,其系统版本为208,systemd --user配置或多或少如ArchWiki所述。 我不知道是否我的情况可能与systemd在所有来实现,或者是--system和--user设计完全隔离,使--user单元可能不是一个的依赖--system单位。 如果有可能,我的问题可能是什么?
16 systemd 

2
在无业游民的引导程序shell脚本中安装mysql-server(如何跳过设置?)
我确实尝试在Vagrant Ubuntu 12.04 LTS虚拟机上安装mysql-server。当我这样做时,安装程​​序将自动启动。我可以在Vagrant输出中看到这一点: 虽然不是强制性的,但强烈建议您为MySQL管理“ root”用户设置密码││。││││如果将此字段保留为空白,则密码将不会更改。││││ MySQL“ root”用户 在那之后,输出文本变成了杂乱无章的东西,± ├⎺ ⎼␊⎻┌▒␌␊ ┌␋␉⎽─┌␋├␊3-0 3.7.9-2┤␉┤┼├┤1 (┤⎽␋┼± ...但是它很长,充满了绿色和红色,因此我相信其余的安装已经完成。 但是我可以在以下情况确认缺少安装: sudo apt-get install --just-print mysql-server-5.5 ... The following NEW packages will be installed: mysql-server-5.5 如何通过Shell脚本发送正确的信号来配置MYSQL服务器?或者,如果不能,如何停止配置的自动启动或启动后杀死安装程序,同时仍然安装软件包?
16 ubuntu  mysql  vagrant 

5
操作系统如何知道命令需要sudo?
当您运行可执行文件时,有时操作系统会拒绝您的许可。例如make install,将需要使用前缀作为系统路径运行sudo,而不需要前缀作为非系统路径运行sudo。操作系统如何确定甚至在程序执行某项操作之前,运行可执行文件将需要比用户更多的特权? 有时,运行程序不会被拒绝,但如果运行,它将能够做更多的事情sudo。例如,du在某个系统目录上运行时,只有使用 sudo它才能访问某个目录。为什么在程序可以运行之前,操作系统为何不拒绝运行此类程序的权限,或者优先选择友好通知更多特权? 的确,无论何时sudo工作,su也将工作,而无论何时su工作,sudo也将工作?还是与之相比su,用户可以做更多的事情sudo?操作系统如何确定何时sudo工作以及何时su需要?
16 permissions  sudo 


2
Linux内核删除自定义键盘扫描代码
我有一个老式的IBM 122键型号M键盘,适合在现代计算机上使用。我正在使用Teensy 2.0进行编码并处理USB方面的问题。我从Humble Hacker键盘项目(https://github.com/humblehacker/keyboard)借用了固件,并在构建配置中添加了额外的键。到目前为止,一切都很好。 所有“常规”键都可以使用,但是内核似乎正在删除多余的键(F13- F24等)。 运行/lib/udev/keymap -i input/event0显示所有正常键的扫描代码,但多余键则无显示。 运行wireshark以捕获数据包的USB端口表明键盘正在发送扫描代码,但是看起来内核在原则上只是丢弃了它们。 我觉得这是内核驱动程序中的某些东西,根本没有提供它不期望的扫描代码。 我认为.h在内核源代码的某个文件中的某处会存在某种“主”键映射,但是到目前为止,我一直没有成功找到它。 值得强调的是,我没有像在我之前的其他许多人一样要求在X中映射额外的键。这是一个低级的,显然与内核相关的问题。暂时假设我根本不会使用X。我需要的是扫描代码在我运行时显示/lib/udev/keymap -i,我可以从那里开始其余的工作。

6
如何用较少的击键键入几个文件名
如果要使用imagemagick 将图像转换pdf为png图像,请执行以下操作: convert -trim -density 400 this_is_a_very_long_filename_of_my_pdf_file.pdf this_is_a_very_long_filename_of_my_pdf_file.png 出于某些原因,pdf文件的文件名通常很长,我希望该png文件具有相同的名称,但扩展名除外。 通常,我this_is_a_very_long_filename_of_my_pdf_file.pdf通过制表符选择两次zsh-menu,然后pdf将其更改png为第二个参数。 但是,有更快的方法吗?

5
minicom离线显示
我正在尝试minicom在Ubuntu中使用。 为此,我首先将USB连接到DB9转换器,然后在终端上键入此命令dmesg | grep tty以检查USB连接到DB9转换器是否正确连接。 我得到以下输出: [ 0.000000] console [tty0] enabled [ 54.200503] usb 2-1.2: pl2303 converter now attached to ttyUSB0 [ 76.183173] cdc_acm 1-1.1:1.2: ttyACM0: USB ACM device [ 118.363275] cdc_acm 1-1.1:1.2: ttyACM0: USB ACM device [ 190.079494] cdc_acm 1-1.1:1.2: ttyACM0: USB ACM device 因此,我知道我的USB到DB9转换器的名称是ttyUSB0。 按顺序执行以下步骤: minicom使用命令打开sudo minicom -o …
16 linux  ubuntu  usb  minicom 

1
通过Displayport连接到DVI适配器的显示器无法正常睡眠
我有一个连接到我的机器的监视器,该监视器在进入省电睡眠模式时显示异常行为。进入睡眠状态时,显示器将在消隐和显示默认桌面墙纸(KDE 4默认设置,这不是我正在使用的墙纸)之间切换。该监视器通过活动的Displayport到DVI单链路适配器和DVI电缆连接到我的机器。先前直接连接到DVI或通过HDMI-> DVI电缆连接的显示器时,显示器没有此问题。我不想解决此问题,以便displayport监视器可以与其他监视器正常睡眠。 为了说明我所看到的,这是我的普通桌面: 该监视器是该图像最右边的25%。 这是显示器休眠时看到的: 您在这里看到的是中间的两个监视器正常睡眠,电视抱怨没有信号(正确),最右边的监视器显示默认的KDE墙纸。该监视器将在消隐和显示此墙纸之间切换。它应该正常唤醒。此处连接的是哪台显示器都没关系-通过HDMI或DVI连接时该显示器表现正常,而与Displayport适配器连接时,其他任何显示器都无法正常工作。 我怀疑这个问题与KDE及其与nvidia驱动程序的交互有关。支持这种推测的是KDE中的显示配置应用程序的状态。我手动将其设置为以下状态: 但是睡觉后,它总是以这种状态结束: 此处的区别在于最右边的(DP)监视器和第二个左边的监视器(DVI-D-0)的位置显示不正确。值得注意的是,DP监视器已标记为另一个监视器的克隆。实际显示或可用性没有任何变化,这很好,但有点令人困惑。 奇怪的是,无论此选项卡显示什么,应用程序中的其他显示选项卡始终是相同的: 有关此设置的一点信息: Nvidia专有驱动程序340.17 Xorg 7.4-R2 KDE 4.13.2 KWin 4.11.10-r1 配备4个显示器的Nvidia GeForce GTX 770 2个DVI,1个HDMI,1个DP(通过活动适配器转换为DVI) 这是nvidia-settings应用程序生成的xorg配置的一部分: Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 Option "Stereo" "0" Option "nvidiaXineramaInfoOrder" "DFP-0" Option "metamodes" "DVI-I-1: nvidia-auto-select +3840+0, HDMI-0: nvidia-auto-select +0+0, DVI-D-0: …


5
您如何在不卸载的情况下“禁用” oh-my-zsh(和zsh)?
我正在尝试新的开发环境,包括zsh和oh-my-zsh。现在,我已经安装了oh-my-zsh,默认情况下,它将在我的终端(iTerm2和终端)上启动,始终以zsh和oh-my-zsh上的设置启动。我想知道是否可以“禁用”或停止使用oh-my-zsh的zsh及其设置,而不必卸载oh-my-zsh?知道如何将它们重新打开也很高兴。 目前,我的终端(我认为)自动进入zsh并自动使用oh-my-zsh。我希望对此有更多的控制,并且能够控制使用zsh的时间和使用oh-my-zsh功能的时间。 我还想知道的一件事是,终端应用程序如何知道在启动时开始运行哪个shell。能够控制也很好! 如果您尽可能多地解释您给我的每条命令的“为什么”,那将很有用!:) 我使用的是OSX。不确定这是否重要,但是我倾向于更喜欢更适用于更一般的Unix环境而不是自己的Unix环境的答案。
16 zsh  oh-my-zsh 

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.