前言
前三节内容传送门:
夯实基础系列一:Java 基础总结
夯实基础系列二:网络知识总结
夯实基础系列三:数据库知识总结
现在很多公司项目部署都使用的是 Linux 服务器,互联网公司更是如此。对于大一些的互联网公司,系统可能会非常复杂,本地无法启动,一般都会采用专门的开发机给开发人员开发测试使用。我实习期间接触的项目没一个可以在本地启动的,都需要写好代码,把代码更新到开发机上,然后编译部署,并查看部署过程中是否有错误或是查看访问这台机器的日志。而这些操作,都需要对基本的 Linux 命令熟悉。
今天总结下 Linux 的相关概念和基本操作,如果想了解更多,可以去看看《鸟哥的私房菜》。同时希望大家多动手实践,这样理解得更深刻。
概要
Linux 知识总结以下部分内容:Linux 常见概念、Linux 常用命令、vi 操作和一个最简单的 shell 脚本。
细节
1. Linux 常见概念
1.1 Linux 与 Windows 的不同
- Linux 严格区分大小写
- Linux 中所有内容以文件形式保存,包括硬件。一切内容皆文件。
- Linux 不靠扩展名区分文件类型,靠权限区分文件类型。带后缀的文件名是约定俗成,方便管理
- Windows下的程序不能在Linux中安装和运行
1.2 Linux 采用字符界面有什么优势
- 字符界面占用的系统资源更少
- 字符界面减少了出错、被攻击的可能性
1.3 分区类型
- 主分区:最多只能有 4 个。
- 扩展分区
- 最多只能有 1 个
- 主分区加扩展分区最多有 4 个
- 不能写入数据,只能包含逻辑分区
- 逻辑分区
1.4 挂载
- 必须分区
- / (根分区)
- swap 分区(交换分区,内存 2 倍,不超过 2GB)
- 推荐分区
- /boot(启动分区,200 MB)
1.5 常见目录的作用
- / 根目录
- /bin 命令保存目录(普通用户就可以读取的命令)
- /boot 启动目录,启动相关文件
- /dev 设备文件保存目录
- /etc 配置文件保存目录
- /home 普通用户的家目录
- /lib 系统库保存目录
- /mnt 系统挂载目录
- /media 挂载目录
- /root 超级用户的家目录
- /tmp 临时目录
- /sbin 命令保存目录(超级用户才能使用的目录)
- /proc 直接写入内存的
- /sys
- /usr 系统软件资源目录
- /usr/bin/ 系统命令(普通用户)
- /usr/sbin/ 系统命令(超级用户)
- /var 系统相关文档内容
2. Linux 常用命令
2.1 命令基本格式
2.2 查询目录中内容
选项:
- -a:显示所有文件,包括隐藏文件
- -l:显示详细信息
- -d:查看目录属性
- -h:人性化显示文件大小
- -i:显示 inode
2.3 目录处理命令
-p 递归创建
命令英文原意:make directories
命令英文原意:change directory
- 简化操作
查询所在目录位置:pwd
命令英文原意:print working directory
2.4 删除文件或目录
选项:
- -r:删除目录
- -f:强制
2.5 复制命令
选项:
- -r:复制目录
- -p:连带文件属性复制
- -d:若源文件是链接文件,则复制链接属性
- -a:相当于 -pdr
2.6 剪切或改名命令
2.7 链接命令
生成链接文件
选项:-s 创建软链接
硬链接特征:
- 拥有相同的i节点和存储block块,可以看做是同一个文件
- 可通过i节点识别
- 不能跨分区
- 不能针对目录使用
软链接特征:
- 类似 Windows 快捷方式
- 软链接拥有自己的i节点和block块,但是数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据
- lrwxrwxrwx表示软链接,软链接文件权限都为rwxrwxrwx
- 修改任意文件,另一个都改变
- 删除原文件,软链接不能使用
- 软链接如果目标文件和源文件不在同一目录下,源文件必须写绝对路径
2.8 文件搜索命令
在后台数据库中按文件名搜索,搜索速度更快
locate 命令所搜索的后台数据库
更新数据库。默认一天一更新。快。缺点:只能按文件名来搜索
搜索文件
避免大范围搜索,会非常耗费系统资源
find 是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配。
* 匹配任意内容
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符
不区分大小写
按照所有者搜索
查找没有所有者的文件
查找10天前修改的文件
查找文件大小是 25KB 的文件
查找i结点是 262422 的文件
2.9 搜索命令的命令
搜索命令所在路径及帮助文档所在位置
选项:
- -b:只查找可执行文件
- -m:只查找帮助文件
which 命令能看到目录和别名
2.10 搜索字符串命令
在文件当中匹配符合条件的字符串
选项:
- -i:忽略大小写
- -v:排除指定字符串
2.11 帮助命令
2.12 压缩命令
zip 格式压缩
压缩文件
压缩目录
zip格式解压缩
gz 格式压缩
压缩为.gz 格式的压缩文件,源文件会消失
压缩为.gz 格式,源文件保留
压缩目录下所有的子文件,但是不能压缩目录
gz 格式解压缩
解压缩文件
解压缩文件
bz2 格式压缩
压缩为.bz2格式,不保留源文件
压缩之后保留源文件
bzip2命令不能压缩目录
打包命令tar
解打包命令
.tar.gz压缩格式
其实.tar.gz 格式是先打包为.tar格式,再压缩为.gz格式
.tar.gz 解压缩
.tar.bz2压缩格式
.tar.bz2 解压缩
2.13 关机命令
选项:
- -c:取消前一个关机命令
- -h:关机
- -r:重启
2.14 重启
2.15 系统运行级别
- 0:关机
- 1:单用户
- 2:不完全多用户,不含NFS服务
- 3:完全多用户
- 4:未分配
- 5:图形界面
- 6:重启
修改系统默认运行级别
查询系统运行级别
退出登录
2.16 挂载命令
- 查询与自动挂载
查询系统中已经挂载的设备
依据配置文件/etc/fstab 的内容,自动挂载
- 挂载命令格式
- 挂载光盘
建立挂载点
挂载光盘
- 卸载命令
2.17 查看登录用户信息
命令输出:
- USER:登录的用户名
- TTY:登录终端
- FROM:从哪个IP地址登录
- LOGIN@:登录时间
- IDLE:用户闲置时间
- JCPU:和该终端连接的所有进程占用的时间
- PCPU:当前进程所占用的时间
- WHAT:当前正在运行的命令
- 查询当前登录和过去登录的用户信息
- 查看所有用户的最后一次登录时间
2.18 历史命令
选项
- -c:清空历史命令
- -w:把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
历史命令默认会保存 1000 条,可以在环境变量配置文件 /etc/profile 中进行修改
2.19 统计
选项
- -c:统计字节数
- -w:统计单词数
- -l:统计行数
2.20 管道符
分页查看输出内容
2.21 用户和用户组
- 用户:使用操作系统的人
- 用户组:具有相同系统权限的一组用户
- /etc/group:存储当前系统中所有用户组信息
- 组名称
- 组密码占位符
- 组编号
- 组中用户名列表
- /etc/gshadow:存储当前系统中用户组的密码信息
- 组名称
- 组密码
- 组管理者
- 组中用户名列表
- /etc/passwd:存储当前系统中所有用户的信息
- 用户名
- 密码占位符
- 用户编号
- 用户组编号
- 用户注释信息
- 用户主目录
- shell 类型
- /etc/shadow 存储当前系统中所有用户的密码信息
- 用户名
- 密码
3. vi 操作
3.1 操作模式
- Command Mode:命令模式
- Insert Mode:输入模式
- Last Line Mode:底行模式
3.2 常用指令
打开文件并把光标定位到最后一行
第二行
跳到指定字符串第一次出现的地方
同时打开多个文件 可用n N prev来切换
3.3 底行模式常用指令
- :w
- 保存文件,但不退出vi
- :q
- 退出vi
- :!
- 强制执行
- /xxx
- 向下查找, 按n查找下一个, N查找上一个,这个跟less命令的查找使用方式是一样的
- ?xxx
- 往前查找, 按n查找下一个, N查找上一个
3.4 命令模式常用指令
- h:光标左移
- j:光标下移
- k:光标上移
- l:光标右移
- ctrl+f:向下翻页
- ctrl+b:向上翻页
- ctrl+d:向下翻半页
- ctrl+f:向上翻半页
- dd:删除光标所在行
- o:在光标所在处的下方插入一行并切换到输入模式
- yy:复制光标所在的行
- p:在光标所在行的下方粘贴
- P:在光标所在行的上方粘贴
3. Shell 基础
3.1 Shell 是什么
- 命令行解释器,可启动、挂起、停止或编写程序
- 编程语言,可直接调用Linux 系统命令
3.2 输出命令
3.3 脚本编写
首行
赋予执行权限,直接运行
通过bash 执行脚本
欢迎关注微信公众号,技术,思维,心理,带给你认知的全方位成长。
你的关注,就是对我最大的肯定,我会努力产出的,我们一起成长~
本文由 永伦的小屋 原创。
转载请注明作者及出处,本文作者为 永伦的小屋。
原文链接:夯实基础系列四:Linux 知识总结