当我使用 Bash 从我的 Snow Leopard OSX 系统的命令行检查较少文件的权限时,我看到-rw-r--r--@
某些文件和其他文件,我只看到-rw-r--r--@ 在这里是什么意思?
所以,我看过历史和Ctrl+ R,但它们并不是我认为我所知道的。有没有办法可以在命令的开头输入,然后使用一些 bash 快捷方式循环浏览历史记录中的匹配项?
# mysq(some shortcut key)
Run Code Online (Sandbox Code Playgroud)
给我:
# mysqldump --add-drop-table -e -q -n -C -u
(some shortcut key)
# mysql -u ben.dauphinee -p
Run Code Online (Sandbox Code Playgroud) 假设我正在运行一个软件,然后我运行包管理器来升级软件,我注意到 Linux 没有关闭包升级的运行过程 - 它仍然运行良好。Linux 如何做到这一点?
我有一台安装了Debian 8 (Jessie)的HP15 r007TX笔记本电脑。
每当我合上盖子然后重新打开时,笔记本电脑就会停止工作。它卡住了显示一个空白屏幕。从那里什么也没有发生,我必须重新启动它。
我什至将设置更改为在关闭笔记本电脑盖时不执行任何操作,但问题仍然存在。
一般来说,正则表达式中的哪些字符需要转义?
例如,以下在语法上不正确:
echo '[]' | grep '[]'
grep: Unmatched [ or [^
Run Code Online (Sandbox Code Playgroud)
然而,这在语法上是正确的:
echo '[]' | grep '\[]'
[]
Run Code Online (Sandbox Code Playgroud)
是否有任何文档说明哪些字符应该在正则表达式中转义,哪些不应该?
我正在使用一个没有top安装程序的最小 Debian 系统。我试图用 安装 top sudo apt-get install top,但是top不是包名。
这似乎top是其他一些包的一部分。我怎样才能找出我应该安装哪个包来获取它?更一般地说,我如何找到包含程序的包?
我正在编写一个bash脚本,需要向用户询问他的密码并将其传递给openssl. 虽然openssl可以读取密码本身,但我需要两次运行该程序并且不想询问用户两次。这是脚本:
cp file{,.old}
read -sp 'Enter password. ' PASS; echo
export PASS
# decode | edit | encode
openssl enc -d -aes-256-cbc -k "$PASS" -in file.old | \
sed ... | openssl enc -e -aes-256-cbc -k "$PASS" -out file
unset PASS
Run Code Online (Sandbox Code Playgroud)
这并不安全,因为通过查看命令行很容易获得密码;ps例如,有人可以使用 阅读它。
openssl可以从环境变量读取密码,这样我就可以代替-k "$PASS"用-pass env:PASS,但它仍然不是安全的; 任何进程的环境变量都可以自由读取(再次,ps可以做到)。
那么,如何安全地将密码传递给两个openssl实例呢?
我正在尝试使用 for 循环向项目目录中的所有头文件和源文件添加许可证头。这不起作用,是否还有其他方法使用sed?
bash ×3
debian ×2
shell ×2
application ×1
apt ×1
autocomplete ×1
command-line ×1
files ×1
inode ×1
laptop ×1
linux ×1
ls ×1
openssl ×1
osx ×1
password ×1
permissions ×1
shell-script ×1
typeset ×1