Linux发行版本:CentOS(免费版) Ubuntu(乌班图) Debian(kali军火库) Opensuse redhat(红帽) Fedora ...
第一天
安装VMware,网上下载CentOS 7的IOS映像文件,配置Vmware完成centos系统安装。
虚拟网络模式
1.仅主机
2.桥接
3.网络地址转换
如果一个虚拟机网络是nat 一个是桥接(bridge)
nat可以访问桥接 但桥接不能访问nat nat——>bridge
如果都是桥接 可以实现互相访问 nat <———> nat
如果是两个nat 不能互通 nat ——— nat
如果虚拟机采用桥接,真机(宿主机)中的虚拟机与真机属于同一个网络
虚拟机磁盘分区
-
第一个挂载点/boot 容量500M (存放操作系统内核之类的数据)
-
BIOS Boot 存在就分配500M 不存在就不分配
-
剩下的都分给 / (根目录)
分区方案具体根据业务环境艳照按照运维规范来定
swap(交换分区):虚拟内存,当内存耗尽时,把硬盘当作内存用,防止OOM(内存溢出)
/boot 存放启动文件,例如内核kernel
管理员账户密码root
实验环境:root:密码随意
业务环境:root密码需要满足密码复杂强度 防止黑客暴力破解
尽量每个业务线使用不同的密码 不建议的密码:自己生日 女朋友生日 手机号 姓名 拼音 密码不随意写在纸上
生产环境系统安装
1.把u盘做成启动盘 Rufus 把centos的镜像写入
2.利用整个u盘给服务器安装操作系统
3.修改服务器启动项为u盘启动
第二天
虚拟机快照
在系统崩溃的情况下,可以通过快照恢复
命令提示符
[root@localhost ~]#
root:用户名
@ :分隔符
localhost:主机名
~ :当前用户的家目录 /root
# :超级管理员用户
$ :普通用户
基础命令
Tab 快捷键自动补全
help 命令帮助手册
例如:ls --help
[ ] 表示可选项,即需要则用,不需要不用
{ } 表示必选项,即里面的选项为必用
| 或者,比如:a|b的意思是a或者b只能选其中一个 a|b
特殊情况:{a | b} 意思是a或b必选一个
[a | b] 意思是要么一个不选,要么选a或b其中一个
<> 这个符号有些特殊,有些命令中是必选,但是有些命令中是可选
... 表示多个,此符号前面是什么就是多个什么,比如:file...那就表示多个文件
man 命令帮助手册
例如:man ls
注意:空格翻页 / 跟上要搜索的内容
分类:
-
一般命令
-
系统调用库
-
c标准库
-
设备文件
-
配置文件
-
游戏相关
-
杂项 //所谓杂项,其大部分都是没办法很好分给其他8类的帮助
-
系统管理相关命令
man [章节号] 手册名称
man 5 rsyslog.conf 查看第五类(配置文件)man手册
ls
:查看(当前)目录中的内容
语法格式:
* 代表所有文件
ls a* 查询以a开头的所有文件
ls *txt 查询以txt为结尾的所有文件
注意: ls a* /etc 查看当前目录下以a开头的所有文件,以及/etc 所有文件
ls [参数] [目录/路径]
ls -l 查询当前目录下的详细信息 等同于 ll
ls -a 查询所有文件,包括隐藏文件:以点开头的是隐藏文件
ls -h 人性化显示 将文件大小以单位去显示
ls -i 在每个文件左边打印i节点号(也叫序列号和索引号)inode
i节点号在每个特定的文件系统中是唯一的
ls [目录] [目录] :可以同时查看多个目录
:ls [目录] /root [这个目录需要存在] 查询指定目录中的内容
:No such file or directory(查看的目录不存在)【报错】 查询文件同样适用
[root@localhost ~]# ls -l
total 4
- rw------- . 1 root root 1481 May 10 17:40 anaconda-ks.cfg
文件类型 文件权限 所有者 所有组 时间日期 文件名
cd
:切换路径(目录切换)
语法结构:
cd[路径]
cd 回到当前用户的家目录
-
路径: 绝对路径:从根开始的路径称之为绝对路径
相对路径:非根开始,从当前目录下开始的路径
linux系统最高级(顶层) 目录: /
cd - 切换到上一次去过的目录
cd ../ 返回上一级目录
cd ../../ 返回上一级的上一级的目录
date
:显示当前年月日
date +%F 只显示当前日期
date +%H:%M:%S 获取当前时间 (小时:分钟:秒)
date +%H 获取当前小时0
date +%M 获取当前分钟
date +%S 获取当前秒
date -s [时间] 可以修改时间但是不准确
pwd
:显示当前目录
Linux目录结构
bin 用户存放命令文件
sbin 超级管理员存放命令文件
which 查看命令所对应的命令文件的位置
dev 存放设备文件
/dev/null 垃圾回收站
/dev/random 产生随机数
/dev/zero 零设备文件
home 家目录
mnt 用来挂载
proc 虚拟文件 (进程文件)
boot 存放内核文件(启动文件)
etc 存放配置文件
usr 存放系统文件
tmp 临时文件
var 存放的一些变化文件,比如数据库,日志,邮件.....
第三天
-
普通文件
touch [路径] [文件名]...
创建多个文件:
touch 123 /opt/456 :在当前目录下创建123 ,同时在opt目录下创建456
创建文件以当前日期:
touch $(date +%F)
批量创建文件: file1~file100
touch file{1..100}
在一个目录下创建多个没有关联的文件:
touch /home/{aaa,www,zzz}
注:touch 无则创建,有则修改时间
删除文件:
rm -rf 文件名
r:递归
f:强制
rm -rf ./* 删除当前目录的所有文件 * 号是所有 ./当前目录 /删根(删除所有) /opt/删除指定目录下的所有
删除多个文件 rm -rf {aaaa.sssss.xxxxxxx}
-
目录
mkdir 创建目录
当前目录下创建目录
mkdir dir1 在当前目录下创建
mkdir ./dir2 在当前目录下创建
mkdir ../dir3 在上一级目录创建dir3
mkdir dir4 dir5 创建多个目录
mkdir /opt/dir1 dir6 在opt下创建dir1 同时在当前目录下创建dir6
-p :递归创建,把路径中不存在的目录创建出来
-v :显示创建过程
以当前日期创建目录 同创建文件$()
ctrl + c 命令中止
ctrl + l 清屏
拷贝文件语法格式
cp [参数] 源文件[路径+文件名] 目的地
注:
-v:显示复制过程
-f:强制复制
cp /etc/sysconfig/network-scripts/{ifcfg-eth0,ifcfg-eth0.bak}
/ifcfg-eth0{,.bak}
作用相同,简写,相当于提取公因
等同于cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak
!$ :获取上一条命令最后一个参数(当执行的这条命令需要调用上一条命令最后一个参数的时候)
同时拷贝多个文件:
cp /etc/passwd /etc/host /mnt/
如果拷贝的是目录,使用cp需要加参数 -r
无论拷贝的文件还是目录 都加 -r 不会报错万无一失
剪切 mv
mv 源文件/源目录 目的地
剪切==移动
查看文件中的内容
cat 查看文件内容
-
cat -n [文件] 显示行号
head 默认只能从前往后看文件10行
-
head -3 [文件] 查看前三行
tail 默认只能从后往前看文件10行
-
tail -3 [文件] 查看后三行
tailf 实时查看
-
tail -F 当文件被误删以后,重新创建仍然可以实时查看
-
tail -f 当文件被误删或改名后,停止实时查看
-
tailf 当文件被误删或改名后,退出查看
grep 过滤查看
grep "^root" /etc/passwd 过滤以root开头的行 ^以...开头
grep "root$" /etc/passwd 过滤以root结尾的行 $以...结尾
文件编辑工具
Linux文件编辑工具 === vi vim
系统中默认只有vi,没有vim(没有安装)
云服务器自带vim
yum -y install vim 自动安装vim
vim 文件存在就修改,文件不存在就创建
i:打开文件的时候,输入i会立即变为插入模式,编辑完文件后点击esc,会退出插入模式,输入冒号wq保存并退出 (:wq)
命令模式:
vim进入文件,即命令模式
快捷键:
gg:光标直接定位到首行
G:光标直接定位到尾行 3G 进入第三行 5G 进入第三行 以此类推
End:光标定位到行尾 == $
Home:光标定位到行首 == 0
yy 复制
p 粘贴
dd 删除
u 撤销
dG 删除所有(光标需要在首行)
x 删除光标所在的首元素
D 删除光标所在位置以及后面的所有(当前行)
r 用来修改单字符
进入vim插入模式的快捷键: i I a A o O 常用(i)
o 进入插入模式,光标在当前行的下一行插入
O 进入插入模式,光标在当前行的上一行插入
:进入尾行命令模式
w 保存
q 退出
wq 保存并退出
w! 强制保存
q! 强制退出
wq! 强制保存并退出
临时环境:
set nu 设置行号
set nonu 取消设置行号
set ic 不区分大小写
永久环境: 在vimrc中增删set命令
/etc/vimrc 影响所有系统用户
~/.vimrc 影响某一个用户
替换:
/是分隔符可以用@来替换
%是所有
1,5 表示从1-5行
$ 表示最后一行
5,$ 表示从5-最后一行
,8 表示当前行到第8行
.*整行 &引用查找的内容
例子:5,10 s/.*/#$/ 在5-10行前插入#字符
范围 s/要替换的内容/替换成谁/g(全局修改)
默认情况下之替换查询到的第一个
第四天
vim可视块模式:v进入可视模式 ctrl + v进入可视块模式
可视块
块删除:ctrl + v 选中要操作的块(内容) 利用d删除内容
块插入:ctrl + v --> I --> 输入要插入的内容 -->按两次esc
块替换:ctrl + v ,r 输入替换的字符
块复制:ctrl + v , y复制 p 粘贴
可视行:
V或者 shift + v 进入可视行 默认选中一行 (上下键选择更多的行)
行删除:v ----> d删除
:w /tmp/aaa.txt 另存为/tmp/aaa.txt
:1,3 w /tmp/2.txt
:r /etc/hosts 读入文件到当前行后
:5 r /etc/hosts 读入文件到第5行后
Linux文件类型
ls -l 文件名 //看第一个字符
- 普通文件(文本文件,二进制文件,压缩文件,电影,图片。。。)
d 目录文件(蓝色)
b 设备文件(块设备)存储设备硬盘,U盘 /dev/sda, /dev/sda1
c 设备文件(字符设备)打印机,终端 /dev/tty1, /dev/zero
s 套接字文件
p 管道文件
l 链接文件(淡蓝色)
history 查看历史命令
上下键调用之前执行的命令
Linux用户和组
1.创建用户
系统用户的UID在1~999
管理员用户UID为0
语法格式:
useradd [参数] 用户名
在使用useradd创建用户时,除了创建用户本身: 还创建用户家目录
名字跟用户名相同的组
创建邮件
useradd -s /bin/bash(可登录用户) 用户名:指定登录shell 在创建用户的时候设置用户是否可以登录
su - 用户名 切换用户
useradd -u [值] 用户名:指定UID,用户标识,在创建用户时,如果需要单独指定UID
注意:UID不允许重复
useradd -r :创建系统用户
创建了一个名为lin01系统用户且不能登录用户 :
useradd -r -s /sbin/nologin lin01
useradd -M:不创建家目录
注意:默认情况下创建的普通用户有家目录:而系统用户没有家目录
useradd -d:指定家目录
注意:给一个用户指定家目录,该目录需不存在
2.查看用户
cat /etc/passwd
第一列:用户名
第二列:密码占位符
第三列:UID 用户标识
第四列:GID 组标识
第五列:用户描述(相当于说明书)
第六列:用户的家目录
第七列:登录shell(/bin/bash[可登录用户] /bin/sh[可登录用户] /sbin/nologin[不可登录用户])
从第七列可以判断当前用户是否可以登录系统
id 用户名 查看用户信息
id判断用户是否存在 存在的话返回用户信息,不存在返回no such user
3.修改用户
cat /etc/group 查看用户组
usermod
-l:修改用户名
-s:修改登录shell
-G:修改用户的附加组 (得需要有附加组的前提,如果没有则添加附加组)
-aG:在原有附加组的基础上再增加一个附加组
组:主组 附加组
4.删除用户
userdel -r 用户名
普通的userdel删的不彻底
注意:如果用户在使用,如果跟这个用户关联的主组,改组无法删除