测试工程师必知必会的linux
2023-02-27 15:52:10 4 举报
AI智能生成
作为一名测试工程师,掌握Linux操作系统是必备的技能之一。Linux是一种开源的、可定制的操作系统,广泛应用于服务器、嵌入式设备等领域。熟悉Linux命令行操作,能够编写Shell脚本,是测试工程师提高工作效率的关键。此外,了解Linux内核原理、进程管理、内存管理等基本概念,也有助于深入理解软件运行机制,从而更好地进行性能测试和故障排查。总之,掌握Linux对于测试工程师来说具有重要意义,是提升自身专业素养的必经之路。
作者其他创作
大纲/内容
linux
linux安装
vmware 14安装
centos7.8
网路
桥接:相当于直接连接物理网路
文件系统
ext4:第四代扩展文件系统
分区
swap:实现虚拟内存,内存交换空间。物理内存的1-2倍
/:根目录 ,所有目录都挂着这个目录下,建议5G以上
/boot:操作系统的内核和在启动系统过程中所要用到的文件。100M
/usr:存放系统中的应用程序
/home:存放普通用户的数据,普通用户的宿主目录
/var:存放系统中经常变化的的数据以及日志文件
/tmp:临时文件
/bin:标准系统实用程序;/dev:设备文件;/opt:可选的安装软件;/sbin:标准系统管理文件
网络配置
临时配置
ifconfig eth0 192.168.1.118route add default gw 192.168.1.1配置dns服务器: vim /etc/resolv.conf 增加nameserver 114.114.114.114
永久配置
修改/etc/sysconfig/network-scripts/ifcfg-eth0
linux命令
help
查看帮助文档。或者增加参数:-h
service
控制系统服务的重启等 service iptables status|service iptables restart
自己注册系统服务。/etc/rc.d/init.d/{service-name}。 service-name:服务名称,shell文件,start,stop,restart等等函数
/etc/sysconfig/network-scripts/ifcfg-eth0
ssh常见错误
connection failed/refused
ssh root@172.16.1.12 -p 22,ip和端口有没有写错
ip端口是否通,如何确认telnet 172.16.1.12 22
sshd服务是否开启
防火墙禁止22端口访问。关闭防火墙
密码错误
确实没有权限
路径介绍
/:根目录
./:当前目录
../:上级目录
/root:root用户的主目录
/bin:存放linux常用命令的目录
/home/username:存放普通用户的个人配置信息
/boot:存放系统启动时需要用到的文件
/dev:存放系统中使用用的外部设备
/proc:存放内存中的信息
/tmp:存放临时文件
vi/vim文本编辑
三种模式
命令模式(Command mode):刚启动的状态即命令模式,
输入模式(Insert mode):命令模式下按i进入,此模式下可以编辑,esc退出
底线命令模式(Last line mode):命令模式下按:进入,执行linux其他命令,esc退出
操作命令
dd:删除一行,gg:光标移动到首行,G:光标移动到末尾,:n:移动到第n行,set nu:设置行号,/:全文搜索,n:继续查找
linux启动级别
文件:/etc/inittab。0~6
linux系统重启与关机
重启:reboot,shutdown -r now;关机:halt,shutdown -h now
文件操作
文件创建
vi {filename}:有则编辑,没有则保存后创建
touch {filename}:创建空白文件
cat > {filename}:
文件查看
cp,mv,rm,scp
连接
软连接ln -s hello.txt hello。为hello.txt文件创建一个名为hello的软连接,快捷方式
硬连接ln -d hello.txt hello。为hello.txt文件创建一个名为hello的硬连接,新的文件,俩文件同步
目录操作
ls,tree,pwd,cd,mkdir,mkdir -p,rmdir,mv,cp
权限操作
group add:增加用户组;useradd:增加用户。 useradd -g test denny增加用户并添加到test组
权限:10位编码 type(1)+u(3)+g(3)+o(3)。type:类型,u文件所有者权限,g,所在组权限,o其他组权限
rwx:421,读写执行。
chmod
给所有人增加执行权限:chmod a+x hello.txt
修改文件权限:chmod 777 hello.txt
删除文件所有者的执行权限:chmod u-x hello.txt
修改目录及其下所有的权限:chmod -R 755 hello.txt
文件查找
find:查找文件和目录
find 目录 查找类型 查找的关键字
find . -type d 查找当前目录下所有的目录
find . -mtime +3 查找三天内更新过的文件
find ./ -name '2019*' -type d -mtime +8 查找2019开头并且8天内更新过的目录
grep:搜索文件内容
grep 【选项】 关键字 目标文件
grep -R "root" -r(R)递归查找当前目录以及字母下所有的文件
grep -n "root" /etc/passwd 查找并输出行号
压缩、解压
tar
参数
z:压缩成gz格式文件;c:创建压缩文件;x:解压文件;v:详细列出处理的文件;f:使用归档文件
tar -zcvf test.tar /opt/test; tar -zxvf test.tar.gz
实例
tar -zcvf test.tar /opt/test
tar -zxvf test.tar.gz
gzip
gzip * 把当前目录中所有文件单独压缩
gzip -d *解压当前目录中所有的gz文件
gzip -c test > test.gz 把test文件压缩,并保留源文件
zip/unzip
zip -r test.zip /opt/test 压缩
unzip test.zip -d /opt/解压到/opt/目录
高阶命令
xargs:给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具
find -name 'test'|xargs rm;find -name 'test' -exec rm
find ./ -name '2019*' -type d -mtime +8|xargs rm -rf
管道“|”可将命令的结果输出给另一个命令作为输入之用
ls *|grep "test1"
awk:AWK 是一种处理文本文件的语言,是一个强大的文本分析工具
find -name "*.war"|awk -F '/' '{print $2}'
sed:文件流编辑器,根据命令批量处理
sed -i 's/192.168/172.16/g' test*
wc:计算字数
ls *.war|wc -l
其他杂项
su:切换用户
环境变量
export NAME=woniu 定义环境变量
vim /etc/profile source 增加环境变量
ifconfig:查看网卡信息
top:查看系统资源使用率,默认刷新时间5s
ps:查看系统进程
ps:查看当前终端正在运行的进程
ps -ef:查看系统正在运行的进程
clear:清屏
history:查看历史执行命令
free:查看内存使用
shell
shell简介
shell既是一种命令语言,也是一种编程语言
shell种类:Bourne Shell(/usr/bin/sh或/bin/sh);Bourne Again Shell(/bin/bash);C Shell(/usr/bin/csh)等等
cat /etc/shells查看系统中所有的shell,即支持的shell种类
第一个实例:#! /bin/sh echo "hello world"
第一行#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序
执行shell,增加权限,./执行
shell基础
tab键:命令补齐
echo:输出,查看帮助/bin/echo --help;增加-e参数,可识别转义符
read:读取终端输入并赋值给变量
echo "what is your name?"read Personecho "my name is $Person"
cat:1、显示整个文件;2、从键盘输入创建文件;3、将文件合并
cat test
cat > test << end
echo "please input file name:\"read file1 file2 file3cat -n $file1 $file2 $file3 1> catfile.log 2>cat.file.err
0:输入,默认是键盘1:命令的标准输出2:命令执行错误提示的输出
tty:查看当前终端设备编号
shell变量
变量命名:英文字母,数字和下划线。不能以数字开头。推荐英文
变量引用:$变量名;${变量名} 推荐花括号
字符串:双引号括起来
特殊变量:$+通配符
function testargs { echo "there is $#args" echo $10}testargs "$*"testargs "$@
语句
test: 命令用于检查某个条件是否成立
test -e /etc/passwd;echo $?
if语句:
if 条件 then\t命令1else\t命令2fi
for语句:
for var in word1 word2 ... wordNdo Statement(s) to be executed for every word.done
for var in 0 1 2 3 4 5 6 7 8 9do echo $vardone
while语句:
while commanddo Statement(s) to be executed if command is truedone
a=0while [ $a -lt 10 ]do echo $a a=`expr $a + 1`done
case语句:
case word in pattern1) Statement(s) to be executed if pattern1 matches ;; pattern2) Statement(s) to be executed if pattern2 matches ;; pattern3) Statement(s) to be executed if pattern3 matches ;;esac
case $1 in start) echo "service is starting...." ;; stop) echo "service is stopping..." ;; *) echo "`basename ${0}`:usage: start | stop | restart " exit 1 # Command to come out of the program with status 1 ;;esac
函数
function_name () { list of commands}
function testargs { echo "there is $#args" echo $10}testargs "$*"testargs "$@"
shell扩展
crontab:定时任务的守护进程
crontab [-u user] [ -e | -l | -r ]
* * * * * command(分,时,日,月,星期,需要执行的命令或者sh)
nohup &
nohup command & 后台运行并输出到nohup.out中
sleep
等待几秒
linux软件安装
解压后直接用
jdk
环境变量配置:vim /etc/profileJAVA_HOME=/opt/jdk1.8.8_172PATH=$PATH:$HOME/bin:$JAVA_HOME/binCLASSPATH=$JAVA_HOME/lib重新加载环境变量,是设置生效sourec /etc/profile测试是否配置成功javajavac
tomcat
1、上传后解压即可用。2、tomcat相关配置说明bin:启动相关sh文件conf:tomcat配置文件logs:日志文件webapps:部署应用存放地址lib:第三方jar包temp:临时文件。可清空work:运行tomcat的工作目录。可清空conf/server.xml:配置tomcat启动端口以及线程数bin/catalina.sh:tomcat启动相关配置,调优相关配置,jvm等
yum安装
源配置wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum命令yum list|grep jdk
rpm安装
mysql
1、wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar2、tar xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar注意:从下面开始,每一步都不能出错,都会提示成功或者100%3、rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm如果没有提示成功,查找冲突包rpm -qa|grep mariadb然后删除包yum remove mariadb-libs-5.5.65-1.el7.x86_644、再次执行安装5、rpm -ivh mysql-community-libs-5.7.29-1.el7.x86_64.rpm6、rpm -ivh mysql-community-client-5.7.29-1.el7.x86_64.rpm7、rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm8、查看mysql服务状态:systemctl status mysqld.service /service mysqld status9、启动mysql服务:service mysqld start10、查看root的临时密码cat /var/log/mysqld.log11、登录mysql:mysql -uroot -plrdJu6Wd=_VL12、修改root密码:alter user 'root'@'localhost' identified by '123456';13、密码太简单,所以修改密码策略:vim /etc/my.cnf,增加如下两行\t#添加validate_password_policy配置\tvalidate_password_policy=0\t##关闭密码策略\tvalidate_password = off14、修改完成后重新启动mysql服务,再次修改密码15、使用新密进入mysql,授权远程登录mysql#授权语句grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;#刷新权限flush privileges;16,安装navicate,第一次连接会报错。服务器的防火墙没有开放3306端口解决:关闭防火墙或者防火墙中放行3306端口1、service firewalld stop2、firewall-cmd --zone=public --add-port=3306/tcp --permanent注意:此种方式需要关闭selinuxvim /etc/selinux/config 设置为disabled
yum insall mysqlrpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpmyum install mysql-server
agileone安装
xammp安装
1、上传xmapp压缩包2、解压,执行启动命令/opt/lammp/lammp start3、发现报错,不支持32位4、安装32位兼容程序yum install glibc.i6865、再次启动6、访问http://ip7、点击“phpMyAdmin”打开界面,可能报错8、点击下方的“Open new phpMyAdmin window”进入9、设置mysql的root密码,以及授权远程登录用户10、修改mysql密码后,phpmyadmin访问报错,需要修改config.inc.php,修改配置文件中的密码
agileone部署
lammp配置文件
1、/opt/lampp/etc/httpd.conf:apache的主配置文件。my.cnf:数据库配置2、/opt/lampp/phpmyadmin:lampp套件的配置3、/opt/lampp/agileone/common/config/global.conf:项目配置文件
docker应用
公司常见用场景:1、搭建docker私服,存储镜像模板2、创建常见的镜像并上传到私服3、容器化的部署。例如一个java应用要部署很多台服务器,那么就可以docker,创建一个镜像模板,然后docker虚拟化出n多台服务
docker应用:使用云镜像1、查找nginx镜像docker search nginx2、运行容器docker run --name nginx docker.io/library/nginx (-d参数表示后台运行)3、查看容器运行情况docker ps4、进入容器,相当于一台新电脑docker exec -it 9d5c826e9cd2 bash (9d5c826e9cd2是ps出来的容器id)5、docker stop [容器id]6、后台指定端口运行docker run -d -p 28080:80 docker.io/library/nginx访问:http://192.168.1.138:28080
docker应用:制作镜像1、修改已有的镜像,然后docker commit2、利用dockerfile来创建镜像
docker安装
简介:docker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的docker应用中,可以实现快速部署。如果出现的故障,可以通过镜像,快速恢复服务。
原理:docker是利用Linux内核虚拟机化技术(LXC),提供轻量级的虚拟化,以便隔离进程和资源。LXC不是硬件的虚拟化,而是Linux内核的级别的虚拟机化,相对于传统的虚拟机,节省了很多硬件资源。
安装:1、安装依赖docker依赖于系统的一些必要的工具yum install -y yum-utils device-mapper-persistent-data lvm22、添加软件源yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3、更新yum缓存yum makecache fast4、安装docker-ceyum -y install docker-ce5、启动服务systemctl start docker6、查看安装版本docker versiondocker info
源码管理
svn
安装
yum install subversion1、创建仓库的存储目录mkdir -p /usr/local/svn2、创建版本库svnadmin -create /usr/local/svn/test/3、启动svnsvnserver -d -r /usr/local/svn4、安装TortoiseSVN客户端5、访问svn
基本配置
1、修改配置文件,启用密码访问vi /usr/local/svn/test/conf/svnserve.confanon-access = none #未认证用户不能访问password-db = passwd #用户和密码文件authz-db = authz #用户和组权限配置2、编辑账号密码文件vi /usr/local/svn/test/conf/passwd3、编辑权限文件vi /usr/local/svn/test/conf/authz
专家级配置
#组设置[groups]admin = admintester = dinghua#根目录权限配置[/]@admin = rw* = r#单个目录权限配置到组,test-仓库名[test:/woniusales/branches]@tester = rw
客户端使用
check outsvn updatesvn commit
git
yum install git
配置
服务端配置1创建仓库mkdir -p /usr/local/git/test.git2、初始化git init --bare /usr/local/git/test.git/3、增加用户useradd dinghuapasswd dinghua修改登录方式vim /etc/passwd #更改刚增加的用户为git-shell方式登录
客户端配置1、安装git和tortoisegit2、git clone
常见软件默认端口
ftp:21ssh:22http、apache、nginx:80https:443tomcat:8080mysql:3306oracle:1521sql server:1433redis:6379mongodb:27017
0 条评论
回复 删除
下一页