小编Dan*_*Lin的帖子

如何继续已退出的Docker容器

考虑:

docker run -it centos /bin/bash
Run Code Online (Sandbox Code Playgroud)

我按了Ctrl+ D退出它.

我想继续运行这个容器,但我发现我不能.

唯一的方法是

docker commit `docker ps -q -l` my_image
docker run -it my_image /bin/bash
Run Code Online (Sandbox Code Playgroud)

我对吗?有更好的方法吗?(我使用的是docker 0.8.0.)

docker

232
推荐指数
8
解决办法
17万
查看次数

如何grep包含一些二进制数据的文本文件?

grep返回

Binary file test.log matches

例如

echo    "line1 re \x00\r\nline2\r\nline3 re\r\n" > test.log  # in zsh
echo -e "line1 re \x00\r\nline2\r\nline3 re\r\n" > test.log  # in bash
grep re test.log
Run Code Online (Sandbox Code Playgroud)

我希望结果显示line1和line3(总共两行).

是否可以使用tr将不可打印的数据转换为可读数据,让grep再次工作?

shell

116
推荐指数
7
解决办法
11万
查看次数

创建多个标记泊坞窗图像

docker pull ubuntu 将获得多个标签图像.

是否可以通过一个像ubuntu这样的Dockerfile创建多个标签?

ubuntu                  13.10               9f676bd305a4        2 weeks ago         182.1 MB
ubuntu                  saucy               9f676bd305a4        2 weeks ago         182.1 MB
ubuntu                  raring              eb601b8965b8        2 weeks ago         170.2 MB
ubuntu                  13.04               eb601b8965b8        2 weeks ago         170.2 MB
ubuntu                  12.10               5ac751e8d623        2 weeks ago         161.4 MB
ubuntu                  quantal             5ac751e8d623        2 weeks ago         161.4 MB
ubuntu                  10.04               9cc9ea5ea540        2 weeks ago         183 MB
ubuntu                  lucid               9cc9ea5ea540        2 weeks ago         183 MB
ubuntu                  12.04               9cd978db300e        2 weeks ago         204.7 …
Run Code Online (Sandbox Code Playgroud)

docker

111
推荐指数
2
解决办法
7万
查看次数

设置errexit选项时检测shell退出代码的正确方法

我更喜欢编写可靠的shell代码,因此总是设置errexit和nounset.

以下代码将在bad_command行停止

#!/bin/bash
set -o errexit ; set -o nounset
bad_command # stop here
good_command
Run Code Online (Sandbox Code Playgroud)

我想抓住它,这是我的方法

#!/bin/bash
set -o errexit ; set -o nounset
rc=1
bad_command && rc=0 # stop here
[ $rc -ne 0 ] && do_err_handle
good_command
Run Code Online (Sandbox Code Playgroud)

有没有更好或更清洁的方法

我的答案:

#!/bin/bash
set -o errexit ; set -o nounset
if ! bad_command ; then
  # error handle here
fi
good_command
Run Code Online (Sandbox Code Playgroud)

shell

42
推荐指数
5
解决办法
2万
查看次数

如何在linux中列出附加到共享内存段的进程?

如何确定哪个进程附加到共享内存段?

awagner@tree:/home/awagner$ ipcs -m

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x00000000 0          root       777        102400     1                       
0x00000000 32769      root       774        96         1          dest         
0x00000000 98306      awagner    600        393216     2          dest         
0x00000000 131075     awagner    600        393216     2          dest    
Run Code Online (Sandbox Code Playgroud)

即如何确定哪个两个进程附加到shmid 98306?

linux memory shared memory-management

40
推荐指数
3
解决办法
12万
查看次数

在wireshark中设置数据包长度的过滤器

我捕获了一个pcap文件并将其显示在wireshark上.我想分析那些'Length'列等于443的udp数据包.

在wireshark上,我试图找到适当的过滤器.

udp && length 443 # invalid usage
udp && eth.len == 443 # wrong result
udp && ip.len == 443 # wrong result
Run Code Online (Sandbox Code Playgroud)

顺便说一句,wireshark的过滤器可以直接应用于libpcap的过滤器吗?

pcap wireshark libpcap

30
推荐指数
1
解决办法
4万
查看次数

在Go中将字符串转换为固定大小的字节数组

初始字节数组有方便的方法吗?

package main
import "fmt"
type T1 struct {
  f1 [5]byte  // I use fixed size here for file format or network packet format.
  f2 int32
}
func main() {
  t := T1{"abcde", 3}
  // t:= T1{[5]byte{'a','b','c','d','e'}, 3} // work, but ugly
  fmt.Println(t)
}
Run Code Online (Sandbox Code Playgroud)

prog.go:8:不能在字段值中使用"abcde"(类型字符串)作为类型[5] uint8

如果我改变行 t := T1{[5]byte("abcde"), 3}

prog.go:8:无法将"abcde"(类型字符串)转换为类型[5] uint8

go

23
推荐指数
2
解决办法
2万
查看次数

在.vimrc中换行长行

我已经设置了一个colorcolumn=80,但我发现我无法在〜/ .vimrc中包含长行.

有没有像C这样的\连接方法?

例如,我试过这个,但它不起作用.

autocmd FileType python setlocal ai si et sta sw=4 \
textwidth=80 backspace=indent,eol,start fo=croql
Run Code Online (Sandbox Code Playgroud)

vim

19
推荐指数
1
解决办法
6228
查看次数

如何智能在名词集中在shell中附加LD_LIBRARY_PATH

在以下shell中,如果未设置LD_LIBRARY_PATH,则错误显示LD_LIBRARY_PATH:未绑定变量.

我可以使用像$ {xxx:-yyy}这样的类似用法来简化它.

#!/bin/bash
set -o nounset
export LD_LIBRARY_PATH=/mypath:$LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)

bash shell

19
推荐指数
1
解决办法
2万
查看次数

在bash中检查isatty

我希望我的shell检测人类的行为,然后显示提示.

因此,假设文件名是test.bash

#!/bin/bash
if [ "x" != "${PS1:-x}" ] ;then
 read -p "remove test.log Yes/No" x
 [ "$x" = "n" ] && exit 1
fi
rm -f test.log
Run Code Online (Sandbox Code Playgroud)

但是,如果我没有设置PS1,我发现它无法工作.有更好的方法吗?

我的测试方法:

./test.bash                  # human interactive
./test.bash > /tmp/test.log  # stdout in batch mode
ls | ./test.bash             # stdin in batch mode
Run Code Online (Sandbox Code Playgroud)

bash shell

16
推荐指数
3
解决办法
7019
查看次数

标签 统计

shell ×4

bash ×2

docker ×2

go ×1

libpcap ×1

linux ×1

memory ×1

memory-management ×1

pcap ×1

shared ×1

vim ×1

wireshark ×1