我们都知道!!可以重复您在 bash 中执行的最后一个命令。
但有时我们需要做一些操作,比如
$ python test.py
$ vim test.py
$ python test.py # here is where I need to repeat the second proximate bash command
Run Code Online (Sandbox Code Playgroud)
我可以使用向上箭头键来做到这一点,但这需要我将右手移到一个不舒服的位置。所以我想知道是否有一个命令!!可以工作?
我想构建一个错误处理程序,它将创建一个标有 error_occur 时间的空文件。
核心思想是使用date命令的结果作为参数。
我做了:
time_stamp=$(date)
touch $time_stamp
Run Code Online (Sandbox Code Playgroud)
但事实证明,这会创建一系列空文件,例如2014, Wed, 11:15:20。
如何在此处将时间戳转换为整个字符串?
我有一个多行的文件。
其中第二列是user_id,但最后七个数字是随机数。
需要修剪它才能获得真实的ID。
所以我需要的是获取1st character to the -7 character每行的第二列。
我搜索substr过awk的功能,好像不能直接处理这个工作。
那么,如何在 awk 中从第 1 个字符剪切到 -7 个字符?
这里彻底的意思是“列出所有不同的文件,找出那些同名不同内容的文件,列出不同的内容”。
在我得到一个懒惰的解决方案之前,git init一个目录并将另一个目录复制到其中。然后使用git diff查看差异。
但我想知道还有另一种更聪明的方法来做到这一点吗?于是我提出了这个问题。
我的同事正在生成带有前面日期格式的日志文件,例如2015120,代表一月1而不是01.
我用来处理此类问题的常用方法是使用datecommand.Like date +'%Y%m%d'。但是我使用了日期命令,结果他们没有提到在没有前面的 0 的情况下代表一月。
所以我想知道是否有另一种方式来表示2015120Linux 中的日期 ?
我知道这个命令
awk '{for(x=1;$x;++x)print $x}'
Run Code Online (Sandbox Code Playgroud)
将打印出一行中的所有列。
这不会++x 更改x为 2,从而$2先打印吗?正如我所理解的:https : //stackoverflow.com/questions/1812990/incrementing-in-c-when-to-use-x-or-x
和$xin 做for(x=1;$x;++x)什么?
我知道我可以unzip -l file.zip用来查看 zip 文件的文件列表。
但是在另一个 zip 文件中有一个 zip 文件。我试过了unzip -l file.zip/sub_file.zip,但失败了。
是否可以在sub_file.zip 不提取的情况下查看文件列表?
最近我在我的 .bashrc 中做了一些事情,这样我就可以在不打开浏览器的情况下用我的 bash 轻松地在线查询生词。
我选择w3m作为我的代理实用程序,问题是,它的默认颜色主题在我们的黑色背景终端下似乎不可读。我可以使用它的-M选项使其更具可读性。
但我仍然想知道,有没有办法改变它的颜色集,可能在一些配置文件中我可以改变一些参数来做到这一点?
PS:我在 OSX 上使用 iterm2。
我这个词查询的别名是:
function dee {w3m"http://www.oxfordlearnersdictionaries.com/definition/american_english/$1"; }
export -f dee
Run Code Online (Sandbox Code Playgroud)
因此,您可以dee stack在将上述内容放入 bashrc 后使用 来搜索堆栈的定义。
我spell今天开始使用vim的检查功能。但似乎将汉字视为错误的拼写单词。
因此我做了一些研究,发现我应该使用set spelllang=X选项。
但问题是,我不知道Chinese这里的 vim 缩写是什么。我试过zh和cn,都失败了。
我在谷歌上搜索了一些,也没有结果。
有人知道此spelllang选项中所有语言的缩写参考列表位于哪个文件、网页或帮助命令中吗?
记录 crontab 错误的常用方法如下所示:
1 */8 * * * sh /pseudo_path/test.sh 2>> my_err_log
Run Code Online (Sandbox Code Playgroud)
这是一个简洁的命令,但它不能记录错误发生的时间,并且省略了脚本文件的路径。
于是我写了一个错误记录函数:
PROGNAME=$(readlink -f "$0")
SCRIPT_ERR_LOG_PATH="/pseudo_path/script_err_log"
error_exit()
{
timestamp="$(date +%Y%m%d-%H:%M:%S)"
x_info=$(echo "Error_${PROGNAME}:Line_${1:-"null"}_")
zeta=$x_info$timestamp
echo "$zeta" >> $SCRIPT_ERR_LOG_PATH
exit 1
}
Run Code Online (Sandbox Code Playgroud)
该函数可以记录错误发生的时间以及脚本的绝对路径。但缺点是我必须|| error_exit $LINENO在脚本的每一行添加它才能使其工作。使用 Vim 的批量替换可能会容易得多,但它看起来仍然是一个笨拙的解决方案。
那么,有没有更聪明或更有效的方法来完成同样的任务?