压缩格式:gz、bz2、xz、zip、Z
压缩,压缩后文件以.gz结尾,压缩后会删除原文件
[root@zzd ~]# gzip 1.txt //将1.txt压缩,以.gz结尾
-d 解压缩,解压完成后删除原文件
[root@zzd ~]# gzip -d 1.txt.gz //将1.txt.gz解压
-# #用1-9代替,指定压缩比,默认为6
解压缩,解压缩完成后会删除原文件
[root@zzd ~]# gunzip 1.txt.gz //将1.txt.gz解压
不解压的情况下查看文件的内容
[root@zzd ~]# zcat 1.txt.gz //不解压,查看压缩文件里的内容
1 2 4
2 4 6
5 6 8
3 5 9
2 8 5
5 6 8
1 3 7
1 2 4
2 8 5
1 2 4
3 5 9
2 4 6
压缩,压缩后文件以.bz2结尾,压缩后删除原文件。bzip2是一款比gzip有着更大压缩比的压缩工具,使用格式相近
[root@zzd ~]# bzip2 1.txt //将1.txt压缩,以.bz2结尾
-d 解压缩,解压完成后删除原文件
[root@zzd ~]# bzip2 -d 1.txt.bz2 //将1.txt.bz2文件解压
-k 压缩时保留原文件
[root@zzd ~]# ls
1.txt
[root@zzd ~]# bzip2 -k 1.txt //压缩完后保留原文件
[root@zzd ~]# ls
1.txt 1.txt.bz2
-# #用1-9代替,指定压缩比,默认为6
解压缩,解压缩完成后删除原文件
[root@zzd ~]# bunzip2 1.txt.bz2 //将1.txt。bz2文件解压
不解压的情况下查看文件的内容
[root@zzd ~]# bzcat 1.txt.bz2 //不解压,查看文件内容
1 2 4
2 4 6
5 6 8
3 5 9
2 8 5
5 6 8
1 3 7
1 2 4
2 8 5
1 2 4
3 5 9
2 4 6
压缩,压缩后文件以.xz结尾,压缩完成后删除原文件。比bzip2有着更大压缩比的压缩工具,使用格式近似
[root@zzd ~]# xz 1.txt //将文件1.txt压缩,以.xz结尾
-d 解压缩,解压缩后删除原文件
[root@zzd ~]# xz -d 1.txt.xz //将文件1.txt.xz解压
-k 压缩时保留原文件
[root@zzd ~]# xz -k 1.txt //压缩时保留原文件
-# #用1-9代替,指定压缩比,默认为6
解压,解压完成后删除原文件
[root@zzd ~]# unxz 1.txt.xz //解压1.txt。xz
不解压的情况下查看文件内容
[root@zzd ~]# xzcat 1.txt.xz //不解压,查看文件内容
1 2 4
2 4 6
5 6 8
3 5 9
2 8 5
5 6 8
1 3 7
1 2 4
2 8 5
1 2 4
3 5 9
2 4 6
既归档又压缩的工具,zip可以压缩目录,压缩完成后保留原文件
[root@zzd ~]# zip test.zip 1.txt //将1.txt进行归档并压缩为test.zip
[root@zzd ~]# zip Test-dir.zip test/* //将目录test/归档并压缩为Test-dir.zip
解压缩,解压完成后不删除原文件
[root@zzd ~]# unzip Test-dir.zip //将Test-dir.zip解压
归档工具,只归档不压缩
Linux的文件没有后缀
-c 创建归档文件
-f 操作的归档文件,此选项后面只能跟想要操作文件名
[root@zzd ~]# tar -cf test.tar test/* //将test目录归档为test.tar
-x 还原归档
[root@zzd ~]# tar xf test.tar //将test.tar还原归档
-v 显示归档过程
[root@zzd ~]# tar -vcf test.tar test/* //将test目录归档为test.tar并显示归档过程
test/test1/
test/test2/
-p 归档时保留权限信息,只有管理员才能使用此选项
-C 将展开归档的文件保存至指定目录下
[root@zzd ~]# tar -xf test.tar -C /opt/ //将test。tar还原归档到指定目录
[root@zzd ~]# ls /opt/
test
-tf 不展开归档,查看文件归档了那些文件
[root@zzd ~]# tar -tf test.tar //不展开归档,查看归档文件test.tar的内容
test/
test/test1/
test/test2/
-zcf 归档并调用gzip压缩工具
-jcf 归档并调用bzip2压缩工具
-Jcf 归档并调用xz压缩工具
[root@zzd ~]# tar -zcf test.tar.gz test/ //归档并调用gzip压缩工具
[root@zzd ~]# file test.tar.gz //查看test.tar.gz的文件类型
test.tar.gz: gzip compressed data, last modified: Sat Jul 2 09:51:50 2022, from Unix, original size 10240
[root@zzd ~]# tar -jcf test.tar.bz2 test/ //归档并调用baip2压缩工具
[root@zzd ~]# file test.tar.bz2 //查看test.tar.bz2的文件类型
test.tar.bz2: bzip2 compressed data, block size = 900k
[root@zzd ~]# tar -Jcf test.tar.xz test/ //归档并调用xz压缩工具
[root@zzd ~]# file test.tar.xz //查看test.tar.xz的文件类型
test.tar.xz: XZ compressed data
拼接文件内容并输出至标准输出(屏幕)
-n 显示行号
[root@zzd ~]# cat 001 //将001文件的内容标准输出
ashfasdf
[root@zzd ~]# cat 001 002 003 //将001、002、003的内容凭借并标准输出
ashfasdf
sdlvnnxcbxbf
nstelazbf
[root@zzd ~]# cat -n 001 002 003 //显示行号
1 ashfasdf
2 sdlvnnxcbxbf
3 nstelazbf
//使用cat查看文件内容时会将文件的所有内容全部加载到内存,所以应当避免使用cat查看打开巨大文件
全屏查看文件内容,只能从前往后看,不能从后往前看,文件内容显示完后退出
[root@zzd ~]# more anaconda-ks.cfg
全屏显示文件内容,可从前往后亦可从后往前(“空格”向后翻,“b”向前翻,“q”退出),推荐使用
[root@zzd ~]# less anaconda-ks.cfg
从头部开始打印文件内容,默认打印10行
-n 指定要打印的行数,可以是-n 5也可以是-5
[root@zzd ~]# head -5 passwd //打印passwd头部开始的5行
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
从尾部开始打印文件内容,默认打印10行
-n 指定要打印的行数,可以是-n 5也可以是-5
[root@zzd ~]# tail -5 passwd //打印passwd尾部开始的5行
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
unbound:x:997:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
sssd:x:996:993:User for sssd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
rngd:x:995:992:Random Number Generator Daemon:/var/lib/rngd:/sbin/nologin
//如果想要打印passwd文件里的第五行该怎么办?
[root@zzd ~]# head -5 passwd | tail -1
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
截取文件内容
-d 指定字段分隔符
-f 指定要显示的字段
-f 1,3 显示1和3
-f 1-3 显示1到3
[root@zzd ~]# cat qwer //标准输出qwer文件内容
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@zzd ~]# cut -d : -f 1,3 qwer //以":"为分隔符,截取文件qwer的第1列和第3列
root:0
bin:1
daemon:2
adm:3
lp:4
[root@zzd ~]# cut -d : -f 1-3 qwer //以":"为分隔符,截取文件qwer的第1列到第3列
root:x:0
bin:x:1
daemon:x:2
adm:x:3
lp:x:4
//cut只能截取一些非常规范的文件内容,如果是一个内容不规范的文件,那么cut就无能为力了。例如,以空格为分隔符,想要截取磁盘使用情况的第四列就会出现以下情况
[root@zzd ~]# df -h | cut -d ' ' -f 4
17G
//这种情况就需要用到awk命令,在3.3会提及
基于行的过滤和转换文本的流编辑器
#sed的功能很强大,可以实现对某个文件的删、改、查
一.查
[root@zzd ~]# sed -n '2p' qwer //-n可以关闭sed默认的打印功能,2p表示打印第二行
bin:x:1:1:bin:/bin:/sbin/nologin
[root@zzd ~]# sed '2p' qwer //不加上选项-n,在默认打印的基础上打印第二行,第二行会出现两次
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@zzd ~]# sed -n '2p;5p' qwer //关闭sed默认的打印功能,打印第2行和第5行
bin:x:1:1:bin:/bin:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@zzd ~]# sed -n '2,4p' qwer //关闭sed默认的打印功能,打印第2行到第4行
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
二.改
[root@zzd ~]# sed 's/:/;/' qwer //将文件qwer每行的第一个":"替换为";"
root;x:0:0:root:/root:/bin/bash
bin;x:1:1:bin:/bin:/sbin/nologin
daemon;x:2:2:daemon:/sbin:/sbin/nologin
adm;x:3:4:adm:/var/adm:/sbin/nologin
lp;x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@zzd ~]# sed 's/:/;/3' qwer //将每行的第3个":"替换为";"
root:x:0;0:root:/root:/bin/bash
bin:x:1;1:bin:/bin:/sbin/nologin
daemon:x:2;2:daemon:/sbin:/sbin/nologin
adm:x:3;4:adm:/var/adm:/sbin/nologin
lp:x:4;7:lp:/var/spool/lpd:/sbin/nologin
[root@zzd ~]# sed 's/:/;/g' qwer //将整个文件里所有的":"都替换为";"
root;x;0;0;root;/root;/bin/bash
bin;x;1;1;bin;/bin;/sbin/nologin
daemon;x;2;2;daemon;/sbin;/sbin/nologin
adm;x;3;4;adm;/var/adm;/sbin/nologin
lp;x;4;7;lp;/var/spool/lpd;/sbin/nologin
[root@zzd ~]# sed -n '2p' qwer | sed 's/:/;/g' 或者 head -2 qwer | tail -1 | sed 's/:/;/g' //将文件的第二行的所有":"改为";"
bin;x;1;1;bin;/bin;/sbin/nologin
[root@zzd ~]# sed '2c aaaaa' qwer //将文件qwer的第二行替换为aaaaa
root:x:0:0:root:/root:/bin/bash
aaaaa
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@zzd ~]# sed '2,4c aaaaa' qwer //将文件qwer的第2行到第4行替换为一行aaaaa
root:x:0:0:root:/root:/bin/bash
aaaaa
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@zzd ~]# sed -e '2c aaaaa' -e '4c aaaaa' qwer //将文件qwer的第二行和第4行替换为aaaaa
root:x:0:0:root:/root:/bin/bash
aaaaa
daemon:x:2:2:daemon:/sbin:/sbin/nologin
aaaaa
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@zzd ~]# sed 's/[0-9]/ok/g' qwer //将文件qwer中出现数字0-9的地方替换为ok
root:x:ok:ok:root:/root:/bin/bash
bin:x:ok:ok:bin:/bin:/sbin/nologin
daemon:x:ok:ok:daemon:/sbin:/sbin/nologin
adm:x:ok:ok:adm:/var/adm:/sbin/nologin
lp:x:ok:ok:lp:/var/spool/lpd:/sbin/nologin
[root@zzd ~]# sed 's/[a-z|0-9]/ok/g' qwer //将文件qwer中出现数字0-9或字母a-z的地方替换为ok
okokokok:ok:ok:ok:okokokok:/okokokok:/okokok/okokokok
okokok:ok:ok:ok:okokok:/okokok:/okokokok/okokokokokokok
okokokokokok:ok:ok:ok:okokokokokok:/okokokok:/okokokok/okokokokokokok
okokok:ok:ok:ok:okokok:/okokok/okokok:/okokokok/okokokokokokok
okok:ok:ok:ok:okok:/okokok/okokokokok/okokok:/okokokok/okokokokokokok
三.删
[root@zzd ~]# sed '2d' qwer //删除第2行
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@zzd ~]# sed '2d;5d' qwer //删除第2行和第5行
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
[root@zzd ~]# sed -e '2d' -e '5d' qwer //删除第2行和第5行
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
[root@zzd ~]# sed '2,4d' qwer //删除第2行到第4行
root:x:0:0:root:/root:/bin/bash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
//以上二、三的所有的命令都是预览,并没有真正的修改,如果想要真正的修改需要加上"-i"选项
基于列的文本报告工具
[root@zzd ~]# awk -F':' '{print $1,$4}' qwer //以":"为分隔符,截取第1列和第4列
root 0
bin 1
daemon 2
adm 4
lp 7
[root@zzd ~]# awk -F':' '{print $1":"$4}' qwer
root:0
bin:1
daemon:2
adm:4
lp:7
[root@zzd ~]# awk -F':' 'NR==1{print $1,$4}' qwer //以":"为分隔符,截取第1行第1列和第4
root 0
[root@zzd ~]# awk 'NR==1{print}' qwer //截取第一行
root:x:0:0:root:/root:/bin/bash
//以空格为分隔符,截取磁盘使用情况的第四列
[root@zzd ~]# df -h | awk -F' ' '{print $4}'
Avail
451M
471M
464M
471M
16G
0
839M
95M
[root@zzd ~]# cat 1.txt
1 2 4
2 4 6
5 6 8
3 5 9
5 6 8
1 3 7
1 2 4
1 2 4
[root@zzd ~]# sort 1.txt
1 2 4
1 2 4
1 2 4
1 3 7
2 4 6
3 5 9
5 6 8
5 6 8
-n 根据数值大小进行排序
[root@zzd ~]# sort 1.txt //再添加一组数10 20 30再进行排序
10 20 30
1 2 4
1 2 4
1 2 4
1 3 7
2 4 6
3 5 9
5 6 8
5 6 8
[root@zzd ~]# sort -n 1.txt //以数值进行排序
[root@zzd ~]# sort -n 1.txt
1 2 4
1 2 4
1 2 4
1 3 7
2 4 6
3 5 9
5 6 8
5 6 8
10 20 30
-r 逆序排序
[root@zzd ~]# sort -r 1.txt //逆序排序
5 6 8
5 6 8
3 5 9
2 4 6
1 3 7
1 2 4
1 2 4
1 2 4
10 20 30
-t 指定字段分隔符
-k 以哪个字段为关键字进行排序
[root@zzd ~]# sort -t ' ' -k 3 1.txt //以空格为分隔符并且以第3列为关键字进行排序
10 20 30
1 2 4
1 2 4
1 2 4
2 4 6
1 3 7
5 6 8
5 6 8
3 5 9
-u 去重,排序后相同的行只显示一次
[root@zzd ~]# sort -nu 1.txt //以数值进行排序并只显示一次重复的行
1 2 4
2 4 6
3 5 9
5 6 8
10 20 30
-f 排序时忽略字符大小写
[root@zzd ~]# cat ABC
qwe
Csd
aff
afgg
aff
Afgg
asx
[root@zzd ~]# sort ABC //排序
aff
aff
afgg
Afgg
asx
Csd
qwe
[root@zzd ~]# sort -uf ABC //进行排序,重复行只显示一次并且忽略大小写
aff
afgg
asx
Csd
qwe
报告重复行(连续且完全相同方为重复)
-c 显示文件中行的重复次数
-d 只显示重复的行
-u 只显示未重复的行
[root@zzd ~]# sort -n 1.txt | uniq -c //显示文件中行的重复次数
3 1 2 4
1 1 3 7
1 2 4 6
1 3 5 9
2 5 6 8
1 10 20 30
[root@zzd ~]# sort -n 1.txt | uniq -d //显示文件中重复的行
1 2 4
5 6 8
[root@zzd ~]# sort -n 1.txt | uniq -cd //显示文件中重复的行,并显示重复次数
3 1 2 4
2 5 6 8
[root@zzd ~]# sort -n 1.txt | uniq -u //显示文件中未重复的行
1 3 7
2 4 6
3 5 9
10 20 30
-c 显示字节数
-l 显示行数
-w 显示单词数
[root@zzd ~]# wc 1.txt //统计文件的行数,单词数,字节数
9 27 57 1.txt
[root@zzd ~]# wc -l 1.txt //统计文件的行数
9 1.txt
[root@zzd ~]# wc -w 1.txt //统计文件单词数
27 1.txt
[root@zzd ~]# wc -c 1.txt //统计文件字节数
57 1.txt
查看文件或目录占用磁盘空间大小
-h 以人类友好的方式显示大小
-s 显示总的占用空间大小
[root@zzd ~]# du -sh big //查看文件big占磁盘空间的大小
1.0G big
报告文件系统磁盘空间的使用情况
-h 以人类友好方式显示大小
-i 显示inode信息
[root@zzd ~]# df -h //以人类友好方式显示大小
Filesystem Size Used Avail Use% Mounted on
devtmpfs 451M 0 451M 0% /dev
tmpfs 471M 0 471M 0% /dev/shm
tmpfs 471M 6.5M 464M 2% /run
tmpfs 471M 0 471M 0% /sys/fs/cgroup
/dev/mapper/cs-root 17G 1.7G 16G 10% /
/dev/sr0 9.0G 9.0G 0 100% /mnt
/dev/sda1 1014M 176M 839M 18% /boot
tmpfs 95M 0 95M 0% /run/user/0
[root@zzd ~]# df -i //显示文件系统inode使用情况
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 115417 362 115055 1% /dev
tmpfs 120432 1 120431 1% /dev/shm
tmpfs 120432 555 119877 1% /run
tmpfs 120432 17 120415 1% /sys/fs/cgroup
/dev/mapper/cs-root 8910848 43752 8867096 1% /
/dev/sr0 0 0 0 - /mnt
/dev/sda1 524288 301 523987 1% /boot
tmpfs 120432 5 120427 1% /run/user/0
查看或临时修改主机名,重启后失效,一般用于查看主机名
[root@zzd ~]# hostname //查看主机名
zzd
[root@zzd ~]# hostname zic //临时修改主机名
[root@zzd ~]# bash
[root@zic ~]#
[root@zic ~]# cat /etc/hostname
zzd #可以看到主机名并没有写进主机名文件,系统重启时会读取此文件,所以hostname修改主机名是临时的
永久修改主机名,直接写入主机名文件,重启后仍然有效
[root@zic ~]# hostnamectl set-hostname zic //永久修改主机名
[root@zic ~]# bash
[root@zic ~]# cat /etc/hostname
zic
让系统睡眠
[root@zic ~]# sleep 100 //让系统睡眠100秒
显示命令执行时间
[root@zic ~]# time sleep 3 //让系统睡眠3秒并计算此命令执行所用时间
real 0m3.001s
user 0m0.001s
sys 0m0.000s
清屏,和Ctrl+l一个性质
[root@zic ~]# whoami //查看当前终端登录的用户
root
[root@zic ~]# who am i //查看当前终端登录的用户
root pts/0 2022-07-02 11:29 (192.168.169.1)
[root@zic ~]# who //查看有哪些用户在线
root pts/0 2022-07-02 11:29 (192.168.169.1)
root pts/1 2022-07-02 20:58 (192.168.169.1)
zic pts/2 2022-07-02 20:58 (192.168.169.1)
[root@zic ~]# w //查看当前在线的用户和正在执行的命令
21:01:46 up 9:32, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.169.1 11:29 0.00s 3.71s 0.00s w
root pts/1 192.168.169.1 20:58 3:14 0.00s 0.00s sleep 800
zic pts/2 192.168.169.1 20:58 3:17 0.00s 0.00s -bash
显示指定命令的绝对路径
[root@zic ~]# which ls //查看ls命令的绝对路径
alias ls='ls --color=auto'
/usr/bin/ls
[root@zic ~]# which cd //查看cd命令的绝对路径
/usr/bin/cd
显示或设置日期与时间
[root@zzd ~]# date // date不加任何参数用于显示当前系统的时间
Sat Jul 2 15:51:20 CST 2022
[root@zzd ~]# date "+%Y-%m-%d %H:%M:%S" // 格式化输出时间
2022-07-02 15:59:54
[root@zzd ~]# date -s "2022-07-02 16:05:00" // 带上参数-s可以修改时间
Sat Jul 2 16:05:00 CST 2022
查看指定程序有哪些依赖库文件
[root@zic ~]# ldd /usr/bin/ls //查看ls命令执行所需的依赖库
linux-vdso.so.1 (0x00007fffeef5c000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f556da36000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f556d830000)
libc.so.6 => /lib64/libc.so.6 (0x00007f556d46e000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f556d1ea000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f556cfe6000)
/lib64/ld-linux-x86-64.so.2 (0x00007f556de83000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f556cdc6000)
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,
我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions
Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功
ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear
我有一个问题。我想从另一个ruby脚本运行一个ruby脚本并捕获它的输出信息,同时让它也输出到屏幕。亚军#!/usr/bin/envrubyprint"Enteryourpassword:"password=gets.chompputs"Hereisyourpassword:#{password}"我运行的脚本文件:开始.rboutput=`runner`putsoutput.match(/Hereisyour(password:.*)/).captures[0].to_s正如您在此处看到的那样,存在问题。在start.rb的第一行,屏幕是空的。我在运行程序中看不到“输入您的密
有这样的事吗?我想在Ruby程序中使用它。 最佳答案 试试这个http://csl.sublevel3.org/jp2a/此外,Imagemagick可能还有一些东西 关于ruby-是否有将图像文件转换为ASCII艺术的命令行程序或库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6510445/
如何在Ruby的if语句中检查bash命令的返回值(true/false)。我想要这样的东西,if("/usr/bin/fswscell>/dev/null2>&1")has_afs="true"elsehas_afs="false"end它会提示以下错误含义,它总是返回true。(irb):5:warning:stringliteralincondition正确的语法是什么?更新:/usr/bin/fswscell寻找afs安装和运行状态。它会抛出这样的字符串,Thisworkstationbelongstocell如果afs没有运行,命令以状态1退出 最
在几个项目中,我希望有一个类似rakeserver的rake任务,它将通过任何需要的方式开始为该应用程序提供服务。这是一个示例:task:serverdo%x{bundleexecrackup-p1234}end这行得通,但是当我准备停止它时,按Ctrl+c并没有正常关闭;它中断了Rake任务本身,它说rakeaborted!并给出堆栈跟踪。在某些情况下,我必须执行Ctrl+c两次。我可能可以用Signal.trap写一些东西来更优雅地中断它。有没有更简单的方法? 最佳答案 trap('SIGINT'){puts"Yourmessa
关于SSHkit-Github它说:Allbackendssupporttheexecute(*args),test(*args)&capture(*args)来自SSHkit-Rubydoc,我明白execute实际上是test的别名?test之间有什么区别?,execute,capture在Capistrano/SSHKit中我应该什么时候使用? 最佳答案 执行只是执行命令。使用非0退出引发错误。测试方法的行为与execute完全相同,但是它返回bool值(true如果命令以0退出,而false否则)。它通常用于控制任务中的流程