基础命令:
root--表示用户
local host--主机名
~ --家目录(个性化配置)
#--管理员用户
$--普通用户
root ~--root的家目录
opt--opt目录
根目录下五个文件夹
etc:放配置文件 用户信息 密码信息 软件配置
dev:存放硬件设备(典型:磁盘 光驱 输入 输出设备)
boot:开机启动需要的文件,操作系统最重要的是内核文件 内核在boot文件夹中
opt:空文件夹
mnt:挂载点 空文件夹 经常用到mnt
快捷键
tab:自动补齐
ctrl+c:停止命令
ctrl+l:清屏
上下键:会看过打开的命令
\: 调整格式 强制换行
pwd:
显示当前所在目录的完整路径
cd:
切换目录
绝对路径:
相对路径:
● 开头表示隐藏文件
cd~:切换家目录
cd- 返回上一次的目录
通配符:
匹配文件中的名字
*代表任意长度的字符,不能显示隐藏文件
?代表任意一个字符
匹配以 p 开头 ls p*
匹配以 conf 结尾 ls *conf
中间包含conf ls *conf *
数字开头 ls [0-9]*
字母开头 ls[a-Z] ls{A-Z} ls{a-z}
\转义
正则表达式:
匹配文件中的行
选项:
.任意字符
^匹配文件一行的开头
$匹配文件一行的结尾
^$空行
案例:
grep "^root" passwd——》以root 开头
grep"root$" passwd——》以root结尾
grep"^$"passwd——》空行
grep -v "^$"passwd——》非空行
设置别名-alias:
通式:
alias 命令别名=命令
实例:
设置myls为ls-alh的别名
alias myls='ls-alh'
创建相关命令:
创建文件夹-mkdir:
通式:
makdir 创建文件夹的名字
-p 递归建立文件夹:
创建刷新文件-touch:
通式:
touch 创建文件名字
创建硬链接和软链接-ln:
硬链接通式:
ls 绝对路径源文件 硬连接位置
软链接:
软链接通式(一般使用):
ln -s 绝对路径的源文件 软连接位置
区别:
对比项 | 硬链接 | 软链接 |
---|---|---|
本质 | 本质是同一个文件 | 本质不是同一个文件 |
inode(身份证号) | 相同 | 不同 |
连接数 | 创建新的硬链接,链接数会增加,删除硬链接,链接数减少 | 删除,新建都不会改变 |
文件夹 | 不支持 | 支持 |
删除源文件 | 只是链接数减一,但链接文件的访问不受影响 | 无法访问连接文件 |
文件类型 | 和源文件相同 | 链接文件,和源文件无关 |
文件大小 | 和源文件相同(指向硬盘上的同一个文件) | 源文件的路径的长度 |
基础操作命令:
复制-cp
通式:
cp 源文件 源文件夹 目的位置
-a 保留权限
要复制文件夹一定要加 -r
案例:
cp /mnt/lxc /opt/lc(将mnt目录下的lxc文件夹复制到opt目录下并改名lc)
移动 改名-mv
通式:
mv [选项] 源文件 目标文件
选项:
-f:强制覆盖
删除-rm
通式:
rm [选项] 要删除的文件
选项:
选项 | 说明 |
---|---|
-f | 删除文件或目录时不提醒,直接强制删除 |
-r | 表示递归删除整个目录树 |
-i | 删除文件或目录提醒用户确认(rm默认就进行提醒) |
-rf:通用选项
查找相关命令:
查找-find
文件名使用
通式:
find 范围 查找条件 处理动作
查找条件:
*-name 按文件名字查找*
*-size 按文件大小查找*
*-user 按用户进行查找*
*-type 按照文件类型查找* f d l s p b c
-mtime 按照时间前后查找
-inum 按照inode号查找
处理动作:
{} 用于引用查找到的文件名称自身
-ls 显示详细信息
-delete 删除
-ok 询问是否要操作
-exec 不询问直接操作
查看 命令 -which
查看命令存放的位置
通式:
which 命令或程序名
案例:
which cd
查看相关命令:
查看文件目录ls:
ls命令代表列表显示目录内容(常用选项、可结合通配符);
通式:
ls--[选项] [文件或目录… ]
选项:
-l 长格式显示(显示文件属性)
-d 只显示文件夹
-a 显示全部及隐藏文件
-R 递归显示(从第一层到最后一层显示)
-r 倒序显示
-t 时间排序
-s 文件大小 排序
-j 显示文件inode号
查看文件内容 -cat:
通式:
cat 选项 文件名
选项:
-A :显示隐藏字符
-n:显示行号(包括空行)
统计文件-du:
du命令代表统计目录及文件空间占用情况
通式:
du [选项] [文件或目录]
选项:
-
-s 总大小
-
-a 每个文件的大小
-
-h 显示格式
-
-d 显示文件夹层级
查看文件开头-head
查看文件开头的一部分内容(默认为10行)
通式:
head -n 数字 文件名
选项:
-c # 指定获取前#字节
-n 正数前多少行 负数后多少行
-# 同上
查看文件的结尾-tail
tail 和head 相反,查看文件或标准输入的倒数行
通式:
tail -n 数字 文件名
案例:看tset文件的后2行
tail -n 2 文件名
tailf 实时查看后十行
重定向:
覆盖->
追加->>
横向合并-paste
上下合并-cat
把同一行内容逆向显示 -rev
倒序看-tac
扩展命令:
tr-对字符进行处理:
tr 命令用于字符转换、替换和删除,主要用于删除文件中的控制符或进行字符串转换等
-d 删除 -s 压缩 -c 补集
案例:
怎么把 A 文件的小写换成大写
tr '[a-z]' '[A-Z]' 文件名
cut 截取:
格式:
cut 选项 文件
选项:
-d:分隔符,按照指定分隔符分割列。与 -f 一起使用
-f:依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思(列号,提取第几列)
sort 排序:
选项:
- -r: 降序排列,默认是升序
- -n: 以数字排序,默认按字符排序
- -k: 第N列
uniq 去重:
选项:
-c, --count 打印每行出现的次数
-d, --repeated 只打印重复出现的行
-D 打印所有重复行
总结的问题:
如何从日志文件中找到访问量前十的IP地址?
cut -d" " -f1|sort -n | uniq -c | sort -nr |head
分页查看:
more:
结束会直接退出
回车 ———》一行
空格 ———》 一页
less:
结束不会退出
/关键字 进行搜索,大小写敏感
n ——》向下查看
N ——》 向上查看
q ——》退出
统计文件行列内容-wc
格式:
wc 【选项】 目标文件
选项:
-l 只统计行
-w 只统计单词
-c 只统计单词
匹配指定文件内容-echo:
echo 要查找匹配的内容
过滤文件-grep:
介绍:文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文本逐行进行匹配检查,打印匹配到的行
模式:由正则表达式的元字符及文本字符所编写出的过滤条件﹔
通式:
grep 选项 表达式
选项:
-i 忽略大小写
-v 反选
-o 只显示匹配的内容
-f 对比两个文件的相同行
-n 显示行号
-r 快速过滤文件下的字符
-c匹配的行数
案例:找出两个文件中相同的部分?
答:grep -f a文件 b文件
管道符:
命令1 | 命令2 | 命令3 ...
压缩与解压:
tar-归档:
通式:
tar 选项 压缩包的名字 要压缩的文件
选项:
-C:解压时指定释放的目标文件夹
-c:创建(Create).tar 格式的包文件
-x:解压--解开.tar 格式的包文件
-f:表示使用归档文件(出现tar一定要带f)
-p:打包时保留文件及目录的权限
-P:打包时保留文件及目录的绝对径
-t:列表查看包内的文件(要和f一起使用)
-v:输出详细信息(Verbose)
-z:调用 gzip 程序进行压缩或解压
-j:调用 bzip2 程序进行压缩或解压
gzip
制作的压缩文件默认的扩展名为“ .gz ”,生成压缩文件后,原始文件将不再保留。
格式:
gzip [-9] 文件名 :制作压缩文件
gzip -d .gz格式的压缩文件 :解开压缩文件
gunzip .gz格式的压缩文件 :解开压缩文件
选项“ -9 ”解释
vi文本编辑器
Linux中最经典的文本编辑器
vim是vi的加强版本
vim +10 直接跳动文件第十行
!vim 打开上一次文件
行间跳转:
100(数字) G 跳转到100(数字)行
首行 gg
末行 G
行内跳转:
End 行尾($)
0 开头(^)
一个单词一个单词跳(以冒号结尾) w
o插入下一行
撤销:
u 撤销一次 ctrl + r 取消撤销
U 撤销全部
复制:
y 复制
yy 复制一行
yw 复制一个单词
10 yy 复制10行
光标在哪
p 贴在光标下面
P贴在光标上面
删除:
x 删除 删除一个字符 剪切
d 删除
dd 删除一行
10 dd 删除10行
dw 删一个单词
替换:
r 替换
R 替换模式
保存w
退出q
强制!
zz
分割文件-split
通式:
split 选项 选项内容 文件名
vim查找与替换:
先查找文件中的内容 然后换掉他
格式:
范围 s /文件中旧的内容/替换的内容/修饰符
范围:不写范围 光标当前行
% 全文
#号 行 #代表数字
2,5 2到5行
$ 最后一行
$-1 最后一行
2,$ 2到最后一行
修饰符:
g:全局替换
rpm:
RPM可以实现几乎所有软件包的功能,新增,删除,更新等
格式: rpm -q [子选项] 软件名
rpm -q | 查看软件是否安装 |
rpm -ql 软件名 | 查看某软件的所有安装目录 |
rpm -qc 软件名 | 查看软件的配置文件 |
rpm -ivh 软件名 | 安装 |
rpm -e 软件名 | 卸载 |
rpm -qf 绝对路径软件名 | 查找软件来自于哪个安装包 |
-i | 安装一个新的rpm软件包 |
-v | 显示软件安装过程中的详细信息 |
-h | 在安装或升级软件过程中,以“#”号显示安装进度 |
-e | 卸载指定名称的软件包 |
-U | 升级某个软件包,若未安装过,则进行安装 |
-F | 升级某个软件包,若未安装过,则放弃安装 |
yum:
yum是RPM升级版本,解决rpm的弊端
yum [可选项] [要进行的操作] [安装包名...]
yum -y install 软件名 | 安装升级软件包 |
yum -y remove 软件名 | 卸载软件包,可自动解决其依赖关系 |
yum -y update 软件名 | 升级软件包 |
yum仓库编译安装:
源码编译安装:
./configure 检测依赖环境 ,选择添加减少软件的功能
make 将人类使用的高级语言翻译成二进制
make install 复制文件到硬盘
用户和组:
用户的类型:
普通用户——权限受限制的用户
程序用户——不是给人使用,是给程序使用的
超级管理员——权限最高的用户
uid号:
uid:系统靠uid来区分用户
超级管理员的uid为0
普通用户uid范围:1000-60000
程序用户的范围:1-999
重要文件:
/etc/passwd——存放用户信息
/etc/shadow——存放密码及规则的文件
/etc/fstab——自动挂载文件
/etc/hosts dns ——解析文件
/etc/hostname ——主机名
/etc/resolv.conf ——目前生效的 dns 服务器
/etc/redhat-release ——看系统版本
useradd-添加新用户
通式:
uesradd 选项 添加的新用户名
选项:
**-u 指定uid号**
**-M 不生成家目录**
**-s 指定shell类型**
**-e 指定用户的失效时间**
-g 指定基本组
-G 指定附加组
passwd-密码管理:
通式:
passwd 选项 用户名
选项:
-l 锁定用户
-u 解锁永久
-S 查看用户状态
usermod-用户属性修改
通式:
usermod 选项 用户名
选项:
-L锁定用户
-U解锁用户
-l 修改用户名
userdel-删除用户:
通式:
userdel 选项 用户
-r 把家目录(宿主目录)也删除
chmod -更改权限
通式:
chmod 对谁(所有者,所属组,其他)操作(+ - =)权限 文件
谁:u 属主 g 属组 o 其他人 a 所有人
操作:+ - =
权限:
r ——4 可以看文件内容
w ——2 可以修改文件内容
x ——1 可以运行文件
(普通权限对root无效)
-R :递归
第一个7 属主的权限
第二个7 属组的权限
第三个7 其他人权限
chmod 777 文件名
chown -更改属主 属组
通式:
chown -R 修改属主 属组
chown 属主:属组 文件或文件夹、
特殊权限:
umask 文件默认落地权限
sticky:只能自己和超级管理员可以删自己的文件(用t表示)
suid:把当前用户当成文件的所属主,可以进行任何操作
sgid
磁盘分区:
分区:
fdisk-查看设备信息
fdisk -l /dev/sda 只看sda设备
fdisk -l 看所有
通式:
fdisk 设备名 (会进入交互界面 进行分区)
选项:
n | 新建分区 |
p | 主分区 |
e | 扩展分区 |
w | 保存 |
p | 打印分区列表 |
t | 改变分区类型 |
q | 退出 |
d | 删除分区 |
lsblk:查看分区及磁盘情况
分区种类:
主分区: 可以直接使用 ,安装操作系统 存储文件 等,主分区的序号为 1-4。
扩展分区:
不可以直接使用, 需要再 划分逻辑分区, 让分区超过4个
扩展分区不是用的,是用来 存储了逻辑分区的分区表
逻辑分区:可以直接使用, 存储文件。逻辑分区的序号 从5 开始
格式化——安装文件系统
MBR: 主引导记录, 是硬盘上的第一个扇区, 想要读数据得从这个扇区开始
MBR: 对2T 以下的硬盘分区 ——fdisk 管理MBR分区
GPT: 可以支持 2T 以上的硬盘分区——gdisk 管理GPT分区
分区通式:
mkfs -t 指定格式类型 设备名
mkfs.文件系统类型 设备名
例:创建文件类型为xfs:
mkfs.xfs /dev/sdb
磁盘命令
磁盘文件:
设备名:
/dev/sda1
s代表磁盘的接口类型
d——disk
a——第一块盘
1——第一块盘的第一个分区
df -Th ——查看文件系统
findmnt 设备 ——查看 设备的详细信息
/etc/fstab 自动挂载文件
UUID=e9364e9b-a85b-49d7-9652-3a56202e14c8 /boot xfs defaults 0 0
uuid 设备名可以用文件的形式不推荐, 一定要用uuid
/boot 挂载点
xfs 文件系统类型
defaults 代表权限
0 不备份
0 开机不检查
挂载与解挂载:
挂载:
将系统中的文件夹和磁盘做上关联,使用文件夹等于使用磁盘
只打mount 可以看到所有的 挂载信息
通式:
mount [ -t 类型 ] 存储设备 挂载点目录
mount -o loop ISO镜像文件 挂载点目录
mount -a 刷新
解挂载-umount
通式:
umount 设备名 挂载点
重新挂载-remount
永久挂载:
需要 将文件写入 /etc/fstab
LVM:
1.先做物理卷
2.在做卷组
3.最后做逻辑卷
pvcreate-建立物理卷
pvcreate /dev/sdb1 /dev/sdc
vgcreate-建立卷组
vgcreate vg1 /dev/sdb1 /dev/sdc
建立卷组 取名vg1 并将/dev/sdb1 /dev/sdc 加入卷组
lvcreate-建立逻辑卷
lvcreate -n mysql -L +10G vg1(卷组)
建立逻辑卷 -n指定逻辑卷的名字 -L 指定大小 PE是vg1卷组中来的
扩容卷组-vgextend
通式:
vgextend 卷组名 设备名
vgextend vg1 /dev/sdb
扩容逻辑卷-lvextend
通式:
lvextend -L 指定大小 逻辑卷的名字
lvextend -L +5G /dev/名字/mysql
扩容根目录:
vgextend centos /dev/sdb
lvextend -L +15G /dev/centos/root -r
同步文件系统
xfs_growfs /mnt/
-r 立马同步文件系统
raid-磁盘阵列:
1u u代表服务器的高度
引导过程:
开机引导过程:
开机自检(bios) —》MBR引导 —》 GRUB菜单 —》 加载内核(kernel) —》init进程初始化
dd if=/dev/sda of=/opt/mbr.bak count=1 bs=512
#备份磁盘的第一个扇区
dd 复制
id 从哪里
of 复制到哪里去
count 次数
bs 一次复制多少
系统初始化进程:
init进程:
init进程是系统中第一个进程
init进程的PID(进程标记)号永远为1
Systemd:
systemd是linux操作系统的一种init软件
概括:
路径:/lib/systemd/system/*.service为结尾的文件
systemd能够识别并管理这些以.service为结尾的程序
运行级别:
runlevel ——查看当前运行级别
各个级别的作用:
0 关机
1 单用户 类似于windows的急救模式
2 字符界面 少些功能(nfs)
3 字符界面
4 字符界面 从来没用
5 图形界面
6 重启
init 0 关机
init 3 切换到字符界面
服务控制:
格式:
systemctl 控制类型 服务名称
常用控制类型:
类型 | 动作程序 |
systemctl start 程序名 | 启动程序 |
systemctl stop 程序名 | 停止程序 |
systemctl restart 程序名 | 重新启动 |
systemctl reload 程序名 | 重新加载 |
systemctl status 程序名 | 查看服务状态 |
systemctl enable 程序名 | 开机自启 |
systemctl disable 程序名 | 开机不自启 |
systemctl enable --now 程序名 | 开机自启并立即启动 |
systemctl diable --now 程序名 | 开机不自启并立即关闭 |
开机自启:
systemctl enable 服务名
开机自启,并立即启动
systemctl enable --now 服务名
开机不自启,并立即关闭
systemctl disable --now 服务名
问题:
为什么程序可以使用systemctl启动?
是因为程序在/usr/lib/systemd/system/*.service 文件
进程:
进程id——PID
init:第一个进程,从 CentOS7 以后为systemd
进程:都由其父进程创建
进程一般由程序、数据集合和进程控制块三部分组成。
管理进程 :
1.启动进程
2.查看进程状态
3.结束进程
进程状态 :
运行 R
睡眠 S
睡眠 D
僵尸 Z
停止 T
问题:
如何过滤僵尸进程?
ps aux | grep Z
以 cpu 利用率排序 倒序显示 ps aux k -%cpu|head
ps aux k -%mem|head 以内存排序
ps-静态查看进程
ps aux" 可以查看系统中所有的进程
a 所有终端
u 以用户 为主的格式输出
x 显示所有终端下的进程信息
ps -elf 命令输出信息:
e 显示系统内的所有进程信息
l 长格式
f 使用完整的(Full)格式显示进程
top-动态查看进程
free-查看内存
-h | 以友好的方式显示内存的使用情况 |
-b | 以Byte为单位显示内存使用情况 |
-k | 以KB为单位显示内存使用情况 |
-m | 以MB为单位显示内存使用情况 |
-g | 以GB为单位显示内存使用情况 |
iostat-硬盘读写性能
选项 | 说明 |
-c | 只显示CPU行 |
-d | 显示设备(磁盘)使用状态 |
iotop-监视磁盘I/O
pgrep-查询进程PID信息
选项 | 说明 |
-U | 指定用户 |
-l | 显示进程名 |
查看进程信息 ——prtstat
pmap :
查看进程占用 内存的详细信息
选项:
-x, --extended 显示扩展格式
-d, --device 显示设备格式。
-XX 显示内核提供的所有内容。
dastat-系统资源统计
pstree命令进程树:
以树形结构列出进程信息
lsof
列举系统中已经被打开的文件
vmstat-监控系统资源 虚拟 资源:
uptime 系统运行了多久时间:
显示CPU相关统计mpstat:
kill-结束进程
通式:
kill -9 进程id 强制结束
killall -9 程序名
pkill
crontab-计划任务
通式:
crontab -e 编辑计划任务
crontab -l 查看计划任务
crontab -r 删除计划任务
crontab -u 用户名 用来设定某个用户的crontab服务
crontab -i 在删除用户的crontab文件时,给确认提示
编辑计划任务:
crontab -e
格式:
***** 绝对路径
分 0-59
时 0-23
日 1-31
月 1-12
月 1-12
周 0-7
每两分钟 */2 * * * *
周一到周五 ****1-5
每月1号 ***1**
每两天 ***/2**
系统安全的加固:
-
将用户设置为无法登录、
-
锁定账户
-
删除账户
-
锁定账户密码 本质锁定
问题:中病毒怎么处理?
1.使用ps或top
查找到这个异常进程 通过进程pid找到proc exe找到文件的真实位置,把他删除
history:
查看历史命令,默认一千条
history -c 清空历史命令
su-切换用户
limit:
功能:在用户级别实现对其可使用的资源的限制
修改限制的实现方式——ulimit命令
配置文件:
/etc/security/limits.conf
sudo-提权操作:
grub-加密:
/etc/grub.d-目录
日志:
日志存放位置——/var/log/
/var/log/secure:系统安全信息
/var/log/messages :系统中大部分的信息
journalctl-查看日志
日志的配置文件:
/etc/systemd/journald.conf
通式:
journalctl [OPTIONS...] [MATCHES...]
关闭防火墙:
systemctl stop firewalld
setenforce 0
网络接口的配置文件默认位于 /etc/sysconfig/network-scripts/ifcfg-ens33
sysctl:
sysctl命令被用于在内核运行时动态地修改内核的运行参数