我阅读了一堆关于为 git 安装 bash-completion 的说明,并确定了 macport 解决方案,例如,这里提到的:How to get git-completion.bash to work on Mac OS X?
但是,这不起作用,我必须调用source /opt/local/etc/bash_completion.d/git或将其放入我的 .bashrc 以激活 git bash 完成。我错过了什么吗?似乎特定完成包的采购应该更加自动化,而且我发现网上没有人在他们的说明中列出了这一点,以使 git bash-completion 在 mac os 上工作。
我知道我们可以执行“历史”命令或使用 control+R 来查找特定 shell 会话中的命令历史记录。但是有没有办法找出我上次 ssh 会话的命令历史记录?
我也很想知道(在系统中)linux 在哪里保存命令行历史记录,即使它只是用于当前的 shell 会话。
谢谢!
好的,试图解决这个问题并感到困惑。我正在使用 whois 命令并从注册服务器获取响应,即:
whois google.com
Run Code Online (Sandbox Code Playgroud)
这将返回到期:
Created on..............: 1997-09-15.
Expires on..............: 2020-09-13.
Record last updated on..: 2012-01-29.
Run Code Online (Sandbox Code Playgroud)
这很棒,但我还需要域的状态
例如,如果你去
http://www.who.is/whois/google.com
Run Code Online (Sandbox Code Playgroud)
我得到这个信息
Status: clientDeleteProhibited, clientTransferProhibited, clientUpdateProhibited, serverDeleteProhibited, serverTransferProhibited, serverUpdateProhibited
Expiration Date: 2020-09-14
Creation Date: 1997-09-15
Last Update Date: 2011-07-20
Run Code Online (Sandbox Code Playgroud)
不同之处在于这个额外的状态项,我如何使用 whois 命令获得它?
我使用以下命令来更改目录,它通常工作正常。
[max@localhost max]$ cd /
[max@localhost /]$ cd /home/max/
[max@localhost max]$ pwd
/home/max
Run Code Online (Sandbox Code Playgroud)
但是今天,我错误地输入了两个//而不是一个/,令我惊讶的是,它也有效。因此,我尝试了各种示例,并且所有示例都可以正常工作而不会出现任何错误。
[max@localhost /]$ cd /home///////////////max/////////////////////
[max@localhost max]$ pwd
/home/max
[max@localhost max]$ cd /
[max@localhost /]$ cd /////////////////home/max///////////
[max@localhost max]$ pwd
/home/max
Run Code Online (Sandbox Code Playgroud)
这些正斜杠(/和///////)是什么意思,它们的作用和代表什么?
文件和目录的默认值 666 和 777 分别存储在哪里?
umask 0002
touch dummy
ls -l
Run Code Online (Sandbox Code Playgroud)
告诉我 dummy 的权限是 700,而不是预期的 644。有什么想法吗?
我正在编写脚本以满足我自己的需要,以便在 bash 中对我的 mac 上的下载文件夹进行排序。我传递给函数参数:源目录、目标目录和要移动的文件扩展名数组。我的问题是,当函数在“查找”行中时,它只复制一个具有该扩展名的文件,但是当我删除所有变量并直接输入参数时,它可以正常工作。这是怎么回事 ?
function moveFaster(){
clear
src=$1
dst=$2
typ=$3
if [ ! -d $dst ]
then
mkdir $dst
fi
for i in "${typ[@]}"
do
find $src -name "${i}" -exec mv {} ${dst} \;
done
}
Run Code Online (Sandbox Code Playgroud) 我从 GitHub 的站点安装了命令行界面。我创建了一个新文件夹以将文件下拉到并尝试通过发出命令 git init 来初始化我的文件夹,但我没有找到命令。接下来我跑了echo $PATH,我得到:
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
Run Code Online (Sandbox Code Playgroud)
所以我通过发出命令创建了一个配置文件
$ touch .bash_profile
Run Code Online (Sandbox Code Playgroud)
然后我编辑了个人资料
$ open -e .bash_profile.
Run Code Online (Sandbox Code Playgroud)
最后我导出了一个新路径,以便可以找到 git
$ export PATH=/usr/local/git/bin
Run Code Online (Sandbox Code Playgroud)
最后,当我运行时,echo $PATH我得到了,/usr/local/git/bin但是当我尝试初始化我的目录时仍然遇到与以前相同的错误,现在像“ls”这样的基本命令不起作用。
我怎样才能解决这个问题?
例子:
3|100|test@test.com|0|0|6:1,10,11,12,13,2,3,4,5,6,9|7:1,10,11,13,16,2,4,5,6,9|
Run Code Online (Sandbox Code Playgroud)
grep 后的预期视图:
test@test.com
Run Code Online (Sandbox Code Playgroud) $ ourSite="super user"
$ echo $outSite
super user
$ echo "$outSite"
super user
Run Code Online (Sandbox Code Playgroud)
如果我们不使用双引号来引用变量,bash 会自动将相邻的空格压缩为一个。
我徘徊为什么bash要这样做?该变量只是一串字符,默认情况下将变量替换为原来的变量不是更好吗?
我想在bash要经过一个Apache2的错误日志文件和列表中的所有行(类似cat),但在某种程度上,它会计算每行多少次包含在文件和目录只有线条分明,总数量他们。
例如,如果错误日志如下所示:
Error 1: file failed
Error 2: client failed
Error 3: server failed
Error 1: file failed
Run Code Online (Sandbox Code Playgroud)
我想让这个得到回应:
[2] Error 1: file failed
[1] Error 2: client failed
[1] Error 3: server failed
Run Code Online (Sandbox Code Playgroud)