安装CentOS 6.9
64位
[root@xiyangyang Desktop]#
[当前登录用户名称
@主机名称
当前所在路径
]
目录 == 文件夹
cd
===> change directory… 返回上一-级目录
pwd
===> 列出当前所在目录路径
Is
===> list 列出当前目录中的内容
/
===> 操作系统的启示路径根路径
/bin
===> 普通用户和管理员都可以执行的命令字
/sbin
===> 只有管理员才能执行的命令关机重启
/boot
===> 引导主引导目录独立的分区启动菜单内核
/dev
===> device设备设备文件存放目录
/etc
===> 配置文件存放目录
/home
===> 普通用户的家目录
/root
===> 管理员的家目录
/media
===> 光驱的挂在目录
/mnt
===> 临时设备挂载目录
/proc
===> 里面的数据都在内存中
/usr
===> 软件的安装目录
/var
===> 常变文件的存放目录 日志文件 邮件文件
安装vmware:实现虚拟机和真实机之间的文件复制
tab功能:命令字和以存在的文件名称补齐的作用
清除屏幕内容:ctrl+l
中止快捷键:ctrl+c
不同颜色文件类型
蓝色 --------------> 目录,即文件夹
黑色 --------------> 普通文件
浅蓝色 ------------> 符号连接(快捷方式)
黑底黄字 ----------> 设备文件
绿色 --------------> 有执行权限的文件
红色 --------------> 压缩包
紫色 --------------> 图片、模块等
|s
命令 cat
命令 class1
剪切文件
修改名字 /tmp
拷贝文件ln -s /tmp/p /root/Desktop/
符号链接(前面是源文件,后面是目标文件)rm -
强制删除文件rm -rf class
强制删除目录帮助手册:man ls
退出帮助手册::q
-a 显示隐藏文件
-l 显示文件的详细信息
-lh 显示文件大小
-R 递归显示
内部命令: 利用 help cd
外部命令: 安装的第三方软件带的命令,基本都有帮助手册
。
1. dd if=/dev/zero of=/tmp/bigfile bs=1M count=100
inputfile输入文件
outputfile输出文件
bs单位
count计数器2. gzip 文件名称 ------> 压缩文件
3. gunzip 压缩包 ------> 解压缩4. bzip2 文件名称 ------> 压缩
5. bunzip2 压缩包 ------> 解压缩6. 如何对目录进行打包压缩
tar -cf /tmp/allfile.tar /tmp/allfile
tar-jcf/tmp/allfile.tar.bz2 /tmp/allfile
tar-jxf/tmp/allfile.tar.bz2 -c /root-x解包
-C指定解压路径
-Z gzip
j bzip2
命令模式有非常多的快速编辑快捷键
2yy 复制当前行及下一-行
p 粘贴到当前行下
dd 删除当前行
gg 回到第一行
G 回到最后一行
50G 到达第50行,可以进行行间跳转
源码包
封装后的软件包:安装便捷
rmp ------> red hat package manager
deb ------> Debian
源码包不考虑系统的版本
针对tree-1.5.3-3.el6.x86_64.rpm 安装的注意事项
安装系统时候安装的软件版:/media下面
rpm -qa
列出所有已经安装过的rpm软件包
rpm -qpi
列出软件的详细信息
rpm -qpl
列出软件的安装路径
rpm -ivh
安装软件
rpm -e
卸载软件
yum安装和卸载
/etc/passwd 保存了操作系统中所有用户的信息,一共34个用户
/etc/shadow
/etc/group
(1) 建立一个名为class1的组,组id为1000,class2的组id2000
groupadd class1
cat etc/group
groupmod -g 1000 class1
groupadd -g 2000 class2
(2) 建立tom用户要求其基本组是class1组,附加组为class2组,tom用户的uid为600
useradd -g class1 tom
id tom
usermod -G 2000 -u 600 tom
id tom
(3) 建立一个程序用户uid为250用户名为testuser没有家目录
useradd -u 250 -M -s /sbin/nologin testuser //-M表示没有家目录
(4) 为tom用户设定密码为123,并设定密码最长有效期为90将用户密码进行锁定使其无法登录系统
passwd tom //修改密码
123
123
cat /etc/shadow
chage -M 90 tom //修改密码最长有效期
id tom
passwd -S tom //查看密码状态
passwd -l tom //密码锁定
passwd -u tom //密码锁定解锁
(5) 删除tom用户和testuser用户,删除class1组和2组
userdel -r testuser
userdel -r tom
groupdel class1
groupdel class2
权限:文件或目录属于谁,属于哪个组。不同的用户对该文件进行何种操作。
(1) 查看文件权限
ls - //查看文件权限
ls -ld testdir/ //查看目录权限
头十位字符表示含义:
第1位:表示文档类型,取值常见的有“d表示文件夹”、“-表示文件”、“l表示软连接”、“s表示套接字”、“c表示字符设备”、“b表示块状设备”等等;
第2-4位:表示文档属主用户权限-----------------------------------------------------------| r w x ||文件:read读取文件 write写入文件 可执行权限 ||目录:可以查看目录内容 可以增删文件 可以进入目录 ||---------------------------------------------------------|举例:chmod 用户(u/g/o/a) 算数运算符(-+=) 权限(rwx) 文件chown 用户 文件 //将指定文件的拥有者改为指定的用户或组chgrp 组 文件 //改变文件或目录所属的用户组第5-7位:表示属组用户权限
第8-10位:表示other用权限
其中:rwx分别表示读、写、执行权限;没有对应权限就用“–”代替。
(2) 文件赋权限(8进制转换法)
chmod
-----------------------
| 0 000 --- |
| 1 001 --x |
| 2 010 -w- |
| 3 011 -wx |
| 4 100 r-- |
| 5 101 r-x |
| 6 110 rw- |
| 7 111 rwx |----------------------
(3) 粘滞位 sgid suid 权限
chmod o+t test
增加粘滞位chmod g+s test
所属组继承父目录的所属组,通过ll -d test
查看ll /etc/passwd
ll /etc/shadow【root用户】
ll /usr/bin/vim
chmod u+s /usr/bin/vim
【普通用户】
vim /etc/shadow //删掉aaa用户的密码,保存退出,"su - aaa" 登录的时候,无需输入密码
【撤销】 chmod g-s,o-t test
chmod u-s /usr/bin/vim
【操作系统命名字】 find /usr/bin perm 4755
ahattr
不再允许添加用户/etc/passwd
/etc/shadow
锁定:chattr +i /etc/passwd /etc/shadow
撤销:chattr +i /etc/passwd /etc/shadow
文件最高权限:666 - 022 = 644
目录最高权限:0777 - 0022 = 755
/etc/profile
/etc/bashrc
修改文件 vim /etc/login.defs
查看网络地址配置:ip addr
ethernet 0
表示第一个网卡,ethernet 1
表示第二个网卡
eth0 00:0c:29:bb:24:75
eth1 00:0c:29:bb:24:7f
service NetworkManager stop
chkconfig --level 345 NetworkManager off
ip addr add 192.168.0.100/24 dev eth0
ip link set eth0 up
ip route add default via 192.168.86.1
,通过 ip route
查看是否设置成功vim /f
cd /etc/sysconfig/network-scripts/
ls
vim ifcfg-eth0
配置内容如下
DEVICE=eth0 //网卡设备名称
TYPE=Ethernet //类型
ONB0OT=yes //是否允许network服务管理
BOOTPROTO=static //静态获取
IPADDR=192.168.1.254
NETMASK=255.255.255.0
另外一个网卡
DEVICE=eth1 //网卡设备名称
TYPE=Ethernet //类型
ONB0OT=yes //是否允许network服务管理
BOOTPROTO=static //静态获取
IPADDR=172.16.1.254
NETMASK=255.255.255.0
GATEWAY=202.106.0.20
IP网络配置生效:/etc/init.d/network restart
重启网络服务:service network restart
检查配置:ip addr
vim /f
net.ipv4.ip_forward = 1
0代表不转发,1代表转发
sysctl -p
使路由转发功能生效
iptables -nL
查看路由转发配置
命令:setup
cd /var/log
messages
)、登录日志(secure
)、程序日志()vim /f
f
logger - "===test==="
cat /var/log/secure
跟踪日志文件:tail -f /var/log/secure
清空日志:echo “”>/var/log/secure
setenforce 0 //关闭防火墙服务
getenforce //查看是否关闭
service rsyslog restart //重启服务生效
vim /f
// f
# Provides TCP syslog reception
$ModLoad imtcp //用什么模块收
$InputTCPServerRun 514 //用什么端口收# 在后面追加接收的ip与存放位置
:fromhost-ip,isequal,"172.16.1.254" /var/log/client/172.16.1.254.log
service rsyslog restart
ss -antpl | grep 514
lamp平台 ------ > linux apache mysq| php
包匹配是否安装:rpm -qa grep httpd
service httpd start
ss -antpl | grep 80
/var/www/html/index.html
vim /etc/httpd/f
关掉标签限制 setenforce 0
mkdir /var/www/html/share
cp /etc/passwd /etc/shadow /var/www/html/share
//访问路径 192.168.1.254/share/ ,另存为 passwd 和 shadow文件,发现无法对 shadow 另存为,所以我们需要给shadow 加权限
chmod o+r shadow //加权限
//再次另存为shadow,发现可以另存为针对该攻击的防御,关闭索引功能--->共享目录
# Options Indexes FollowSymLinks //删掉该行的indexes,如下行所示
Options FollowSymLinks控制谁可以从该服务器获取内容,allow设置白名单,deny设置黑名单
# Order allow,deny
# Allow from all
Order allow,deny //先允许再拒绝
allow from 192.168.1.21 //允许来自这个ip的,allow from 192.168.1. 表示允许一个网段
配置生效:service httpd restart ,再次查看时候发现访问被拒绝。对页面进行加密(即加密目录),首先进行命令配置
htpasswd -c /etc/http/conf/httpuser tom
ll
cat httpuser
chmod -r httpuser //撤销权限
chmod -w httpuser
chmod u+r httpuser
chown apache httpuser
然后进行配置文件 vim /etc/httpd/f 配置
order allow,deny
allow from all
authtype basic
authname "please input username and password"
authuserfile /etc/httpd/conf/httpuser
require valid-user
配置完毕后,服务重启 /etc/init.d/httpd restart
再次访问网页发现,需要输入密码才能够访问网页
安装mysql: yum install mysql-server -y
设定用户名: service mysqld start
设定管理员密码:mysql admin -u root -p password "12346"
测试密码:mysql -u root -p
安装php: yum install php
输入y
安装php-mysql: yum install php-mysql
输入y
安装php-mbsring: yum install php-mbsring
,如果php-mbstring在第二张光盘中,则需要卸载第二张光盘 umount /dev/cdrom,点击电脑上的光驱,选择第二张光盘,点击确定,然后挂载第二张光盘 mount /dev/cdrom /media
,进入packages,cp php-mbstring-5.3.3-49.el6.x86 _64.rp m /root/Desktop/
,进入/root/Desktop/
,安装包 rpm -ivh php-mbstring-5.3.3-49.el6.x86_64.rpm
。
配置php配置文件vim /etc/php. ini
,开启短标记功能 short _open_ tag = on
。进入目录cd /var/www/html/
,创建index.php验证是否可以识别短标记。进入页面测试能够访问 192.168.1.254/index.php。
//index.php
<?
phpinfo();
?>
lnmp平台 ------ > linux nginx mysq| php
nginx web 支持庞大的并发访问
继apache之后的另一款在linux下被大量使用的web服务软件。Nignx的优势在于,稳定性
和低系统资源损耗
,并发连接的高处理能力
。一台物理服务器可处理30000~50000个并发请求。
[更替光盘]
umount /dev/cdrom //卸载第二张光盘
mount /dev/cdrom /media/ //挂载第一张光盘
vim /pos.po[dvdrom]
name="yum dvd rom'
#baseurl=file:/media/Centos 6.9 Final
baseurl=file:/media/
gpgcheck=0//编译安装之前确保已存在开发环境软件包
yum -y install pcre-devel zlib-devel
//创建运行用户和组
useradd -M -s /sbin/nologin nginx
//编译安装,prefix是安装位置,user用户身份,group组身份
# 主程序包拷贝到虚拟机中
tar zxf nginx-1.6.
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
make
make install
//判断是否安装成功
cd /usr/local/nginx
ls
/usr/local/nginx/sbin/nginx
启动脚本--t
选项可检查配置文件错误127.0.0.1
killall -s HUP nginx
重载killall -s QUIT nginx
停止killall php-fpm
或者 /usr/local/nginx/sbin/nginx -s stop
php-fpm
或者 /usr/local/nginx/sbin/nginx
ss -antpl | grep 8080
确认安装JDK(java development kit)java语言软件开发工具包,如果没有可以重新安装,java-version验证是否安装而且版本在1.7.0__80版本以上。
进入root目录:cd /usr/local/tomcat7/webapps/ROOT
root修改名字:cd..
mv RO0T/ ROOTBAK
编辑主页文件:新建ROOT->index.jsp
控制工具 iptables,有4个功能(表)。iptables -> Tables -> Chains -> Rules. 简单地讲,tables由chains组成,而chains又由rules组成。
iptables | 表介绍 | 链 |
---|---|---|
Filter表 | iptables的默认表 | INPUT、OUTPUT、FORWARD |
NAT表 | PREROUTING、POSTROUTING、OUTPUT链 | |
Mangle表 | 用于指定如何处理数据包。它能改变TCP头中的QoS位。 | PREROUTING、OUTPUT、FORWARD、INPUT、POSTROUTING |
Raw表 | 用于处理异常 | PREROUTING、OUTPUT |
INPUT链 – 处理来自外部的数据。
OUTPUT链 – 处理向外发送的数据。
FORWARD链 – 将数据转发到本机的其他网卡设备上。
watch -n1 iptables -t filter -nvL //查看规则
iptables -t filter -I INPUT -p tcp --dport 80 -j ACCEPT //添加规则
watch -n1 iptables -t filter -nvL //查看规则
语法构成:-iptables [-t 表名] 选项 [链名] [条件] [-j控制类型]
命令:iptables -t filter -i input -p icmp -j REJECT
注意事项
不指定表名时,默认指filter表
不指定链名时,默认指表内的所有链
除非设置链的默认策略,否则必须指定匹配条件
选项、链名、控制类型使用大写字母,其余均为小写
数据包的常见控制类型
-ACCEPT:允许通过
-DROP:直接丢弃,不给出任何回应
-REJECT:拒绝通过,必要时会给出提示
-LOG:记录日志信息,然后传给下一条规则继续匹配
添加规则:iptables -I FORWARD -s 0.0.0.0/0 -d 0.0.0.0/0 -j DROP
查看规则:iptables -t filter -nvL
watch -n1 iptables -t filter -nvL
查看nat表的状态:iptables -t nat -nvL
POSTROUTING:路由后规则
添加 nat 转换
iptables -t nat -A POSTROUTING -p tcp -o eth1 -s 192.168.1.0/24 -j SNAT --to-source 12.34.56.78 //添加转发记录
iptables -F FORWARD //清理FORWARD记录
iptables -nvL //查看记录iptables -t nat -A POSTROUTING -p tcp -o eth1 -s 192.168.1.0/24 -j MASQUERADE //由于拨号网络的ip地址随机,所以也写为随机
iptables -t nat -D POSTROUTING 1 //删除之前的转发记录
PREROUTING:路由前规则
iptables -t nat -A PREROUTING -i eth1 -d 12.34.56.80 -p tcp --dport 80 -j DNAT --to destination 192.168.1.1:9090 //当外网访12.34.56.80:80时,路由器将其转换为内网中192.168.1.1:9090
【要求】上午9点要求设定eth0网卡,ip:192.168.1.100/24 网关:192.168.1.254
下午2点要求设定eth0网卡.,ip:172.16.1.100/24 网关:172.16.254
echo “” > /etc/sysconfig/network-scripts/ifcfg-eth0 //清空ifcfg-et
cd /etc/sysconfig/network-scripts/
echo "DEVICE=eth0" >> ifcfg-eth0
echo "TYPE=Ethernet" >> ifcfg-eth0
echo "ONBOOT=yes" >> ifcfg-eth0
echo "BOOTPROT0=static" >> ifcfg-eth0
echo "IPADDR=192.168.1.100" >> ifcfg-eth0
echo "NETMASK=255.255.255.0" >> ifcfg-eth0
echo "GATEWAY=192.168.1.254" >> ifcfg-eth0
ifdown eth0
ifup eth0
//fixip1.sh
#!/bin/bash
cd /etc/sysconfig/network-scripts/
echo "DEVICE=eth0" > ifcfg-eth0
echo "TYPE=Ethernet" >> ifcfg-eth0
echo "ONBOOT=yes" >> ifcfg-eth0
echo "BOOTPROT0=static" >> ifcfg-eth0
echo "IPADDR=172.16.1.100" >> ifcfg-eth0
echo "NETMASK=255.255.255.0" >> ifcfg-eth0
echo "GATEWAY=192.168.1.254" >> ifcfg-eth0
ifdown eth0
ifup eth0
测试命令:read -p "pLease input ipaddr:" IP
【优化后的脚本】
//fixip2.sh
#!/bin/bash
read -p "pLease input ipaddr:" IP
read -p "pLease input netmask:" MASK
read -p "pLease input gateway:" WAY
cd /etc/sysconfig/network-scripts/
echo "DEVICE=eth0" > ifcfg-eth0
echo "TYPE=Ethernet" >> ifcfg-eth0
echo "ONBOOT=yes" >> ifcfg-eth0
echo "BOOTPROT0=static" >> ifcfg-eth0
echo "IPADDR=$IP" >> ifcfg-eth0
echo "NETMASK=$MASK" >> ifcfg-eth0
echo "GATEWAY=$WAY" >> ifcfg-eth0
ifdown eth0
ifup eth0
创建一个文件:vim if.sh
赋予执行权限:chmod +x if.sh
【单分支语句】
#!/bin/bash
if [3 -lt 5] //如果3小于5then echo "yes"
else then echo "no"
fi【自己输入】
#!/bin/bash
read -p "please input a name:" NUM
if [$NUM -lt 10] //如果3小于5then echo "lt"
elif [$NUM -eq 10]then echo "eq"
else echo"gt"
fi
【ping命令测试】
//
#!/bin/bash
if `ping -c2 -i0.2 -W2 12.34.56.77 &> /dev/null`
then echo "yes"
else echo "no"
fi
【交互式ping命令测试】
//
#!/bin/bash
read -p "please input ipaddr:" IP
if `ping -c2 -i0.2 -W2 $IP &> /dev/null`
then echo "$IP is up"
else echo "$IP is down"
fi
循环语句 for while,for
根据取值列表循环,while
根据条件进行循环。
#!/bin/bash
for i in {1..10}
doecho "hello"echo $i
done
#!/bin/bash
NUM=0
while [$NUM -lt 3]
dolet $NUM++ //NUM=NUM+1echo $NUM
done
/etc/sysconfig/network-scripts/ifcfg-eth0
,将 BOOTPROT0=static
修改为 BOOTPROT0=dhcp
,输入命令ifdown eth0
和ifup eth0
。通过 ip addr
查看ip。#!/bin/bash
NET=10.0.110.
for ip in {1..254}
doif `ping -c2 -i0.2 -W2 $NET$IP &> /dev/null`then echo -e "$NET$IP is 33[31mup 33[0m"else echo -e "$NET$IP ip 33[32mdown 33[0m"fi
done
#!/bin/bash
NET=10.0.110.
IP=200
while [$IP -lt 254]
dolet IP=IP+1if `ping -c2 -i0.2 -W2 $NET$IP &> /dev/null`then echo -e "$NET$IP is 33[31mup 33[0m"else echo -e "$NET$IP ip 33[32mdown 33[0m"fi
done
case $1 in //脚本后面跟的第1个词
redhat)echo "centos";; //结束符
centos)echo "redhat";; //结束符
*) //所有其他echo "Useage $0 {redhat |centos}"
esac
redhat(){echo centosreturn 0}
centos(){echo centosreturn 0}case $1 in //脚本后面跟的第1个词
redhat)redhat;; //结束符
centos)centos;; //结束符
*) //所有其他echo "Useage $0 {redhat |centos}"
esac
find /etc -name httpd
打开脚本:/etc/rc.d/init.d/httpd
#! /bin/bash
nginx=/usr/local/nginx/sbin/nginx
start( ){echo "nginx starting ....[OK]"$nginx
}
start
测试是否启动 ss -antpl | grep nginx
扩展状态命令
//nginxd
#! /bin/bash
nginx=/usr/local/nginx/sbin/nginx
start( ){echo "nginx starting ....[OK]"$nginx
}
status(){if `ss -antpl | grep nginx > /dev/null`then echo ""else echo ""fi
}
stop(){echo "nginx stoping ....[ok]"$nginx -s stop
}case $1 in
start)start;;
stop)stop;;
status)status;;
restart)stopstart;;
*)echo "Usage :$0 {start|stop|status|restart}"
esac
chkconfig --list | grep nginx
并没有过滤出来//nginxd
#! /bin/bash
# chkconfig: - 84 18
# description:nginx script
nginx=/usr/local/nginx/sbin/nginx
start( ){echo "nginx starting ....[OK]"$nginx
}
status(){if `ss -antpl | grep nginx > /dev/null`then echo ""else echo ""fi
}
stop(){echo "nginx stoping ....[ok]"$nginx -s stop
}case $1 in
start)start;;
stop)stop;;
status)status;;
restart)stopstart;;
*)echo "Usage :$0 {start|stop|status|restart}"
esac
运行命令:chkconfig --add nginxd
再次检查发现就没有问题了:chkconfig --list nginxd
修改nginxd在5级别:chkconfig --level 5 nginxd on
restart
reboot
如果80端口默认开启,说明配置设置成功
/etc/init.d/nginxd status
ss -antpl l grep 80
本文发布于:2024-01-31 06:32:16,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170665393926261.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |