(最初发布在 Stack Overflow 上。他们建议我改为在这里尝试。这是原始帖子:https : //stackoverflow.com/questions/3858208/sudo-is-there-a-command-to-check-if-i-have -sudo-and-or-how- much-time-is-left )
见标题。我想要一个让我查询 sudo 的命令。理想情况下,如果我仍然有 sudo 和 false 如果 sudo 已过期,它将返回成功。获得剩余时间也可能有用(尽管如果我担心我可以执行 sudo -v 重新验证。)哦,它不应该要求输入密码。
我发现的最接近的东西是“sudo -n true”,但 -n 选项仅存在于我的 Centos 5 机器上。-n 如果必须要求输入密码,则失败。有没有其他方法可以获得这个功能?假设我实际上在我使用的所有机器上都没有 root,所以我无法根据自己的喜好安装新版本的 sudo。
我这样做是值得的,这样我就可以得到指示 sudo 状态的提示。我喜欢知道哪些终端可以主动使用 sudo。我也有一个提示,当我是 root 时会改变颜色,但我不经常使用 root,所以使用有限。
我收到错误:
bash:意外标记附近的语法错误`;'
由于以下命令:
evince foo.pdf bar.pdf &; emacs foo.tex &
Run Code Online (Sandbox Code Playgroud)
我;在&用于后台作业时将命令分开是否违法?或者还有其他原因这不起作用?
谢谢你。
是否有一个等效的击键用于退出 Windows 上的命令提示符(通过开始->运行:cmd 启动)到 bash 备用Ctrl-d以防止需要键入exit以离开外壳?
这个问题我已经很久了。运行终端 .profile 后,.bashrc 文件不起作用(未执行)。你能指出我应该在哪里寻找问题的根源吗?
我想递归地将软链接转换为目录中的硬链接。我试过这样的事情:
for f in *; do (mv $f{,~} && ln $(readlink $f~) && rm $f~) done
Run Code Online (Sandbox Code Playgroud)
……但它有两个主要问题:
以某种方式将上述行提供给 会很好find -type l,但我不知道该怎么做。
我在使用 cygwin 时遇到了一些问题。我正在尝试使用 dos2unix 实用程序,而 cygwin 正在抛出-bash: dos2unix: command not found当我回到安装程序并查看软件包时,我什至找不到 dos2unix,但是当我查看 cygwin 的软件包列表时,它显然在那里。
任何帮助将非常感激!
假设我运行命令 SayStuff
$ SayStuff
Run Code Online (Sandbox Code Playgroud)
输出是
Watermelons and cucumbers
Run Code Online (Sandbox Code Playgroud)
现在。假设我想cucumbers从输出中提取子字符串并将其通过管道传输到某些内容中。
我以编程方式处理这个问题的方法是通过分隔符Space将输出拆分为一个数组,并通过ArrayName[2]. 我对 shell 脚本相当陌生,并且只成功地挖掘了半神秘的cut例子,没有一个是有意义的。
有任何想法吗?
我有很多文件需要压缩到一个目录中。我不想压缩目录中的所有文件,而只想压缩与某个查询匹配的文件。
我做了
grep abc file-* > out.txt
Run Code Online (Sandbox Code Playgroud)
在每个文件中创建一个包含所有“abc”实例的文件。我需要文件本身。我如何告诉 bash 只压缩这些文件?
意图:
rm -rf string*
Run Code Online (Sandbox Code Playgroud)
问题:
rm -rf string *
Run Code Online (Sandbox Code Playgroud)
第一种情况是 rm 的合法和常见用法,在第二种情况下,一个小的错字可能会导致很多问题。是否有一种简单的方法可以巧妙地防止意外的尾随或前导通配符?
我通常最终使用CTRL+ rfor (reverse-i-search),但是,有时我会传递我正在寻找的命令;如果我再做一次(reverse-i-search),它就再也找不到了。我假设当前指向命令历史记录的指针在我要查找的命令之前。
有谁知道如何返回历史记录中的最新命令而不必单击 1000 次down arrow?