一、初识Linux
操作系统概述
-
硬件与软件
计算机是由: 硬件和软件所组成。
硬件:计算机系统中由电子,机械和光电元件等组成的各种物理 装置的总称。
软件:是用户和计算机硬件之间的接口和桥梁,用户通过软件与 计算机进行交流而操作系统就是软件的一类 -
操作系统
操作系统是计算机软件的一种,它主要负责:作为用户和计算机硬件之间的桥梁,调度和管理计算机硬件进行工作而计算机如果没有操作系统,就是一堆无法使用的塑料而已
当计算机拥有了操作系统,就相当于拥有了灵魂,操作系统可以:
- 调度CPU进行工作
- 调度内存进行工作
- 调度硬盘进行数据存储
- 调度网卡进行网络通讯
- 调度音响发出声音
- 调度打印机打印内容
用户使用操作系统,操作系统安排硬件干活
-
Linux内核
下载Linux:https://www.kernel.org
Linux系统的组成如下:- Linux系统内核
内核提供系统最核心的功能,如: 调度CPU、调度内存、调度文件系统、调度网络通讯等 - 系统级应用程序
系统级应用程序,可以理解为出厂自带程序,可供用户快速上手操作系统,如:文件管理器、任务管理器、图片查看、音乐播放等。
- Linux系统内核
二、Linux基础命令
Linux目录结构
Linux的目录结构是一个树型结构
Windows 系统可以拥有多个盘符,如 C盘、D盘、E盘
在windows系统中,路径之间的层级关系,使用:\来表示
注意:
- D:表示D盘
- \表示层级关系
Linux没有盘符这个概念,只有一个根目录 /所有文件都在它下面
在Linux系统中,路径之间的层级关系,使用:/来表示
注意:- 开头的/表示根目录
- 后面的/表示层级关系
Linux命令基础
-
ls命令的参数的作用
可以指定要查看的文件夹(目录)的内容如果不给定参数,就查看当前工作目录的内容
-
ls命令的选项
- -a选项,可以展示出隐藏的内容
- 以.开头的文件或文件夹默认被隐藏,需要-a才能显示出来-[选项],以列表的形式展示内容,并展示更多细节
- -h选项,需要和-l选项搭配使用,以更加人性化的方式显示文件的大小单位
- -a选项,可以展示出隐藏的内容
-
命令的选项组合使用
命令的选项是可以组合使用的,比如: ls -lah,等同于 ls -a -l -h
-
cd命令的作用
- cd命令来自英文: Change Directory
- cd命令可以切换当前工作目录,语法是:
cd [Linux路径]
- 没有选项,只有参数,表示目标路径
- 使用参数,切换到指定路径
- 不使用参数,切换工作目录到当前用户的HOME
-
pwd命令的作用
- pwd命令来自英文: Print Work Directory
- pwd命令,没有选项,没有参数,直接使用即可
- 作用是:输出当前所在的工作目录
-
相对路径和绝对路径
- 绝对路径:以根目录做起点,描述路径的方式,路径以/开头
- 相对路径:以当前目录做起点,描述路径的方式,路径不需以/开头
-
特殊路径符有哪些?
- .表示当前目录,比如cd.或 cd ./Desktop
- . . 表示上一级目录,比如: cd … 或 cd . ./. .
- ~表示用户的HOME目录,比如: cd ~或 cd ~/Desktop
-
mkdir命令的语法和功能
- mkdir用以创建新的目录(文件夹)
- 语法: mkdir [-p] Linux路径
- 参数必填,表示要创建的目录的路径,相对、绝对、特殊路径符都可以使用
- p选项的作用可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录
-
touch命令
- 用于创建一个新的文件
- 语法:touch Linux路径
- 参数必填,表示要创建的文件的路径,相对、绝对、特殊路径符都可以使用
-
cat命令
- 用于查看文件内容
- 语法: cat Linux路径
- 参数必填,表示要查看的文件的路径,相对、绝对、特殊路径符都可以使用
-
more命令
- 用于查看文件内容,可翻页查看
- 语法: more Linux路径
- 参数必填,表示要查看的文件的路径,相对、绝对、特殊路径符都可以
- 使用空格进行翻页,使用q退出查看
-
cp命令
- 用于复制文件或文件夹
- 语法: cp [-r] 参数1 参数2
- -r选项,可选,用于复制文件夹使用,表示递归
- 参数1,Linux路径,表示被复制的文件或文件夹
- 参数2,Linux路径,表示要复制去的地方
-
mv命令
- 用于查看文件内容
- 语法: mv 参数1 参数2
- 参数1,Linux路径,表示被移动的文件或文件夹
- 参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在
-
rm命令
- 用于复制文件或文件夹
- 语法: rm [-r -f] 参数1 参数2 参数N
- -r选项,可选,文件夹删除
- -f选项,可选,用于强制删除(不提示,一般用手root用户)
- 参数,表示被删除的文件或文件夹路径,支持多个,空格隔开
- 参数也支持通配符*,用以做模糊匹配
test*:表示匹配任何以test开头的内容
*test:表示匹配任何以test结尾的内容
test:表示匹配任何包含test的内容
-
which命令
- 查找命令的程序文件
- 语法: which 要查找的命令
- 无需选项,只需要参数表示查找哪个命令
-
find命令
- 用于查找指定的文件
- 按文件名查找:find 起始路径 -name “被查找文件名”
- 支持通配符
- 按文件大小找: find 起始路径 -size +/-n[kMG]
- 参数也支持通配符*,用以做模糊匹配
test*:表示匹配任何以test开头的内容
*test:表示匹配任何以test结尾的内容
test:表示匹配任何包含test的内容
-
grep命令
- 从文件中通过关键字过滤文件行
- 语法:grep [-n] 关键字 文件路径
- 选项-n,可选,表示在结果中显示匹配的行的行号。
- 参数,关键字,必填,表示过滤的关键字,建议使用””将关键字包围起来参数,文件路径,必填,表示要过滤内容的文件路径,可作为管道符的输入
-
wc命令
- 命令统计文件的行数、单词数量、字节数、字符数等
- 语法: wc [-c -m -l -w] 文件路径
- 不带选项默认统计:行数、单词数、字节数
- -c字节数、-m字符数、-l行数、-w单词数
- 参数,被统计的文件路径,可作为管道符的输入
-
管道符 |
- 将管道符左边命令的结果,作为右边命令的输入
-组合键 shift+\
- 将管道符左边命令的结果,作为右边命令的输入
-
echo命令
- 可以使用echo命令在命令行内输出指定内容
- 语法: echo 输出的内容
- 无需选项,只有一个参数,表示要输出的内容,复杂内容可以用" "包围
-
`反引号符
- 被`包围的内容,会被作为命令执行,而非普通字符
22.重定向符
>
将左侧命令的结果,覆盖写入到符号右侧指定的文件中>>
将左侧命令的结果,追加写入到符号右侧指定的文件中
-
tail命令
- 查看文件尾部内容,并可以持续跟踪
- 语法: tail [-f -num] Linux路径
- 选项,-f表示持续追踪
- 选项,-num表示查看尾部多少行,不填默认10行
-
vi/vim编辑器
什么是vi/vim编辑器- vi/vim编辑器,就是命令行模式下的文本编辑器,用来编辑文件
- vim是vi的升级版,一般用vim即可,包含全部vi功能
基础命令
- vi 文件路径
- vim 文件路径
运行模式
- 命令模式,默认的模式,可以通过键盘快捷键控制文件内容
- 输入模式,通过命令模式进入,可以输入内容进行编辑,按esc退回命令
- 模式底线命令模式,通过命令模式进入,可以对文件进行保存、关闭等操作
命令模式快捷键
模式 | 命令 | 描述 |
---|---|---|
命令模式 | i | 在当前光标位置,进入输入模式 |
命令模式 | a | 在当前光标位置之后,进入输入模式 |
命令模式 | I | 在当前行的开头,进入输入模式 |
命令模式 | A | 在当前行的结尾,进入输入模式 |
命令模式 | o | 在当前光标下一行,进入输入模式 |
命令模式 | O | 在当前光标上一行,进入输入模式 |
输入模式 | esc | 任何情况下输入esc 都能回到命令模式 |
命令模式 | 键盘上、键盘k | 向上移动光标 |
命令模式 | 键盘下、键盘j | 向下移动光标 |
命令模式 | 键盘左、键盘h | 向左移动光标 |
命令模式 | 键盘右、键盘l | 向后移动光标 |
命令模式 | 0 | 移动光标到当前行的开头 |
命令模式 | $ | 移动光标到当前行的结尾 |
命令模式 | pageup(PgUp) | 向上翻页 |
命令模式 | pangdown(PgDn) | 向下翻页 |
命令模式 | / | 进入搜索模式 |
命令模式 | n | 向下继续搜索 |
命令模式 | N | 向上继续搜索 |
命令模式 | dd | 删除光标所在行的内容 |
命令模式 | ndd | n是数字,表示删除当前光标向下n行 |
命令模式 | yy | 复制当前行 |
命令模式 | nyy | n是数字,复制当前行和下面的n行 |
命令模式 | p | 粘贴复制的内容 |
命令模式 | u | 撤销修改 |
命令模式 | ctrl+r | 反向撤销修改 |
命令模式 | gg | 跳到首行 |
命令模式 | G | 跳到行尾 |
命令模式 | dG | 从当前行开始,向下全部删除 |
命令模式 | dgg | 从当前行开始,向上全部删除 |
命令模式 | d$ | 从当前光标开始,删除到本行的结尾 |
命令模式 | d0 | 从当前光标开始,删除到本行的开头 |
底线命令模式 | :wq | 保存并退出 |
底线命令模式 | :q | 仅退出 |
底线命令模式 | :q! | 强制退出 |
底线命令模式 | :w | 仅保存 |
底线命令模式 | :set nu | 显示行号 |
底线命令模式 | :set paste | 设置粘贴模式 |
三、Linux权限管理
-
Linux系统的超级管理员用户是:root用户
-
su命令
- 可以切换用户,语法:su [-] [用户名]
- -表示切换后加载环境变量,建议带上
- 用户可以省略,省略默认切换到root
-
sudo命令
- 可以让一条普通命令带有root权限,语法:sudo 其它命令
- 需要以root用户执行visudo命令,增加配置方可让普通用户有sudo命令的执行权限
为普通用户配置sudo认证
执行visudo命令会自动通过vi编辑器打开:/etc/sudoers
在文件的最后添加:
普通用户名 ALL=(ALL) NOPASSWD : ALL
其中最后的NOPASSWD:ALL 表示使用sudo命令,无需输入密码
-
用户和用户组
Linux系统中可以:- 配置多个用户
- 配置多个用户组
- 用户可以加入多个用户组中
Linux中关于权限的管控级别有2个级别,分别是:
- 针对用户的权限控制
- 针对用户组的权限控制
用户组管理
以下命令需要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 可以查看当前系统中有哪些用户及用户组 getent pwd getent group
gentent pwd共有7份信息,分别是:用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
getent group同样可以查看当前系统中有哪些用户组包含3份信息,组名称:组认证(显示为X):组ID
-
查看权限控制信息
- 序号1,表示文件、文件夹的权限控制信息
- 序号2,表示文件、文件夹所属用户
- 序号3,表示文件、文件夹所属用户组
举例:drwxr-xr-x,表示: - 这是一个文件夹,首字母d表示
- 所属用户(第一个图序号2)的权限是:有r有w有x,rwx
- 所属用户组(第一个图序号3)的权限是:有r无w有x,r-x (-表示无此权限)
- 其它用户的权限是: 有r无w有x,r-x
rwx
那么,rwx到底代表什么呢?- r表示读权限
- w表示写权限
- x表示执行权限
针对文件、文件夹的不同,rwx的含义有细微差别
- r,针对文件可以查看文件内容
- 针对文件夹,可以查看文件夹内容,如ls命令
- w,针对文件表示可以修改此文件
- 针对文件夹,可以在文件夹内: 创建、删除、改名等操作
- x,针对文件表示可以将文件作为程序执行
- 针对文件夹,表示可以更改工作目录到此文件夹,即cd进入
-
chmod命令
使用chmod命令,修改文件、文件夹的权限信息。
注意:只有文件、文件夹的所属用户或root用户可以修改。
语法:chmod [-R] 权限 文件或文件夹
选项:-R,对文件夹内的全部内容应用同样的操作例子:
# 将文件权限修改为:rwxr-x--x chmod u=rwx,g=rx,o=x hello.txt # u:表示user所属用户权限,g表示group组权限,o表示other其他用户权限 # 将文件夹test以及文件夹内全部内容权限设置为:rwxr-x--x chmod -R u=rwx,g=rx,o=x test
权限的数字序号
权限可以用三位数字来代表,第一位数字表示用户权限,第二 位表示用户组权限,第三位表示其它用户权限。数字的细节如下:
r记为4,w记为2,x记为1- 0:无任何权限,即—
- 1:仅有x权限,即–x
- 2:仅有w权限,即 -W-
- 3:有w和x权限,即-WX
- 4:仅有r权限,即r–
- 5:有r和x权限,即r-x
- 6:有r和w权限,即 rw-
- 7:有全部权限即rwx
-
chown命令
功能:使用chown命令,可以修改文件、文件夹的所属用户和用户组
限制:
普通用户无法修改所属为其它用户或用户组,所以此命令只适用于root用户执行
语法:
chown [-R] [用户][:][用户组] 文件或文件夹
选项,-R,同chmod,对文件夹内全部内容应用相规则
选项,用户,修改所属用户
选项,用户组,修改所属用户组
:用于分隔用户和用户组