该文为博主在学习了B站的尚硅谷Linux课程之后,结合提供的笔记资料进行的总结,以下附上课程链接:
https://www.bilibili.com/video/BV1dW411M7xL
介绍篇
-
Linux简介
Linux是系统内核,不同厂商基于此做了不同的包装,形成了发行版。如我们熟知的ubuntn、CentOSE等,就是以Linux为内核,做了不同包装而形成的。 -
与较为主流的windows系统进行对比:
-
Linux的目录结构
①Linux系统采用层级式树状目录结构,该结构中的最上层是根目录“/”,有且只有一个根目录。
②Linux以文件的形式管理设备,在Linux的世界里,一切皆文件。
③Linux各个文件存放的内容已规划好,不可乱放。
具体的目录结构(加粗为重点了解的内容): -
/bin(/usr/bin、/usr/local/bin)
binary的缩写,存放最经常使用的命令 -
/sbin(/usr/sbin、/usr/local/sbin
s即super user,存放系统管理员使用的系统管理程序 -
/home
存放普通用户的主目录。在Linux中每个用户都有一个自己的目录,该目录是以用户的账号命名的 -
/root
该目录为系统管理员,也称作超级权限者的用户主目录 -
/boot
存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件 -
/proc
该目录是一个虚拟目录,是系统内存的映射,访问这个目录来获取系统信息 -
/srv
service的缩写,存放一些服务启动之后需要提取的数据 -
/sys
linux2.6内核的新变化,该目录下安装了2.6内核中新出现的一个文件系统 -
/temp
存放临时文件 -
/dev
类似于windows的设备管理器,把所有的硬件用文件的形式存储 -
/media
Linux系统会自动识别一些设备,如U盘、光驱等,当识别后,linux会把识别到的设备挂载到这个目录下 -
/mnt
系统提供该目录是为了让用户临时挂载别的文件系统的。可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容 -
/opt
给主机额外安装软件所摆放的目录。如安装oracle数据库可以安装到该目录下。默认为空。 -
/usr/local
另一个给主机额外安装软件所存放的目录。一般是安装通过编译源码方式安装的程序。 -
/var
存放着不断在扩充的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件。 -
/selinux
SELinux即Security-enhanced Linux,是一种安全子系统,能控制程序只能访问特定文件
实操篇
获取指令的帮助信息类
-
man 指令
语法:man
ex: man ls
(man是manual的缩写) -
help 指令
ex: help cd
文件目录类
-
pwd指令
作用:显示当前工作目录的绝对路径
语法:pwd
ex: pwd -
ls指令
作用:查看当前目录的所有内容信息
语法:ls [选项] [目录或文件]
常用选项:
-a:显示当前目录所有的文件和目录,包括隐藏的
-l:以列表的方式显示信息
ex: ①ls -l ②ls -al ③ls -
cd命令
作用:切换到指定目录
语法:cd [参数]
常用参数:绝对路径和相对路径
-cd ~ 或者 cd :回到自己的家目录
-cd … :回到当前目录的上一级目录
ex:
①使用绝对路径切换到root目录:cd /root
②使用相对路径切换到/root目录:需要知道目前所在的目录,借助cd…等指令。假设在/usr/lib:cd …/… /root
③返回当前目录的上一级目录:cd …
④回到家目录:cd 或者 cd ~ -
mkdir命令
作用:创建目录(make directory)
语法:mkdir [选项] 要创建的目录
常用选项:
-p:创建多级目录
ex:
①创建一个目录:mkdir /home/dog
②创建多级目录:mkdir -p /home/animal/tiger -
rmdir指令
作用:删除空目录
语法:rmdir [选项] 要删除的空目录
ex:
①删除一个目录:rmdir /home/dog
PS:
1、rmdir删除的是空目录,如果目录下有内容是无法删除的
2、如果要删除非空目录,需使用命令【 rm -rf 要删除的目录】 -
cp命令
作用:拷贝文件到指定目录
语法:cp [选项] source dest
常用选项:
-r:递归复制整个文件夹
ex:
①将 /home/aaa.txt 拷贝到 /home/bbb目录下(拷贝单个文件):
cp /home/aaa.txt /home/bbb/
②将/home/test整个目录拷贝到 /home/zwj目录下
cp -r /home/test /home/zwj/
PS:使用\cp,如果存在同名文件,会强制覆盖而不提示 -
rm指令
作用:删除文件或目录
语法:rm [选项] 要删除的文件或目录
常用选项:
-r:递归删除整个文件夹
-f:强制删除不提示
ex: (当前路径为home目录)
①删除/home/aaa.txt: rm aaa.txt
②递归删除整个文件夹/home/bbb:rm -r bbb/
PS:加上参数-f即可强制删除而不提示:rm -rf aaa.txt -
mv指令
作用:移动文件与目录 或 重命名
语法:
mv oldNameFile newNameFile(重命名)
mv /temp/movefile /targetFolder(移动文件)
ex:(当前路径为home目录)
①将/home/aaa.txt 重命名为 pig.txt:mv aaa.txt pig.txt
②将/home/pig.txt 移动到/root 目录下:mv pig.txt /root/ -
cat指令
作用:查看文件内容,以只读的方式打开
语法:cat [选项] 要查看的文件
常用选项:
-n:显示行号
ex:(当前路径为 /)
①显示 /etc/profile 文件内容,并显示行号:cat -n /etc/profile | more
PS:
cat只能浏览文件而不可编辑文件,为浏览方便(实现分页浏览)一般会带上管道命令 | more 即: cat 文件名 | more -
more指令
作用:more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容
语法:more 要查看的文件
ex:
①more /etc/profile
浏览文件时可使用的快捷键:
空白键[space]:向下翻一页
Enter:向下翻一行
q:立刻离开more,不再显示该文件的内容
Ctrl+F:向下滚动一屏
Ctrl+B:返回上一屏
=:输出当前行的行号
:f:输出文件名和当前行的行号 -
less指令
作用:less指令用来分屏查看文件内容,与more指令功能 类似,但比more更强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
语法:less 要查看的文件
ex:
①less /opt/金庸-射雕英雄传精校版.txt -
“>” 指令 和“ >>”指令
作用:> --输出重定向:会将原来文件的内容覆盖;>>–追加:不会覆盖原来的内容,而是追加到文件的尾部
ex:
①将ls -l的内容覆盖写入到a.txt中,如果文件不存在,就创建该文件:ls -l > a.txt
②将ls -l的内容追加写入到a.txt中:ls -l > > a.txt
③将文件1的内容覆盖到文件2:cat 文件1 > 文件2
④echo “内容” >> 文件 -
echo指令
作用:输出内容到控制台
语法:echo [选项] [输出内容]
ex:
①使用echo输出当前的环境路径:echo $PATH -
head指令
作用:显示文件的开头部分内容,默认情况下显示文件的前10行内容
语法:
①head 文件(查看前10行)
②head -n 5 文件(查看文件前5行内容,5可以是任意数字)
ex:
①查看/etc/profile的前五行代码:head -n 5 /etc/profile -
tail指令
作用:显示文件的尾部部分内容,默认情况下显示文件的后10行内容
语法:
①tail 文件(查看后10行)
②tail -n 5 文件(查看文件后5行内容,5可以是任意数字)
③tail -f 文件(试试追踪该文档的所有更新,工作上经常用到)
ex:
①查看/etc/profile的后五行代码:tail -n 5 /etc/profile
②实时监控文件mydate.txt:tail -f mydate.txt -
ln指令
作用:软链接也叫符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径
语法:ln -s [原文件或目录] [软链接名](给原文件创建一个软链接)
ex:(当前路径为home目录)
①在/home目录下创建一个软链接,链接到/root目录:ln -s /root linkToRoot
②删除软链接:rm -rf linkToRoot -
history命令
作用:查看已经执行过的历史命令,也可以执行历史命令
语法:history
ex:
①显示所有历史命令:history
②显示最近使用过的10个命令:history 10
③执行历史编号为5的指令:!5
时间日期类
-
date指令
作用:显示当前日期
语法:
①date:显示当前时间
②date+%Y:显示当前年份
③date+%m:显示当前月份
④date+%d:显示当前是哪一天
⑤date"%Y-%m-%d %H:%M:%S":显示年月日时分秒 -
date指令
作用:设置日期
语法:date -s 字符串时间
ex:
①设置系统当前时间,设置为“2022-02-13 20:28:00”:date -s “2022-02-13 20:28:00” -
cal指令
作用:查看日历指令
语法:cal [选项] (不加选项,显示本月日历)
ex:
①显示当前日历:cal
②显示2020年日历:cal 2020
搜索查找类
-
find指令
作用:find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
语法:find [搜索范围] [选项]
选项说明:
-name<查询方式>:按照指定的文件名查找模式查找文件
-user<用户名>:查找属于指定用户名所有文件
-size<文件大小>:按照指定的文件大小查找文件
ex:
①按文件名查找:查找/home 目录下的 hello.txt文件
find /home -name hello.txt
②按拥有者查找:查找/opt目录下,用户名为nobody的文件
find /opt -user nobody
③按size查找:查找整个linux系统下大于20m的文件(+n大于,-n小于,n等于)
find / -size +20M
④按名称匹配:查找/目录下所有的.txt文件
find / -name *.txt -
locate命令
作用:快速定位文件路径。locate利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
语法:locate 搜索文件
PS:由于locate指令基于数据库进行查询,所以第一次运行前,必须使用ipdatedb指令创建locate数据库。
ex:
①使用locate指令快速定位hello.txt文件所在目录:
1、updatedb
2、locate hello.txt -
grep指令 和 管道符号 |
作用:grep过滤查找,管道符号“|”表示将前一个命令的处理结果输出传递给后面的命令处理
语法:grep [选项] 查找内容 源文件
常用选项:
-n:显示匹配行及行号
-i:忽略字母大小写
ex:
①在hello.txt文件中,查找“yes”所在行,并且显示行号
区分大小写: cat hello.txt | grep -n yes
不区分大小写:cat hello.txt | grep -ni yes
压缩和解压类
-
gzip/gunzip指令
作用: gzip用于压缩文件;gunzip用于解压文件
语法:
gzip 文件(压缩文件,只能压缩为 *.gz文件)
gunzip 文件.gz (解压缩文件)
PS:当使用gzip对文件进行压缩后,不会保留原来的文件 -
zip/unzip指令
作用:zip用于压缩文件;unzip用于解压,在项目打包发布中很常用
语法:
zip [选项] xxx.zip 将要压缩的内容(压缩文件或目录)
unzip [选项] xxx.zip(解压缩文件)
zip常用选项:
-r:递归压缩,即压缩目录
unzip常用选项:
-d<目录>:指定解压后文件的存放目录
ex:
①将/home 下的所有文件压缩成 mypackage.zip
zip -r mypackage.zip /home
②将mypackage.zip解压到 /opt/tmp 目录下
unzip -d /opt/tmp/ mypackage.zip -
tar指令
作用:打包指令,打包成的文件是 .tar.gz文件
语法:
tar [选项] xxx.tar.gz 打包的内容(压缩目录,打包后的文件格式是 .tar.gz)
选项说明:
-c:产生.tar打包文件
-v:显示详细信息
-f:指定压缩后的文件名
-z:打包同时压缩
-x:解包.tar文件
ex:
①压缩多个文件:将a1.txt 和 a2.txt 压缩成 a.tar.gz
tar -zcvf a.tar.gz a1.txt a2.txt
②将/home 的文件夹 压缩成 myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
③将a.tar.gz解压到当前目录
tar -zcvf a.tar.gz
④将myhome.tar.gz解压到/opt/目录下
tar -zcvf myhome.tar.gz -C /opt/
PS:指定解压到的那个目录要存在,解压才会成功,否则会报错。