这个问题不是关于cp
命令。
我在 Ubuntu 服务器上没有安装鼠标也没有安装 GUI,但我想将一些命令保存在文件中,以便以后可以重复使用它们。
我唯一的选择是将它们重新输入到文件中(使用 Vi/Nano/其他什么),还是有办法复制它们?
答案1
当然还有 bash 的历史机制。如果启用,bash 将保存一个文件 ~/.bash_history
,其中包含您输入的所有命令行,最多包含最大条目数。
还有fc
不查看文件即可浏览历史记录的命令,例如fc -l 1 | fgrep echo
列出包含echo
任何位置的所有历史记录行。
所有这些当然都可以配置:
HISTFILE
设置历史文件的名称,而不是~/bash_history
HISTSIZE
设置历史记录中保留的最大条目数(默认为 500)。HISTCONTROL
允许对历史记录中保留的内容和不保留的内容进行一些微调。通过设置重复条目仅保留一次,您可以通过在前面添加空格(例如,而不是)HISTCONTROL=ignoreboth
来防止单个命令行出现在历史记录中。ls
ls
我喜欢HISTSIZE
在不减慢机器速度的情况下尽可能地保持较大的文件大小,通常在 50000 左右才会变得明显。这样,如果我不记得某个困难的管道或类似的东西,并且再次需要它,我可以回溯几个月。
(我自己不使用 bash,只使用 zsh,但从我从手册页机制是相似的。如果我的细节有误,请纠正我。)
答案2
找到了!
假设您有一些大命令,在命令前添加 echo,并将 stdout 重定向到文件。
命令示例
someapp -wich have a lot of arguments and -is boring -to type
类型
echo someapp -wich have a lot of arguments and -is boring -to type > file.sh
它将创建包含命令的 file.sh
答案3
你想要的,应该/可以用命令完成别名。
您可以为每个复杂命令创建单独的文件,但这只是目的alias
。
你做
alias sa='someapp -wich have a lot of arguments and -is boring -to type'
当您在提示符下键入sa
+时,它将使用参数运行您的程序。enter
为了在重新启动后继续运行,bash
您需要将它们添加到~/.bashrc
(或~/.kshrc
您使用的任何 shell)。
我的看起来像这样:
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
因此您可以alias
在那里添加您的行。