学好Linux,知道这些就够了

241 阅读7分钟

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

image-20211014101748089.png

2.1.2 Linux

根目录 /

image.png

树形结构的文件系统,其中/是根目录,不能更改,其他的文件都是它的子文件,分支

image-20211014103017261.png

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

image-20211014113503650.png 显示当前文件夹下所有的子目录与文件,包括隐藏文件

3.1.1.2.2 -l

显示文件的详细信息

image-20211014113437076.png

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 展示的是文件的行号

image-20211015101515665.png

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

image-20211015113514267.png

默认展示10行数据

可以通过 -数字 规定展示多少条数据

3.1.6.5 tail

image-20211015113843466.png

从尾部查找多少条数据

-数字,表示展示多少条

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

image-20211015121011407.png

image-20211015121207870.png

标题
-b只查找二进制文件
-m只查找说明文件

3.1.7.4 find

3.1.7.4.1 语法

find 文件名

find [path] 文件名

find 路径 -name 文件名或者目录名

比较消耗硬盘资源

案例:

在当前文件夹下,寻找包含test的文件或者目录

image-20211015163445472.png

3.1.7.5 locate

语法规则:

locate 文件名

updatedb 手动更新数据库

面试题:find 和locate,为什么locate快一点

3.2 文本查找工具grep

3.2.1 语法规则

grep [可选参数] 正则规则 [文件]

3.2.2 案例-1

image-20211016105938241.png

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

image-20211016115342170.png

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 专用正则

blog.csdn.net/u012572955/…

3.3 用户文件权限管理

image-20211016144849551.png

3.3.1 基本概念

标题目录
文件-rwx
目录d

3.3.2 概念

符号权限对应的英文数字表现形式
rread4
wwrite2
x执行excute1
无权限0

3.3.3 chmod

3.3.3.1 字母法

语法规则

chmod u+r 文件名

用户类型
标题
oother表示其他用户
aall所有的用户
ggroup
uuser文件的所有者
权限设置
标题
+增加权限
-撤销权限
=重新赋值权限

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

image-20211016100438395.png image-20211016100559737.png

4.3 位数匹配

标题
更多操作{num}匹配num位数据
{num,}匹配至少Num位数据
{n,m}匹配n,m位数据
+至少有一位

image-20211016100527286.png