测试常用linux命令
一、Linux命令
1.目录类命令
cd 路径 进入目录
ls 查看当前目录下的所有文件
ls -l查看文件属性
ls -ld查看指定文件的属性
ll 查看当前目录下所有文件的详细信息
pwd 显示当前目录的全路径
. 当前目录
… 上级目录
cd … 进入上级目录
2.文件类命令
(1)复制文件
cp 1.txt 2.txt 将当前目录下的1.txt复制一份,并命名为2.txt
(2)复制文件夹
cp -r /home/test1 /root/test2 将home目录下的test1文件夹,复制到root目录下,并命名为test2
(3)移动文件
mv a.txt /home/b.txt 将当前目录下的a.txt移动到home目录下,并命名为b.txt
(4)删除文件
rm -rf a.txt 删除当前目录下的a.txt
(5)创建文件夹
mkdir test 在当前目录下创建一个test文件夹
(6)创建级联目录文件夹
mkdir -p /a/b/b 在/a/b下创建c文件夹,如果父文件不存在,一并创建
(7)创建文件
touch a.txt 在当前目录下创建一个文件a.txt
3.文件编辑命令
(1)vi 编辑文件
vi ./a.txt:编辑a.txt文件
按i进入编辑模式,可以移动光标进行文本编辑操作;
按Esc退出编辑模式;
输入:q! 不保存文件退出;
输入:wq 保存文件退出;
(2)vi 的非编辑模式快捷操作
按ctrl+f:向前翻一页
按ctrl+b:向后翻一页
按ctrl+d:向前翻半页
按ctrl+u:向后翻半页
按G:移动光标到文件最后
按0:移动光标到文件最开始
按$:移动光标到行尾
按^:移动光标到行首
yy:复制光标当前行到缓冲区
p:粘贴复制的内容
dd:删除光标当前行
输入/abc回车 搜索文件中包含abc的内容
4.文件查看命令
cat a.txt:一次性读取并打印a.txt文件里的所有信息
more a.txt:读取a.txt文件,每次读取一屏,按空格键下一页,b上一页(more实际也全部读取了)
less a.txt:读取a.txt文件,每次读取一屏,按空格键下一页,b上一页
tail -100 a.txt 读取a.txt文件的后一百行
tail -f a.txt 实时读取a.txt文件
head -10 a.txt:读取a.txt文件的前10行
5.包管理工具yum
包管理工具yum,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次
安装所有依赖的软体包,无须繁琐地一次次下载、安装
yum list:列出所有的包(已安装+可安装)
yum search <包名>:查找指定包(可安装的包)
yum install -y <包名>:安装指定的包(-y:遇到询问直接确认yes)
yum remove <包名>:删除指定包
yum update <包名>:更新指定包
6.文件压缩/解压缩命令
zip -r test.zip test :将当前目test文件夹压缩为test.zip
unzip test.zip : 将test.zip解压到当前目录
unzip test.war :将test.war解压到当前目录
tar cvf test.tar.gz test :将test文件夹压缩为test.tar.gz
tar xvf test.tar.gz :将test.tar.gz包解压到当前目录
7.权限控制命令
chmod +x ./a.txt :对当前目录下的a.txt添加可执行权限
chmod +x ./* :对当前目录下所有文件添加可执行权限
chmod 777 ./a.txt:对a.txt文件设置所有人均有读/写/执行权限
chown root:root ./:将当前所有目录文件的拥有者改为root组的root用户
chown -R root:root ./ 将当前所有目录和子目录文件的拥有者改为root组的root用户
权限控制命令说明:
r=4(可读)
w=2(可写)
x=1(可执行)
文件权限数字表示方式
rw-|r–|r–
u g o
u=rw-=4+2+0=6(user)
g=r–=4+0+0=4(group)
o=r–=4+0+0=4(other)
所以文件权限表示为644
数值算法:
7=rwx
6=rw-
5=r-x
4=r–
3=-wx
2=-w-
1=–x
0=—
文件属性如下图:
图来自该博客:Linux 文件属性及权限
8.文件搜索find命令
(1)全局搜索
find / -name 123.txt :从根目录下全局搜索123.txt文件
(2)目录下搜索
find / -name *test.log:从/home目录下搜索后缀为test.log的文件
(3)根据访问时间搜索
find / -amin -10 # 查找在系统中最后10分钟访问的文件(access time)
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件(modify time)
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
(4)根据用户搜索
find / -user testuser #查找在系统中属于testuser这个用户的文件
(5)根据文件大小搜索
find / -size +10000c #查找出大于10000字节的文件(c:字节,k:KB,M:MB,G:GB)
find / -size -1000k #查找出小于1000KB的文件
9.系统命令
ip addr:查看系统ip信息
systemctl restart/start/stop network:网卡重启/启动/关闭
systemctl stop/start/status firewalld.service: 防火墙关闭|查看状态|开启
ps -ef|grep jmeter:查看系统里与jmeter相关的进程
kill -9 PID:通过进程号强行杀掉某进程
history | grep xxx :查看linux命令执行历史,并过滤出包含xxx的命令
nohup ./xxx.sh &:在后台执行xxx.sh脚本
netstat -anp | grep 8080 查看系统中8080端口建立的连接和所属进程
10.awk命令
awk是对文本行进行格式化的工具,适合处理比较复杂的格式处理;(把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行后续)
(1)awk命令格式
awk [options] ‘Pattern{Action}’ file1,file2…
[options] 为可选项,{Action}对多文件进行的action动作;
options参数
默认以空白字符分隔,通过-F选项来执行分隔符,如下:
awk -F '#' '{print $1}' test.log
表示用#号分隔取列,打印第1列;
Action
最常用的是print,默认以空白字符分隔;
$0代表整行、$1代表第1段、$2依次类推,$NF代表最后一个字段,多个字段直接用逗号隔开
awk '{print $1,$2}' test.log
打印操作支持拼接打印,如:awk '{print "first" $1,$2}' test.log
awk变量
FILENAME: awk浏览的文件名
BEGIN:处理文本之前要执行的操作
END:处理文本之后要执行的操作
FS:输入字段分隔符,默认为空白字符,一般需要加-v (-v FS)
OFS:输出字段分隔符,默认为空白字符,一般需要加-v (-v OFS)
ORS:输出记录分隔符(默认回车)
RS:控制记录分隔符
NF:分隔后的字段数量
NR:当前行的行号
Pattern模式(正则表达式)
模式就是条件,符合条件的行,awk才会进行处理
关系运算模式
awk ‘NF == 5 {print $1}’ a.log
如果行的分段数量为5的话(其行满足列数=5),进行打印操作
其他的类似 NF>2、NF<4、$1 == 123等都是判断条件;
例如:
awk 'NR >=3 && NR <=5{print $0}' test.log
打印test.log中3-5行的数据
举例:
搜索/etc/passwd有root关键字的所有行,并显示对应的shell
awk -F : '/root/ {print $7}' /etc/passwd
(分隔符指定为:冒号,然后正则匹配到有root的行,打印第7列)passwd这个文件里的内容是以:号为分隔符的,shell是在第7行。大括号外事正则,大括号内事动作。
打印/etc/passwd/的第二行信息
awk -F : 'NR==2{print $0}' /etc/passwd
(分隔指定为:冒号,然后正则匹配行号为2的,打印整行)
使用begin加入标题
awk -F : 'BEGIN {print "BEGIN01 BEGIN02"} {print $1,$2}' /etc/passwd
会在打印指定文件1,2前执行打印BEGIN01 BEGIN02
自定义分隔符(默认是回车)
echo