Linux
0.目录
1.Linux简介
1.1 Linux是什么
-
Linux是一种自由和开放源码的类UNIX操作系统,1991年由林纳斯托瓦兹创建,主要受Minix和UNIX思想启发。
-
Linux遵循GNU通用公共许可证(GPL),所有人都可以自由使用源代码,也可以自由修改并重新发布
-
Linux是基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统
-
Linux能运行主要的UNIX工具软件、应用程序和网络协议,继承了UNIX以网络为核心的设计思想。
1.2 Linux发行版?
LInux发行版简单的来说就是将Linux内核和应用软件做封装
市场上主流的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等
1.3 LInux应用领域?
从嵌入式设备到超级计算机、并到服务器领域确定了地位、通常服务器使用LAMP(Linux+Apache+Mysql+PHP)和LNMP(Linux+Nginx+Mysql+PHP)组合
目前,linux不仅在家庭中,企业中使用国家层面也在使用Linux
1.4 Linux vs Windows?
比较 |
Windows |
Linux |
界面 |
界面统一,外壳程序固定所有 Windows 程序菜单几乎一致,快捷键也几乎相同 |
图形界面风格依发布版不同而不同,可能互不兼容。GNU/Linux 的终端机是从 UNIX 传承下来,基本命令和操作方法也几乎一致。 |
驱动程序 |
驱动程序丰富,版本更新频繁。默认安装程序里面一般包含有该版本发布时流行的硬件驱动程序,之后所出的新硬件驱动依赖于硬件厂商提供。对于一些老硬件,如果没有了原配的驱动有时很难支持。另外,有时硬件厂商未提供所需版本的 Windows 下的驱动,也会比较头痛。 |
由志愿者开发,由 Linux 核心开发小组发布,很多硬件厂商基于版权考虑并未提供驱动程序,尽管多数无需手动安装,但是涉及安装则相对复杂,使得新用户面对驱动程序问题(是否存在和安装方法)会一筹莫展。但是在开源开发模式下,许多老硬件尽管在Windows下很难支持的也容易找到驱动。HP、Intel、AMD 等硬件厂商逐步不同程度支持开源驱动,问题正在得到缓解。 |
使用 |
使用比较简单,容易入门。图形化界面对没有计算机背景知识的用户使用十分有利。 |
图形界面使用简单,容易入门。文字界面,需要学习才能掌握。 |
学习 |
系统构造复杂、变化频繁,且知识、技能淘汰快,深入学习困难。 |
系统构造简单、稳定,且知识、技能传承性好,深入学习相对容易。 |
软件 |
每一种特定功能可能都需要商业软件的支持,需要购买相应的授权。 |
大部分软件都可以自由获取,同样功能的软件选择较少。 |
2.Linux(虚拟机)安装
VMware虚拟机:www.vmware.com
VMware安装linux特点:
- 不需要分区和重启即可同一PC上两种操作系统
- 本机和虚拟机可以网络通信
- 可以随时修改虚拟机配置
安装步骤:
2.1 系统分区
- 分区表
- MBR分区表
- 最大2.1TB,4分区数
- 主分区(最多四个)
- 扩展分区(1个,不能写数据)
- 逻辑分区
- GPT分区表
- 格式化
- 又称逻辑格式化,是指用户选定文件系统(类型:ext4)
- 挂载
2.2 注意事项
3.常用目录结构
目录 |
作用 |
/bin |
存放系统命令的目录 |
/sbin |
存放系统命令的目录 |
/boot |
系统启动目录 |
/dev |
设备文件目录 |
/etc |
配置文件目录 |
/home |
普通用户家目录 |
/lib |
系统调用的函数库 |
/mnt |
挂载目录 |
/opt |
软件安装目录 |
/proc |
虚拟文件目录(内核、进程、外部设备状态、网络状态) |
/sys |
虚拟文件目录(内核相关) |
/root |
root家目录 |
/tmp |
临时目录 |
/usr |
系统软件资源目录 |
/var |
动态数据保存目录(缓存、日志、软件运行文件) |
4.常用命令
|
命令 |
作用 |
目录操作 |
ls |
查看目录下文件 |
|
cd |
切换目录 |
|
pwd |
查看当前目录 |
|
mkdir |
创建目录 |
|
rmdir |
删除目录 |
|
|
|
文件操作 |
touch |
创建空文件、修改元数据 |
|
stat |
查看详细信息 |
|
cat |
查看文件内容 |
|
more |
分屏查看文件内容 |
|
less |
分行查看文件内容 |
|
head |
查看文件头部 |
|
tail |
查看文件尾部 |
|
ln |
软连接 |
|
|
|
目录文件都可操作 |
rm |
删除 |
|
cp |
复制 |
|
mv |
移动或者重命名 |
|
|
|
权限控制 |
chmod |
修改权限 |
|
chown |
修改文件所有者和所属组 |
|
chgrp |
修改文件所属组 |
|
|
|
帮助命令 |
man |
显示联机帮助手册 |
|
info |
完整的帮助信息 |
|
help |
查看内置命令信息 |
|
|
|
搜索命令 |
whereis |
搜索系统命令(帮助文档位置) |
|
which |
搜索系统命令 |
|
locate |
搜索普通文件 |
|
find |
在目录中搜索文件 |
|
grep |
显示匹配的行 |
|
|管道 |
管道 |
|
|
|
文本操作 |
awk |
文本处理工具 |
|
grep |
匹配 过滤 |
|
cut |
截取 |
|
sed |
文本处理工具 |
|
|
|
压缩、解压命令 |
zip |
压缩 |
|
unzip |
解压.zip |
|
gzip |
压缩 |
|
gunzip |
解压.gz |
|
bzip2 |
压缩 |
|
bunzip2 |
解压.bz2 |
|
tar -c |
压缩 |
|
tar -x |
解压.tar |
|
tar -z |
.tar.gz |
|
tar -j |
.tar.bz2 |
|
|
|
关机重启 |
sync |
刷新文件系统缓冲区(数据同步) |
|
shutdown |
关机-h或重启-r |
|
reboot |
重启 |
|
halt |
关机(不安全) |
|
poweroff |
关机(不安全) |
|
init |
关机或重启(不安全) |
|
|
|
网络命令 |
ifconfig |
配置网络接口 |
|
ping |
通过ICMP网络探测 |
|
netstat |
查看网络状态、查看端口 |
|
write |
向指定用户发信息 |
|
wall |
向所有用户发信息(包括自己) |
|
mail |
给其他用户发邮件 |
|
|
|
系统痕迹命令 |
w |
显示正在登陆的用户信息 |
|
who |
显示正在登陆的用户信息(简单) |
|
last |
查看所有登陆过的用户信息 |
|
lastlog |
查看最后登陆过的用户信息 |
|
lastb |
查看登陆错误信息 |
|
|
|
挂载命令 |
mount |
挂载 |
|
umount |
卸载 |
5.VI编辑器
vi 、vim 打开文件,进入编辑模式
三种模式:编辑模式、输入模式、末行模式(有不同叫法)
5.1 编辑模式
5.1.1 模式切换
: 进入末行模式
i、a、o 进入输入模式(前、后、下行)
I、A、O进入输入模式(行首、行尾、上行)
5.1.2 移动光标
- 字符间
h: 左;j: 下;k: 上;l: 右
- 单词
w: 移至下一个单词的词首
e: 跳至当前或下一个单词的词尾
b: 跳至当前或前一个单词的词首
- 行内
0: 绝对行首
^: 行首的第一个非空白字符
$: 绝对行尾
- 行间
G:文章末尾
3G:第3行
gg:文章开头
- 翻屏
ctrl:f,b
5.1.3 编辑
- 删除&替换单个字符
x:删除光标位置字符
3x:删除光标开始3个字符
r:替换光标位置字符
- 删除命令 : d
dw,dd
- 复制粘贴&剪切
yw,yy
p
P
- 撤销&重做
u 撤销
ctrl+r 重做 撤销的操作
. 重复上一步的操作
5.1.4 退出
-
直接退出
ZZ:没修改退出
-
进入末行模式退出
wq:保存并退出
q!:不保存退出
5.2 输入模式
5.3 末行模式
6.软件安装
软件包分为源码包和二进制包
6.1 二进制包安装
6.1.1 RPM包安装
-
命令
安装命令:rpm -ivh 包全名
服务启动:service 服务名 start
升级命令:rpm -Uvh 包全名
卸载命令:rpm -e 包名
-
默认安装位置
/etc/ 配置文件
/usr/bin/ 可执行文件
/usr/lib/ 函数库
/usr/share/doc/ 使用手册
/usr/share/man/ 帮助文件
6.1.2 yum安装
- 安装yum
- 安装软件:yum -y install 软件名
6.2 源码包安装
安装步骤
-
下载软件包
-
解压缩
-
进入解压目录
-
编译前准备
./configure
-
编译
make
-
编译安装
make install
卸载:删除文件目录即可
7.用户管理
7.1 用户相关文件
目录 |
作用 |
说明 |
/etc/passwd |
用户信息文件 |
用户名:密码:用户ID:组ID:用户说明:用户家目录:用户命令行 |
/etc/shadow |
影子文件 |
用户名:加密密码:更改时间:更改间隔:有效期:到期前警告天数:过期后宽限天数:失效时间:保留 |
/etc/group |
组信息文件 |
组名:组密码位:组内其他用户(组) |
/etc/gshadow |
组影子文件 |
保存组密码 |
/home/用户名、/root |
用户家目录 |
|
/var/spool/mail/用户名 |
邮箱目录 |
|
/etc/skel |
用户模版目录 |
|
7.2 用户管理命令
命令 |
作用 |
useradd |
添加用户 |
passwd |
设置密码 |
usermod |
修改用户 |
userdel |
删除用户 |
su |
切换用户 |
7.3 组管理命令
命令 |
作用 |
groupadd |
添加用户组 |
groupdel |
删除用户组 |
gpasswd |
添加删除组成员 |
newgrp |
改变有效组 |
8.权限管理(缺)
9.文件系统管理
9.1 硬盘(缺)
9.2 文件系统
9.2.1 linux文件系统特性
super block(超级块):记录date block、inode的情况
date block(数据块):数据实际存储
inode(i节点):类似元数据
9.2.2 常见文件系统
常见文件系统 |
简介 |
ext |
linux早期文件系统 |
ext2 |
升级版(更大分区和文件) |
ext3 |
升级版(日志功能和可靠性) |
ext4 |
CentOS6.x默认文件系统(颠覆性) |
xfs |
CentOS7.x默认文件系统(XFS+LVM) |
swap |
交换分区文件系统(暂时代替内存) |
nfs |
网络文件系统 |
iso9660 |
光盘标准文件系统 |
fat |
Windows的fat16 |
vfat |
Windows的fat32 |
NTFS |
Windows的NTFS |
ufs |
SunOS和Solaris |
proc |
基于内存的虚拟文件系统 |
sysfs |
基于内存的虚拟文件系统 |
tmpfs |
基于内存的虚拟文件系统 |
9.3 命令
命令 |
作用 |
df |
统计空间大小 |
du |
统计文件大小 |
fsck |
文件系统修复命令 |
dumpe2fs |
显示磁盘状态 |
stat |
显示文件状态 |
file |
判断文件类型 |
fdisk |
分区命令 |
parted |
分区命令 |
parkporbe |
强制重读分区文件、重新挂载所有分区(几乎不用) |
mkfs |
格式化(创建文件系统) |
free |
查看内存 |
swapon |
增加swap分区容量 |
9.4 手动创建分区
9.4.1 MBR分区
fdisk /dev/sdb #进入分区交互界面
n #创建分区
p #查看分区
m #帮助
l #显示文件系统类型
w #保存退出
mkfs -t ext4 /dev/sdb1 #格式化
mkdir /disk1 #创建挂点
mount /dev/sdb1 /disk1 #挂载
vi /etc/fstab #自动挂载
#查看
mount
fdisk -l
df
#修复权限
mount -o remount,rw /
9.4.2 GPT分区
parted /dev/sdb #进入分区交互界面
mklabel gpt #修改类型
mkpart #创建分区
mkfs #创建文件系统
resize #修改分区大小
re #删除分区
print #查看分区
#挂载……
9.4.3 swap分区
fdisk /dev/sdb #进入分区交互界面
mkswap /dev/sdb1 #创建swap分区
swapon name #增加分区
9.5 磁盘配额
9.5.1 依赖
- 内核支持磁盘配额
- grep CONFIG_QUOTA /boot/config-2.6.32-279.e16.i686
- 已安装quota
9.5.2 概念
- 用户配额和组配额
- 磁盘容量限制和文件个数限制
- 软限制和硬限制
- 宽限时间
9.5.3 配额步骤
-
将分区挂载到目录上
-
用户、用户组、目录(条件)
-
开启磁盘配额功能
mount -o remount,usrquota /disk
vi /etc/fstab
-
建立配额文件(需关闭SELinux)
quotacheck -avug
quotacheck -avugm(跟目录)
-
设置配额
edquota -u username(进入命令行)
edquota -p user1 -u user2(配额复制)
-
启动关闭配额
quotaon -avug /disk/
quotaoff -avug /disk/
-
测试
dd if=/dev/zero of=/disk/testfile bs=1M count=60
-
非交互式配额
setquota -u 用户 容量软限制 容量硬限制
9.6 LVM逻辑卷
9.6.1 步骤
-
将物理硬盘分区(也可以整体分区)
fdisk
-
将分区建立物理卷(PV)
pvcreate /dev/sdb
pvscan
pvdisplay
pvremove
-
将物理卷整合为卷组(VG)
vgcreate 选项 卷组名 物理卷名
vgscan
-
把卷组划分为逻辑卷(LV)
lvcreate 选项 卷组名
10.启动引导与修复
10.1 系统运行级别
查看:runlevel
改变级别:init 级别
级别:
- 0:关机
- 1:单用户模式
- 2:不完全的命令行模式(无NFS)
- 3:标准命令行模式
- 4:系统保留
- 5:图形模式
- 6:重启动
永久默认启动级别设置:/etc/inittab
10.1.1 开机执行文件
文件:/etc/rc.d/rc.local
- /var/lock/subsys/local 开机触摸
10.2 启动引导程序
10.2.1 grub引导程序
优点:更多的文件系统、查找内核文件、启动时修改启动选项、动态配置grub配置文件
10.2.2 /boot/grub目录
作用:
- 加载系统内核
- 选择系统的菜单
- 调用其他引导程序,实现多系统引导
10.2.3 grub配置文件
前四行:
- 默认启动系统:0
- 等待选择时间:5
- 背景文件:
- 隐藏按钮
后每四行:可用系统
10.2.4 grub加密
- grub-md5-crypt
- 将秘钥放在grub配置文件背景文件后
- 不能加lock
10.3 系统修复模式
10.3.1 单用户模式
修改密码:
- 启动时按e,选中grub配置文件内核,按e
- 在grub配置文件内核加空格1,进入系统
- passwd root修改密码
修改启动级别:
10.3.2 光盘修复模式
- 光盘启动
- chroot /mnt/sysimage
- 修复
11.服务管理
11.1 服务分类
11.2 管理
11.2.1 RPM包独立服务
11.2.2 基于xinetd服务
11.2.3 源码包服务
-
启动
-
自启动
-
/etc/rc.d/rc.local文件配置
vi /etc/rc.d/rc.local
-
配置命令识别
12.系统管理
12.1 进程管理
ps 静态查看进程
top 动态查看进程
pstree 查看进程树
kill 杀死进程
killall 杀死进程
pkill 杀死进程
12.2 工作管理
转入后台:
后台命令:
- jobs -l 查看
- fg %工作号 恢复到前台
- bg %工作号 后台暂停>后台执行
12.3 资源查看
vmstat 监控系统资源
dmesg 开机时内核检查
free 内存使用情况
/proc/cpuinfo cpu信息
w 已经登陆用户信息
who 已经登陆用户信息
uptime 系统启动时间和平均负载
uname 查看系统与内核信息
12.4 定时任务
at 一次性定时任务
crontab 循环定时任务
anacron 关机情况定时任务
13.日志管理(缺)
常见日志文件目录:/var/log/
13.1 rsyslogd服务
配置文件:/etc/rsyslog.conf
13.2 日志轮替
@笔记分享