我习惯于将常用脚本放入其中,/usr/local/bin以便我可以使用终端从任何地方执行它们。
例如,我创建了一个名为 的 shell 脚本1,使其可执行chmod +x 1并放入 中/usr/local/bin,然后在脚本中#!/bin/sh的第一行输入,然后输入我的命令。从那以后,它非常方便地使用并且通过键入快速执行
1Enter
在终端上,从任何文件夹内。
我的问题是我目前正在使用一台无法完成的计算机,sudo我也不希望得到它,所以我无法将我的脚本放在/usr/local/bin.
我有哪些选择?是否有另一条具有相同“从任何地方运行”功能的路径,我可以在没有 的情况下访问它sudo,或者以另一种方式实现等效的功能?
这篇文章的公认答案说
对于用户范围的脚本,请在您的主目录中使用 bin/。
我试过了,但bin我的主目录中没有文件夹,当我创建一个文件夹时,我仍然无法从其他任何地方运行脚本。
我在 Ubuntu 12.04 LTS 上运行。
是否有一种简单的方法可以将 shell 脚本中发生的所有活动记录到文件中?
我有一个脚本。它输出诸如 echo“指令”之类的内容,以及其他程序输出。我知道命令:
command | tee -a "$log_file"
Run Code Online (Sandbox Code Playgroud)
和
command >> logifle.log
Run Code Online (Sandbox Code Playgroud)
我要问的是是否有用于日志记录的 shell 参数,或者我可以使用的 set 命令或类似的东西。如果不需要,我不一定要向文件添加数十个重定向或 tee。我仍然想获得 std 输出 - 我也想记录它。:wq
我儿子去年圣诞节收到了一台新笔记本电脑,主要用于他的新学校......现在他有了自己的笔记本电脑,他很想安装 Steam。
但是妻子要我删除 Steam,因为笔记本电脑主要是供学校使用的……如果我不需要,我宁愿不这样做。
有没有办法限制或以其他方式限制对 Steam 的访问?也许是 Steam 本身的密码,或者设置它可以运行的时间?
理想情况下,它必须是使用起来非常简单的东西,因为我的工作经常让我远离家(和电脑、电信和......)很长一段时间,而我的妻子在电脑周围不像我那么舒服,更容易使用要好得多。
肯定有什么东西可以完成这项任务吗?
我有一个 bash 文件:
#!/bin/bash
# yesnobox.sh - An inputbox demon shell script
OUTPUT="/tmp/input.txt"
# create empty file
>$OUTPUT
# cleanup - add a trap that will remove $OUTPUT
# if any of the signals - SIGHUP SIGINT SIGTERM it received.
trap "rm $OUTPUT; exit" SIGHUP SIGINT SIGTERM
# show an inputbox
dialog --title "Inputbox" \
--backtitle "Search vacancies" \
--inputbox "Enter your query " 8 60 2>$OUTPUT
# get respose
respose=$?
# get data stored in $OUPUT using input redirection …Run Code Online (Sandbox Code Playgroud) 如何在启动时以 sudo 身份运行脚本?
我需要运行ethtool --offload <net> rx off以禁用烦人的 jme udp 校验和错误消息。
我想用 Python 编写一个 Nautilus 脚本。那可能吗?如果可能,我该怎么做?
我一直忘记每种压缩格式的所有相应提取命令。
所以我正在考虑编写一个脚本,只将文件扩展名映射到适当的提取命令。但我想这样的东西已经存在,我只是找不到它。
我对 file-roller 之类的东西很满意,但 file-roller 是一个 GUI 工具。
我的目标是能够静音 Spotify 应用程序,而不是整个系统。使用命令:ps -C spotify -o pid=我能够找到 Spotify 的进程 ID,在这种情况下,ID 是"22981". 使用该进程 ID,我想从此列表中搜索:pacmd list-sink-inputs. 该命令返回如下列表:
eric@eric-desktop:~$ pacmd list-sink-inputs
Welcome to PulseAudio! Use "help" for usage information.
>>> 1 sink input(s) available.
index: 0
driver: <protocol-native.c>
flags: START_CORKED
state: RUNNING
sink: 1 <alsa_output.pci-0000_00_1b.0.analog-stereo>
volume: 0: 100% 1: 100%
0: -0.00 dB 1: -0.00 dB
balance 0.00
muted: no
current latency: 1019.80 ms
requested latency: 371.52 ms
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stereo …Run Code Online (Sandbox Code Playgroud) 这是我现在使用的脚本代码:
getent group $MYGROUP
if [ $? -ne 0 ] ; then
sudo su -c "groupadd $MYGROUP"
fi
sudo su -c "useradd mynewuser -p mypassword -m -g $PRIMARYGRP -G $MYGROUP"
Run Code Online (Sandbox Code Playgroud)
这种方法在 openSuse 上运行良好。但是它在Ubuntu 上创建的用户帐户存在几个问题,所以我在这里寻求帮助。
echo $PS1返回任何内容)相反,如果我使用adduser(而不是 useradd)手动创建用户,我在 Ubuntu 上没有这些问题。但我不能adduser在 openSuse (afaik) 上使用。因此,我需要一个非 Debian 独有的脚本或通过我的 bash 脚本添加用户帐户的方法,该脚本可在 Ubuntu 上运行(并且不会停止在其他发行版上运行)。
最后,我想理解的差异之间adduser和useradd。例如,我想知道使用哪个骨架目录,adduser因为这可能useradd是没有按预期工作的原因(因为我刚刚接受了默认值)。
谢谢
example.txt 在下面
Restaurant: McDonalds
City: Miami
State: Florida
Address: 123 Biscayne Blvd
Phone: 911
Restaurant: 5 guys
City: Atlanta
State: Georgia
Address: 123 Peachtree Rd
Phone: 911
Restaurant: KFC
City: NYC
State: NY
Address: 123 Madison Square
Phone: 911
Run Code Online (Sandbox Code Playgroud)
我使用 bash 脚本,假设我想从上面的文件中按名称搜索餐厅。询问用户输入餐厅名称,它应该打印有关该餐厅的信息(5 行)。
awk '/McDonalds/> /KFC/' example.txt
Run Code Online (Sandbox Code Playgroud)
我知道上面的代码行将打印与模式“麦当劳”和“肯德基”匹配的整行,但这只会打印文本文件中的第一行,而不是有关该餐厅的其余信息。我如何告诉它仅从用户输入的餐厅名称中打印所有信息(5 行)?
scripts ×10
command-line ×6
bash ×4
permissions ×2
18.04 ×1
adduser ×1
archive ×1
awk ×1
compression ×1
curl ×1
file-roller ×1
games ×1
nautilus ×1
programming ×1
pulseaudio ×1
python ×1
steam ×1
users ×1