Linux练习4
1、查找/var目录下不属于root、lp、gdm的所有文件
find /var ! -user root ! -user gdm ! -user lp | xargs ls -dl | more
2、统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和sed两种方法分别实现)
grep -Eo "[a-zA-Z]+" /etc/init.d/functions |sort|uniq -c|sort -nr
sed -r 's/[^a-zA-Z]+/\n/g' /etc/init.d/functions|sed '/^\s*$/d'|sort |uniq -c |sort -nr
注意sed使用-n参数显示输出的结果与grep会出现不同,使用以下指令会出现fi统计数据缺少
sed -nr 's/[^a-zA-Z]+/\n/gp' /etc/init.d/functions|sed '/^\s*$/d'|sort |uniq -c |sort -nr
·
3、利用sed取出ifconfig命令中本机的IPv4地址
方法1:
CenOS7
ifconfig ens33| sed -n '/inet .* netmask/p'| sed -nr 's/inet (.*) netmask.*$/\1/p' |tr -s " " :|cut -d: -f2|head -1
Cenos 6.1
ifconfig eth0| sed -n '/inet addr:.* Bcast/p'| sed -n -r 's/inet addr:(.*) Bcast.*$/\1/p'|tr -s " " :|cut -d: -f2| head -1
方法2:
centos6中更换网卡名称就行了。
ifconfig ens33|sed -nr '2!d;s/.*inet (addr:)?//;s/ .*//p'
4、总结yum的配置和使用,包括yum仓库的创建
YUM: Yellowdog Update Modifier,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具
yum repository: yum repo,存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下)
客户端配置文件指定对应服务器访问方式如下几种
http://
https://
ftp://
file://
YUM的主配置 /etc/yum.conf
YUM仓库配置 /etc/yum.repos.d/*.repo
配置本地YUM源:
移除/etc/yum.repos.d/*.repo下文件
挂载光盘,并找到光盘的repodata路径,该文件夹的上一级目录就是yum的目录
vim /etc/yum.repos.d/local.repo
[yumname] # 名称,不能有空格
name=local yum # yum仓库的名字
baseurl=file:///mnt/ # repoodata的上一级目录
gpgcheck=0 # 忽略检查
搭建基于http的yum本地仓库服务器
1.安装httpd服务
2.设置yum路径为http路径
mkdir -p /var/www/html/centos/{6,7}/os/x86_64/
3.把安装光盘目录挂载到以上目录
mount /dev/cdrom /var/www/html/centos/7/os/x86_64/
4.修改repo文件
baseurl=http://10.0.0.201/centos/$releasever/os/$basearch/
5.另一种写法
在/var/www/html/下新建repo.txt文件
repo.txt文件中添加
mirrorlist=http://10.0.0.201/repo.txt
file:///mnt/
http://10.0.0.201/centos/$releasever/os/$basearch/
自建yum仓库
1.创建db目录
mkdir /data/repodb
2.复制rpm包到db目录
cp /mnt/Packages/tree-1.6.repo /data/repodb
3.使用createrepo命令创建
createrepo /data/repodb/
4.在/etc/yum.repo.d/下.repo中添加路径
vim /etc/yum.repos.d/test.repo
[test]
name=test #yum仓库的名字
baseurl=file:///yum/repo #仓库路径,由于是放在本地的只能用file协议而不是http
enabled=1 #开启该仓库
gpgcheck=0 #忽略检查
YUM命令总结
yum install # 安装
yum remove # 卸载
yum groupinstall # 组安装
yum groupremove # 组卸载
yum list # 显示所有包
yum clean all # 清除缓存
yum makecache # 建立缓存
yum history # YUM安装历史
yum history undo 序号 # 通过历史撤销
yum history redo 序号 # 通过历史取消撤销操作
yum provides # 反向查询命令属于哪个yum包
5、编写系统初始化脚本 reset.sh包括别名提示符颜色,yum仓库配置文件
#!/bin/bash
c="alias cdnet='cd /etc/sysconfig/network-scripts/'"
a="alias ednet='vim /etc/sysconfig/network-scripts/ifcfg-ens33'"
echo $c >> /root/.bashrc
echo $a >> /root/.bashrc
source /root/.bashrc
echo -e "PS1=\"\e[33m[\u@\h \W]\$\e[m\"" > /etc/profile.d/env.sh
source /etc/profile.d/env.sh
echo 'PATH=/data/bin:$PATH' > /etc/profile.d/input.sh
source /etc/profile.d/input.sh
chmod +x /etc/profile.d/*
yum -q -y install autofs
systemctl enable autofs
systemctl start autofs
ls /misc/cd
[ -d /etc/yum.repos.d/bak ] && echo "yes" exit || mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
touch /etc/yum.repos.d/base.repo
echo -e "[base]\nname=cdrom\nbaseurl=file:///misc/cd\ngpgcheck=0" >>/etc/yum.repos.d/base.repo
#!/bin/bash
c="alias cdnet='cd /etc/sysconfig/network-scripts/'"
a="alias ednet='vim /etc/sysconfig/network-scripts/ifcfg-ens33'"
echo $c >> /root/.bashrc
echo $a >> /root/.bashrc
source /root/.bashrc
echo -e "PS1=\"\e[33m[\u@\h \W]\$\e[m\"" > /etc/profile.d/env.sh
source /etc/profile.d/env.sh
echo 'PATH=/data/bin:$PATH' > /etc/profile.d/input.sh
source /etc/profile.d/input.sh
chmod +x /etc/profile.d/*
mkdir /data/base
mount /dev/sr0 /data/base
[ -d /etc/yum.repos.d/bak ] && echo "yes" exit || mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
touch /etc/yum.repos.d/base.repo
echo -e "[base]\nname=cdrom\nbaseurl=file:///data/base\ngpgcheck=0"
>>/etc/yum.repos.d/base.repo
6、安装tree,ftp,lftp,telnet等包
yum install tree ftp lftp telnet
7、在CentOS7上编译安装apache2.4源码包,并启动此服务
a.检查编译安装需要的包组是否安装
检查apache编译依赖的程序组件及相关软件环境正常安装
yum grouplist
若未安装则进行安装
yum groupinstall Development tools
确定APR与APR-Util、PCRE(Perl-Compatible Regular Expressions Library )、GCC或其他的标准C编译环境均正常安装,确定磁盘空间达到50MB以上 ,检查Perl5解释器达到V5.003以上版本。
rpm -q apr-devel
rpm -q apr-util-devel
rpm -q pcre-devel
rpm -q openssl-devel
若未安装则执行如下操作
yum install apr-devel #安装APR开发组包
yum install apr-util-devel #安装APR-Util开发组包
yum install pcre-devel #安装PCRE开发组包
yum install openssl-devel #安装SSl安全链接服务开发组包
小贴士:通常开发组包名称都是以 “组件名称-devel”构成
b.创建启动apache服务需要的用户httpd用户组http,设置相关的家目录并赋权
useradd -r -u 80 -d /data/www -s /sbin/nologin httpduseradd -r -u 80 -d /data/www -s /sbin/nologin httpd
c.下载、解压、编译、安装并执行apache组件
#下载软件包
wget https://www.apache.org/dist/httpd/httpd-2.4.39.tar.bz2
#解压软件包
tar xvf httpd-2.4.39.tar.bz2
进入软件源码目录
cd httpd-2.4.39
阅读软件说明安装说明及编译帮助
cat README
cat INSTALL
./configure --help
#设置默认安装目录为/app/httpd默认配置文件存储目录为/etc/httpd24(apache组件默认安目录为PREFIX/etc), 打开服务SSL/TSL(mod_ssl)
./configure --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl
#设置程序安装目录路径到系统文件路径参数中
echo 'PATH=/app/httpd/bin:$PATH' > /etc/profile.d/httpd.sh
./etc/profile.d/httpd.sh
#导入帮助手册
编辑/etc/man.config|man_db.conf文件添加一个MANPATH
vim /etc/man.config
#修改配置文件将httpd设置为默认服务启动用户、用户组
vim /etc/httpd24/httpd.conf
默认首页为PREFIX/htdocs目录下index.html,如果需要可对其内容进行修改
#启动apache服务
apacecrl start
#停止apache服务
apache stop