Linux 基础
Linux 基础
安装
手动分区,标准分区,添加挂载点
- /boot 1G 文件系统:ext4
- / 45G 文件系统:ext4
- swap 4G 文件系统:swap
禁用KDUMP:系统崩溃时的备份空间
网络与主机名:可以配置一些系统的网络,但是不全
说明:学习期间这里选择了桌面化,正常公司开发选择最小安装;如果是选择了最小安装需要下载:
net-tool:工具包集合,包含ifconfig等命令
切换到root用户 su root 输入密码
yum install -y net-tools在下载vim编辑器:
yum install -y vim下载红帽提供的软件包
yum install -y epel-release
网络
网络模式
VM 桥接模式:虚拟网络适配器与主机的物理网络适配器进行交接,直接通过主机的物理网络适配器访问外网,相当于一台独立计算机访问网络,会占用局域网的一个ip
VMware NAT模式:(Network Address Translation网络地址转换),VMware会在主机上建立单独的专用网络,用以在主机和虚拟机之间相互通信,访问网络时,先和主机通信,间接访问外网,依托vmnet8
VMware 仅主机模式:虚拟机只能访问内网,要想访问外网,需要在主机上安装路由或代理,在一台主机上(相同的仅主机模式网络),多个虚拟机设置仅主机模式,他们之间可以互相通信,不同主机上,要想相互通信需要设置路由器,依托vmnet1
ip地址
IP地址 = 网络地址 + 主机地址,又称网络号和主机号构成。
- A类:以0开头,第1字节为网络地址+后3个字节主机地址组成,地址范围0.0.0.0~127.255.255.255。可用的A类网络有126个网络,每个网络能容纳1亿多个主机。
- B类:以10开头,前2字节为网络地址+后2个字节主机地址组成,地址范围128.0.0.0~191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 。
- C类:以110开头,前3字节为网络地址+后1个字节主机地址组成,地址范围192.0.0.0~223.255.255.255。可用的C类网络可达209万余个,每个网络能容纳254个主机。
- D类:以1110开头,地址范围是224.0.0.0~239.255.255.255,D类地址作为组播地址(一对多的通信)。
- E类:以11110开始,地址范围是240.0.0.0~255.255.255.255,为保留地址,实际中并不是有很多的使用。
- 注:只有A,B,C有网络号和主机号之分,D类地址和E类地址没有划分网络号和主机号。A类地址第一组数字为1~126,数字0和127不作为A类地址
全1地址(255.255.255.255)
该IP地址指的是受限的广播地址。受限广播地址与一般广播地址(直接广播地址)的区别在于,受限广播地址只能用于本地网络,路由器不会转发以受限广播地址为目的地址的分组;一般广播地址既可在本地广播,也可跨网段广播。例如:主机192.168.1.1/30上的直接广播数据包后,另外一个网段192.168.1.5/30也能收到该数据报;若发送受限广播数据报,则不能收到。
注:一般的广播地址(直接广播地址)能够通过某些路由器(当然不是所有的路由器),而受限的广播地址不能通过路由器。
全0地址(0.0.0.0)
常用于寻找自己的IP地址,例如在我们的RARP,BOOTP和DHCP协议中,若某个未知IP地址的无盘机想要知道自己的IP地址,它就以255.255.255.255为目的地址,向本地范围(具体而言是被各个路由器屏蔽的范围内)的服务器发送IP请求分组。
回环地址
127.0.0.0/8被用作回环地址,回环地址表示本机的地址,常用于对本机的测试,用的最多的是127.0.0.1。
A、B、C类私有地址
私有地址(private address)也叫专用地址,它们不会在全球使用,只具有本地意义。
A类私有地址:10.0.0.0/8,范围是:10.0.0.0~10.255.255.255
B类私有地址:172.16.0.0/12,范围是:172.16.0.0~172.31.255.255
C类私有地址:192.168.0.0/16,范围是:192.168.0.0~192.168.255.255
子网掩码
作用
- 用于标记本地网络的号段,即网段
- 将一个大的IP网络划分为若干小的子网络
子网掩码 32 位与IP 地址 32 位相对应,IP 地址如果某位是网络地址,则子网掩码为1,否则为0。
11111111.11111111.11111111.00000000网络号的长度为 24(前三个字节),主机号长度为 8 (最后一个字节)
不能单独存在,和ip在一起才有意义
子网中只有1是连续的,才是子网掩码
表示
- 点分十进制表示法 11111111.11111111.11111111.00000000 即 255.255.255.0
- CIDR斜线记法:IP地址/n
- n 为 1 到 32 的数字,表示子网掩码中网络号的长度,通过 n 的个数确定子网的主机数=2^(32-n)-2(减去 2 的原因:主机位全为0时表示本网络的网络地址,主机位全为1时表示本网络的广播地址,这是两个特殊地址,不能被用户使用)。
- 192.168.1.100/24 的子网掩码是11111111.11111111.11111111.00000000即255.255.255.0
分类
默认子网掩码
即未划分子网,对应的网络号的位都置 1 ,主机号都置 0 。
未做子网划分的IP地址:网络号+主机号
A类网络缺省子网掩码: 255.0.0.0,用CIDR表示为/8
B类网络缺省子网掩码: 255.255.0.0,用CIDR表示为/16
C类网络缺省子网掩码: 255.255.255.0,用CIDR表示为/24
自定义子网掩码
将一个网络划分子网后,把原本的主机号位置的一部分给了子网号,余下的才是给了子网的主机号。其形式如下:
做子网划分后的IP地址:网络号+子网号+子网主机号
如:192.168.1.100/25,其子网掩码表示:255.255.255.128
意思就是将192.168.1.0这个网段的主机位的最高1位划分为了子网
子网掩码与 IP 地址的关系
通过观察两个 IP 地址与子网掩码做与运算的结果是否相同,可以得出两个 IP地址是否在一个网络中的结论。所以子网掩码可以用来判断任意两台主机的IP地址是否属于同一网络,就是拿双方主机的IP地址和自己主机的子网掩码做与运算,如结果为同一网络,就可以直接通信。
网关
IP地址是以网络号和主机号来标示网络上的主机的。
我们把网络号相同的主机称之为本地网络,网络号不相同的主机称之为远程网络主机。
本地网络中的主机可以直接相互通信,远程网络中的主机要相互通信必须通过本地网关(Gateway)来传递转发数据。
不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络 B 的网关,网络 B 的网关再转发给网络 B 的某个主机
- 只有设置好网关的 IP 地址,TCP/IP 协议才能实现不同网络之间的相互通信
- 网关的 IP 地址是具有路由功能的设备的 IP 地址,具有路由功能的设备最典型的就是路由器
- 路由器接口使用的IP地址就是网关的地址,它可以是本网段中任何一个地址,不过通常使用该网段的第一个可用的地址或最后一个可用的地址,这是为了尽可能避免和本网段中的主机地址冲突。
即网关设置为路由器的ip地址
虚拟机网络配置
VMware偏好设置
网络,添加vmnet2
勾选允许访问外网(基于NAT,即vmnet8)
勾选将Mac主机连接到该网络
勾选通过DHCP“动态主机配置协议” 在该网络提供地址
- 子网ip:与虚拟机配置中的ip网段保持一致
- 子网掩码:默认,即255.255.255.0
虚拟机网络适配器设置
- 勾选vmnet2
查主机DNS地址
cat /etc/resolv.confnameserver fe80::1%en0 nameserver 192.168.1.1配置虚拟机网络:
vim /etc/sysconfig/network-scripts/ifcfg-ens33TYPE="Ethernet" #网络类型(通常是 Ethemet) PROXY_METHOD="none" BROWSER_ONLY="no" #修改,IP 的配置方法[none|static|bootp|dhcp](引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议) BOOTPROTO="static" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="e83804c1-3257-4584-81bb-660665ac22f6" #随机 id DEVICE="ens33" #接口名(设备,网卡) #修改,系统启动的时候网络接口是否有效(yes/no) ONBOOT="yes" #IP地址,自定义 IPADDR=192.168.10.100 #网关,与 GATEWAY=192.168.10.2 #域名解析器,与主机一致 DNS1=fe80::1%en0 DNS2=192.168.1.1配置运行的networking(检查vmnet2、vmnet8是否和虚拟机网络网段相同,vmnet1不要动(是仅主机模式)),关闭vmnet8DHCP
sudo vi /Library/Preferences/VMware\ Fusion/networkingVERSION=1,0 answer VNET_1_DHCP yes answer VNET_1_DHCP_CFG_HASH F9A2F6EBFA035FA88A0495E8AB7AA8CDED6C6BD2 answer VNET_1_HOSTONLY_NETMASK 255.255.255.0 answer VNET_1_HOSTONLY_SUBNET 172.16.1.0 answer VNET_1_HOSTONLY_UUID 554D13E6-5756-4CBD-BC7A-092DC255F6F3 answer VNET_1_VIRTUAL_ADAPTER yes answer VNET_2_DHCP yes answer VNET_2_DHCP_CFG_HASH 290B7E76B0E786CCDE36747A34D4D39741A4B40C answer VNET_2_HOSTONLY_NETMASK 255.255.255.0 answer VNET_2_HOSTONLY_SUBNET 192.168.10.0 answer VNET_2_HOSTONLY_UUID 99DEA4B4-A3E5-4C3E-8A35-736A33E1CF8A answer VNET_2_NAT yes answer VNET_2_NAT_PARAM_UDP_TIMEOUT 30 answer VNET_2_VIRTUAL_ADAPTER yes #关闭 answer VNET_8_DHCP no answer VNET_8_DHCP_CFG_HASH CBD1E467B474F4779F8339885953DCE45846FB81 answer VNET_8_HOSTONLY_NETMASK 255.255.255.0 answer VNET_8_HOSTONLY_SUBNET 192.168.10.0 answer VNET_8_HOSTONLY_UUID EBCDFC12-3AB5-4C29-A731-413C4EDE7467 answer VNET_8_NAT yes answer VNET_8_VIRTUAL_ADAPTER yes remove_answer VNET_2_DHCP_CFG_HASH answer VNET_2_DHCP_CFG_HASH F1AB5BE862601E5B3AF3D92A51F19ADADDB2B871 "/Library/Preferences/VMware Fusion/networking" 24L, 1033B配置主机NAT模式vmnet2网络:(检查vmnet2的ip是否和虚拟机网络网段相同)
sudo vim /Library/Preferences/VMware\ Fusion/vmnet2/nat.conf# VMware NAT configuration file # Manual editing of this file is not recommended. Using UI is preferred. [host] # Use MacOS network virtualization API useMacosVmnetVirtApi = 1 #网关地址:与虚拟机中系统的配置相同。 NAT gateway address ip = 192.168.10.2 netmask = 255.255.255.0 # VMnet device if not specified on command line device = vmnet2 #省略
目前我的感觉,主机ping虚拟机,通过vmnet2(子网、网关与虚拟机字段相同)到vmnet8提供的NET
- 物理机能 ping 通虚拟机,但是虚拟机 ping 不通物理机,一般都是因为物理机的防火墙问题,把防火墙关闭就行
- 虚拟机能 Ping 通物理机,但是虚拟机 Ping 不通外网,一般都是因为 DNS 的设置有 问题
- 虚 拟 机 Ping www.baidu.com 显 示 域 名 未 知 等 信 息 , 一 般 查 看 GATEWAY 和 DNS 设置是否正确
- 如果以上全部设置完还是不行,需要关闭 NetworkManager 服务
- systemctl stop NetworkManager 关闭
- systemctl disable NetworkManager 禁用
- 如果检查发现 systemctl status network 有问题 需要检查 ifcfg-ens33
集群配置
修改主机名称
vim /etc/hostnamehadoop100
配置 Linux 克隆机主机名称映射 hosts 文件
vim /etc/hosts192.168.10.100 hadoop100 192.168.10.101 hadoop101 192.168.10.102 hadoop102 192.168.10.103 hadoop103 192.168.10.104 hadoop104 192.168.10.105 hadoop105 192.168.10.106 hadoop106 192.168.10.107 hadoop107 192.168.10.108 hadoop108重启克隆机
reboot修改 windows 的主机映射文件(hosts 文件)
vim /etc/hosts192.168.10.100 hadoop100 192.168.10.101 hadoop101 192.168.10.102 hadoop102 192.168.10.103 hadoop103 192.168.10.104 hadoop104 192.168.10.105 hadoop105 192.168.10.106 hadoop106 192.168.10.107 hadoop107 192.168.10.108 hadoop108
window10,先拷贝出来,修改保存以后,再覆盖即可C:\Windows\System32\drivers\etc
没网就重新生成MAC地址
克隆机选择虚拟机 -- 网络适配器 -- 高级 -- 生成MAC地址
修改虚拟机网络配置
vim /etc/sysconfig/network-scripts/ifcfg-ens33HWADDR=删除70-persistent-net.rules文件,此文件重启自动生成
rm -rf /etc/udev/rules.d/70-persistent-net.rules重启
reboot
Linux目录结构
一切皆文件
- /bin 普通命令
- /sbin 管理员命令
- /home 普通用户主目录
- /root 超级管理员主目录
- /lib 动态资源共享库
- /lost+found 一般为空,存放非法关机产生的文件
- /etc 系统配置文件和子目录
- /usr 应用程序文件目录,类似win的program files
- /boot 启动核心文件
- /proc 虚拟目录,系统内存映射,可以直接访问这个目录获取系统信息
- /srv service的缩写,服务启动后需要提取的数据
- /sys linux2.6内核的一个重大变化,安装了文件系统sysfs
- /tmp 存放临时文件
- /dev 设备管理器,所有硬件存储为文件
- /media(Centos6) 把识别的U盘等挂载到这里
- /run/media(Centos7) 把识别的U盘等挂载到这里
- /mnt 临时挂载别的文件系统
- /opt 用户安装软件到存放位置
- /var 存放经常变的,经常修改的,如日志
VI/VIM编辑器
VI 是 Unix 操作系统和类 Unix 操作系统中最通用的文本编辑器。
VIM 编 辑 器 是从 VI 发 展 出 来的 一 个 性 能 更 强 大的 文 本 编 辑 器 。可 以 主 动 的 以 字体颜色辨别语法的正确性,方便程序设计。VIM 与 VI 编辑器完全兼容。
一般模式(删除、复制、添加)
- yy 复制一行
- yw 复制一词
- p 粘贴
- u 撤销
- x 剪切
- dd 删除一行
- dw 删除一词
- ^ 行首
- $ 行尾
- G 页尾
- *+G 到*行
编辑模式(修改)
命令模式
- !强制
- w 保存
- q 退出
- set nu 显示行号
- set nonu 关闭行号
- %s/old/new 替换内容
命令
网络配置
- ifconfig
- ping
- vim /etc/sysconfig/network-scripts/ifcfg-ens33
- Service network restart
- hostname查看主机名
- vim /etc/hostname 修改主机名
- vim /etc/hosts 修改映射文件
系统管理
正在执行的叫 进程
一直存在,常驻内存的叫 守护进程/服务
service服务管理(Centos6)
- service 服务名 start|stop|restart|status
- cd /etc/init.d ls -al 查看服务,只有两个服务
- netconsole
- network
- chkconfig 查看所有服务自启配置
- chkconfig 服务名 off 关闭自启
- chkconfig 服务名 on
- chkconfig 服务名 --list 查看某服务自启状态
systemctl(Centos7)
- systemctl start|stop|restart|status 服务名
- cd /usr/lib/systemd/system ls -al 查看服务
- firewalld 防火墙
- systemctl list-unit-files 查看所有服务自启配置
- systemctl enable 服务名.service
- systemctl disable 服务名.service
系统运行级别
开机 -- bios -- /boot -- init“初始化”进程 -- 运行级别 -- 运行对应服务
- Centos6
- 0:停机
- 1:单用户root登录,禁止远程登录
- 2:多用户登录,无网络
- 3:有网络
- 4:保留级别
- 5:图形化界面
- 6:关闭重启
- Centos7
- multi-user.target =3(多用户,有网络)
- graphical.target =5(图形化界面)
- systemctl get-default 查看运行级别
- systemctl set-default *.target. 修改运行级别
- Centos6
关机重启
sync 内存同步到硬盘 --修改后不会马上存到硬盘,存到buffer,满了写入硬盘
halt 停机
poweroff 关机
reboot 重启
shutdown 1min后关机(先去同步了)
shutdown now 马上关
shutdown 2 2min后关
shutdown -r 重启
shutdown -H 停机
shutdown -h 关机
帮助命令
- man 命令
- help 命令 shell内置命令
- which 命令 查看别名/命令路径
文件目录
pwd 绝对路径
- -P 真实路径
ls
- ls -a
- ls -l
- ls -al
cd 回到home目录
mkdir
- -p 创建多层
rmdir
- -p 删除多层空目录
touch
- vim 也可以创建文件,但是:q后会消失,:wq创建成功
cp 源文件 目录/文件
- -r 复制整个文件夹
- \cp强制覆盖
rm 删除文件/文件夹
- -r 删除目录所有内容
- -f 强制不提示
- -v 显示过程
- -rf 强制删除所有不提示
mv 旧名 新名 重命名
mv 文件 目录 移动文件
cat 文件 查看文件内容
- -n 显示行号
more 文件 分屏查看
- 空格翻一页
- enter翻一行
- q离开
- f 下翻一屏
- b 上翻一屏
- = 输出当前行号
- :f 输出文件名和当前行号
less 文件 比more强大的分屏查看
- 空格翻一页
- G结尾,g开头
- /* 向下搜索* ,n:向下查找;N:向上查找
- ?* 向上搜索* ,n:向上查找;N:向下查找
echo “#####” 输出#####到控制台
- -e 支持转义
- \\ 输出\
- \n换行
- \t制表符
head 显示文件头部信息
tail 输出文件尾部信息
- -f 跟踪更新实时监控,多用于日志
> 重定向(覆盖或追加)
- ls -l > 文件 列表内容写入文件(覆盖)
- ls -al >> 文件 列表内容追加到文件
- cat 文件1 > 文件2 文件1覆盖文件2
- echo “####” >> 文件
ln -s 原文件/目录 软链接名 快捷方式
- rm -rf 软链接名 删除
- rm -rf 软链接名**/** 删除真实文件/目录
- ln 原文件/目录 硬链接名 硬链接
history 已执行命令
- -c 清除历史
时间日期
- date 显示当前时间
- date +%Y 当前年
- date +%m 当前月
- date +%d 当前日
- date +%s 时间戳
- date "+%Y-%m-%d %H:%M:%S"
- date -d '1 days ago'
- date -d '-1 days ago'
- date -s "" 设置系统当前时间
- ntpdate同步时间
- 总结
- Y 2022“年”
- y 22“年”
- m 06“月”
- h 6月
- d 16“日”
- D 06/16/22
- H
- M
- S
- s 时间戳
- cal 查看本月日历
- -3 上月 本月 下月
- -m 周一在最前
- cal 2007 查看2007年日历
用户管理
useradd 用户名 添加用户
- useradd -g 组名 用户名
userdel 用户 删除,但保存主目录
- userdel -r 用户 完全删除
password 用户名 设置密码
id 用户名 查看是否有
cat /etc/passwd 查看有哪些用户
su 用户 切换用户,只有权限,没有环境
- su -用户 切换用户,有环境变量
whoami 显示自身用户名
- who am i 显示用户名和登录时间
sudo
设置普通用户有root权限
修改配置文件 vim /etc/sudoers,加一行
用户名 ALL=(ALL) ALL采用 sudo 命令时,不需要输入密码
用户名 ALL=(ALL) NOPASSWD:ALL
usermod -g 组名 用户名 修改用户
用户组管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同 Linux 系统对用户组的规定有所不同, 如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。 用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对 /etc/group文件的更新。
一个用户可以在多个组,不同的组可以赋予不同权限
第一个普通用户在wheel组中,管理员组,不用编辑sudoers就可以执行sudo
sudoers中%后面的就是组名
- groupadd 组名
- groupdel 组名
- groupmod -n 新组名 老组名
- cat /etc/group
文件权限
ll执行后,行首表示的就是文件权限
权限 属主 属组 文件大小
-rw-------. 1 root root 1696 6月 22 00:10 anaconda-ks.cfg
-rw-r--r--. 1 root root 1817 6月 22 00:41 initial-setup-ks.cfg
drwxr-xr-x. 2 root root 4096 6月 22 00:50 公共
drwxr-xr-x. 2 root root 4096 6月 22 00:50 模板
drwxr-xr-x. 2 root root 4096 6月 22 00:50 视频
drwxr-xr-x. 2 root root 4096 6月 22 00:50 图片
drwxr-xr-x. 2 root root 4096 6月 22 00:50 文档
drwxr-xr-x. 2 root root 4096 6月 22 00:50 下载
drwxr-xr-x. 2 root root 4096 6月 22 00:50 音乐
drwxr-xr-x. 2 root root 4096 6月 22 00:50 桌面
硬链接数/子目录数

- 0文件类型
- -开头 文件
- d开头 目录
- l开头 链接
- c 字符设备文件
- b 块设备文件“硬盘”
- u:123属主权限user
- g:456属组权限group
- o:789其他用户权限other
- 作用到文件
- r读
- w改,不一定可删,取决于对文件目录是否有w权限
- x可以被系统执行
- 作用到目录
- r可用ls查看
- w改,创建删除重命名
- x可进入目录
- 作用到文件
- chmod [{ugoa}{+-=}{rwx}] 文件或目录
- u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)
- chmod u+r
- chmod [mode=421 ] [文件或目录]
- r=4 w=2 x=1 rwx=4+2+1=7
- 把三个位二进制化
- 111 = rwx = 7
- 110 = rw- = 6
- 101 = r-x = 5
- 100 = r-- = 4
- 011 = -wx = 3
- 010 = -w- = 2
- 001 = --x = 1
- 000 = --- = 0
- chomd 777
- -R 目录中所有都修改
- chowm 用户 文件/目录 改属主
- -R
- chgrp 组 文件/目录 改属组
搜索查找
find 【路径】 -name 名字 加引号支持通配符
find 【路径】 -user 用户名
find 【路径】 -size +10M 大于10M
locate 快速定位文件路径
locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速 度较快。默认每天更新一次,为了保证 查询结果的准确度,管理员必须定期更新 locate 时刻
- updatedb 更新locate数据库
- locate 文件名
which 命令 查看命令别名/路径
whereis 命令 查看命令真实路径
grep 关键字 文件名 查找文件中某内容
- -n显示行号
命令 | grep 文件名 过滤:查找命令执行后满足文件名的文件
- |管道,前面的结果作为参数,传给后面
wc 可用于查词频
- wc 文件名 行数 词数 字节 文件名
- grep 关键字 文件名 | wc 关键字所在行数 行中的次数(不是词频) 行中的字节数
压缩解压
gzip 文件
gunzip 文件.gz
只能压缩文件,不能压缩目录
删除原文件
只能单文件,多个文件产生多个压缩包
zip 压缩包名 要压缩的文件
- -r 压缩目录
unzip
- -d 指定存放位置
tar 压缩包名 要压缩的文件 可多个空格隔开/目录
tar -zcvf 什么.tar.gz 文件1 文件2
tar -zxvf 什么.tar.gz 解压到当前目录
tar -zxvf 什么.tar.gz -C 目录 解压到指定目录
- -c 打包
- -x 解压
- -z 打包并压缩 生成.tar.gz
- -C 解压到指定目录
- -v 显示详细信息
- -f 指定压缩包名 放在最后
磁盘管理
yum install tree 安装tree
du 文件/目录 查看磁盘占用大小
- -h 方便阅读
- -a 所有子目录和文件
- -c 还显示总和
- -s 只显示总和
- --max-depth=?指定深度
df -h 查看磁盘使用情况(包括内存--临时文件系统)
文件系统 容量 已用 可用 已用 % 挂载点 devtmpfs 2.0G 0 2.0G 0% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 2.0G 13M 2.0G 1% /run tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/sda2 15G 4.3G 9.7G 31% / /dev/sda1 976M 139M 770M 16% /boot tmpfs 394M 12K 394M 1% /run/user/42 tmpfs 394M 0 394M 0% /run/user/0free -h 查内存使用情况
lsblk -f 查看块设备--硬盘
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 15G 0 part / └─sda3 8:3 0 4G 0 part [SWAP] sr0 11:0 1 4.4G 0 rom 安装用的光驱硬盘的命名和硬盘类型有关
- SATA、SCSI --> sda、sdb...
- 挂载点 (分区) sda1...
- IDE --> hda、hdb...
- 虚拟硬盘 --> vda...
- SATA、SCSI --> sda、sdb...
mount 挂载
在虚拟机上建立CD链接
建立挂载点 mkdir /mnt/cdrom
- mnt是专门用于挂载的目录
- cdrom光盘
mount /dev/cdrom /mnt/cdrom/
- -t iso9660 挂载的类型,一般可自动识别 iso9660是光盘
- -o 权限,默认只读 rw读写
umount /mnt/cdrom 卸载
设置开机自动挂载
- vim /etc/fstab
- 添加文件名 挂载点 类型 开启状态 /dev/cdrom /mnt/cdrom iso9660 defaults
fdisk硬盘分区
- fdisk -l 查看分区情况
- 添加硬盘
- 在虚拟机上 硬盘 -- 添加硬盘
- 重启reboot
- 查看lsblk、fdisk -l
- fdisk 硬盘名 fdisk /dev/sdb
- 根据提示进行分区
- n分区 q不保存退出 w保存退出
- 分区类型
- p 主分区primary 最多4个主分区
- e 扩展分区extended 超过4个会把最后一个主分区分出最多12个扩展分区
- 即最多sdb1~sdb16
- 分区大小,可默认最大
- mkfs -t xfs /dev/sdb1 格式化
- -t xfs 格式化类型
- mount /dev/sdb1 /home/用户名 挂载
- 在该用户中添加的文件都会放在新的硬盘
- umount /home/用户名 卸载
- 在该用户中添加的文件都又放在了旧盘
进程管理
进程 process
服务 service
ps 查看当前用户进程
a 所有
x 当前用户,含终端
u 用户式信息
ps aux |less 最全,可分屏查看
-e相当于ax
-f 完整进程列表,相当于u
ps -ef |less 最全,还多了父进程列
带-的是unix风格的,不带-的是bsd风格的,bsd是unix的衍生版本
aux信息说明:查看cpu、内存占用率
USER:该进程是由哪个用户产生的
PID:进程的 ID 号
%CPU:该进程占用 CPU 资源的百分比,占用越高,进程越耗费资源;
%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
VSZ:该进程占用虚拟内存的大小,单位 KB;
RSS:该进程占用实际物理内存的大小,单位 KB;
TTY :该进程是在哪个终端中运行的 。 对于CentOS来说 ,tty1是图形化终端 ,
tty2-tty6 是本地的字符界面终端。pts/0-255 代表虚拟终端。
STAT:进程状态。常见的状态有:
R:运行状态、S:睡眠状态、T:暂停状态、 Z:僵尸状态、s:包含子进程、l:多线程、+:前台显示
START:该进程的启动时间
TIME:该进程占用 CPU 的运算时间,注意不是系统时间
COMMAND:产生此进程的命令名
-ef信息说明:查看父进程
- UID:用户 ID
- PID:进程 ID
- PPID:父进程 ID
- C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算, 执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高
- STIME:进程启动的时间
- TTY:完整的终端名称
- TIME:CPU 时间
- CMD:启动进程所用的命令和参数
kill 进程号
- killall 进程名 支持通配符
- -9 强制kill
pstree 查看进程父子关系
- -p 显示PID
- -u 显示所属用户
top 实时监控进程
- -d 秒数 几秒刷新,默认3s
- -p PID 监视某个进程状态
- P 按 %CPU排序
- N 按内存排序
netstat
- netstat -anp | grep 进程名 查看该进程网络信息
- netstat –nlp | grep 端口号 查看网络端口号占用情况
- -a 所有正在监听(listen)和未监听的套接字(socket)
- -n 拒绝显示别名,能显示数字的全部转化成数字
- -l 仅列出在监听的服务状态
- -p 表示显示哪个进程在调用
定时任务
- 重启crond服务 systemctl restart crond
- crontab
- -e 编辑
- -l 查看
- -r 删除当前用户所有
- 参数***** 命令
- ***** 分,时,日,月,星期
- ,不连续的*用,分割
- - 连续的*用-连接
- */n 每个n执行一次
软件包管理
RPM
RPM(RedHat Package Manager),RedHat软件包管理工具,类似windows里面的setup.exe ,是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。
RPM包的名称格式 Apache-1.3.23-11.i386.rpm
“apache” 软件名称“1.3.23-11”软件的版本号,主版本和此版本“i386”是软件所运行的硬件平台,Intel 32位处理器的统称“rpm”文件扩展名,代表RPM包
- rmp -qa 查询所安装的所有 rpm 软件包
- 一般配合grep使用
- rpm -e RPM软件包 卸载
- rpm -e --nodeps 软件包 不检查依赖卸载
- rpm -ivh RPM 包全名
- -i 安装
- -v 显示信息
- -h 进度条
- --nodeps 不检查依赖
YUM
YUM ( 全 称 为 Yellow dog Updater, Modified ) 是 一 个 在 Fedora 和 RedHat 以 及 CentOS 中 的 Shell 前 端 软 件 包 管 理 器 。 基 于 RPM 包 管 理 , 能 够 从 指 定 的 服 务 器 自 动 下 载 RPM 包 并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次 次下载、安装
yum -y install
-y 所有回答yes
update
remove
list 显示包信息
check-update 检查更新
clean 清理缓存
deplist 显示依赖
修改镜像
- yum -y install wget 安装wget,wget 用来从指定的 URL 下载文件
- wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
