Linux知识点补充
网络相关的操作:
修改ip : 使⽤命令⾏修改配置⽂件
vi /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO=static static 静态ip dhcp 动态ip none 不设置,默认静态ip HWADDR=00:0C:29:3D:B0:9B 电脑的mac地址,建议去掉 UUID=6f89eb5e-bff4-4f6b-a045-b7722bd188fc 电脑的UID 建议去掉 ONBOOT=yes 是否开机⾃动使⽤ nm_controlled=yes 设置network manager的参数,实时⽣效,修改后⽆需要重启⽹卡⽴即⽣效。建议删掉 IPADDR=192.168.10.111 NETMASK=255.255.255.0 或者 PREFIX=24 GATEWAY=192.168.10.2 #⽹段2任意,IP地址2固定,⽹段为vmnet8的设置的IP⽹段 DNS1=114.114.114.114 国内的DNS DNS2=8.8.8.8 ⾕歌的DNS defroute=yes 默认的路由 建议删掉 IPV4_FAILURE_FATAL=yes 如果为yes,则ipv4配置失败禁⽤设备 建议删掉
修改完毕之后记得重启网络:
# 重启网络服务
service network restart
# 防火墙的相关操作:
# eg: 关闭:
systemctl stop firewalld
#eg: 开启:
systemctl start firewalld
#eg: 查看状态:
systemctl status firewalld
#永久性的操作:
#关闭:
systemctl disable firewalld
#开启:
systemctl enable firewalld
#查看状态:
systemctl status firewalld
# 关闭NetWorkManager
# NetworkManager服务是管理和监控⽹络设置的守护进程,CentOS7更加注重使⽤NetworkManager服务来
# 实现⽹络的配置和管理它是⼀个动态的,事件驱动的⽹络管理服务。
systemctl status NetworkManager
systemctl start NetworkManager
systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl enable NetworkManager
网络通信:
ping:
# 命令路径:/bin/ping 执⾏权限:所有⽤户 # 作⽤:测试⽹络的连通性 # 语法:ping 选项 IP地址 # -c 指定发送次数 # ping 命令使⽤的是icmp协议,不占⽤端⼝ ping -c 3 127.0.0.1
ip addr
# interface configure 命令路径:/sbin/ifconfig 执⾏权限:root # 作⽤:查看和设置⽹卡⽹络配置 # 语法:ifconfig [-a][⽹卡设备标识] # -a: 显示所有⽹卡信息 ifconfig
netstat
# network statistics 命令路径:/bin/netstat 执⾏权限:所有⽤户 # 作⽤:主要⽤于检测主机的⽹络配置和状况 # -a (all)显示所有连接和监听端⼝ # -t (tcp)仅显示tcp相关选项 # -n 使⽤数字⽅式显示地址和端⼝号 # -p 显示socket的PID和进程的名字 netstat -tlnu 查看本机监听的端⼝ tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN netstat –antpl netstat -ntlp | grep httpd 查看某⼀个程序的端⼝信息 netstat -atnp | grep httpd netstat -atnp | grep 80 查看端⼝
修改主机名
hostname 主机名 # 主机名临时生效 #永久生效 hostnamectl set-hostname qianfeng01 #修改主机名和ip地址之间的映射关系 #执⾏ vim /etc/hosts 进⼊hosts⽂件,加⼊代码 #主机ip 主机名 192.168.10.111 node01 192.168.10.112 node02 192.168.10.113 node03 #最好让主机名字,虚拟机名字,⽹络连接名字保持⼀致
进程管理
进程和程序的区别 :
-
程序是静态概念,本身作为⼀种软件资源⻓期保存;⽽进程是程序的执⾏过程,它是动态概念,有⼀定的⽣命期,
是动态产⽣和消亡的。
-
程序和进程⽆⼀⼀对应关系。⼀个进程在活动中可有顺序地执⾏若⼲个程序。
⽗进程与⼦进程
1 ⼦进程是由⼀个进程所产⽣的进程,产⽣这个⼦进程的进程称为⽗进程。
2 在Linux系统中,使⽤系统调⽤fork创建进程。fork复制的内容包括⽗进程的数据和堆栈段以及⽗进程的进程环境。
3 ⽗进程终⽌⼦进程⾃然终⽌。
进程和线程的区别
进程: 就是正在执⾏的程序或命令,每⼀个进程都是⼀个运⾏的实体,都有⾃⼰的地址空间,并占⽤⼀定的系统资
源。
线程: 轻量级的进程;进程有独⽴的地址空间,线程没有;线程不能独⽴存在,它由进程创建;相对讲,线程耗费的
cpu和内存要⼩于进程。
进程管理的作⽤:判断服务器的健康状态;查看系统所有的进程;杀死进程
前台进程和后台进程
前台进程:
在Shell提示处打⼊命令后,创建⼀个⼦进程,运⾏命令,Shell等待命令退出,然后返回到对⽤户给出提示符。这
条命令与Shell异步运⾏,即在前台运⾏,⽤户在它完成之前不能执⾏另⼀个命令。
后台进程:
在Shell提示处打⼊命令,若后随⼀个&,Shell创建的⼦进程运⾏此命令,但不等待命令退出,⽽直接返回到对
⽤户给出提示。这条命令与Shell同步运⾏,即在后台运⾏。后台进程必须是⾮交互式的。
ps命令
作⽤:查看系统中的进程信息
语法:ps [-auxle]
常⽤选项
a:显示所有⽤户的进程
u:显示⽤户名和启动时间
x:显示没有控制终端的进程
e:显示所有进程,包括没有控制终端的进程
l:⻓格式显示
查看系统中所有进程
ps aux #查看系统中所有进程,使⽤BSD操作系统格式,unix ps -le #查看系统中所有进程,使⽤Linux标准命令格式 ps -u or ps -l 查看⾪属于⾃⼰进程详细信息 ps aux | grep sam 查看⽤户sam执⾏的进程 ps -ef | grep init 查看指定进程信息
pstree
作⽤:查看当前进程树
语法:pstree [选项]
-p 显示进程PID
-u 显示进程的所属⽤户
kill
作⽤:关闭进程
语法:kill [-选项] pId
kill -9 #进程号(强⾏关闭) 常⽤ kill -1 #进程号(重启进程) killall -l #关闭所有进程(忽略进程名的⼤⼩写)
软件安装 三种:
1. 二进制安装
2. 源码安装
3. rpm安装
#i:安装应⽤程序(install) #vh:显示安装进度(verbose hash) U:升级软件包(update) #qa: 显示所有已安装软件包(query all) e:卸载应⽤程序(erase) #查询所有安装的rpm包: rpm –qa #查询mysql相关的包 rpm –qa | grep mysql #安装 rpm -ivh jdk.rpm #卸载 rpm –e mysql* # 强⾏卸载 rpm –e mysql* --nodeps
4. yum源安装
yum list #查询所有可⽤软件包列表 yum search #关键字 搜索服务器上所有和关键字相关的包 yum info #关键字 来查找包名 yum -y install 包名 #-y ⾃动回答yes yum check-update yum -y remove 包名 yum --help、man yum #帮助 yum clean all #清除缓存和旧的包 yum repolist #查看当前可⽤的yum源 yum deplist httpd #列出⼀个包所有依赖的包
定时器
crontab 简介
- 在Linux中,周期性的执⾏任务⼀般由cron这个守护进程来处理,它是⼀个linux下 的定时任务执⾏⼯具,可以在⽆需⼈⼯⼲预的情况下运⾏作业。
[ps -ef|grep cron]
- cron读取⼀个或多个配置⽂件,这些配置⽂件中包含了命令⾏及其调⽤时间。
- cron的配置⽂件称为“crontab”,是“cron table”的简写。
cron服务
service crond start //启动服务 service crond stop //关闭服务 service crond restart //重启服务 service crond reload //重新载⼊配置 service crond status //查看服务状态
cron的配置文件:
1 /var/spool/cron/
2 说明这个⽬录下存放的是每个⽤户包括root的crontab任务,每个任务以创建者的名字命名,⽐如tom建的crontab任务对应的⽂件就是/var/spool/cron/tom。⼀般⼀个⽤户最多只有⼀个crontab⽂件。
crontab命令格式
# ⽤于⽣成cron进程所需要的crontab⽂件
crontab [-u username] -e
文件格式内容 :
#* * * * * user-name command to be executed #共有六部分组成,分别表示: 分 时 ⽇ ⽉ 星期 要运⾏的命令 #解析: #minute: ⼀⼩时中的哪⼀分钟 [0~59] #hour: ⼀天中的哪个⼩时 [0~23] #day: ⼀⽉中的哪⼀天 [1~31] #month: ⼀年中的哪⼀⽉ [1~12] #week: ⼀周中的哪⼀天 [0~6] 0表示星期天 # commands: 执⾏的命令 #书写注意事项 #1 全都不能为空,必须填⼊,不知道的值使⽤通配符*表示任何时间 #2 每个时间字段都可以指定多个值,不连续的值⽤,间隔,连续的值⽤-间隔。 #3 命令应该给出绝对路径 # 4 ⽤户必须具有运⾏所对应的命令或程序的权限 #5 */num 表示频率
#每天早上6点
0 6 * * * echo "Good morning." >> /tmp/test.txt
# 每两个⼩时
0 */2 * * * echo "Have a break now." >> /tmp/test.txt