目录
Linux概述
Linux系统组成
- Linux系统内核:内核提供系统最核心的部分,如:调度CPU、调度内存、调度文件系统、调度网络通讯、调度IO等
- 系统级应用程序:可以理解为出厂自带程序,可供用户快速上手操作系统,如:文件管理器、任务管理器、图片查看、音乐播放。
虚拟机
Linux需要在虚拟机的环境下实现:
借助虚拟化技术,我们可以在系统中,通过软件:模拟计算机硬件,并给虚拟硬件安装真实的操作系统。这样,就可以在电脑中,虚拟出一个完整的电脑,以供来学习Linux系统
使用方式
图形化与命令行
对于操作系统的使用,有两种使用形式:
图形化页面使用操作系统。
以命令的形式私用操作系统。
不论是Windows还是LInux亦或者是MacOS系统,都是支持这两种使用形式。
图形化:使用操作系统提供的图形化页面,以获得图形化反馈的形式去使用操作系统。
命令行:使用操作系统提供的各类命令,以获得字符反馈的形式去使用操作系统。
FinalShell远程连接Linux系统 CentOS7
Linux里面右键打开终端输入: ifconfig 查询虚拟机的IP地址
在FinalShell里面打开以下界面,并输入相关信息
选择接收并保存
输入命令行: ls 查看Linux与FinalShell的东西是否一致。
Linux命令基础
Linux的目录结构
Linux的目录结构是一个树型结构,Windows系统可以拥有多个盘符,如C盘、D盘,Linux没有盘符的概念只有一个根目录 /,所有文件都在它下面
Linux路径的描述方式
Linux系统中,路径之间的层级关系,使用 / 来表示
Windows系统中,路径之间的层级关系,使用 \ 来表示
Linux命令基础格式
无论是什么命令,用于什么用途,在Linux中,命令有其通用的格式:
commard [-options] [parameter]
commard:命令本身
-options:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节
parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等
语法中的 [ ] ,标识可选的意思
示例:
ls -l /home/xiang ls是命令本身 -l是选项 ,/home/xiang 是参数
意思是以列表的形式,显示/home/xiang 目录内的内容
cp -r test1 test2 cp是命令本身 -r是选项 test1 test2是参数
意思是赋值文件夹test1 成为test2
ls命令 列出目录下的内容
ls命令的作用是列出目录下的内容,语法细节如下
ls [ -a -l -h] [Linux路径]
-a -l -h 是可选的选项
Linux路径是此命令可选的参数
当不使用选项和参数,直接使用ls命令本体,表示:以平铺的方式列出当前工作目录下的内容
ls命令的参数
当ls不使用参数,表示列出:当前工作目录的内容,即用户的HOME目录
当使用参数,ls命令的参数表示:指定一个Linux路径,列出指定路径的内容
ls命令的选项
-a选项,表示all的意思,即列出全部文件(包含隐藏的文件/文件夹)
-a列出来的文件,以 . 开头的,表示Linux系统的隐藏文件/文件夹(只要以 . 开头,就能自动隐藏)
只有通过-a选项,才能看到这些隐藏的文件/文件夹
-l选项,表示以列表(竖向排列)的形式展示内容,并展示更多信息
-h选项,表示以易于阅读的形式,列出文件大小,如K、M、G
-h选项必须搭配 -l 一起使用,单独使用是没有效果的
选项可以组合使用
三种写法表示一个意思: ls -l -a ls -al ls -la
cd命令 切换工作目录
cd切换工作目录,具体语法细节
cd [ Linux路径 ]
cd命令无需选项,只有参数,表示切换到哪个目录下
cd命令直接执行,不写参数,表示回到用户的HOME目录
pwd命令 查看当前所在的工作目录
pwd查看当前所在的工作目录,具体语法细节
pwd
pwd命令,无选项,无参数,直接输入pwd即可
相对路径与绝对路径
绝对路径:以根目录为起点,描述路径的一种写法,路径描述以 / 开头
相对路径:以当前目录为起点,描述路径的一种写法,路径描述无需以 / 开头
特殊路径符:
. 表示当前目录,
.. 表示上一级目录
~ 表示HOME目录
mkdir命令 创建文件夹
mkdir命令可以创建新的目录(文件夹),具体语法细节如下:
mkdir [ -p ] Linux路径
参数必填,表示Linux路径,即要创建的文件夹的路径,相对路径或者绝对路径均可
-p选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录
如果想要一次性创建多个层级的目录,可以通过-p选项,将一整个链条都创建完成
使用-p就可以完成
touch命令 创建文件
touch命令创建文件,具体语法细节如下:
touch Linux路径
touch命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用
cat命令 查看文件内容
有了文件后,我们可以通过cat命令查看文件的内容,具体语法细节如下:
cat Linux路径
cat同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用
more命令 查看文件内容
more命令同样可以查看文件内容,同cat不一样的是:
cat是直接将内容全部显示出来
more支持翻页,如果文件内容过多,可以一页页展示
具体语法细节如下:
more Linux路径
同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用
查看过程中使用空格翻页,通过q退出查看
cp命令 复制文件文件夹
cp命令可以用于复制文件\文件夹,具体语法细节如下:
cp [-r] 参数1 参数2
-r选项,可选,用于复制文件夹使用,表示递归
参数1,Linux路径,表示被复制的文件或文件夹
参数2,Linux路径,表示要复制去的地方
mv命令 移动文件或文件夹
mv命令可以用于移动文件/文件夹,具体语法细节如下:
mv 参数1 参数2
参数1,Linux路径,表示被移动的文件或文件夹
参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在
rm命令 删除文件、文件夹
rm命令可用于删除文件、文件夹,具体语法细节如下:
rm [-r -f] 参数1 参数2 参数3 ....参数n
同cp命令一样,-r选项用于删除文件夹
-f表示强制删除(不会弹出提示确认信息)
普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示
所以一般普通用户用不到-f选项
参数1 参数2 ...参数n:表示要删除的文件、文件夹,中间用空格隔开
rm命令通配符
rm命令支持通配符*,用来模糊匹配;*:即匹配任意内容(包含空),示例
test* 表示匹配任何以test开头的内容
*test 表示匹配任何以test结尾的内容
*test* 表示匹配任何包含test的内容
grep命令 通过关键字过滤文件行
可以通过grep命令,从文件中通过关键字过滤文件行,具体语法细节如下:
grep [-n] 关键字 文件路径
选项-n ,可选,表示在结果中显示匹配的行的行号
参数,关键字,必填。表示过滤的关键字,带有空格或其他特殊符号,建议使用 " " 将关键字包围起来
参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口
wc命令 数量统计
可以通过wc命令统计文件的行数、单词数量等,具体语法细节如下:
wc [-c -m -l -w]文件路径
选项,-c 统计bytes数量
选项,-m 统计字符数量
选项, -l 统计行数
选项, -w 统计单词数量
参数,文件路径,被统计的文件,可作为内容输入端口
管道符 左边命令的结果,作为右边命令的输入
管道符 |
含义是:将管道符左边命令的结果,作为右边命令的输入
which命令 查看使用一系列命令的程序文件存放在哪里
前面所有Linux命令,其实他们的本体就是一个个的二进制可执行程序,和Windows 系统中的 .exe 文件是一个意思。
我们可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里,具体语法细节如下:
which 要查找的命令
find命令 按文件名查找文件
通过find命令去搜索指定的文件,具体语法细节如下:
find 启示路径 -name "被查找文件名"
通过find命令,按照文件大小查找文件,具体语法细节如下:
find 起始路径 -size + | -n [KMG]
+、- 表示大于和小于
n表示大小数字
KMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
find命令通配符
find命令支持通配符*,用来模糊匹配;*:即匹配任意内容(包含空),示例
test* 表示匹配任何以test开头的内容
*test 表示匹配任何以test结尾的内容
*test* 表示匹配任何包含test的内容
echo命令 命令行内输出指定内容
可以使用echo命令在命令行内输出指定内容,具体语法细节如下:
echo 输出的内容
无需选项,只有一个参数,表示要输出的内容,复杂内容可以用 " " 包围
`反引号 作为命令执行
被 ` 包围的内容会被作为命令执行,而非普通字符
重定向符 两个特殊符号>与>>:
>:表示将左侧命令的结果,覆盖写入到符号右侧指定的文件中
>>表示将左侧命令的结果,追加写入到符号右侧指定的文件中
tail命令 可以查看文件尾部内容
使用tail命令,可以查看文件尾部内容,跟中文件的最新更改,具体语法细节如下:
tail [-f-num] Linux路径
参数,Linux路径,表示被跟踪的文件路径
选项,-f,表示持续跟踪
选项,-num,表示,查看尾部多少行,不填默认10行
vi/vim编辑器
vi/vim是visual interface的简称,是Linux中最经典的文本编辑器,同图形化界面的文本编辑器一样,vi是命令行下对文本文件进行编辑的绝佳选择
vim是vi的加强版,兼容vi所有指令,不仅能编辑文本,而且还具有shell程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性。
通过vi/vim编辑器编辑文件,具体语法细节如下:
vi 文件路径
vim 文件路径
vim兼容全部的vi功能,后续全部使用vim命令
如果文件路径表示的文件不存在,那么此命令会用于编辑新文件
如果文件路径表示的文件存在,那么此命令用于编辑已有文件
vi/vim编辑器的三种工作模式
命令模式
命令模式下,索桥的案件编辑器都理解为命令,以命令驱动执行不同的功能。
此模型下,不能自由进行文本编辑
输入模式
也就是所谓的编辑模式、插入模式
此模式下,可以对文件内容进行自由编辑
底线命令模式
以 :开始,通常用于文件的保存、退出
命令模式快捷键
Linux用户与权限
root超级管理员
root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。
su和exit命令 切换root用户与推出
su命令就是用于账户切换的系统命令,具体语法细节如下:
su [-] [用户名]
-符号是可选的,表示是否在切换用户后加载环境变量,建议带上
参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root
切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:CTRL+d
sudo命令 临时root
不建议长期使用root用户,避免带来系统损坏,可以使用sudo命令,为普通命令授权,临时以root身份执行,具体语法细节如下:
sudo 其他命令
在其他命令之前,带上sudo,即可为这一条命令临时赋予root权限
但是并不是所有的用户,都有权力使用sudo,我们需要为普通用户配置sudo认证
用户与用户组
Linux系统可以:
配置多个用户
配置多个用户租
用户可以加入多个用户组中
Linux中关于权限的管控级别有两个级别,分别是:
针对用户的权限控制
针对用户组的权限控制
比如:针对某文件,可以控制用户的权限,也可以控制用户组的权限
用户组管理
以下命令需root用户执行
创建用户组
groupadd 用户组名
删除用户组
groupdel 用户组名
用户管理
以下命令需root用户执行
创建用户
useradd [-g -d] 用户名
选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
删除用户
userdel [-r] 用户名
选项:-r,删除用户HOME目录,不使用-r,删除用户时,HOME目录保留
查看用户所属组
id [用户名]
参数:用户名,被查看的用户,如果不提供则查看自身
修改用户所属组
usermod -aG 用户组 用户名
将指定用户加入指定用户组
查看当前系统中有那些用户
getent passwd
共有七份信息,分别是:
用户名:密码(X):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
查看当前系统中有那些组
getent group
共有三份信息,分别是:
组名称:组认证(显示为X):组ID
查看权限控制
认知权限信息
比如:drwxr-xr-x. 权限信息就是
d 这是一个文件夹
所属用户权限有rwx
所属用户组权限有r 没有w 有x
其他用户权限 有r 没有w 有x
那么,rwx到底代表什么呢?。
r表示读权限
w表示写权限
x表示执行权限
针对文件、文件夹的不同,rwx的含义有细微差别.r,针对文件可以查看文件内容
针对文件夹,可以查看文件夹内容,如ls命令.w,针对文件表示可以修改此文件
针对文件夹,可以在文件夹内:创建、删除、改名等操作.x,针对文件表示可以将文件作为程序执行
针对文件夹,表示可以更改工作目录到此文件夹,即cd进入
修改权限控制
chmod命令 修改文件、文件夹的权限信息
我们可以使用chmod命令,修改文件、文件夹的权限信息
注意,只有文件、文件夹的所属用户或root用户可以修改
chmod [-R] 权限 文件或文件夹
选项:-R,对文件夹的全部内容应用同样的操作
示例:
chmod u=rwx,g=rx,o=x hello.txt 将文件权限修改为rwxr-x--x
u表示用户权限,g表示用户组权限,o表示其他用户权限
权限的数字序号
软件安装
文件上传与下载
rs、sz命令
通过 yum -y install lrzsz 安装此命令
rz进行文件上传
sz文件,进行文件下载
压缩与解压
压缩格式
市面上有非常多的压缩格式
zip格式: Linux、Windows、MacOs,常用.7zip: Windows系统常用
rar: Windows系统常用.
tar: Linux、MacOS常用
gzip: Linux、MacOS常用
在Windows系统中常用的软件如: winrar、 bandizip等软件,都支持各类常见的压缩格式,这里不多做讨论。我们现在要学习,如何在Linux系统中操作: tar、 gzip、zip这三种压缩格式
完成文件的压缩、解压操作。
tar命令
Linux和Mac系统常用有2种压缩格式,后缀名分别是:
.tar,称之为tarball,归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装
.gz,也常见为.tar.gz,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积
针对这两种格式,使用tar命令均可以进行压缩和解压缩的操作
tar [-c -v -x -f -z -C] 参数1 参数2 参数3 参数N
-c,创建压缩文件,用于压缩模式
-v,显示压缩、解压过程,用于查看进度-x,解压模式
-f,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个-z,gzip模式,不使用-z就是普通的tarball格式
-C,就是选择解压的目的地,用于解压模式
tar的常用压缩组合为:
tar -cvf test.tar 1.txt 2.txt 3.txt将1.txt 2.txt 3.txt压缩到test.tar文件内
tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
将1.txt 2.txt 3.txt压缩到test.tar.gz文件内,使用gzip模式
注意:
-z选项如果使用的话,一般处于选项位第一个
-f选项,必须在选项位最后一个
tar的常用解压组合有.
tar -xvf test.tar
解压test.tar,将文件解压至当前目录.
tar -xvf test.tar -C /home/xiang
解压test.tar,将文件解压至指定目录(/home/xiang).
tar -zxvf test.tar.gz -C /home/xiang
以Gzip模式解压test.tar.gz,将文件解压至指定目录( /home/xiang)
注意:
-f选项,必须在选项组合体的最后一位
-z选项,建议在开头位置
-C选项单独使用,和解压所需的其它参数分开
zip命令
可以使用自拍命令,压缩文件为zip压缩包
zip [-r] 参数1 参数2 参数3 参数N
-r,被压缩的包含文件夹的时候,需要使用-r选项,和rm,cp等命令的-r效果一致
示例:
zip test.zip a.txt b.txt c.txt
将a.txt b.txt c.txt压缩到test.zip文件内.
zip -r test.zip test xiang.txt
将test、xiang两个文件夹和a.txt文件,压缩到test.zip文件内
unzip命令解压文件
使用unzip命令,可以方便的解压zip压缩包语法
unzip [-d] 参数
-d,指定要解压去的位置,同tar的-C选项。参数,被解压的zip压缩包文件
示例:
unzip test.zip,将test.zip解压到当前目录
unzip test.zip -d / home/xiang,将test.zip解压到指定文件夹内(/home/xiang)