系统操作
shell脚本
sh [选项] 命令字符串或者shell脚本
常见选项:
-c :command 后面跟一个字符串,这个字符串可以是我们平常执行的任何命令,有参数选项时一定要用引号括起来
-x :后面跟shell脚本,可以详细的显示shell脚本的执行信息
如 sh -c "ls -l"等价于 ls -l
系统信息
# 查看内核版本
cat /proc/version 或 uname -a
# redhat系查看发行版本
cat /etc/redhat-release
# 适用所有版本查看发行版本,存在未安装这个命令的情况,
lsb_release -a
# lsb_release安装:查看lsb_release属于哪个软件包,得到redhat-lsb,安装之
yum provides */lsb_release
yum -y install redhat-lsb*
# cpu信息
lscpu
# 主机名
hostname
# 修改主机名
hostnamectl set-hostname your-new-host-name
# 查看修改结果
hostnamectl status
# 设置 hostname 解析
echo "127.0.0.1 $(hostname)" >> /etc/hosts
进程操作
ps 用于报告当前系统的进程状态,可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。可以搭配 kill 指令随时中断、删除不必要的程序。
最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作
ps aux | grep java
ps -ef |grep tomcat
# 显示出所有的java进程,并排除当前的grep进程
ps -ef|grep java|grep -v grep
# 通过进程标识号终止进程
kill -9 324
# 按照进程名终止进程
killall -9 NAME
#设置进程的oom_score_adj(OOM建议值)值为 -1000 时,系统将会禁止 OOM killer 杀死此进程
ps -ef | grep java | grep xxx-server | grep port=10007 | grep -v grep | awk '{print $2}' | xargs -I % sh -c "echo -1000 > /proc/%/oom_score_adj"
网络
# 网络路由信息查看,其中default后是机器的默认网卡
ip route show
# 网卡与IP关联信息
ip address
# 查看自己的IP地址
ifconfig -a
# 查看路由表
netstat -rn
# 查看端口是不是被占用了
#查看指定端口的PID
netstat -an|grep 9001
#干掉指定PID的进程
kill -9 737304
(windows
#查看指定端口的PID
netstat -an|findstr 9708
#查看指定PID的服务
tasklist | findstr 2072
#干掉指定PID的进程
taskkill /pid 2072 -t -f)
文件与目录管理
# 文本查看
head 显示前n行
tail 显示结尾n行
cat 查看文件(文件过长不宜用cat查看,-f 参数可以显示文件更新信息)
wc 统计文件行数
# 文件授权,更改目录拥有者为oracle
chown -R oracle:oinstall /oracle/u01/app/oracle
# 改变文件的读写和执行权限。有符号法和八进制数字法
# 常用八进制法:chmod abc file 其中a,b,c各为一个八进制数字,分别表示User、Group、及Other的权限
4 (100) 表示可读;2 (010)表示可写。1 (001)表示可执行。若要rwx属性则4+2+1=7;若要rw-属性则4+2=6;若要r-x属性则4+1=5。
# 递归更改目录权限,本人可读写执行、同组用户可读可执行、其他用户可读可执行
# chmod -R 755 /home/oracle
#解压出jar包中指定文件
jar xf test-1.0.0.jar BOOT-INF/classes/config/application.yml
#查找jar包目录结构中的指定包名
jar ftv server-1.0.0-RELEASE.jar | grep data
# 读取标准输入并同时写入到标准输出和文件中去,-a 选项限定追加写入而非覆盖
ping google.com | tee -a output.txt
# 查找文件
find pathname [option] expression
find ./ -name '*abc*' -print
# 全局文件搜索
locate nginx.conf
用户及权限
# 查看当前登录的用户
users
# 显示都谁登录到机器上
who
# 显示当前终端上的用户名
whoami
# 查看当前登录用户的组内成员
groups
# -g:指定用户所属的群组;-G:指定用户所属的附加群组;
useradd -g oinstall -G dba oracle 创建Oracle用户
磁盘管理
# df 显示磁盘空间的使用情况,包括文件系统安装的目录名、块设备名、总字节数、已用字节数、剩余字节数占用百分比
# -h: 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式;-i:显示i -nodes的使用量
df -hi
# 查询档案或目录的磁盘使用空间
# 只显示该目录的总合
du -sh /etc
系统管理
搜索管道
grep 全面搜索正则表达式并把行打印出来.
# 从多个文件中搜索关键字match_pattern,单文件搜索关键字可缺省引号
grep "match_pattern" file1_name,file2_name,file3_name
# 利用 -v选项 输出除match_pattern外的所有行
grep -v “match_patern” file_name
# 标记匹配颜色
grep "match_pattern" file_name --color=auto
# -E选项 使用正则表达式 ,-o选项 只输出文件中匹配到的部分
grep -o-E "[1-9]+" 或者 egrep "[1-9]+"
# -c 选项统计文件或者文本中包含匹配字符串的行数
grep -c "text" file_name
# 忽略匹配样式中的字符大小写
grep -i 'java*' ./test/run.sh
安全监控
1、firewalld的基本使用
启动: systemctl start firewalld
查看状态: systemctl status firewalld
禁用,禁止开机启动: systemctl disable firewalld
停止运行: systemctl stop firewalld
2.配置firewalld-cmd
查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
更新防火墙规则,重启服务: firewall-cmd --completely-reload
查看已激活的Zone信息: firewall-cmd --get-active-zones
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic
3.信任级别,通过Zone的值指定
drop: 丢弃所有进入的包,而不给出任何响应
block: 拒绝所有外部发起的连接,允许内部发起的连接
public: 允许指定的进入连接
external: 同上,对伪装的进入连接,一般用于路由转发
dmz: 允许受限制的进入连接
work: 允许受信任的计算机被限制的进入连接,类似 workgroup
home: 同上,类似 homegroup
internal: 同上,范围针对所有互联网用户
trusted: 信任所有连接
4.firewall开启和关闭端口
以下都是指在public的zone下的操作,不同的Zone只要改变Zone后面的值就可以
添加:
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
重新载入:
firewall-cmd --reload
查看:
firewall-cmd --zone=public --query-port=80/tcp
删除:
firewall-cmd --zone=public --remove-port=80/tcp --permanent
5.管理服务
以smtp服务为例, 添加到work zone
添加:
firewall-cmd --zone=work --add-service=smtp
查看:
firewall-cmd --zone=work --query-service=smtp
删除:
firewall-cmd --zone=work --remove-service=smtp
5.配置 IP 地址伪装
查看:
firewall-cmd --zone=external --query-masquerade
打开:
firewall-cmd --zone=external --add-masquerade
关闭:
firewall-cmd --zone=external --remove-masquerade
6.端口转发
打开端口转发,首先需要打开IP地址伪装
firewall-cmd --zone=external --add-masquerade
转发 tcp 22 端口至 3753:
firewall-cmd --zone=external --add-forward-port=22:porto=tcp:toport=3753
转发端口数据至另一个IP的相同端口:
firewall-cmd --zone=external --add-forward-port=22:porto=tcp:toaddr=192.168.1.112
转发端口数据至另一个IP的 3753 端口:
firewall-cmd --zone=external --add-forward-port=22:porto=tcp::toport=3753:toaddr=192.168.1.112
6.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
Shell