关于linuxcast网站课程中linux安装配置基础课程的个人笔记
来源:互联网 发布:nodejs 数据库 编辑:程序博客网 时间:2024/04/28 15:04
linuxcast.NET(后期更名iter)网站已经关闭很久了
但是留下几部很不错的课程 内容简明扼要
特此进行整理
01linux安装
安装界面
install or upgrade 尽量安装驱动
install system with 尽量保证基本图形界面
rescue installed 拯救已经安装的操作系统 会出现回复环境
boot from local drive 本地硬盘启动 跳过光盘引导
memory test 内存测试 在生产环境下 测试硬件
注: 安装程序也是linux操作系统
是否校验光盘 可忽略 节省时间
CentOS 社区版红帽 诞生于社区的企业操作系统
选择磁盘驱动
basic storeage 普通PC或者实验机
speciallzed storage 存储 服务器 专用存储盘柜 以太网
是否格式化所有数据 新盘 选是
设置主机名
时区 UTC 格林威治时间
设置ROOT用户密码
磁盘分区
所有空间 全盘自动创建分区
修改
使用空闲
大多分区比较危险 建议创建自制分区
硬盘 sda 第一块硬盘 sdb第二块硬盘 sda1 第一块盘的主分区第一块
software RAID 软RAID LVM 逻辑卷 将所有硬盘统一整理
swap 交换分区 超过4G 就设4G 小于4G 设内存两倍 服务器最多16G
force to be primary partition 强制分到主分区
Encrypt 目录加密 安全装置 影响性能 但 能从物理上保密
配置引导 若有多块 需要选择 默认MBR
可对引导程序加密
发行版本开源软件的安装选择 默认最小化
可选基础服务器 网络服务器 虚拟化服务等
初学者可选择 桌面环境desktop
检查依赖性 可自动解决依赖关系
开始安装
重启进入grub界面 引导操作系统
启动 版权信息
创建普通用户
配置时间 synchronize 网络时间同步 服务器专用 NTP 网络时间服务
Kdump 当死机时 可把当前内存数据备份出来
重启
02.Linux基本操作
第一节 GNOME图形界面基本操作
edit behavior 始终以浏览器方式打开 可切换
connect server 远程服务请登录
界面用户 root
第二节 命令行BASH的基本操作
CLI 命令行
GUI 图形界面 主流操作系统默认图形界面
GUI: GNOME LEDX Xfce
CLI: BASH
打开linux 打开模拟终端
BASH
提示符 # 根用户 $ 普通用户
命令一般三个部分 命令 选项 参数
命令 例如: hostname ls uname内核名
参数 如: uname -r uname -a uname --all
firefox 打开火狐浏览器 但终端成为单进程
firefox & 将火狐进程作为后台运行 放置终端成为单进程的程序
ctrl + C 中断终端命令程序操作
tab键可以作为命令补全 按两下tab可以查看所有相应开头的命令
tab也可以作为补全文件名 按两下tab可以查看所有相应开头的文件
但是tab不能补全参数
上下键可以浏览曾经执行过的命令
history 可以查看命令历史
!!可以执行上一个命令
!字符 重复之前以“字符”开头的
!num 重复前一个历史记录第num个的命令
!?abc 重复之前包含abc的命令
!-n 重复几个之前的命令
ctrl+R 可以查找之前包含任何名的命令
命令后按下 . 可以重复之前命令的参数
通配符
* 匹配零个或多个
? 匹配任意一个字符
[0-9] 匹配一个数字范围
[abc] 匹配abc列表里任何字符
[^abc] 匹配abc列表以外的字符
切换用户
su - 切换到root用户(进入新root环境)
su - test 切换到test用户 (前提是系统有这个用户)
su 切换到root用户
su 后的 - 不加 为仅仅切换身份 但不切换终端 可用exit退出root用户
su - 切换到root用户(进入新root环境)
su 切换到root用户 但不切换终端 可用exit退出root用户
sudo 使用管理员身份执行命令 sudo su
sudo + 命令 让普通用户能执行管理员的命令
id 当前用户信息
passwd 修改用户密码 不合规则或密码太短会被限制修改
BASH 作业管理
在命令后添加& 可以把命令放到后台运行
jobs可以查看后台运行的命令
sleep 5000 进程休眠5000秒
ctrl+C 终止
ctrl+Z 暂停
bg+后台编号 继续后台该编号的程序
fg+编号 fg 2 吧后台拉到前台
第三节 LINUX文件系统结构
linux文件为一个倒转的单根树状结构
文件的根目录为“/”
文件严格区分大小写
路径用“/”分割
win 用“\”
/
/dev /boot /etc /home /use /var /lib /proc
/grub /tmp /log /lib
/sa /mall
当前工作目录
每一个shell 系统进程都有一个当前工作目录
pwd可以查看当前工作目录
文件名称
文件严格区分大小写
名称最多为255个字符
除了斜线外都是有效字符
通过touch来创建一个文件 或者更新已有文件的时间
以“.”开头的文件为隐藏文件 大多是配置文件
ls 命令
ls -a 显示所有文件包括隐藏文件
ls -l 显示详细信息
ls -R 递归显示子目录结构
ls -ld 显示当前目录信息和链接信息
file+文件(文件夹) 查看文件类型
绝对路径和相对路径
绝对路径以“/”开头 递归每级目录到目标目录
以当前目录为起点到目标目录 受到当前目录的限制
切换目录
cd + 目录 切换目录
cd .. 上一级目录
cd ~ 切换到家目录
cd - 上一个目录
第四节 linux文件基本操作管理
复制文件目录
cp 源文件(夹) 目标文件(夹)
常用参数
-r 将目录下的所有文件和文件夹都复制
-v 显示详细信息
移动 重命名文件或目录
mv 文件 目标目录
如果指定文件名 可以重命名文件
mv 文件 新文件名
创建删除文件
通过touch命令可以创建一个空文件或更新文件时间
通过rm命令可以删除文件或者目录
常用参数
-i 交互式删除
-r 递归的删除包括目录中的所有内容
-f 强制删除 没有提示
创建目录
mkdir 创建目录
rmdir 删除目录 无法删除非空文件夹
rm -r (-f) 删除一个非空目录
第五节 linux系统目录架构
/
/dev
/boot
/grub
/etc
/home
/use
/var
/tmp
/log
/sa
/mall
/lib
/lib
/proc
目录功能
/ 根目录
/
/bin 保存的是可执行二进制文件 所有用户可用
/boot 引导文件 vmlinuz 内核文件爱你
/dev 所有设备模拟为文件 sda 硬盘 tty终端
/ect 所有配置文件 都是纯文本 常是.conf结尾
/home 家目录 用户的私有文档 家目录有所有正常一般用户的信息 root家目录单独一个
/lib 库文件
/media 自动挂载
/mnt 临时挂载目录
/opt 装大型软件
/proc 虚拟文件夹 只存在于内存 内存实时信息 进程会在其中创建一个数字文件夹 cpuinfo acpi
/sbin super bin 只有超级用户才能执行的命令
/selinux 安全目录
/sys 系统底层硬件
/tmp 会自动删除
/usr 一般软件安装的目录
/var 服务器常变化的信息
/
第六节 linux系统常用命令
命令date 用查看设置当前系统时间 date -u 格林威治时间
格式化显示 +%Y--%m--%d 年月日
date -s 设置当前时间 需要超级用户
hwclock 或者 clock 可以查看系统硬件时钟
uptime 以查看系统运行时间
cal 查看日历
输出查看
echo 显示输入内容
cat 显示文件内容
head 显示文件头几行 -n指定行数 默认10行
tail 用以显示文件的末尾几行 -n指定行数 -f追踪显示文件更新 常用于查看日志
more 翻页形式显示文件内容 只能向下翻
less 翻页形式显示文件内容 能上下翻页
查看硬件信息
lspci 查看PCI设备 -v详细
lsusb 查看USB设备 -v详细
lsmod 查看加载模块 (查看加载的所有设备驱动)
关机重启
shutdown 关机重启 -h 关机 -r 重启
立即关机: shutdown -h now
10分钟后关机: shutdown -h +10
23:00关机: shutdown -h 23:00
立即重启: shutdown -r now
快捷命令
poweroff 立即关机
reboot 立即重启
归档压缩
zip压缩
zip linuxcast.zip myfile 将myfile压缩到linuxcast.zip
unzip解压
unzip linuxcast.zip
gzip压缩文件
gizp linuxcast.zip
tar归档文件
tar -cvf out.tar linuxcast -c为创建 -v为显示细节 -f为指定文件
tar -xvf linuxcast.tar -x为解开归档
tar -cvzf backup.tar.gz /etc -z为调用压缩
-z参数将归档后的文件进行gzip压缩以减少大小
-v为显示细节 -f为指定文件 -c为创建 -z为调用压缩
du -sh file 查看file的大小
查找
locate 快速查找 需要预先建立数据库 默认数据库每天更新一次
可用updatedb 刷新数据库
find 高级查找
find 查找位置 查找参数
例如:
find . -name *linuxcast* 查找当前目录里包含linuxcast文件
find / -name *.conf 以文件名从根目录查找以.conf结尾的文件
find / -perm 777 从根目录查找权限为777的文件
find / -type d 查找类型目录
find . -name "a*" -exec ls -l {}\ ; 查找并执行
当前目录查找以a开头的文件 并且传递到下面用 ls -l 列出
find . -name "a*" -exec ls -a {}\ ;
find . -name "a*" -exec cat {}\ ;
-perm 权限
-name 文件名
-user 用户
-group 组
-ctime 修改时间
-type 文件类型
-size 文件大小
第七节 vi与vim文本编辑器
CLI下的文本编辑器 另外还有emacs gedit
vim file 打开file开始编辑 如果不存在 则自动创建
VIM有三种模式
命令模式(常规)
通过esc都可以回到该模式 可以取消 复制 粘贴
插入模式
在命令模式中按下“i”键 按esc可返回命令模式
ex
按下“:”进入 可以进行保存和退出
i 在光标前插入文本
o 在当前行下面插入新行
dd 删除整行
u 撤销上个操作
yy 复制当前行 放入缓冲区
p 将缓冲区内容放到光标后
n+yy 将n行复制出来到缓冲区
r 替换当前字符
/ 查找关键字 n可以各个光标切换
命名模式下按下“:”可以进入ex模式
:w 保存当前修改
:q 退出
:q! 不保存 强制退出
:x 保存并退出
:set number 显示行号
:!系统命令 执行系统命令 enter继续
:sh切换到命令行 ctrl+d可回到VIM编辑
03.Linux磁盘及文件系统管理
第一节 磁盘基本概念
单盘片 多盘片 每个盘配磁头 转速越高 性能越好 7200 5400
固态硬盘只是存储芯片 速度快500M/S
机械硬盘基本概念
柱面 cylinder 所有盘片某一圈的集合
扇区 sector 中心到边缘的扇形区
磁头 head 每个磁头大概512字节
磁盘在linux中表示
所有设备都被抽象为文件 保存在/dev下
设备名字一般为 hd[a-z] sd[a-z] (a-z为分区号)
如: hda,hdb,sda,sdb
IDE设备的名称为 hd[a-z],SATA,SCSI,SAS,USB 等设备名称为sd[a-z]
硬盘1 /dec/sda
硬盘2 /dev/sdb
硬盘3 /dev/sdc
分区概念
将磁盘逻辑分区 方便管理
linux中是 设备名称+分区号
硬盘1的第1分区 /dev/sda1
硬盘1的第2分区 /dev/sda2
硬盘2的第1分区 /dev/sdb1
硬盘2的第2分区 /dev/sdb2
主流分区机制为 MBR 和 GPT
MBR(Master Boot Record)是传统的分区机制
应用于绝大多数使用BIOS的PC设备 EFI代替BIOS
MBR支持32bit和64bit系统
MBR支持分区数量有限
MBR仅仅支持不超过2T的硬盘 ,超过2T的硬盘则只能用2T
MBR共512字节
前446字节为引导代码
接下来4×16字节为分区表
接下来两个字节为 55h AAh
MBR分区
主分区 最多四个主分区
扩展分区 扩展分区会占用一个主分区位置 用于承载逻辑分区 无法直接使用
逻辑分区 linux最多支持63个IDE分区和 15个SCSI分区
/dev/sda
/dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4
/dev/sda
/dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4
/dev/sda5------ /dev/sda6------ /dev/sda7
GPT(GUI Partition Table)是一个较新的分区机制 解决了MBR了很多缺点
支持超过2T的磁盘
向后兼容MBR
必须在支持UEFI的硬件上才能使用
必须用64bit系统
Mac和linux系统都能支持GPT分区格式
Windows7 64bit ,WindowsServer2008 64bit支持GPT
第二节 使用fdisk进行磁盘分区
FDISK分区工具来自IBM的老牌分区工具 支持大多系统
几乎所有linux的发行版都有fdisk 包括linux rescue模式下也能使用
fdisk是个机遇MBR的工具 如果需要用GPT则无法使用fdisk 大于2T的磁盘无法使用
fdisk只有超级用户权限才能用
使用fdisk -l可以显示所有磁盘的信息
使用fdisk /dev/sda可以列出所有安装的磁盘及其分区信息
进入交互命令
m 帮助
n 创建分区
p 列出分区
t 修改号
w 保存修改
按下N创建分区
e 扩展分区
p 主分区
按下p创建主分区
输入分区号
或输入大小 +2G
按下N创建分区
e 扩展分区
p 主分区
按下e创建扩展分区
无需输入 直接确认
按下N创建分区
l 逻辑分区 (永远从5开始)
p 主分区
按下l创建逻辑分区
输入分区号
或输入大小 +2G
按下T修改分区ID
输入类型数字
L 列出类型
按83linux为正常分区 按82swap为交换分区
按下W保存写入并退出
有时分区后需要用partprobe命令 让内核更新分区信息
查看 /proc/partitions 查看分区信息
第三节 linux文件系统
需要创建文件系统才能用 过程称为格式化 没有经过此过程的为裸设备raw
常见的文件系统有fat32 NTFS ext3 ext4 xfs HFS 等
问阿金系统之间的区别 : 日志 支持分区大小 支持单个文件大小
win下主流为NTFS
linux主流为ext4
linux支持的系统 ext nfs iso9660 gfs jfs vfat fat(msdos)
mke2fs 用来创建文件系统
mke2fs -t ext4 /dev/sda3 将第一块硬盘的第三个主分区格式化为ext4文件格式
常用参数:
-b +大小 指定文件系统块大小 每次读写系统块的大小 4K就是4096字节
-c 建立文件系统时检查坏损快
-L label 指定卷标 磁盘取名
-j 建立文件系统日志 ext4带日志 无需使用
mkfs亦可以创建文件系统 单相比mke2fs比较简单 但是支持的参数比较少 不能精细化控制
mkfs.ext3 /dev/sda3 将第一块硬盘的第三个主分区格式化为ext3文件格式
mkfs.ext4 /dev/sda3 将第一块硬盘的第三个主分区格式化为ext4文件格式
mkfs.vfat /dev/sda3 将第一块硬盘的第三个主分区格式化为vfat文件格式
dumpe2fs查看分区文件的系统信息
dumpe2fs /dev/sda2
日志
带有日志的系统有较强的稳定性
日志两阶段提交 将准备执行的事计入日志 然后操作 执行之后删除
E2LABEL对文件系统打标签
e2label /dev/sdb1 查看系统标签
e2label /dev/sdb1 LINUX 打上LINUX标签
FSCK用来检查修复损坏的文件系统
fsck /dev/sdb1 检查系统()检查前需要卸载
使用 -y 参数不提示且修复
fsck自动判断文件系统类型 如果损坏比较严重 建议加上 -t 参数
对于识别文件的损坏数据有些找不到记录,将会计入lost+found目录
系统启动都校验磁盘
第四节 linux文件系统挂载管理
磁盘创建好文件系统之后 挂载后才能使用
win和mac都是自动挂载 一旦创建好之后自动挂载
linux需要手工挂载
/dev/sda2 到 /mnt
mount挂载格式化的磁盘分区
mount /dev/sda1 /mnt/ 将第一块磁盘的第一主分区挂载到 /mnt目录下
-t 指定系统类型 默认自动识别
-o 指定挂载选项
ro rw 只读 还是 读写
mount -o remount,ro /dev/sdb1 /mnt/
将sdb1以只读形式重新挂载到/mnt目录
sync 代表不用缓存 将所有操作直接写入磁盘
async 代表使用缓存 默认是async
noatime 每次访问文件是不更新文件访问时间
atime 每次访问文件是都更新文件访问时间
remount 重新挂载文件系统
mount -o remount,sync /dev/sdb1 /mnt/
将sdb1以不用缓存写入形式重挂载到/mnt目录
mount -o remount,ro,noatime /dev/sdb1 /mnt/
将sdb1以 只读形式 且 访问时不更新文件时间形式 重新挂载到/mnt目录
umount用来卸载已经挂载的文件系统 相当于win中的弹出
umount 文件系统/挂载点
umount /dev/sda3 即 umount /mnt/
如果出现报错,则说明文件系统正在被使用,无法卸载
可用fuser查看哪些进程在使用该文件系统
fuser -m /mnt
可用lsof查看哪些文件被打开了
lsof /mnt
自动挂载
配置文件/etc/fstab来定义需要自动挂载的文件系统
fstab中每一行代表一个挂载的配置
格式如下
/dev/sda3 /mnt ext4 defaults 0 0
要挂载的设备 挂载点 格式 挂载选项 dump和fsck相关选项
要挂载的设备也可以使用label进行识别 label可以取代第一路径
label=卷标 /mnt ext4 defaults 0 0
要挂载的设备 挂载点 格式 挂载选项 dump和fsck相关选项
mount -a命令会挂载所有fstab中定义的自动挂载项
04.Linux下获取帮助
获取linux帮助信息
没有必要记住所有东西
linux提供了极为详细的工具和文档 养成查看文档的习惯
help
几乎所有命令都可以用 -h --help 就能获取方法参数帮助
ls --help
man命令是常用帮助命令
man ls 将ls命令作为man命令的参数 查看帮助
man文档类型共9种
1 用户命令
2 内核系统调用
3 库函数
4 特殊文件和设备
5 文件爱你格式和规范
6 游戏
7 规范标准和其他页面
8 系统管理命令
9 linux内核API
man -k 关键字 可以用来查询包含关键字的文档
info和man类似 但更加详细
man和info都可以通过 /+关键字 查找
doc帮助文档
以TXT HTML PDF 保存在 /usr/share/doc文件夹中
05.用户及权限基础
第一节 linux用户基础
用户,组
当我们用linux是需要一个用户的身份登入,
一个进程也需要一个用户的身份运行,
希望根据用户来限制使用或者进程可使用的资源
组用来方便组织管理用户
每个用户拥有一个userID,操作系统实际使用的是用户ID,而非用户名
每个用户属于一个主组,属于一个或多个附属组
每个组拥有一个GroupID
每个进程以一个用户身份运行,并受到该用户可访问的资源限制
每个可登陆用户拥有一个指定的shell
用户
用户ID为32位 从0开始,但是为了和老系统兼容 ID限制在60000一下
root用户(ID为0的用户就是root用户)
系统用户(1~499)为了进程服务创建的 没有shell
普通用户(500个以上)
系统中的文件都有一个所属用户及所属组
使用id命令可以显示当前用户的信息
使用passwd命令可以显示当前用户的信息
相关文件
/etc/passwd 保存用户信息
/etc/shadow 保存用户密码,加密的
/etc/group 保存组信息
passwd文件中
7个部分每个都用:隔开
第一个是用户名
第二个是密码x 表示保存在shadow当中
第三个是用户ID号
第四个是组ID
第五个是用户的描述信息 可能为空
第六个是用户家目录信息
第七个是用户登录的shell 1-499用户使用sbin中的nologing
shadow文件中
每个部分都用:隔开
第一个是用户名
第二个是密码 !!为用户没有创建密码 或加密后密码 $ 分割 加密类型 加密加入
group文件中
每个部分都用:隔开
第一个是用户名
第二个是组密码 早期换组用
第三个是用户ID号
查看登录的用户
命令whoami显示当前用户
命令who显示有哪些用户已经登录系统
命令w显示有哪些用户已经登录并且在干什么
创建一个用户
命令useradd用来创建用户
useradd 用户名
这个命令会执行以下操作
在/etc/passwd中添加用户信息
如果使用passwd命令创建密码 则将密码加密保存在/etc/shadow
为用户建立一个新的家目录/home/用户名
将/etc/skel中的文件复制到家目录
建立一个与用户用户名相同的组 并且新建用户默认属于这个组
useradd支持的参数
-d 指定家目录
-s 登录shell
-u userID
-g 主族
-G 附属组(最多31个,用“,”分割)
也可以通过直接修改/etc/passwd的方式实现,
修改用户信息
命令usermod用来修改用户信息
usermod 参数 username
命令usermod支持一下参数
-l 新用户名
-u 新userid
-d 用户家目录位置
-g 用户所属主组
-G 用户所属附属组
-L 锁定用户使其不能登录
-U 解锁用户
删除用户
命令userdel用来删除指定用户
userdel 用户名 但保留用户家目录
userdel -r 用户名 同时删除用户的家目录
组
用过部门职能和地理创建组
每个组都有一个ID
组信息保存在/etc/group
每个用户有一个主组 最多可以有31个附属组
创建删除修改组
命令groupadd用来创建组
groupadd 组名
命令groupmod用来修改组信息
groupmod -n 新组名 旧组名
groupmod -g 新组ID 旧组ID
命令groupdel用以删除组
groupdel 组名
第二节 linux权限机制
权限
权限是操作系统用来限制对资源访问的机制,权限一般分为 读 写 执行
每个文件都拥有特定的权限 有所属用户和组
每个进程都是以用户身份来运行
linux三种权限
读r 可读取文件的内容 可可列出目录内容
写w 可以修改文件内容 可在目录中创建删除文件
执行x 可以作为命令执行 可访问目录内容
目录必须有X权限,否则无法查看其内容
UGO模型
linux的权限基于UGO模型进行控制
U代表User,G代表Group,O代表Other
每个文件的权限基于UGO进行设置
权限三个一组rwx,对应UGO分别设置
每个文件拥有一个所属用户和所属组,对应UG,
不属于该文件所属用户据或者所属组的使用O权限
命令 ls -l 可以查看当前目录下文件的详细信息
drwx-xr-- 2 sky testing 208 Oct 2 14:03 linux
drwx-xr-- 表示UGO
2 表示连接数量
sky 表示所属用户
testing 表示所属组
208 大小
Oct 2 14:03 建立时间
linux 文件名
d为文件类型
rwx 为U用户权限
r-x 为G组权限
r-- 为其他权限
修改文件所属用户和组
命令chown用来改变文件的所属用户
chown 用户名 要修改的文件名
-R 参数递归的修改目录下所有文件的所属用户
命令chgrp用来改变文件的所属组
chgrp 组名 要修改的文件名
-R 参数递归的修改目录下所有文件的所属组
修改权限
命令chmod用来修改文件的权限
chmod 模式 文件
模式为如下格式:
u g o 分别代表用户,组和其他
a可以代指ugo
+ - 代表加入或者删除对应权限
r w x 代表三种权限
模式示例
chmod u+rw linux 要修改所属用户权限 加入rw权限
chmod g-x linux 为组删掉X权限
chmod go+r linux 为组和其他加上r权限
chmod a-x linux 为所有组删掉X权限
-R可以递归修改目录下所有文件权限
也可以用数字的方式修改权限
r=4 2^2
w=2 2^1
x=1 2^0
使用数字权限表示
rw = 4+2 = 6
rwx = 4+2+1 = 7
所以以数字修改要三个都修改
第三节 linxu默认权限 特殊权限
默认权限
每个终端都有 umask 属性 来确定文件默认权限 umask可查看
umask使用数字权限表示 (后三位) 如 022 777
目录的默认权限是 777 - umask
文件的默认权限是 666-umask
普通用户的默认umask是 002
root用户的默认umask是 022
特殊权限
umask的第一位
三个特殊权限
suid 以文件命令的所属用户身份执行 对目录无影响
而非执行文件的用户
sgid 以文件所属组身份执行 在该目录中创建的任意性文件所属组与该目录的所属组相同
所有子文件都继承目录的组
sticky 对文件无影响 对目录拥有写入权限的用户仅可以删除其拥有的文件
无法删除其他用户文件
设置特殊权限
设置suid
chmod u+s linux
设置sgid
chmod g+s linux
设置sticky
chmod o+t linux
和普通权限一样,特殊权限也可以使用数字方式表示
- SUID = 4
- SGID = 2
- STICKY = 1
所以我们可以通过以下命令设置
chmod 1755 linux
06.Linux网络基本配置
第一节 网络基础
网络编址 确定唯一定位PC个体
IP编址是最常用的网络编址方案,一个IP地址标识一个主机(或者一个网卡接口)
现在应用最广泛的是IPv4编址,已经开始逐步向IPv6编址切换
IPv4地址为32位长,IPv6地址为128位长
一个IPv4地址分为两个部分:网络部分和主机部分
网络部分用来表示所属区域,主机部分用来标识该区域中的哪个主机
32bit 网络部分 主机部分
IPv4地址共32位,通常使用点分十进制方式表示
整个IP地址分为4个部分 每个部分8位
192 . 168 . 1 . 1
11000000 10101000 00000001 00000001
子网掩码
IPv4地址的32bit分为网络部分和主机部分
我们通过子网掩码来确定网络部分的位数
子网掩码与IP地址一样 拥有32bit
每一位与IP地址中的每一位一一对应
IP地址中相对应子网掩码中卫I的部分为网络部分
例:
192 . 168 . 1 . 1
11000000 10101000 00000001 00000001
子网掩码:
255 . 255 . 255 . 0
11111111 11111111 11111111 00000000
证明这个IP地址前24为是网络部分,也就是说,
与此IP地址处在同一个网络的其他主的IP地址前24为相同以证明在同一个网络
同一个网络主机之间的通信需要用到MAC地址
不同网络之间的通讯需要用到网关路由
在不同网络之间传输数据的功能叫做路由功能,一般有多个接口。连接到不同的网络中
并且通过路由表进行数据转发
192.168.1.0/24 eth0
172.16.1.0/16 eth1
61.1.1.0/30 eth2
域名
IP地址难记 因此使用域名管理
域名分三个部分
类型 标识此域名的类型 (com,net,org,edu.gov)
域名 域名称
主机名 该域名中的某台主机名称
www . baidu . com
主机名 域名 类型
域名对大小写不敏感
DNS
每个域名代表一个IP 而DNS服务就是用来在IP与域名之间进行转换的
www.linuxcast.net 61.1.1.1
个人PC发出DNS请求到运营商服务器
运营商服务器解析域名发送域名的IP地址到个人PC
个人PC用IP访问到需要访问的服务器
QQ能上 网页出问题 DNS出问题
基本网络参数
要配置一个局域网通讯的计算机
IP地址
子网掩码
要跨网段通讯
IP地址
子网掩码
网关
要配置一个可上网的计算机
IP地址
子网掩码
网关
DNS服务器
第二节 linux基本网络配置
以太网连接
linux中 以太网接口被命令为:eth0 eth1等 0,1代表网卡编号
通过lspci命令查看网卡的硬件信息(如果是USB网卡则可能需要使用lsusb)
命令ifconfig查看接口信息
ifconfig -a 查看所有以太网卡信息
lo为环回接口 所有网卡都有
ifconfig eth0 查看特定网卡信息
命令ifup,ifdown用来启用关闭一个接口
ifup eth0 启用网卡
ifdown eth0 禁用网卡
setup命令可以配置网络信息
网络相关配置文件
网卡配置文件
/etc/sysconfig/network-scripts/ifcfg-etho
DNS配置文件
/etc/resolv.conf
主机名配置文件
/etc/sysconfig/network
静态主机名配置文件
/etc/hosts
网络测试命令
测试网络连通
ping命令
测试DNS解析
host 域名
dig 域名
显示路由表
ip route 查看路由表
追踪达到目标地址的网络路径
traceroute www.linuxcast.net
使用mtr进行网络质量测试(结合了traceroute和ping)
mtr 域名
修改主机名
实时修改主机名
hostname 新名字
然后重新加载终端
重启之后失效
永久修改主机名
/etc/sysconfig/network
HOSTNAME=新名字
故障排查
网络故障排查遵循从底层到高层 从自身到外部
先看网络配置
ip 子网 网关 DNS
再看网卡网关是否连通
ping
查看DNS解析是否正常
host 域名
07.Linux管道、重定向及文本处理
第一节 linux多命令协作:管道和重定向
不要重复发明轮子
开源文化的核心理念之一就是不要重复发明轮子,很多开源软件都是先有软件代码功能的重新组合
就好象通过零件装配机器一样,源代码的开放和共享让这成为了可能,同时也大大的提高了效率和生产力
管道和重定向
在linux中大多命令都很简单,我们可以通过将不同功能的命令组合一起来达到某个复杂的功能的目的
linux中几乎所有命令的返回数据都是纯文本的(因为命令都是运行在CLI的)
而纯文本形式数据大多是输入格式,就让很多命令协作成为可能
linux的命令行为我们提供了管道和重定向机制,多命令协作就是通过管道和重定向完成的
命令行shell的数据流有以下定义
STDIN 标准输入 0 键盘
STDOUT 标准输出 1 终端
STDERR 标准错误 2 终端
命令通过STDIN接受参数数据
通过STDOUT输出结果
通过STDERR输出错误
通过管道和重定向我们可以控制CLI数据流
重定向
> 将STDOUT重定向到文件(覆盖) echo"linuxcast" > outfile
将命令的输出保存到文件中 ls > outfile
无法保存错误报错信息
>> 将STDOUT重定向到文件(追加) echo"linuxcast" >> outfile
将命令的输出保存到文件中 ls >> outfile
无法保存错误报错信息
2> 将STDERR重定向到文件 ls nothere 2> errorout
只将命令的报错信息保存到文件
正常信息不会被保存
2>&1 将STDERR和STDOUT结合 ls nothere 2> alloutput
将命令输出和报错都保存到文件
< 重定向STDIN grep linuxcast < /etc/passwd
把文件信息传递给命令
管道
| 将一个命令的STDOUT ls -l |greo linuxcast
作为另一个命令的STDIN find / -user linuxcast | grep video
注:重定向到 /dev/null 的信息都会丢弃处理
管道用来组合命令 重定向用来保存信息
第二节 linux命令行文本处理
基于关键字信息搜索
命令grep用以基于关键字搜索文本
grep 'linuxcast' /etc/passwd
find / -user linuxcast |grep Video
-i 搜索忽略大小写
-n 显示结果所在行数
-v 输出不带关键字的行
-Ax 在输出的时候包含结果所在行之后的指定行数 x为行数
-Bx 在输出的时候包含结果所在行之前的指定行数 x为行数
基于列处理文本
命令cut用以基于列处理文本内容
cut -d: -f1 /etc/passwd 使用:作为分割符将passwd文件处理为列 然后显示第一列
grep linuxcast /est/passwd |cut -d: -f3
-d 指定分割字符(默认是TAB)
-f 指定输出的列号
-c 基于字符进行切割
cut -c2-6 /etc/passwd 只显示第二到第六个字符
文本统计
命令wc用以统计文本信息
wc linuxcast
-l 只统计行数
-w 只统计单词
-c 只统计字节数
-m 只统计字符数
文本排序
命令sort用以对文本内容进行排序 不支持中文
sort linuxcast
-r 进行倒序排序
-n 基于数字进行·排序
-f 忽略大小写
-u 删除重复行
-t c 使用c作为分隔符分割为列进行排序
-k x 当进行基于指定字符分割为列的排序时 指定基于哪个列排序 x为数字
删除重复行
命令sort -u 可以用以删除重复行
命令uniq用以删除重复的相邻行 默认只能删除相邻重复行
文本比较
命令diff用于比较两个文件的区别
diff linuxcast linuxcast-new
-i 忽略大小写
-b 忽略空格数量的改变
-u 统一显示比较信息(一般用以生成patch文件,补丁文件)
diff -u linuxcast linuxcast-new > final.patch 将文件区别做成补丁文件
检查拼写
命令aspell用来检查英文拼写
aspell check linuxcast
aspell list <linuxcast
处理文本内容
命令tr用于处理文本内容
删除关键字
tr -d'TMD' < linuxcast
转换大小写
tr 'a-z' 'A-Z' < linuxcast
搜索替换
命令sed用来搜索并且替换文本
sed 's/linux/unix/g' linuxcast 将linux字符替换为unix
sed '1,50s/linux/unix/g' linuxcast
sed -e 's/linux/unix/g' -e 's/nash/nash_su/g' linuxcast
sed -f sededit linuxcast
单引号之间为正则表达式 将linux字符替换为unix /g为全局替换 s指定行数
08.Linux系统启动详解
LINUX系统启动详解
系统启动流程
BIOS
MBR:Boot Code
执行引导程序 - GRUB
加载内核
执行init进程ID为1
runlevel
BIOS
基本输入输出系统 硬件程序
计算机第一程序 检查启动设备
可启动设备在BIOS设置中进行定义 如USB CDROM HD
MBR
BIOS找到可启动设备后执行的引导代码
引导代码为MBR的前446字节
GRUB
Grub是现在linux主流引导
可以引导几乎现在所有操作系统
Grub的相关文件在/boot/grub目录中
Grub配置文件为/boot/grub/grub.conf
配置格式
title CentOS
root(hd0,1)
kernel /boot/vmlinuz-2.6.32-279.el6.i686 ro root =UUID=77272833-B6BB-4D53-B043-9541D1102EBD
initrd /boot/initramfs-2.6.32-279.el6.i686.img
kernel
MBR的引导代码将负责找到并且加载linux的内核
linux内核保存在 /boot/vmlinuz-2.6.32-279.el6.i686
一般还会加载内核模块打包文件: /boot/initramfs-2.6.32-279.el6.i686.img
linux为何保持kernel的精简将一些不常用的驱动,功能编译为模块,在需要的时候动态加载。而这些模块被打包保存为一个initramfs
早期版本的linux使用initrd文件,initramfs是initrd的替代优化版本,比initrd更加节省空间,更加灵活
命令dmesg可以查看本次启动是内核的输出信息
INIT
系统第一进程
调用/etc/rc.d/rc.sysinit负责对系统进行初始化,挂载文件系统,并且根据运行级别启动相应服务
linux运行级别
-0 关机
-1 单用户模式
-2 不带网络的多用户模式
-3 多用户模式
-4 未使用
-5 X11图形化模式
-6 重新启动
可以通过/etc/inittab配置文件修改默认的运行级别
每个级别对应的启动服务保存在/etc/rc.d/rc[0123456].d
命令runlevel可显示当前以及上一个运行级别
命令init可以改变当前的运行界别 init 3
单用户修改ROOT密码
为内核传递参数 1 或者 single 让系统进入单用户模式
单用户模式下不启动任何服务
单用户模式直接以root用户登录,且需要密码
可以使用passwd修改root密码
GRUB加密
通过在grub.conf中的启动配置中加入如下参数可对grub加密
password --md5
加密后的密码可以通过grub-md5-crypt生成
- 关于linuxcast网站课程中linux安装配置基础课程的个人笔记
- 关于linuxcast网站课程中MYSQL安装配置基础课程的个人笔记
- Python基础课程笔记----安装
- linuxcast课程学习
- linuxcast笔记:linux用户权限基础
- Sundy嵌入式底层开发课程笔记 --linux服务器的安装及配置
- Linux 入门基础(苏勇)课程笔记
- css3 基础课程笔记
- HTML基础课程笔记
- CSS基础课程笔记
- 很好的课程网站
- linux学习课程笔记
- linuxcast笔记:linux网络基本配置
- 重要的基础课程
- 基础的课程练习
- 关于标注的课程
- 在linux中下载iTunesU的课程
- jQuery基础课程学习笔记
- EF CodeFirst 数据库迁移
- c结构体中char[0]的作用
- MTK Android Driver :add a new key
- 深圳到武汉四天三夜计划安排
- java设计模式之---单例模式
- 关于linuxcast网站课程中linux安装配置基础课程的个人笔记
- C++指针详解
- CTE 递归查询全解
- 【Java设计模式04】——观察者模式
- Android开机启动
- 用户登录记住密码(SharePreference的使用)
- [BZOJ3676][Apio2014]回文串-后缀自动机+Manacher | | 回文树
- MTK android dirver 专业词汇注释汇总
- 2016东莞市特长生考试 游戏问题