防火墙相关
firewall防火墙
系统自带其实CentOS-7.x
里面的防火墙还是firewall
,并且还是iptables
的工具,只是在上层包装了更高级的 firewalld
服务,但是我们只是一个应用服务器,而firewalld
给我们定义了各种策略.
firewall-cmd --state
#查看防火墙状态
systemctl start firewalld
# 启动
systemctl stop firewalld
# 关闭
systemctl enable firewalld
# 开机启动
systemctl disable firewalld
# 取消开机启动
firewall-cmd --permanent --list-port
#查看已开启的所有端口
firewall-cmd --add-port=8080/tcp --permanent
#永久开放端口
firewall-cmd --zone=public--remove-port=80/tcp --permanent
#关闭端口
firewall-cmd --reload
#重新加载生效开放的端口
iptables防火墙
yum update iptables
#升级iptables
yum install iptables-services #
安装iptables-services
service iptable status
#查看防火墙状态
servcie iptables stop
#临时关闭防火墙
service iptables start
#临时启动防火墙
service iptables restart
#重启防火墙
chkconfig iptables off
#永久关闭防火墙
chkconfig iptables on
#永久开启防火墙
systemctl start iptables
#启动
systemctl status iptables
#查看运行状态
systemctl restart iptables.service
#重启
systemctl stop iptables.service
#停止
systemctl enable iptables.service
#设置开机启动
systemctl disable iptables.service
#禁止开机启动
iptables -h
#查询帮助
iptables -L -n
#列出(filter表)所有规则
iptables -L -n --line-number
#列出(filter表)所有规则,带编号
iptables -L -n -t nat
#列出(nat表)所有规则
iptables -F
#清除(filter表)中所有规则
iptables -F -t nat
#清除(nat表)中所有规则
service iptables save
#保存配置(保存配置后必须重启iptables)
常见用法:iptables -A INPUT ! -s 192.168.1.3 -j DROP
#禁止192.168.1.3 IP地址的所有类型数据接入
-A INPUT -p tcp --dport 80 -j ACCEPT
#开放80端口
端口-I INPUT -p tcp --dport 22:80 -j ACCEPT
#开22-80范围的端口
-I OUTPUT -p tcp --dport 80 -j DROP
#不允许80端口流出
高级用法1iptables -I INPUT 5 -m state --state NEW -s 192.168.100.0/24 -p tcp --dport 8080 -j ACCEPT
#允许192.168.100.0/24访问本机的TCP
高级用法2iptables -I INPUT 5 -m state --state NEW ! -s 172.16.50.0/24 -p tcp --dport 443 -j ACCEPT
#8080除了172.16.50.0/24网段,其他地址都能访问本地的443端口
高级用法3iptables -t nat -L -n | grep 80
#查看当前80端口的转发规则
iptables -t nat -D PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80
#删除当前80端口转发到8080端口的转发规则
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
#新增80到8080端口转发规则
端口相关
netstat -lntp
#查看监听(Listen)的端口
netstat -antp
#查看所有建立的TCP连接
iptables -L
#查看防火墙规则
route -n
#查看路由表
netstat -s
#查看网络统计信息
netstat -nap
#会列出所有正在使用的端口及关联的进程/应用
lsof -i :portnumber
#portnumber要用具体的端口号代替,可以直接列出该端口听使用进程/应用
netstat -lnp|grep 80
#检查端口被哪个进程占用,80换为需要的端口
netstat -aptn
#查看所有开启的端口号
netstat -nupl
#查看UDP类型端口
netstat -ntpl
#查看TCP类型端口
VIM编辑器
vim filename
#打开filename文件
i
#进入编辑状态
:q!
#退出编辑器,且不保存
:wq
#退出编辑器,且保存文件
Ctrl+b
#屏幕往后移动一页
Ctrl+f
#屏幕往前移动一页
Ctrl+u
#屏幕往后移动半页
Ctrl+d
#屏幕往前移动半页
shift+ctrl+V
#粘贴外部内容
dd
#删除光标所在的整行
u
#取消前一次的误操作
yy
#复制当前行
P
#粘贴复制的行
系统信息显示
arch
#显示机器的处理器架构1
uname -m
#显示机器的处理器架构2
uname -r
#显示正在使用的内核版本
dmidecode -q
#显示硬件系统部件 - (SMBIOS / DMI)
hdparm -i /dev/hda
#罗列一个磁盘的架构特性
hdparm -tT /dev/sda
#在磁盘上执行测试性读取操作
cat /proc/cpuinfo
#显示CPU info的信息
cat /proc/interrupts
#显示中断
cat /proc/meminfo
#校验内存使用
cat /proc/swaps
#显示哪些swap被使用
cat /proc/version
#显示内核的版本
cat /proc/net/dev
#显示网络适配器及统计
cat /proc/mounts
#显示已加载的文件系统
lspci -tv
#罗列 PCI 设备
lsusb -tv
#显示 USB 设备
date
#显示系统日期
文件和目录
cd /home
#进入 '/ home' 目录'
cd ..
#返回上一级目录
cd ../..
#返回上两级目录
cd
#进入个人的主目录
cd ~user1
#进入个人的主目录
cd -
#返回上次所在的目录
pwd
#显示工作路径
ls
#查看目录中的文件
ls -F
#查看目录中的文件
ls -l
#显示文件和目录的详细资料
ls -a
#显示隐藏文件
ls [0-9]
#显示包含数字的文件名和目录名
tree
#显示文件和目录由根目录开始的树形结构(1)
lstree
#显示文件和目录由根目录开始的树形结构(2)
mkdir dir1
#创建一个叫做 'dir1' 的目录'
mkdir dir1 dir2
#同时创建两个目录
mkdir -p /tmp/dir1/dir2
#创建一个目录树
rm -f file1
#删除一个叫做 'file1' 的文件'
rmdir dir1
#删除一个叫做 'dir1' 的目录'
rm -rf dir1
#删除一个叫做 'dir1' 的目录并同时删除其内容
rm -rf dir1 dir2
#同时删除两个目录及它们的内容
mv dir1 new_dir
#重命名/移动 一个目录
cp file1 file2
#复制一个文件
cp dir/* .
#复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 .
#复制一个目录到当前工作目录
cp -a dir1 dir2
#复制一个目录
搜索
find / -name file1
#从 '/' 开始进入根文件系统搜索名称为file1的文件和目录
find / -user user1
#搜索属于用户 'user1' 的文件和目录
find /home/user1 -name *.bin
#在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件
find /usr/bin -type f -atime +100
#搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10
#搜索在10天内被创建或者修改过的文件
find / -name *.rpm -exec chmod 755 '{}' ;
#搜索以 '.rpm' 结尾的文件并定义其权限
find / -xdev -name *.rpm 搜索以 '.rpm'
#结尾的文件,忽略光驱、捷盘等可移动设备
locate *.ps
#寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令
磁盘
df -lh
#显示已经挂载的分区列表
ls -lSr |more
#以尺寸大小排列文件和目录
du -sh dir1
#估算目录 'dir1' 已经使用的磁盘空间
du -sk * | sort -rn
#以容量大小为依据依次显示文件和目录的大小
用户
groupadd group_name
#创建一个新用户组
groupdel group_name
#删除一个用户组
groupmod -n new_group_name old_group_name
#重命名一个用户组
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1
#创建一个属于 "admin" 用户组的用户
useradd user1
#创建一个新用户
userdel -r user1
#删除一个用户 ( '-r' 排除主目录)
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1
#修改用户属性
passwd user1
#修改一个用户的口令 (只允许root执行)
chage -E 2005-12-31 user1
#设置用户口令的失效期限
权限
ll
#显示权限
ls /tmp | pr -T5 -W$COLUMNS
#将终端划分成5栏显示
chmod ugo+rwx directory1
#设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限
chmod go-rwx directory1
#删除群组(g)与其他人(o)对目录的读写执行权限
chown user1 file1
#改变一个文件的所有人属性
chown -R user1 directory1
#改变一个目录的所有人属性并同时改变改目录下所有文件的属性
Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他,利用 chmod 可以藉以控制档案如何被他人所调用
参数mode
#权限设定字串,格式如下 : ugoa…[rwxX]…][,…]
u
#表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是+
#表示增加权限、- 表示取消权限、= 表示唯一设定权限
r
#表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行
-c
#若该档案权限确实已经更改,才显示其更改动作
-f
#若该档案权限无法被更改也不要显示错误讯息
-v
#显示权限变更的详细资料
-R
#对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
chmod ugo+r file1.txt
#将档案 file1.txt 设为所有人皆可读取
chmod a+r file1.txt
#将档案 file1.txt 设为所有人皆可读取
chmod ug+w,o-w file1.txt file2.txt
#将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入
chmod u+x ex1.py
#将 ex1.py 设定为只有该档案拥有者可以执行
chmod也可以用数字来表示权限如 chmod 777 file
语法为:chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7
若要rw-属性则4+2=6
若要r-x属性则4+1=5
例:chmod a=rwx file
#和 chmod 777 file 效果相同
chmod ug=rwx,o=x file
#和 chmod 771 file 效果相同
解读:-rw------- (600)
# 只有属主有读写权限-rw-r–r-- (644)
#只有属主有读写权限;而属组用户和其他用户只有读权限-rwx------ (700)
#只有属主有读、写、执行权限-rwxr-xr-x (755)
# 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限-rwx–x--x (711)
#属主有读、写、执行权限;而属组用户和其他用户只有执行权限-rw-rw-rw- (666)
#所有用户都有文件读、写权限。这种做法不可取-rwxrwxrwx (777)
#所有用户都有读、写、执行权限。更不可取的做法
chgrp group1 file1
#改变文件的群组
chown user1:group1 file1
#改变一个文件的所有人和群组属性
chattr +a file1
#只允许以追加方式读写文件
chattr +c file1
#允许这个文件能被内核自动压缩/解压
chattr +d file1
#在进行文件系统备份时,dump程序将忽略这个文件
chattr +i file1
#设置成不可变的文件,不能被删除、修改、重命名或者链接
chattr +s file1
#允许一个文件被安全地删除
chattr +S file1
#一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
chattr +u file1
#若文件被删除,系统会允许你在以后恢复这个被删除的文件
lsattr
#显示特殊的属性
打包和压缩
tar命令tar -czvf home.tar.gz home
#打包并压缩名称为home的文件夹在当前目录下tar -xzvf home.tar.gz
#解压home压缩包在当前目录下tar -czvf 111.tar.gz yz home
#打包并压缩yz和home两个文件夹在当前目录下tar -tf bdir.tar.gz
#只是查看这个包里的内容
zip命令
有些服务器没有安装zip
包执行不了zip
命令,可以自行安装zip -q -r yz.zip yz
#打包并压缩名称为yz文件夹到当前目录下unzip yz.zip
#解压包在当前目录下
可选参数-c
将解压缩的结果-l
显示压缩文件内所包含的文件-p
与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换-t
检查压缩文件是否正确-u
与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其它文件解压缩到目录中-v
执行是时显示详细的信息-z
仅显示压缩文件的备注文字-a
对文本文件进行必要的字符转换-b
不要对文本文件进行字符转换-C
压缩文件中的文件名称区分大小写
YUM 软件包
yum install package_name
#下载并安装一个rpm包
yum localinstall package_name.rpm
#将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系
yum update package_name.rpm
#更新当前系统中所有安装的rpm包
yum update package_name
#更新一个rpm包
yum remove package_name
#删除一个rpm包
yum list
#列出当前系统中安装的所有包
yum search package_name
#在rpm仓库中搜寻软件包
yum clean packages
#清理rpm缓存删除下载的包
yum clean headers
#删除所有头文件
yum clean all
#删除所有缓存的包和头文件
备份
dump -0aj -f /tmp/home0.bak /home
#制作一个 '/home' 目录的完整备份
dump -1aj -f /tmp/home0.bak /home
#制作一个 '/home' 目录的交互式备份
restore -if /tmp/home0.bak
#还原一个交互式备份
rsync -rogpav --delete /home /tmp
#同步两边的目录
rsync -rogpav -e ssh --delete /home ip_address:/tmp
#通过SSH通道rsync
rsync -az -e ssh --delete ip_addr:/home/public /home/local
#通过ssh和压缩将一个远程目录同步到本地目录
rsync -az -e ssh --delete /home/local ip_addr:/home/public
#通过ssh和压缩将本地目录同步到远程目录
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz'
#通过ssh在远程主机上执行一次备份本地磁盘的操作
dd if=/dev/sda of=/tmp/file1
#备份磁盘内容到一个文件
网络
ifconfig
#查询、设置网卡与IP网络等相关参数
route del [-net|-host] [网络或主机] netmask [mask] [gw|dev]
#查看、配置路由表
route add 10.30.1.0 mask 255.255.255.0 10.100.1.254
#添加目标网段10.30.1.0/24通过10.100.1.254这个网关出去。route delete 10.30.1.0 mask 255.255.255.0 10.100.1.254
#删除目标网段10.30.1.0/24通过10.100.1.254这个网关出去。
不想写了