Linux测试相关命令集
练习结果来自博主@Let‘sTest
(1)cd命令:
1. 如何进入上级目录 :cd ..
2. 如何进入当前用户主目录:cd ~
3. 如何进入上两级目录:cd ../..
4. 进入当前目录命令:cd .
5. 如何进入目录 /usr/isTester/:cd /usr/isTester/
(2)mv命令:
1、【移动当前目录文件】mv 文件名 指定目录/
2、【移动指定目录文件】mv 文件目录/文件名 指定目录/
3、【移动并重命名】mv 文件 新目录/新文件名
(若移动前后在同一目录,即重命名。)
4、【移动到上级目录】“mv 文件名 …/
5、【移动多个文件】mv -t 目标目录/ 文件1 文件2 …
参数:
-t 指定目标目录(target directory)。
1. 移动一个文件夹(isTester文件夹,移动到/APP/www目录):mv ~/isTester/ /APP/www/
2. 移动一个文件(isTester.ini 移动到/APP/www目录) mv isTester.ini /APP/www
3. 当前目录istester.tar.gz 移动到 /usr/ido 目录,并重命名为istester1228.tar.gz
mv isTester.tar.gz /usr/ido/istester1228.tar.gz
4. 移动文件到上级目录 mv isTester.tar.gz ../
5. 一条命令,移动两个文件 isTester.tar idoxu.tar 到目录 /APP/www
mv -t /usr/isTester/ isTester.tar idoxu.tar
(3)命令cp
1、【复制文件】“cp 文件 目标路径/”
【复制文件夹】“cp -r 文件夹 目标路径/”
参数:
-r 递归(recursive)
2、想复制并重命名文件夹:“cp -r A target/B”,复制A到target文件夹下并重命名为B(B后不加“/”)
1. 复制当前目录部署包isTester.tar.gz 到备份目录/APP/www/bak 目录
cp isTester.tar.gz /APP/www/bak/
2. 复制文件夹 isTester 到部署目录 /APP/www :cp -r isTester/ /APP/www/
(4)命令mkdir
1. 新建一个文件夹 isTester:mkdir isTester
2. 新建三个文件夹 isTester1 isTester2 isTester3:mkdir isTester1 isTester2 isTester3
3. 新建一个多层级文件夹 idoxu/20181230/01:mkdir -p idoxu/20181230/01
(5)命令history:
1、【查看历史命令】“history”
2、【查看指定命令执行历史】“history | grep 命令名称”
3、【执行某序号历史命令】“!823”
(6)命令tail
1. 实时刷新log : tail -f isTester.log //默认显示最新10条,按“ctrl+c”退出显示
2. 实时刷新最新500条log : tail -500f isTester.log
tailf、tail -f、tail -F三者区别(转)
tail -f
等同于–follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止
tail -F
等同于–follow=name --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪
tailf
等同于tail -f -n 10(貌似tail -f或-F默认也是打印最后10行,然后追踪文件),与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件,所以tailf特别适合那些便携机上跟踪日志文件,因为它减少了磁盘访问,可以省电
常用操作:
此时要想暂停刷新,使用【Ctrl】+【S】暂停终端。
若想继续终端,使用【Ctrl】+【Q】。
若想退出tail命令,直接使用【Ctrl】+【C】。
(7)命令tar
【打包命令】“tar -cvf 包名.tar 打包文件1 打包文件2…”
参数:
-c(create) 创建包,
-v(verbose) 显示指令执行过程,
-f(file)使用文件名字,切记,这个参数是最后一个参数,是必须的,后面只能接文件名。
【压缩命令】“tar -zcvf 包名.tar.gz 文件1 文件2…”
参数:
-z 通过gzip程序压缩。
【打包文件夹】“tar -cvf isTester.tar /usr/isTester/”
压缩同理。
【打包一类文件】“tar -cvf isTesterjpg.tar *.jpg”
压缩同理。
【拆tar包】“tar -xvf isTesterjpg.tar”
参数:
-x(extract)还原文件,即解压文件。
【解压tar.gz包】“tar -zxvf isTesterjpg.tar.gz”。
(8)命令ls
1. 列出当前目录中所有的子目录和文件。ls
2. 列出目录下的所有文件(包含隐**件)ls -a
3. 列出文件的详细信息(包括权限、所有者、文件大小等)ls -l
4. 列出当前目录中所有以“isTester”开头的详细内容 ls -l isTester* // “ls -l”可简写为“ll”
(9) 命令ps
1. 查看所有进程 ps -A
2. 查看java进程 ps -ef|grep java
3. 显示所有进程信息,连同命令行 ps -ef
//参数:-e:显示所有进程,环境变量;-f:全格式。
(10)命令top (性能测试时观察cpu、内存使用情况)
1. 显示进程信息 :top
2. 监控每个逻辑CPU的状况:top ,按 1
3. 高亮显示当前运行进程:top ,按 b
4. 显示 完整命令:top ,按 c
5. 退出top程序:按 q
free -m内存使用情况
(11)命令wget
Linux系统中的wget是一个下载文件的工具,对于Linux用户是必不可少的工具
(1)下载isTester包:wget http://51.istester.com/isTester.png
(2)下载isTester包,存储名为isTester666.tgz:
wget -O isTester666.tgz http://51.istester.com/isTester.png
(3)下载isTester包,后台形式下载:wget -b http://51.istester.com/isTester.png
下载命令:“wget 参数 链接”。
参数:
①-o:重命名(加路径可指定保存目录);
②-b:后台下载。
(12)命令find
常用场景:
1. 在/root/isTester 目录及其子目录下面查找名字为isTester.ini的文件
find /root/isTester/ -name isTester.ini
2. 在当前目录及其子目录中查找任何扩展名为“ini”的文件
find . -name "*.ini"
3. 在/root/isTester目录下查找更改时间在5日以内的文件
find /root/isTester/ -mtime +5
4. 在/root/isTester目录下查找更改时间在3日以前的文件
find /root/isTester/ -mtime -3
5. 在/root/isTester目录下查找所有的目录
find . -type d
6. 在/root/isTester目录下查找所有的文件
find /root/isTester/ -type f
总结
路径下查找文件文件夹:“find 路径 -name 文件名”。
(关于-mtime的解释昨天写返了,删除线删除,加深印象)
参数:
①-name 根据文件名查找文件(和文件夹),后跟文件(夹)名,如果是一类文件,需要用引号"*.ini";
②-mtime 指定文件修改时间(modify),指的是修改时间距离当前时间。以数值当天(如5)为原点,“+5”是向远处推,即距今>5天 ,“-5” 是向近处推,即距今<5天。 以下几种情况来帮助理解:
1)find ./ -mtime 0:查找修改时间在0~24h之内的文件、目录;
2)find ./ -mtime 1:查找修改时间在24~48h之内的文件、目录;
3)find ./ -mtime -1:查找修改时间在1天之内即0~24h之内的文件、目录;(效果同1)
4)find ./ -mtime +1:查找修改时间大于1天即至少2天的文件、目录,因为-mtime是整数“天”,所以是修改时间>48h的结果
③-type 指定查找文件类型,d 目录,f 文件;
复杂场景
1)在当前目录,所有的普通文件中搜索istester这个词
find . -type f | xargs grep "istester"
2)在当前目录,移动1天以内的所有内容到 ~/idoxu 目录
find ./ -mtime -1 |xargs -i mv {} /usr/idoxu
3)在当前目录,移动10天以前的所有内容到 ~/idoxu 目录
find ./ -mtime +10 |xargs -i mv {} /usr/idoxu
4)在/usr/isTester目录,移动文件大小为零的文件到~/idoxu目录下的 0 size/ 文件夹
find ./ -size 0 |xargs -i mv {} /usr/idoxu/0size/
5)在当前目录,删除1天以内的所有东西
find ./ -mtime -1 -print | xargs rm -rf
6)在当前目录,删除10天以前的所有东西(实操的时候,需谨慎,确保在自己建的目录内,别把系统目录删了…)
find ./ -mtime +10 -print | xargs rm -rf
7)删除文件大小为零的文件
find ./ -size 0 | xargs rm -rf
(13)命令rm
1. 删除/root/isTester/目录下的文件isTester.ini (系统会询问是否删除)
rm /root/isTester/isTester.ini
2. 强行删除/root/isTester/目录下的文件isTester.ini(直接删除,系统不会提示)
rm -f /root/isTester/isTester.ini
3. 删除/root/isTester/目录下的所有.log文件
rm -f /root/isTester/*.log
4. 删除/root/isTester/目录下的 ido/文件夹
rm -r /root/isTester/ido/
5. 强行删除/root/isTester/目录下的 ido/文件夹
rm -rf /root/isTester/ido/
6. 删除/root/isTester/目录下的所有内容
rm -rf /root/isTester/*
1、删除文件(1个或多个):rm 文件1, 文件2, …
2、删除一类文件:rm 路径/*.log
3、删除文件夹:rm -r 路径
4、参数:
-r 递归,用于路径
-f 强制(force),不询问是否删除,直接进行删除
(14)文件操作系列命令
1. 创建文件,你知道有哪几个命令 ?(写出至少两种方式)
1) touch isTester.ini
2) vi isTester.md
3) echo ‘only test’ > isTester.com
4) cp isTester.ini isTester666.ini
5) ls > fileList.txt
2. 同时创建文件 isTester6.ini idoxu.ini
touch isTester6.ini idoxu.ini
3. 同时创建2000个文件 isTester0001.ini - isTester2000.ini
touch istester{0001..2000}.ini
4. 更改文件 isTester.ini时间为当前时间
touch isTester.ini
(15)查看文件系列 命令
1. 查看文件 isTester.ini的内容
cat isTester.ini
2. 看文件 isTester.ini前20行内容
head -n 20 isTester.ini
3. 看文件 isTester.ini最后30行内容
tail -n 30 isTester.ini
4. 显示文件isTester.ini 的第10至20行的内容
head -n 20 isTester.ini | tail -n 10
5. 倒序显示文件isTester.ini 前10行的内容
tac isTester.ini | head -n 10
6. 显示文件isTester.ini 前10行的内容,并显示行号
nl isTester.ini | head -n 10
查看文件的几种方式:
#cat 由第一行开始显示档案内容
#tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
#more 一页一页的显示档案内容
#less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
#head 只看头几行
#tail 只看尾巴几行
#nl 显示的时候,顺道输出 行号!
(16)命令 yum & scp
# 假设 当前服务器ip 192.168.1.23
1. 从Linux服务器192.168.1.22 拷贝文件isTester.ini 到服务器192.168.1.23
scp root@192.168.1.22:/root/idoxu/isTester.ini /root/idoxu
2. 从Linux服务器192.168.1.22 拷贝目录 isTester/ 到服务器192.168.1.23
scp -r root@192.168.1.22:/root/idoxu/isTester/ /root/idoxu
3. Linux下安装scp命令(假设是centos服务器,命令用yum)
yum install openssh-clients
1、scp命令:(和cp命令使用相同)
①安装:“yum install openssh-clients”
②远程主机传输文件到本地:“scp 主机名@ip地址:路径/文件 ./”(需要输入远程主机密码)
两路径颠倒为反向传输;
加“-r”为传输文件夹
(17)小命令
(18) vi+chmod命令
vi 创建文件 + 编辑文件 。
chmod命令用于改变linux系统文件或目录的访问权限 。
1. 创建文件 isTester.ini
vi isTester.ini
2. 更新文件内容为“21 day Linux Learn ,I'm Idolaoxu,in shenzhen .”
输入 i ,进入编辑模式,输入内容,esc进入命令模式 :wq 保存 。
2. 将文件 isTester.ini 设为所有人皆可读取
chmod +r isTester.ini
3. 将 isTester.ini 设定为只有该文件拥有者可以执行
chmod u+x isTester.ini
4. 给文件 isTester.ini 设置所有权限
chmod 777 isTester.ini (或者 chmod a=rwx isTester.ini)
(19)linux查看端口是否启用
1、netstat -aptn 查看所有开启的端口号
2、利用lsof命令查看端口是否启用,该命令用于列出系统已经打开的所有文件,当参数设置为“-i”时,可以列出符合条件的进程,语法为“lsof -i:端口号”
(20)linux实时查看日志
命令tail
需要-f
参数来跟踪文件的内容。该命令的第二个版本实际上是一个命令本身:tailf
tail命令将显示文件的最后10行。例如,如果你只想实时查看日志文件的最后两行,请使用-n
与该-f
标志结合的文件,如下例所示。
$ sudo tail -n2 -f /``var``/log/apache2/access.log
(21)linux批量替换文件内容
1、使用perl ,命令如下:
find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'
find -name 'pom.xml' | xargs perl -pi -e
's|http://repo1.maven.org/maven2|
http://localhost:8081/nexus/content /groups/public|g'
当前目录及所有子目录下的所有pom.xml文件中的
http://repo1.maven.org/maven2“
替换为http://localhost:8081/nexus/content/groups/public
2、使用sed命令如下:
用sed命令可以批量替换多个文件中的字符串
sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`
我要把mahuinan替换 为huinanma
sed -i "s/mahuinan/huinanma/g" 'grep mahuinan -rl /www'