先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
命令所在路径:/bin/cp
执行权限:所有用户
语法:cp -rp [原文件或目录] [目标目录]
-r 复制目录
-p 保留文件属性
功能描述:复制文件或目录
范例:$ cp -r /tmp/zhang/test1 /root
将目录/tmp/zhang/test1复制到目录/root下
$ cp -rp /tmp/zhang/test2 /tmp/zhang/test2 /root
将/tmp/zhang目录下的test1和test2目录复制到/root下,保持目录属性
# 拷贝文件
cp 原文件 新文件
# 拷贝文件夹
cp -r 源文件夹 新文件夹
#### 1.9 移动文件:mv 命令
9. 移动文件或修改文件名
# 移动源文件到目标文件夹中
mv 文件 文件夹
# 修改文件A的名字为文件B
mv 文件A 文件B
#### 1.10 获取文件的md5指纹:md5sum 命令
8. 获取文件的md5指纹(数字签名)
md5sum 文件名
# 简介
1. 数字签名,又称数字指纹
2. 可以验证文件是否被修改
3. 一个文件通过计算得到的一串字符串,文件内容的唯一标记(文件内容不变,指纹不会变)
### 2.文本内容(查看|处理)命令
#### 2.1 创建文件:touch 命令
#1 创建文件命令名称:touch
命令所在路径:/bin/touch
执行权限:所有用户
语法:touch [文件名]
功能描述:创建空文件
范例:
$ touch test
#### 2.2 显示文件内容:cat 命令
查看文件中的全部信息(适合查看小文档)
cat 文件名
命令所在路径:/bin/cat
执行权限:所有用户
语法:cat [文件名]
功能描述:显示文件内容
-n 显示行号
范例:
$ cat /etc/issue
$ cat -n /etc/services
#### 2.3 分屏显示:more 命令
分屏显示命令名称:more
命令所在路径:/bin/more
执行权限:所有用户
语法:more [文件名]
(空格) 或f 翻页
(Enter) 换行
q或Q 退出
功能描述:分页显示文件内容
范例:
$ more /etc/services
#### 2.4 分屏显示:less 命令
以分页的方式浏览文件信息(适合查看大文档),进入浏览模式
less 文件名
浏览模式快捷键
↑ #上一行
↓ #下一行
G #最后一页
g #第一页
空格 #下一页
/关键词 #搜索关键词
退出浏览模式,回到Linux命令行模式
q #退出
命令所在路径:/usr/bin/less
执行权限:所有用户
语法:less [文件名]
功能描述:分页显示文件内容(可向上翻页)
范例:
$ less /etc/services
tips: 按下 / 后可以搜索 会反显高亮 按q退出(more也可以)
#### 2.5 取首n行:head 命令
取首n行命令名称:head
命令所在路径:/usr/bin/head
执行权限:所有用户
语法:head [文件名]
功能描述:显示文件前面几行
-n 指定行数
范例:
$ head -n 20 /etc/services
#### 2.6 取尾n行:tail 命令
取尾n行 命令名称:tail
命令所在路径:/usr/bin/tail
执行权限:所有用户
语法:tail [文件名]
功能描述:显示文件后面几行
-n 指定行数
-f 动态显示文件末尾内容
范例:
$ tail -n 18 /etc/services
# 实时滚动显示文件的最后10行信息(默认10行)
tail -f 文件名
# 显示文件的最后20行信息
tail -n 20 文件名
tail -n -20 文件名
# 显示文件信息从第20行至文件末尾
tail -n +20 文件名
### 3、文件搜索命令
#### 3.1 查找文件:find 命令
查找文件 命令名称:find
命令所在路径:/bin/find
执行权限:所有用户
语法:find [搜索范围] [匹配条件]
功能描述:文件搜索
# 语法
find 搜索路径 -name "文件名关键词"
# 例子
find / -name "passwd"
find / -name "ifcfg-\*"
范例:
$ find /etc -name init
在目录/etc中查找文件init
-iname 不区分大小写
$ find /etc -name *init*
在目录/etc中查找文件名包含init
$ find /etc -name init???
在目录/etc中查找文件名init开头并有3个字符的
$ find /etc -name init*
在目录/etc中查找文件名init开头的
tips:* 匹配任意字符,?匹配单个字符
$ find / -size +204800
在根目录下查找大于100MB的文件
+n 大于 -n 小于 n 等于
$ find /home -user shenchao
在根目录下查找所有者为shenchao的文件
-group 根据所属组查找
$ find /etc -cmin -5
在/etc下查找5分钟内被修改过属性的文件和目录
-amin 访问时间 access
-cmin 文件属性 change
-mmin 文件内容 modify
$ find /etc -size +163840 -a -size -204800
在/etc下查找大于80MB小于100MB的文件
-a 两个条件同时满足
-o 两个条件满足任意一个即可
$ find /etc -name inittab -exec ls -l {} \;
在/etc下查找inittab文件并显示其详细信息
-exec/-ok 命令 {} \; 对搜索结果执行操作
tips:-exec直接执行,ok会询问操作
-type 根据文件类型查找
f 文件 d 目录 l 软链
-inum 根据i节点查找
#### 3.2 文件资料库查找:locate 命令
文件资料库查找命令名称:locate
命令所在路径:/usr/bin/locate
执行权限:所有用户
语法:locate 文件名
功能描述:在文件资料库中查找文件
范例:
$ locate inittab
tips:新建文件locate不到,可以updatedb,更新文件资料库后查找[tmp不在文件资料库内]
$ locate -i text01 // -i 作用你不区分大小写类似 -iname
#### 3.3 查看命令位置:which 命令
#查看命令位置命令名称:which
命令所在路径:/usr/bin/which
执行权限:所有用户
语法:which 命令
功能描述:搜索命令所在目录及别名信息
范例:
$ which ls
#### 3.4 查看命令位置:whereis 命令
#查看命令位置命令名称:whereis
命令所在路径:/usr/bin/whereis
执行权限:所有用户
语法:whereis [命令名称]
功能描述:搜索命令所在目录及帮助文档路径
范例:
$ whereis ls
#### 3.5 文本搜索:grep 命令
文本搜索命令名称:grep
命令所在路径:/bin/grep
执行权限:所有用户
语法:grep -iv [指定字串] [文件]
功能描述:在文件中搜寻字串匹配的行并输出
-i 不区分大小写
-v 排除指定字串
# 语法
grep -参数 要查找的目录范围
# 参数
-n 显示查找结果所在行号
-R 递归查找目录下的所有文件
# 例子
grep aries /etc
grep aries /etc/passwd
范例:
# grep mysql /root/install.log
# grep -v ^# /etc/inittab 去除以#开头的所有行信息,^表示以XXX开头
### 4. 文件链接
#### 4.1、Linux文件管理
文件链接 命令名称:ln
命令所在路径:/bin/ln
执行权限:所有用户
语法:ln -s [原文件] [目标文件]
-s 创建软链接
功能描述:生成链接文件
范例:
#创建文件/etc/issue的软链接/tmp/issue.soft
$ ln -s /etc/issue /tmp/issue.soft
#创建文件/etc/issue的硬链接/tmp/issue.hard
$ ln /etc/issue /tmp/issue.hard
* 模型图
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/5dc2444038d74313a814d031d4b7dd7e.png)
* 说明
文件名
该文件的名字
inode
该文件的元数据
datablock
该文件真正保存的数据
* 注意:
>
> 1、inode中保存的是文件的元数据
> 2、ls命令查看的都是linux的元数据信息
> 3、数据块中才是文件的真正数据
>
>
>
#### 4.1.1、硬链接
>
> 硬链接特征:
> 1、拷贝cp -p + 同步更新
> 2、可通过i节点识别
> 3、不能跨分区
> 4、不能针对目录使用
>
>
>
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/6e1ca50d22564727bda5b49863e46901.png)
* 命令
ln 源文件 硬链接文件
#### 4.1.2、软连接
>
> 软链接特征:类似Windows快捷方式
>
>
> * 1、lrwxrwxrwx l 软链接
> **软链接文件权限都为**:rwxrwxrwx
> * 2、文件大小-只是符号链接
> * 3、/tmp/issue.soft -> /etc/issue 箭头指向原文件
>
>
>
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/522fdbd9d0b44adf9a601d19bea53ee9.png)
* 命令
ln -s 目标文件或文件夹 软连接名字
### 5、 权限管理命令
#### 5.1、用户组
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a85be4eb4e0e48e585730a438b27a94a.png)
* 相关命令
- 创建组
groupadd 组名
- 删除组
groupdel 组名
- 查找系统中的组
cat /etc/group | grep -n “组名”
说明:系统每个组信息都会被存放在/etc/group的文件中
#### 5.2、用户
- 创建用户
useradd -g 组名 用户名
- 设置密码
passwd 用户名
- 查找系统账户
说明:系统每个用户信息保存在/etc/passwd
文件中 - 切换用户
su 用户名
- 删除用户
userdel -r 用户名
#### 5.3、权限管理命令
* 问题
>
> linux系统未来可能有程序员、用户、数据库管理员、项目经理等各种角色各种级别人使用,甚至还有身份不明的人链接到linux,控制不好权限容易导致系统崩溃、数据丢失等问题。
>
>
>
* 权限含义
| 权限字母 | 含义 | 对文件 | 代表命令 | 对文件夹 | 代表命令 |
| --- | --- | --- | --- | --- | --- |
| R® | 读 | 查看文件内容和复制文件 | more cat less cp head tail | 查看文件夹下的文件 | ls |
| W(w) | 写 | 编辑文件 | vi | 在文件夹内创建和删除文件 | rm touch |
| X(x) | 执行 | 执行该文件(执行必须具备r权限) | - | 切换到文件夹 | cd |
* 权限访问控制列表(`ACL access controll list`)
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/55f9fea214574233ba6f3173840f22d1.png)
##### 5.3.1 修改文件权限:chmod 命令
修改文件权限 命令名称:chmod
命令所在路径:/bin/chmod
执行权限:所有用户
语法:chmod [{ugoa}{+-=}{rwx}] [文件或目录]
[mode=421 ] [文件或目录]
-R 递归修改
功能描述:改变文件或目录权限
权限的数字表示
r ---- 4 w ---- 2 x ---- 1
rwxrw-r-- 7 6 4
范例:
赋予文件testfile所属组写权限
$ chmod g+w testfile
修改目录testfile及其目录下文件为所有用户具有全部权限
$ chmod -R 777 testdir
权限设置1
语法:chmod u±rwx,g±rwx,o±rwx 文件名
运算符:
- 删除权限
+ 添加权限
= 赋值权限
## 给文件的所有者添加执行权限
chmod u+x 文件名
## 给文件的其他人删除所有权限
chmod o-rwx 文件名
## 给文件的所属组设置读写权限
chmod g=wx 文件名
权限设置2
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/3911fbf8cafa4626a18d027f1558723a.png)
文件的每个归属方的权限的值使用rwx之和计算出来的。
# 语法
`chmod [-R] nnn 文件`
-R 递归设置文件夹内所有文件
# 设置文件的权限为(所有者可读可写可执行,所属组可读可写,其他人可读)
chmod 764 文件名
##### 5.3.2 修改文件所有者:chown 命令
设置文件所有者
语法:chown [-R] user名:group名 文件名
参数:-R 如果是文件夹,需要使用这个参数,可以将文件夹及其内部所有文件的所有者和组全部修改
注意:命令权限需要root
命令所在路径:/bin/chown
执行权限:所有用户
语法:chown [用户] [文件或目录]
功能描述:改变文件或目录的所有者
范例:
改变文件test的所有者为zhang
$ chown zhang test
## 修改文件所有者
chown 用户名 文件名
## 修改文件所属组
chown :组名 文件名
## 修改文件所有者和所属组
chown 用户名:组名 文件名
## 修改文件夹的所有者和所属组
chown [-R] 用户名:组名 文件夹
##### 5.3.3 修改文件所属组:chgrp 命令
命令名称:chgrp
命令所在路径:/bin/chgrp
执行权限:所有用户
语法:chgrp [用户组] [文件或目录]
功能描述:改变文件或目录的所属组
范例:
改变文件text01的所属组为group01
$ chgrp group01 text01
##### 5.3.4 默认权限:umask 命令
命令名称:umask
命令所在路径:Shell内置命令
执行权限:所有用户
语法:umask [-S]
-S 以rwx形式显示新建文件缺省权限
功能描述:显示、设置文件的缺省权限
范例:
tips: 新建文件是默认没有x权限(比如:防止木马病毒攻击)
$ umask -S
##### 5.3.5 查看权限:ll 命令
查看权限
ls -la 文件
ll 文件
### 6、帮助命令
#### 6.1 帮助:man 命令
命令名称:man
命令所在路径:/usr/bin/man
执行权限:所有用户
语法:man [命令或配置文件]
(空格) 或f 翻页
(Enter) 换行
q或Q 退出
功能描述:获得帮助信息
范例:
$ man ls
查看ls命令的帮助信息
$ man services
查看配置文件services的帮助信息
#### 6.2 获取简介:whatis 命令
命令:whatis
语法:whatis 命令
功能描述:获得命令的简单介绍信息
范例:whatis ls
#### 6.3 获取帮助:help 命令
命令名称:help
命令所在路径:Shell内置命令
执行权限:所有用户
语法:help 命令
功能描述:获得Shell内置命令的帮助信息
范例:
$ help umask
查看umask命令的帮助信息
### 7、用户管理命令
#### 7.1 添加用户:useradd 命令
命令名称:useradd
命令所在路径:/usr/sbin/useradd
执行权限:root
语法:useradd 用户名
功能描述:添加新用户
范例:
$ useradd zhangdapao
#### 7.2 修改密码:passwd 命令
命令名称:passwd
命令所在路径:/usr/bin/passwd
执行权限:所有用户
语法:passwd 用户名
功能描述:设置用户
范例:
$ passwd zhangdapao
#### 7.3 查看登录用户:who 命令
命令名称:who
命令所在路径:/usr/bin/who
执行权限:所有用户
语法:who
功能描述:查看登录用户信息
范例:
$ who
显示所有登录用户信息
#### 7.4 w 命令
命令名称:w
命令所在路径:/usr/bin/w
执行权限:所有用户
语法:w
功能描述:查看登录用户详细信息
范例:
$ w
#### 7.5 切换用户:su 命令
| 命令 | 含义 |
| --- | --- |
| su | 切换到root用户 |
| su root | 切换到root用户 |
| su - | 切换到root用户,同时切换目录到/root |
| su - root | 切换到root用户,同时切换目录到/root |
| su 普通用户 | 切换到普通用户 |
| su - 普通用户 | 切换到普通用户,同时切换普通用户所在的目录 |
### 8、压缩解压缩命令
#### 8.1 压缩:gzip 命令
命令名称:gzip
命令所在路径:/bin/gzip
执行权限:所有用户
语法:gzip [文件]
功能描述:压缩文件
压缩后文件格式:.gz
范例:
gzip text01
#### 8.2 解压缩:gunzip 命令
命令名称:gunzip [= gzip -d]
命令所在路径:/bin/gunzip
执行权限:所有用户
语法:gunzip [压缩文件]
功能描述:解压缩.gz的压缩文件
范例:
$ gunzip text01.gz
tips:只能压缩文件不能压缩目录
#### 8.3 归档管理:tar 命令
>
> 压缩语法:tar -zcvf 压缩后文件名 被压缩文件
> 解压缩语法 tar -zxvf 压缩文件名 -C 解压后文件所在目录
>
>
> * 参数1
>
>
>
>
> | 参数 | 描述 |
> | --- | --- |
> | -z | 操作tar.gz文件需要使用 |
> | -x | 解压缩 |
> | -c | 压缩 |
> | -v | 显示压缩或者解压缩的执行过程信息 |
> | -f | 要处理的文件file,必须放在最后 |
>
>
> 参数2:-C 指定解压后的文件存放的位置
>
>
>
tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。
命令名称:tar
命令所在路径:/bin/tar
执行权限:所有用户
语法:tar 选项[-zcf] [压缩后文件名] [目录]
-c 打包
-v 显示详细信息
-f 指定文件名
-z 打包同时压缩
功能描述:打包目录 压缩后文件格式:.tar.gz
范例:
$ tar -zcf Japan.tar.gz Japan
将目录Japan打包并压缩为.tar.gz文件
tar命令解压缩语法:
-x 解包
-v 显示详细信息
-f 指定解压文件
-z 解压缩
范例:
$ tar -zxvf Japan.tar.gz
#### 8.4 zip 命令
命令名称:zip
命令所在路径:/usr/bin/zip
执行权限:所有用户
语法:
zip 选项[-r] [压缩后文件名] [文件或目录]
-r 压缩目录
功能描述:压缩文件或目录
压缩后文件格式:.zip
范例:
$ zip text01.zip text01
压缩文件
$ zip -r zhang.zip zhang
压缩目录
tips:会保留原文件
#### 8.5 unzip 命令
命令名称:unzip
命令所在路径:/usr/bin/unzip
执行权限:所有用户
语法:unzip [压缩文件]
功能描述:解压.zip的压缩文件
范例:$ unzip text01.zip
### 9、 网络命令
#### 9.1 write 命令
指令名称:write
指令所在路径:/usr/bin/write
执行权限:所有用户
语法:write <用户名>
功能描述:给用户发信息,以Ctrl+D保存结束
范例:
write zhang
#### 9.2 wall 命令
指令名称:wall
命令英文原意:write all
指令所在路径:/usr/bin/wall
执行权限:所有用户
语法:wall [message]
功能描述:发广播信息
范例:
wall HelloWord
#### 9.3 测试网络连通性:ping 命令
命令名称:ping
命令所在路径:/bin/ping
执行权限:所有用户
语法:ping 选项 IP地址
-c 指定发送次数
功能描述:测试网络连通性
范例:
ping 192.168.1.156
#### 9.4 查看和设置网卡信息:ifconfig
命令名称:ifconfig
命令所在路径:/sbin/ifconfig
执行权限:root
语法:ifconfig 网卡名称 IP地址
功能描述:查看和设置网卡信息
范例:
ifconfig
#### 9.5 查看发送电子邮件:mail 命令
命令名称:mail
命令所在路径:/bin/mail
执行权限:所有用户
语法:mail [用户名]
功能描述:查看发送电子邮件
范例:
mail root
#### 9.6 查看登录用户历史信息:last 命令
命令名称:last
命令所在路径:/usr/bin/last
执行权限:所有用户
语法:last
功能描述:列出目前与过去登入系统的用户信息
范例:
last
#### 9.7 显示网络相关信息:netstat 命令
命令名称:netstat
命令所在路径:/bin/netstat
执行权限:所有用户
语法:netstat [选项]
功能描述:显示网络相关信息
选项:
-t : TCP协议
-u : UDP协议
-l : 监听
-r : 路由
-n : 显示IP地址和端口号
范例:
netstat -tlun 查看本机监听的端口
netstat -an 查看本机所有的网络连接
netstat -rn 查看本机路由表
查看某一端口是否被占用:netstat -tunlp |grep 2181
#### 9.8 配置网络:setup 命令
命令名称:setup
命令所在路径:/usr/bin/setup
执行权限:root
语法:setup
功能描述:配置网络
范例:
setup
#### 9.9 挂载:mount 命令
命令名称:mount
命令位置:/bin/mount
执行权限:所有用户
命令语法:mount [-t 文件系统] 设备文件名 挂载点
范例:
mount -t iso9660 /dev/sr0 /mnt/cdrom
### 10、系统命令(关机重启命令…)
-
命令名称:shutdown
shutdown [选项] 时间
shutdown now
选项:
-c: 取消前一个关机命令
-h: 关机
-r: 重启
2.查看ip地址
ip a
ip addr
3.ping网络(测试网络连通)
ip 目标机器的ip
4.查看系统时间
date
5.注销
logout
6.重启
reboot
7.清屏
clear
8.静态查看系统进程
ps -aux
9.实时查看系统进程
top
# 快捷键
↑ 下翻
↓ 上翻
q 退出
10.关闭进程
kill 进程id
11.强制关闭进程(谨慎使用)
kill -9 进程id
12.覆盖输出
# 将命令1的执行结果,输出到后面的文件中。
`覆盖写入`
命令1 > 文件
# 例子
date > date.log
### 11、Linux服务
>
> 例如:sshd network firewalld 等
>
>
>
服务器管理命令
systemctl status 服务名
启动服务
systemctl start 服务名
重启服务
systemctl restart 服务名
停止服务
systemctl stop 服务名
禁止服务随linux启动。
systemctl disable 服务名
设置服务随linux启动。
systemctl enable 服务名
### 12、ip设置
>
> 服务名:network
>
>
>
[root@centos7 dirnew]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
----------------网卡对应的文件内容---------------------
TYPE=“Ethernet”
PROXY_METHOD=“none”
BROWSER_ONLY=“no”
BOOTPROTO=“none”
DEFROUTE=“yes”
IPV4_FAILURE_FATAL=“no”
IPV6INIT=“yes”
IPV6_AUTOCONF=“yes”
IPV6_DEFROUTE=“yes”
IPV6_FAILURE_FATAL=“no”
IPV6_ADDR_GEN_MODE=“stable-privacy”
NAME=“ens33”
UUID=“0bd5d8a5-fe1b-42de-82bd-bfa7d2984b95”
DEVICE=“ens33”
ONBOOT=“yes”
IPADDR=“192.168.199.8” # 修改这里的ip地址即可
PREFIX=“24”
GATEWAY=“192.168.199.2”
DNS1=“192.168.199.2”
DNS2=“8.8.8.8”
IPV6_PRIVACY=“no”
[root@centos7 dirnew]# systemctl restart network #重启网卡服务
### 13、防火墙
>
> 服务名:firewalld
>
>
>
开启防火墙
systemctl start 服务名
关闭防火墙(服务器重启后还会自动开启防火墙)
systemctl stop firewalld
禁止防火墙开机启动
systemctl disable firewalld
### 14、主机名
查看主机名
hostname
设置主机名
hostnamectl set-hostname 主机名
### 15、ip映射
* 域名解析
* 本地hosts编辑
[root@centos7 ~]# vim /etc/hosts
--------------下面是文件------------------
192.168.199.8 centos7
### 16、SSH
远程登录linux
ssh 远程linux的ip或者映射域名
### 17、免密登录
>
> 简介
> ssh登录远程linux,免去输入密码的麻烦
>
>
>
生成公钥和私钥
[root@centos7 ~]# ssh-keygen
------------执行结果-----------
[root@centos7 ~]# tree .ssh
.ssh
├── id_rsa # 私钥
├── id_rsa.pub # 公钥
└── known_hosts
发送公钥
`保存公钥的文件为/root/.ssh/authorized\_keys`
[root@centos7 .ssh]# cat id_rsa.pub > authorized_keys
发送公钥
[root@centos7 .ssh]# ssh-copy-id 目标主机的ip
### 18、远程拷贝
scp 本地的文件 root@远程linuxip:/远程linux的文件路径
scp -r 本地的目录 root@远程linuxip:/远程linux的文件路径
## 三、文本编辑器vim
### 1、Vim常用操作
**Vim 简介:**
>
> Vim是一个功能强大的全屏幕文本编辑器, 是Linux/UNIX上最常用的文本编辑器, 它的作用是建立、编辑、显示文本文件。
> Vim 没有菜单,只有命令。
>
>
>
#### 1.1 插入命令
| 命令 | 作用 |
| --- | --- |
| a | 在光标所在字符后插入 |
| A | 在光标所在行尾插入 |
| i | 在光标所在字符前插入 |
| I | 在光标所在行行首插入 |
| o | 在光标下插入新行 |
| O | 在光标上插入新行 |
#### 1.2 定位命令
| 命令 | 作用 |
| --- | --- |
| :set nu | 设置行号 |
| :set nonu | 取消行号 |
| gg | 到第一行 |
| GG | 到最后一行 |
| nG | 到第n行 |
| :n | 到第n行 |
| $ | 移至行尾 |
| 0 | 移至行首 |
#### 1.3 删除命令
| 命令 | 作用 |
| --- | --- |
| x | 删除光标所在处字符 |
| nx | 删除光标所在处后n个字符 |
| dd | 删除光标所在行,ndd删除n行 |
| dG | 删除光标所在行到文件末尾内容 |
| D | 删除光标所在处到行尾内容 |
| :n1,n2d | 删除指定范围的行 |
#### 1.4 复制和剪切命令
| 命令 | 作用 |
| --- | --- |
| yy | 复制当前行 |
| nyy | 复制当前行以下n行 |
| dd | 剪切当前行 |
| ndd | 剪切当前行以下n行 |
| p、P | 粘贴在当前光标所在行下或者行上 |
#### 1.5 保存和退出命令
| 命令 | 作用 |
| --- | --- |
| :w | 保存修改 |
| :w 文件名 | 另存为指定文件 |
| :wq | 保存修改并退出 |
| ZZ | 快捷键,保存修改并退出 |
| :q! | 不保存修改退出 |
| :wq! | 保存修改退出(文件所有者和root均可忽略只读权限强制写入) |
>
> 配置MobaXterm的默认文本编辑器
> 免去vim命令的麻烦
>
>
>
## 四、软件安装
### 1、软件包管理简介
#### 1.1、软件分类
>
> 源码包:脚本安装
>
>
> 二进制包:RPM包
>
>
>
##### 1.1.1、**源码包**
**源码包的优点是:**
* 开源,如果有足够的能力,可以修改源代码
* 可以自由选择所需的功能
* 软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高
* 卸载方便
**源码包的缺点**
* 安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误
* 编译过程时间较长,安装比二进制安装时间长
* 因为是编译安装,安装过程中一旦报错新手很难解决
##### 1.1.2、**RPM包**
**二进制包的优点**
* 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
* 安装速度比源码包安装快的多
**二进制包缺点:**
* 经过编译,不再可以看到源代码
* 功能选择不如源码包灵活
* 依赖性
### 2、rpm命令管理
#### 2.1 、包命名与依赖性
**RPM包依赖性**
* 树形依赖: a→b→c
* 环形依赖: a→b→c→a
* 模块依赖: 模块依赖查询网站:www.rpmfind.net
#### 1.2 安装升级与卸载
>
> 简介:类似于windows中的.exe程序
>
>
>
-
安装rpm软件
语法:rpm -ivh xxx.rpm
选项:
-i(install) 安装
-v(verbose) 显示详细信息
-h(hash) 显示进度
–nodeps 不检测依赖性 -
查看系统中是否已安装的过该rpm软件
语法:rpm -qa 软件名
-
卸载rpm软件
语法:rpm -e 软件名
选项:
-e(erase) 卸载
–nodeps 不检查依赖性 -
升级rpm软件
语法:rpm -Uvh 包全名选项: -U(upgrade) 升级
-
例子:安装tree工具
作用:查看某个目录下的文件信息以树状结构查看2层文件信息
tree -L 2 要查看的路径
### 3、yum在线管理
>
> yum基于rpm实现的,提供了除了rpm的安装软件、卸载软件等功能以外还有,自动查找、下载软件并自动处理软件的彼此之间的依赖关系,下载并安装依赖包。
>
>
>
#### 3.1 yum 命令
1.列出所有可以安装的软件包
yum list
查询所有可用软件包列表
2.查找软件包
yum search all 软件名
yum search 关键字
搜索服务器上所有和关键字相关的包
3.安装软件
yum –y install 包名
选项:
install 安装
-y 自动回答yes
4.升级软件
yum -y update 包名
选项:
update 升级
-y 自动回答yes
5.卸载软件
yum -y remove 包名
选项:
remove 卸载
-y 自动回答yes
#### 3.2 yum软件组管理命令
yum grouplist
列出所有可用的软件组列表
yum groupinstall 软件组名
安装指定软件组,组名可以由grouplist查询出来
yum groupremove 软件组名
卸载指定软件组
## 五、shell 编程
### 5.1、shell 概述
#### 5.1.1 shell 是什么
* Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
* Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。
#### 5.1.2 shell 的分类
* Bourne Shell:从1979起Unix就开始使用Bourne Shell,Bourne Shell的主文件名为sh。
* C Shell: C Shell主要在BSD版的Unix系统中使用,其语法和C语言相类似而得名
* Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh;C家族主要包括:csh、tcsh
* Bash: Bash与sh兼容,现在使用的Linux 就是使用Bash作为用户的基本Shell。
### 5.2、shell 脚本的执行方式
#### 5.2.1 echo 输出命令
**先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里**
**深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**
![img](https://img-blog.csdnimg.cn/img_convert/3f7c700a47f8cacd0bad83f0ed07ab33.png)
![img](https://img-blog.csdnimg.cn/img_convert/10928e378e2253e57442522de649c0f6.png)
![img](https://img-blog.csdnimg.cn/img_convert/cb330e29f24e40f226daa769b14fcde8.png)
![img](https://img-blog.csdnimg.cn/img_convert/1ff28d0c39877a3537b814d07c8e5c58.png)
![img](https://img-blog.csdnimg.cn/img_convert/9c65e50281fa26242d2e4d0fa4929f61.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
查询所有可用软件包列表
2.查找软件包
yum search all 软件名
yum search 关键字
搜索服务器上所有和关键字相关的包
3.安装软件
yum –y install 包名
选项:
install 安装
-y 自动回答yes
4.升级软件
yum -y update 包名
选项:
update 升级
-y 自动回答yes
5.卸载软件
yum -y remove 包名
选项:
remove 卸载
-y 自动回答yes
3.2 yum软件组管理命令
yum grouplist
列出所有可用的软件组列表
yum groupinstall 软件组名
安装指定软件组,组名可以由grouplist查询出来
yum groupremove 软件组名
卸载指定软件组
五、shell 编程
5.1、shell 概述
5.1.1 shell 是什么
- Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
- Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。
5.1.2 shell 的分类
- Bourne Shell:从1979起Unix就开始使用Bourne Shell,Bourne Shell的主文件名为sh。
- C Shell: C Shell主要在BSD版的Unix系统中使用,其语法和C语言相类似而得名
- Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh;C家族主要包括:csh、tcsh
- Bash: Bash与sh兼容,现在使用的Linux 就是使用Bash作为用户的基本Shell。
5.2、shell 脚本的执行方式
5.2.1 echo 输出命令
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
[外链图片转存中…(img-FQ4z8HCc-1715155813402)]
[外链图片转存中…(img-M9MkMBKm-1715155813402)]
[外链图片转存中…(img-BRlTjIZp-1715155813403)]
[外链图片转存中…(img-yfn5oiBo-1715155813403)]
[外链图片转存中…(img-DBIaQ9gT-1715155813403)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新