1.1 简介
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
1.2 特点
开源免费
稳定
效率高
可移植
2.0 Linux与window的比较
2.1 文件系统
2.1.1 windows
2.1.2 Linux
根目录 /
树形结构的文件系统,其中/是根目录,不能更改,其他的文件都是它的子文件,分支
2.2 Linux目录
/ | 根目录,有且只有一个 |
/home | 用户目录 |
/root | 系统管理员root的目录 |
/usr | 应用程序存放的文件夹 |
3.0 Linux常用命令
3.1 文件与目录常用命令
3.1.1 ls命令
3.1.1.1 查看ls相关的参数
ls --help
3.1.1.2 常用的参数选项
3.1.1.2.1 -a
显示当前文件夹下所有的子目录与文件,包括隐藏文件
3.1.1.2.2 -l
显示文件的详细信息
3.1.2 cd命令
切换目录
参数 | 说明 |
---|---|
cd | 切换到当前用户的主目录(/home/用户),默认目录就是当前用户的主目录 |
cd ~ | 切换到当前用户的主目录 |
cd . | 切换到当前目录 |
cd .. | 切换到上级目录 |
cd - | 切换到上次进入的目录 |
3.1.3 文件与目录
3.1.3.1 创建文件
touch 文件名
如果文件不存在,创建一个新的文件
如果文件存在,不会覆盖原始文件,但是修改文件的时间
3.1.3.2 创建目录
mkdir 目录名
mkdir -p 可以层级创建文件夹
3.1.3.3 删除目录
rm -r 递归删除文件夹下的所有内容,删除文件夹的时候使用
rmdir 删除空的目录
删除多个空目录 rmdir 空目录1 空目录2 .。。。。
3.1.3.4 删除文件
rm 文件名
3.1.3.5 强制删除
rm -f 文件或者目录
3.1.3.6 强制删除所有的数据
rm -rf *
3.1.4 文件的移动
3.1.4.1 mv指令
mv 源文件 目标文件
move 需要移动的文件夹 目标文件夹
3.1.5 文件的复制
cp 源文件 目标文件
如果目标文件存在同名文件,会覆盖
标题 | |
---|---|
-i | 交互式,提示询问是否覆盖文件 |
-r | 将目录以及目录下所有的目录以及文件复制并且移动 |
-f | 强制 |
3.1.6 查看文件内容
3.1.6.1 cat
cat [可选参数] 文件名 将一个文件的内容输出到屏幕上
参数:
-n 展示的是文件的行号
3.1.6.2 more
more指令和cat指令一样,more展示一页内容以后,等待用户手动翻看
手动翻看的方式
标题 | ||
---|---|---|
回车 | 一行一行的翻看 | |
q | 结束观看,退出 | |
空格 | 一页一页的看 | Ctrl+f |
b | 回退 | |
设置文件查看的行数和位置 |
标题 | |
---|---|
+num | 定位,从哪一行开始展示 |
-num | 规定页面展示多少条 |
3.1.6.3 less
手动翻看方式
标题 | |
---|---|
回车 | 一行一行的向下翻看 |
空格 | 一页一页的翻看 |
f | 向前一页 |
b | 向后一页 |
N | 显示行号 |
q | 退出 |
3.1.6.4 head
默认展示10行数据
可以通过 -数字 规定展示多少条数据
3.1.6.5 tail
从尾部查找多少条数据
-数字,表示展示多少条
3.1.7 搜索
3.1.7.1 where(window)
3.1.7.2 which
3.1.7.2.1 用法
which + 可执行文件的名称
3.1.7.2.2 问which cd为什么查找不到
使用type cd 可以看到是shell的内建命令
which 查找的是可执行文件的位置,在PATH变量指定的路径中,搜索某一个系统命令的位置,返回第一个搜索结果
特例:centos7可以查询到
3.1.7.3 whereis
标题 | |
---|---|
-b | 只查找二进制文件 |
-m | 只查找说明文件 |
3.1.7.4 find
3.1.7.4.1 语法
find 文件名
find [path] 文件名
find 路径 -name 文件名或者目录名
比较消耗硬盘资源
案例:
在当前文件夹下,寻找包含test的文件或者目录
3.1.7.5 locate
语法规则:
locate 文件名
updatedb 手动更新数据库
面试题:find 和locate,为什么locate快一点
3.2 文本查找工具grep
3.2.1 语法规则
grep [可选参数] 正则规则 [文件]
3.2.2 案例-1
3.2.3 常用的参数
参数 | 描述 | 案例 | 说明 |
---|---|---|---|
-i | 不区分大小写 | ||
-n | 展示行号 | ||
-c | 展示匹配到的数据的次数 | ||
-l | 只展示匹配的数据的文件名 | ||
-H | 展示的时候,展示文件名+匹配数据 | ||
-h | 展示的时候,不展示文件名,只展示匹配数据 | ||
-v | 匹配除了目标字符串外,所有的内容 | grep -v 'hello world' y.txt | 在y.txt中匹配除了hello world以外所有的内容 |
-s | 不显示错误信息 |
3.2.4 案例
1.在所有的以D开头的文件中,查找包含test的行
grep 'test' D*
2.在文件aa bb cc 中查找包含test的行
grep 'test' aa bb cc
3.在文件y.txt中,寻找至少有5个字母的行
grep '[a-zA-Z]\{5,\}' y.txt
4.在文件中查找只有单词hello的行
grep '\<hello\>' y.txt
5.找到y.txt中,以world开头的行
grep '^world' y.txt
6.找到所有的以d开头的文件中,所有包含字符的行
grep '.' d* 匹配所有包含字符的行
grep '.*' d* 匹配所有包含字符的行和空行
7.在y.txt中,匹配3-5个小写字母
grep '[a-z]\{3,5\}' y.txt
1.找出包含Java的行
grep 'java' y.txt
2.找出以Java开始的行
grep '^java' y.txt
3.找出以Java结尾的行
grep 'java$' y.txt
4.找出包含单词Java的行
grep '\<java\>' y.txt
5.显示Java所在行的行标
grep -n 'java' y.txt
3.2.5 grep 专用正则
3.3 用户文件权限管理
3.3.1 基本概念
标题 | 目录 | |||
---|---|---|---|---|
文件 | - | r | w | x |
目录 | d |
3.3.2 概念
符号 | 权限 | 对应的英文 | 数字表现形式 |
---|---|---|---|
r | 读 | read | 4 |
w | 写 | write | 2 |
x | 执行 | excute | 1 |
无权限 | 0 |
3.3.3 chmod
3.3.3.1 字母法
语法规则
chmod u+r 文件名
用户类型
标题 | ||
---|---|---|
o | other | 表示其他用户 |
a | all | 所有的用户 |
g | group | 组 |
u | user | 文件的所有者 |
权限设置
标题 | |
---|---|
+ | 增加权限 |
- | 撤销权限 |
= | 重新赋值权限 |
3.3.3.2 数字法
chmod 777 a.txt
3.4 管道
案例 将当前页面的文件详细信息分页展示
ll | more
案例 查看当前的网络信息,分页展示
ifconfig | more
ifconfig | less
定义:将一个命令的输出作为一个命令的输入
语法 : 命令1 | 命令2.。。。
案例:在y.txt中,寻找以hello为开头的行,并且在屏幕上打印出来
3.5 打包和压缩
3.5.1 tar
3.5.1.1 定义
是一个打包工具,打包与压缩是不一样
打包是将一组相关的资源放到一个文件夹下,便于管理
压缩:目的是为了节约资源
3.5.1.2 语法规则
tar [可选参数] 打包名 需要打包的文件
3.5.1.3 参数
参数 | 描述 |
---|---|
-c | 创建一个新的包 |
-t | 查看包中的文件 |
-v | 打包的过程中红显示被打包的文件 |
-f | 指定压缩文件名 |
-x | 解开一个包 |
-z | 同时使用gzip工具进行压缩 |
3.5.1.4 案例
1.将尚惠进行打包,打包成shanghui.tar
tar -cvf shanghui.tar shanghui
2.将shanghui.tar进行解包
tar -xvf shanghui.tar
3.查看包里面的文件
tar -tvf shanghui.tar
4.将x.txt 和y.txt打包成test_grep.tar
tar -cvf test_grep.tar x.txt y.txt
3.5.2 zip
用于压缩一个文件或者多个文件,window最常见有个zip格式的压缩文件
3.5.2.1 语法格式
zip 压缩文件名 需要压缩的文件(文件或者目录)
3.5.2.2 解压缩
unzip 压缩文件名
3.5.3 gzip
3.5.3.1 定义
用于文件的压缩
后缀.gz
3.5.3.2 案例4
将x.txt 和y.txt打包成test_grep.tar.gz
tar -zcvf test_grep.tar.gz x.txt y.txt
3.5.4 bzip2
4.0 正则(普通正则)
4.1 案例
匹配网页上的价格
这是一瓶400ml的可乐 ,匹配出毫升数
匹配手机号码
正则:一种普遍的规则,用来匹配字符串中的相关数据
4.2 元字符
标题 | ||
---|---|---|
数字 | [0-9] | 匹配0-9中的任何一位 |
字母 | [a-zA-Z]匹配的是大小写字母中的任何一位 | |
数字 | \d |
4.3 位数匹配
标题 | |
---|---|
更多操作{num} | 匹配num位数据 |
{num,} | 匹配至少Num位数据 |
{n,m} | 匹配n,m位数据 |
+ | 至少有一位 |