Linux教程

一、Linux简介

1.1 Linux是什么

1
Linux,全称GNU/Linux,由林纳斯·本纳第克特·托瓦兹 编写的操作系统内核,是一套免费使用和自由传播的类Unix操作系统。支持多用户、多任务、多线程和多CPU

1.2 Linux的特点

1
2
3
4
5
6
1.一切皆文件
2.开源免费
3.多用户多任务
4.支持多平台
5.兼容POSIX.0标准
6.稳定

1.3 Linux应用场景

1
相比windows系统,更加稳定,因此主要用于服务端

1.4 常见的Linux版本

1
2
3
4
5
6
7
Redhat
CentOS
Fedara
Ubuntu
Debian
SUSE
Kali

二、常用命令

2.1 帮助类命令

1
man [命令]
1
help [命令] 

2.2 关机重启类命令

1
2
3
4
5
6
7
8
9
10
将内存中的数据同步到硬盘
sync
关机
poweroff
shutdown -h now
init 0
重启
reboot
shutdown -r now
init 6

2.3 文件目录类命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
查看当前所在目录
pwd
查看目录内容
ls
切换目录
cd
创建目录
mkdir
删除空目录
rmdir
创建文件
touch
复制
cp
移动/重命名
mv
删除文件/目录
rm
查看文件内容
cat
more
less
head
tail
打印信息
echo
覆盖
>
追加
>>
创建超链接
ln
历史命令
history

2.4 服务管理类命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
CentOS6
开启服务
service 服务名 start
停止服务
service 服务名 stop
重启服务
service 服务名 restart
查看服务状态
service 服务名 status
开启开机自启
chkconfig 服务名 on
关闭开机自启
chkconfig 服务名 off
查看服务开机自启状态
chkconfig 服务名 --list
查看所有服务自启配置
chkconfig
CentOS7
开启服务
systemctl start 服务名
停止服务
systemctl stop 服务名
重启服务
systemctl restart 服务名
查看服务状态
systemctl status 服务名
开启开机自启
systemctl enable 服务名
关闭开机自启
systemctl disable 服务名
查看服务开机自启状态
systemctl is-enabled 服务名
查看所有服务自启配置
systemctl list-unit-files
查看正在运行的服务
systemctl --type service

2.5 时间日期类命令

1
2
3
4
5
6
7
8
9
10
11
date
date +%Y
date +%m
date +%d
date +%H
date +%M
date +%S

date "+%Y-%m-%d %H:%M:%S"

cal

2.6 用户管理类命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
添加用户
useradd 用户名 => 创建用户,默认以当前用户名作为用户组
useradd -g 组名 用户名 => 创建用户时指定用户组
删除用户
userdel 用户名 => 删除用户但保留用户的主目录
userdel -r 用户名 => 删除用户和用户的主目录
设置密码
passwd 用户名
查看用户是否存在
id 用户名
切换用户
su 用户名 => 切换用户,只能获得用户的执行权限,不能获得环境变量
su - 用户名 => 切换用户并获得该用户的环境变量以及执行权限
查看当前登录用户信息
whoami => 显示自身用户名称
who am i => 显示登录用户的用户名
使普通用户具有root权限
sudo 命令

2.7 用户组管理类命令

1
2
3
4
5
6
7
8
添加用户组
groupadd 组名
删除用户组
groupdel 组名
查看创建了那些用户组
cat /etc/group
修改用户的用户组
usermod -g 用户组 用户名

2.8 文件权限类命令

image-20251018111956943

1
2
3
4
5
6
7
8
9
10
11
第 1 组:文件类型,其中第一个字符代表文件的类别。
- 普通文件 d 目录 l 符号链接
c 字符设备 b 块设备
文件的权限
r:可读 w:可写 x:可执行 -:没有权限
第 2 组:文件件的连接数
第 3 组:文件所有者
第 4 组:文件属组
第 5 组:文件大小,默认单位为字节
第 6 组:文件创建时间
第 7 组:文件名称
1
2
3
4
5
6
7
8
9
10
11
12
查看权限
ll
修改权限
按字母方式修改
chmod [{ugoa}{+-=} {rwx}] 文件或目录
按数字方式修改
chmod 777 文件或目录
修改所有者
chown 最终的用户 文件或目录 => 不递归修改所有者
chown -R 用户 文件或目录 => 递归修改所有者
修改所有组
chgrp 最终的组 文件或目录

2.9 搜索查找类命令

1
2
3
4
find [搜索范围] [选项]
-name 按照文件名查找文件
-user 按照所属用户名查找文件
-size 按照文件大小查找文件
1
2
管道符
| =>表示将前一个命令的处理结果输出传递给后面的命令处理
1
2
过滤
grep 选项 查找内容 源文件

2.10 压缩解压类型命令

gzip/gunzip

1
2
gzip 文件   => 压缩文件,只能将文件压缩为*.gz。只能压缩文件,不能压缩目录,且不保留原来的文件
gunzip 文件.gz =>解压缩文件

zip/unzip

1
2
zip [选项] xxx.zip 将要压缩的内容    => 压缩文件和目录
unzip [选项] xxx.zip => 解压缩,可添加-d 选择指定解压目录

tar

1
2
tar -zcvf xxx.tar 将要打包压缩的内容  => 压缩文件和目录
tar -zxvf xxx.tar => 解压缩,可添加-C 选择指定解压目录

2.11 磁盘分区类命令

1
2
3
4
5
6
7
8
查看磁盘空间使用情况
df -h => 以人性化的方式查看磁盘空间的使用情况
查看磁盘分区详情
fdisk -l => 显示所有磁盘的分区列表
挂载磁盘
mount
卸载磁盘
unmount

2.12 进程线程类命令

1
2
3
4
5
查看当前系统进程状态
ps -aux | grep xxx => 查看系统中所有进程
ps -ef | grep xxx => 可以查看父子进程之间的关系
终止进程
kill -9 进程号

2.13 系统定时任务类命令

1
2
3
4
5
6
编辑定时任务
crontab -e
查询定时任务
crontab -l
删除当前用户所有的定时任务
crontab -f

三、Vim编辑器

3.1 Vim一般模式

删除和复制操作

按键 效果
dd 删除光标当前行
dnd 删除n行
u 撤销上一步
x/X 删除一个字母Delete/删除一个字母Backspace
yy 复制光标当前行
p 粘贴
dw 删除一个词
yw 复制一个词

光标移动

按键 效果
gg 移动到页头
G 移动到页尾
数字+G 移动到目标行
^ 移动到行头
$ 移动到行尾
ZZ 如果没有修改,直接退出,如果修改,保存后退出

3.2 Vim编辑模式

按键 效果
i 当前光标前
a 当前光标后
o 当前光标行的下一行
esc 退出编辑模式

3.3 Vim命令模式

按键 效果
:w 保存
:q 退出
:wq 保存并退出
:! 强制执行
:%s/old字符/new字符 批量替换
/要查找的词 n查找下一个;N查找上一个
:set nu 展示行号
:set nonu 隐藏行号
:noh 取消高亮

四、包管理

4.1 RPM

1
2
3
4
5
6
7
8
9
查看已安装的软件
rpm -qa | grep 软件名
卸载软件
rpm -e 软件名
rpm -e --nodeps 软件名
安装软件
rpm -ivh 软件包名
查看安装位置
rpm -ql 服务名

4.2 YUM

1
2
3
4
5
6
7
8
9
10
11
12
13
查看软件的全称
yum list | grep 软件名
卸载软件
yum remove 软件名
安装软件
yum install 软件名
yum install -y 软件名
更新软件
yum update
清理yum缓存
yum clean
构建yum缓存
yum makecache