考虑:
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.)
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再次工作?
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) 我更喜欢编写可靠的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) 如何确定哪个进程附加到共享内存段?
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?
我捕获了一个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的过滤器吗?
初始字节数组有方便的方法吗?
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
我已经设置了一个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) 在以下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) 我希望我的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)