企业中搭建linux测试环境,Linux测试环境简单使⽤教程
0. 本blog 简单说明⼀下 Linux测试环境尤其是 CentOS测试环境的开发测试使⽤, 教程可能不会很长, 主要是⼊门.
0.1 Linux简介:Linux 的历史基本上不⽤阐述, linus作为⾃⼰的兴趣爱好进⾏编码实现的⼀种开源的操作系统. Linux很好的切合了GNU⾥⾯⼀直没有可⽤的开源操作系统的窘境, 所以Linux+GNU结合实现了开源操作系统以及⼯具的⼤发展.
⼤部分linux的⼯具其实都是GNU来实现的, linus⾃⼰主要是维护linux的core 内核部分. 很多发⾏版再加进去很多GNU的⼯具 发布成为⼀个开箱即⽤的Linux发⾏版.
主要的发⾏版: CentOS, Ubuntu, SUSE等.
其中 Redhat 作为红帽企业版的开源linux环境, 他的源码重新编译的CentOS操作系统很受⼴⼤linux服务器维护⼈员的喜欢.
最新版本 8.1 基于 linux 4.18 内核发布.
但是现阶段最流⾏的操作系统还是 CentOS7.X 系列, 基于Linux 3.10内核(可以⾃⾏升级内核) 国产化的中标麒麟是基于CentOS7.x系列研发的.
Ubuntu 是基于 debian 的发⾏版, ⼀个很⼤的优势是现阶段国产化很⽕的UOS也是基于debian操作系统来研发的, 以及银河麒麟也是基于ubuntu1x.04的LTS版本研发的.
0.2 Linux发⾏版的发布频率以及选择.CentOS基本上每⼀年⾄少发布⼀个版本,CentOS7.0 是2014年发布的. 2019年基本上就发布到
了 CentOS7.7第⼀位⼤版本号基本上Linux的内核不会发⽣变化, 但是会基于这个内核,红帽⼀直进⾏安全更新, 以及添加⼀下新的GNU⼯具的升级版本进⾏提⾼.
Ubuntu每半年发布⼀个版本, 版本号使⽤年⽉进⾏表⽰,⽐如 1404,1810等,其中除了 1404,1604,1804,2004等类似规律的版本,使⽤⽀持期限不超过⼀年, ⼀般没半年就需要⼿动进⾏升级.  这些LTS长期⽀持版本的 ⽀持期限⼤约有5年时间. 可以作为服务器使⽤.
Ubuntu和CentOS现在都采⽤了 systemd 作为启动和服务启动监控等核⼼进程. 所以使⽤起来基本上⽆特别⼤的区别.
关于发⾏版的选择.
ubuntu 的桌⾯⾮常炫酷, 发布频率也⾮常⾼, 很适合作为客户端来使⽤, 作为服务器也可以, 但是使⽤的⼈稍微少⼀些,因为运维⼈员更在意的是稳定性.
红帽现在是docker以及k8s基⾦会的核⼼成员, 也是openstack的很⼤的发⾏商, 很多⽂档也⾮常细致.
两个很⼤的区别在于包管理
CentOS使⽤ yum  rpm包管理, ubuntu 使⽤ apt-get  dkpg的包管理, 两者不通⽤(虽然有⼯具可以进⾏转换)
1. Windows远程管理linux 环境.
现阶段⼤部分开发测试⼈员使⽤Windows环境进⾏研发测试(MacOS 基于BSD内核, 可以理解为linux的表兄弟 这⾥暂且不谈)
1.1 常⽤的⼯具有:xshell  命令⾏连接管理 linux
xftp    基于22端⼝的xftp实现, ⽂件上传以及⽂件下载
上⾯两个⼯具是xmanager的⼯具包所包含的 很⼤的优点是 可以通过xshell 直接打开 xftp 进⾏⽂件传输 不需要再次输⼊⼀遍⽤户密码等复杂操作了.
winscp 同 xftp
putty    同xshell
以及⼀些其他的⼯具⽐如 cmder 等. 不做详细描述
1.2 win10 ⽐较新的版本 还可以搭建WSL 来使⽤bash直接连接(git命令⾏也可以)
直接在命令⾏⾥⾯就能打开 bash了
这个⼯具最⼤好处可以直接将本机的⽂件通过scp的命令传输到linux的服务器⾥⾯,
1.3 通过GUI⽅式远程管理linux
1.3.1 很常见的⽅式有两种 ⼀种是使⽤ windows 使⽤vnc客户端, 以及linux服务器安装tigerVNC, 使⽤vncserver的命令创建 ip:5901的访问地址 在客户端进⾏访问.
1.3.2 还⼀种⽅式是安装 xrdp 直接使⽤windows的mstsc命令进⾏连结
但是这种⽅式容易让⼈产⽣误解,所以这⼀块放到最后来讲.
2. linux命令⾏操作简介.
linux使⽤命令⾏管理很⾼校,并且占⽤带宽很少, 在⽹络不好的情况下很能够很好的完成各种⼯作.
2.1 linux的⽬录./ 根⽬录是linux所有⽂件⽬录挂载的起点
注意 / 根⽬录与 /root root⽤户的家⽬录是不⼀样的. 初学的时候很容易将这两个⽬录搞混.
/etc ⽬录⾥⾯主要是存储⼀些配置⽂件信息/usr/bin /usr/local/bin  等⽬录主要是存储可执⾏⽂件.
/lib /lib64  /usr/lib  /usr/lib64  等⽬录主要是存放应⽤程序库⽂件.
/opt  主要是存放⼀些 第三⽅软件, 国产的数据库 ⽐如 达梦 瀚⾼ ⼈⼤⾦仓 以及360浏览器等都喜欢往这个⽬录安装/var  主要是存放⼀些运⾏时会变动的⽂件, ⽐如/var/log 作为存放程序⽇志的⽂件.
/temp 临时⽂件./proc 虚拟⽂件夹 linux⾥⾯ everything is file 所以通过他能够查看⼀些进程信息的⼆进制⽂件等的信
息.  (ll /proc/pid 的⽅式)/home ⾮ root⽤户的家⽬录
2.2 linux的⽂件权限与环境变量以及内核参数限制等.
2.2.1 ⽂件权限, 测试环境可以使⽤ 777 的⽅式进⾏处理, 但是⽣产环境⼀定不可以.
命令为  如下命令可以将所有的⽂件权限全部设置为 777
cd /yourapp
chmod 777 * -R
2.2.2 环境变量.
linux⾥⾯的环境变量与windows⾥⾯的环境变量类似. 在bash⾥⾯可以通过环境变量的⽅式去寻具体的命令来实现, 想对应的 还有lib⽬录信息, 都程序需要使⽤库⽂件时 也能够进⾏查询.
linux的环境变量有多个⽂件可以存放. 主要有:1. /etc/profile
这个⽂件是所有的⽤户都从头开始执⾏的 不建议修改 出了错误⽐较难处理.2. ~/.bashrc  以及 ~/.bash_profile
注意 ~ 指代当前⽤户的家⽬录. 这两个⽂件是针对不同⽤户设置的环境变量.
只适应当前⽤户信息 ⽆法影响其他的⽤户环境变量3. /etc/profiled.d/something.sh
这⾥⾯的⽂件可以⼿动执⾏, ⽤户bash登录时会⾃动获取该环境变量内的内容进⾏⽣效, ⽐如:
export PATH=$PATH:/usr/local/nginx:/gscloud/jstack/runtime/java/x86_64-linux/bin
就可以直接执⾏ PATH相关⽬录的命令了
注意 linux ⾥⾯使⽤ $作为变量操作符号.
2.2.3 内核参数以及⽤户限制
主要命令有 ulimit -a 当前bash有效果的设置为 ulimit -s 但是不建议使⽤
建议直接修改内核的参数设置:vim /etc/f
产品测试过程中 需要添加的参数主要为:
⽐较核⼼的⼀个是 nofile ⼀个进程可以打开的⽂件描述符数量 还有 nproc⼀个进程能够打开的⼦进程数量#
2.3 基本命令操作说明基本命令:
ls 列出所有⽂件
ll 列出相信⽂件信息与ls -l 命令相同.
cd 切换⽬录
mkdir 创建⽂件夹
find 查⽂件.| 管道命令
df 显⽰磁盘使⽤情况
du 显⽰当前⽬录⽂件⼤⼩信息.
tar 压缩和解压缩命令
zip/unzip  进⾏zip⽂件的压缩/解压缩操作
# 注意如果压缩包⾥⾯包含中⽂ 必须使⽤ 如下命令才能够正常解压缩 unzip -O CP936 xxxx.zip
# 问题原因在zip 软件的bug 对utf8编码有问题.
chmod 修改⽂件权限
chown 修改⽂件属主
ps 展⽰存在的进程信息
lsof 查看打开的⽂件后者是端⼝
scp  复制⽂件, 如果使⽤ user@ip:/ 的⽬的地址 可以远程复制.
rsync 同步⽂件,已经存在的相同⽂件不进⾏复制,提供同步效率.
⽂本编辑
vi/vim 最常见的编辑器之⼀,主要是分为三个模式  命令模式-编辑模式-底线命令模式
最常⽤的⽤法: vim filename 打开⽂件进⼊命令模式->输⼊"i" ⼩写键盘字符i符号进⼊编辑模式->编辑完成使⽤键盘上⾯的 "esc"按键 退出到命令模式->输⼊":" 键盘符号 进⼊底线命令模式,输⼊wq (write and quit)保存⽂件.
三剑客
sed 流编辑命令
awk 能够根据规则打印部分⽂件内容.
grep 进⾏过滤操作
⽂件重定向
> 将命令结果重定向其他⽅式.
>> 增量的⽅式添加⽂件 ⽽不是全量覆盖.
后台运⾏命令
nohup yourcommand &
服务操作命令
systemctl systemd的控制命令.
systemctl restart  重启服务
systemctl status  查看服务状态
systemctl enable  将服务设置为开机启动.
安装包命令:
yum install  在线安装
yum localinstall  安装下载到本地⽬录的rpm包.
yum remove 删除已经安装的包
yum makecache 创建缓存.
注意 yum 安装能够使⽤ repo仓库直接下载依赖的rpm包同步进⾏安装. 类似于k8s⾥⾯的 helm 也类似于nuget和maven的依赖管理处理.
rpm -ivh xxxx.rpm 安装具体⽬录下⾯的 rpm包
挂载命令
mount -t cifs -o username=username,password=yourpasswords //linuxip/patches/已测补丁/Cloud3.0/ /已测补丁/
注意
1). 需要先mkdir 创建 /已测补丁 ⽬录才可⾏.
2). 注意如果服务器是2003 以及⽐较早的操作系统, 需要添加 vers=1.0 的参数才可以. 因为win2003的cifs服务版本⽐较低.部分组合命令:
1. 查看所有的dotnet进程,并且将dotnet进程杀死
ps -ef |grep dotnet  |grep -v grep |awk '{print $2}'|xargs kill -9
等效于 killall  dotnet
2. ⽐较两个⽂件夹的不同,并且将不通的⽂件包含⽂件⽬录信息也保存下来
第⼀个:/add 是包含新⽂件的
第⼆个: /yourapp 是未更新新⽂件的
第三个: /add 是获取新⽂件的基准⽬录
vim编辑器下载与安装
第三个: /addup 是两个⽂件夹对⽐出来的新⽂件.
rsync --dry-run -rcnC --out-format="%n"  /add/  /yourapp/ |grep -v "/$"|xargs -I{} rsync -R /add/./{} /addup/
3. 后台⽅式运⾏服务,并且将输出重定向到其他⽬录
cd /yourcommandpath
nohup ./yourcommand.sh >/yourpath/yourlog.log 2>&1 &
3. 测试环境管理防⽕墙等操作1. CentOS 使⽤的是 iptables 防⽕墙 6时代 直接使⽤ iptables 命令进⾏防⽕墙的设置 7时代 使⽤
了 firewalld的操作.
可以讲端⼝进⾏设置,添加⽩名单等操作.
测试环境⽐较简单  可以直接关闭处理
设置开机不启动以及管理防⽕墙的命令
systemctl disable firewalld && systemctl  stop firewalld
2. 关闭selinux Security enhance linux是redhat给linux增加的安全增强处理.测试环境可以直接关闭掉
⽅法:
可以使⽤ sed -i 的⽅式处理 ⽐如:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
但是建议可以使⽤ vim 进⾏⼀次简单的联系, 来提⾼熟练程度.
这⾥要说明⼀下, ⼀定要注意 windows的编码格式与linux的不同 有时候会导致提⽰⽂件加载失败,或者是命令⽆法启动. 可以使⽤vim 的命令来修改⽂件的编码格式.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。