Tag: 脚本

如何使用命令/脚本设置光标​​位置?

我有一个脚本可以重置一些东西,最后我需要它将光标设置为某个坐标,可以是自定义集,也可以是屏幕中心(重启gnome-shell时默认重置为例如gnome-shell )。 怎么能实现这一目标? 该解决方案必须适用于所有显示尺寸,并能够自动获取数据并完成所有数学等操作。 我正在使用GNOME 3.20运行Ubuntu GNOME 16.04。

如何在以root权限启动的脚本中以非root用户身份运行命令?

问题 在bash脚本中,我正在使用命令… sudo -u node bash ..从root用户切换到非sudo用户,这是失败的。 上下文 我正在为Vagrant编写一个provision.sh脚本,用于设置运行Ubuntu 16.04.3的服务器,其中包含使用Meteor 1.6交付应用程序所需的所有软件包。 一个必需步骤是将nvm作为非root用户安装。 安装nvm后,您需要注销并重新登录才能激活nvm 。 因此,我创建了一个名为meteor的非sudo用户,并希望在下载并安装nvm时切换到该nvm 。 随后,我想切换回root并立即以meteor身份登录,以便开始使用nvm来安装Node.js. 你会在下面找到一个评论很多的剧本。 每次我调用vagrant reload –provision时,Vagrant都会运行此脚本。 我应该使用什么命令而不是sudo -u node bash ? echo “# whoami” && whoami && echo “^^^^ root expected” echo “As root, create non-sudo user meteor:” pass=$(perl -e ‘print crypt($ARGV[0], “password”)’ $password) useradd -m -p $pass meteor echo […]

并行查找并执行多个脚本

天儿真好, 我整个上午都试图解决这个问题,但没有成功。 我想在特定文件夹中搜索某些脚本并并行执行它们。 脚本有不同的名称,但都以“run.sh”结尾。 低于我的尝试没有成功。 第一种方法是将find与-execdir结合使用。 然而,这是有效的,脚本以sequantial方式执行。 我希望所有脚本同时执行(并行)。 似乎没有选择用-execdir来实现这一点 find . -name “*run.sh” -type f -execdir ‘nohup’ {} ‘&’ \; 然后,我尝试使用xargs,因为有一个并行选项(-P)。 我还没有尝试过并行选项,因为我无法让xargs在各自的子文件夹中运行脚本。 下面的命令执行所有脚本,但是在我运行命令的文件夹中执行此操作,因此脚本本身不起作用。 脚本必须在自己的子文件夹中执行。 在上面的示例中,-execdir正在执行此操作而不是-exec。 如何使用xargs实现这一目标? nohup find . -name “*run.sh” -type f | xargs -0 -I{} bash -cf\ \{\} 要么 nohup find . -name “*run.sh” -type f | xargs -0 -I{} bash -c “f […]

For循环语法bash脚本

有没有办法在bash脚本中实现这样的东西? pureips=”10.3.1.111 10.3.1.112 10.3.1.114″; pureservers=”abc”; for ip,server in $pureips,$pureservers; do echo “$server | $ip “; done 谢谢。

从脚本启动时添加cron作业

我想在shell脚本中添加一个在启动时运行的命令。 例如,我运行一次脚本并添加了cron作业,因此从那时起,每次操作系统启动时,都会启动一个特定的程序。 更具体地说,我需要xbindkeys在启动时运行,这是由一次性运行脚本完成的。 到目前为止,我认为这条线将完成工作: @reboot xbindkeys ( xbindkeys在PATH中) 我怎么能从脚本中添加这个作业?

如何通过网络将文件复制到多个主机?

我有200多个Ubuntu系统,我想复制一个文件。 如何通过网络将文件复制到多个主机? 我有什么可能性? 注意:此问题与如何远程查找Ubuntu计算机的版本有关?

如何在nautilus中设置快捷键以打开所选文件?

厌倦了右键单击打开以在特定应用程序中打开文件,我想设置一个快捷方式来打开文件,例如Gimp。 我不想更改默认的打开操作。 (Ubuntu 14.04) 我尝试了什么: 我已经设置了一个键盘快捷键来运行下面的脚本,在指定的应用程序(gimp)中打开所选的Nautilus文件。 !/bin/sh for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS do /usr/bin/gimp “$file” done 和… !/bin/sh /usr/bin/gimp “$1” 但它永远不会正确地在nautilus窗口中选择所选文件。 有没有办法做到这一点?

如何轻松缩放从高DPI屏幕拍摄的屏幕截图?

由于我切换到高DPI显示器,我发布的屏幕截图非常大,如下所示。 有没有办法让它们看起来很正常? 最好是比启动GIMP更快的东西。 特别是,在gnome-screenshot中是否有隐藏选项? 可能没有完美的工具,因为Ubuntu适应高DPI的方式并不统一(字体,窗口装饰,程序,可能有不同的比例),但一个好的工具会读取这些设置并找出最佳使用比例。 我希望保持仅选择部分屏幕的能力(如在SHIFT + PRTSCR中),并选择文件的名称。 如果重要,我总是将我的截图保存在$HOME/Pictures 。

递归删除最旧的文件,直到达到最大限制

我试图修改Sergiy的脚本以递归行动(目前它只删除1个文件,但我希望删除所有文件,直到达到最大文件限制)。 但我无法弄明白。 我觉得我应该能够修改第一个函数(“删除最旧的”)以读取多个时间戳并将其传递给下一行,但我不熟悉此命令,并且无法找到任何信息。 任何想法,将不胜感激!

Bash脚本如何杀死已经运行的“睡眠”版本?

编辑从下面的评论我写了一个令人困惑/误导的介绍,所以我重写它。 我有一个名为“ 锁定屏幕计时器 ”的bash脚本,可以在桌面上单击。 30分钟后,它锁定屏幕,用户必须输入密码才能解锁屏幕。 但是,如果用户改变主意,或者他们想要重置计时器,他们应该能够再次单击桌面快捷方式,它应该杀死正在睡觉和倒计时的先前正在运行的作业。 到目前为止,我已经做了一些试验和错误,并且遇到了障碍。 相关的代码段是: pgrep tv-timer > ~/tv-timer.log PID=$$ # Current Process ID 使用cat ~/tv-timer.log : 16382 20711 其中一个等于上面的“$ PID”,但另一个是以前运行的副本,我想使用kill ##### 。 找出哪一个“$ PID”并杀死它的最佳方法是什么? 第一次运行脚本时,只有一个条目等于“$ PID”,我不想杀死它。 谢谢你的帮助! 建议的副本( 防止重复脚本同时运行 )是父和子进程中的问题。 接受的答案很长且很复杂,涉及包装脚本和/或多行代码。 这里寻求的解决方案是一行新代码! 事实上,这里接受的选择答案是基于重复的OP尝试那里没有工作!