该docker
命令有一个ps
发出很长行的子命令:
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6e8ec8a16da4 waisbrot/wait:latest "/wait" 4 minutes ago Exited (0) 4 minutes ago wait-for-janus-test
9dbf0739561f whoop/downsampler:master "./run.bash" 4 minutes ago Up 4 minutes 0.0.0.0:32855->4369/tcp, 0.0.0.0:32854->9100/tcp, 0.0.0.0:32853->9101/tcp, 0.0.0.0:32852->9102/tcp, 0.0.0.0:32851->9103/tcp, 0.0.0.0:32850->9104/tcp, 0.0.0.0:32849->9105/tcp, 0.0.0.0:32848->9106/tcp, 0.0.0.0:32847->9107/tcp, 0.0.0.0:32846->9108/tcp, 0.0.0.0:32845->9109/tcp, 0.0.0.0:32844->9110/tcp metrics-downsampler-test
6cf56623bb48 whoop/janus:master "./start.bash" 4 minutes ago Up 4 minutes 0.0.0.0:32843->80/tcp janus-test
882b50303d54 whoop/recalculator:master "./run.bash" 4 minutes ago Exited (1) 4 minutes ago internum-test
可以指示仅输出特定的列:
docker ps --format "table {{.Image}}\t{{.Names}}\t{{.Ports}}\t{{.Status}}"
我希望能够说出来docker ps
并--format "table..."
为我增加论点。有没有很好的方法可以做到这一点?
我知道我可以说
alias dp='docker ps --format ...'
但我宁愿保留该子命令。
我正在使用zsh作为我的外壳。
您可以包装docker
一个检查特定子命令并传递其他所有内容的函数。(以下内容实际上不仅适用于zsh,而且适用于任何POSIX兼容的shell(zsh并不完全属于该类别)。
docker() {
case $1 in
ps)
shift
command docker ps --format 'table {{.Image}}\t{{.Names}}\t{{.Ports}}\t{{.Status}}' "$@"
;;
*)
command docker "$@";;
esac
}
如果您想要一个更通用的包装器函数(不需要了解特定的所需ps
逻辑),可以按照以下步骤进行操作(请注意,由于使用了该版本,该版本与基线POSIX sh
不 兼容local
;但是,是甚至由ash
及其衍生物实现的扩展):
docker() {
local cmd=$1; shift
if command -v "docker_$cmd" >/dev/null 2>/dev/null; then
"docker_$cmd" "$@"
else
command docker "$cmd" "$@"
fi
}
…之后,可以定义任何子命令自己的功能,而无需修改包装器以了解它们(您也可以在PATH中创建名为的脚本docker_ps
,或以您选择的任何其他方式提供命令):
docker_ps() {
command docker ps --format 'table {{.Image}}\t{{.Names}}\t{{.Ports}}\t{{.Status}}' "$@"
}
问题内容: 我知道我可以添加Maven存储库以获取〜/ .m2 / settings.xml中的依赖项。但是是否可以使用命令行添加存储库,例如: 之所以要这样做,是因为我正在使用一个持续集成工具,该工具可以完全控制它用来调用maven的命令行选项,但是为运行该集成工具的用户管理settings.xml有点麻烦。 问题答案: 您可以执行此操作,但最好像其他人所说的那样在POM中执行此操作。 在命令行
问题内容: docker-compose文件https://docs.docker.com/compose/compose-file/#/volumes- volume-driver 显示了相对于compose文件安装主机子目录的各种方法。 例如: volumes:#只需指定一个路径,然后让Engine创建一个体积-/ var / lib / mysql #指定绝对路径映射-/ opt / dat
问题内容: 是否有Linux命令将列出此终端会话的所有可用命令和别名? 就像您键入“ a”并按下制表符一样,但是对于字母的每个字母。或运行“别名”,但也返回命令。 为什么?我想运行以下命令,看看命令是否可用: 问题答案: 您可以使用内置的bash(1) 将列出您可以运行的所有命令。 将列出您可以运行的所有别名。 将列出您可以运行的所有内置插件。 将列出您可以运行的所有关键字。 将列出您可以运行的所
这与我前面的问题有关,这个问题更多地针对JAXB。但是这个问题更具体地与中的解封程序有关。我想看看是否可以使用spring-oxm解封器只解封XML中的特定元素。 我的XSD是: cwetype.java:
问题内容: 我需要在WHERE子句中使用别名,但它一直告诉我它的未知列。有什么办法可以解决这个问题?我需要选择评级高于x的记录。评分的计算方法如下: 问题答案: 您可以使用HAVING子句,该子句 可以 看到别名,例如 但是在where子句中,您需要重复您的表达式,例如 但!并非所有的表达式都被允许-使用像SUM这样的聚合函数将不起作用,在这种情况下,您将需要使用HAVING子句。 从MySQL手
问题内容: 考虑类似: 这是好习惯吗?难道这会在我们读取输入文件的同时覆盖输入文件,还是总是先在内存中读取它,然后通过管道传递给第二个命令? 显然,我可以将临时文件用作中介步骤,但我只是想知道.. 问题答案: 不,那不行。管道中的所有命令同时执行,并且外壳程序在执行命令之前准备重定向。因此,该命令很可能在cat读取文件之前将其覆盖。 您需要moreutils提供的海绵(1)。