为什么要学习Linux系统?
因为在服务器开发领域,不管是后端软件,大数据系统,运维监控自动化程序,性能测试,网页服务等等,都需要运行在Linux操作系统上,所以掌握Linux,无论从事什么开发岗位都有巨大帮助!
基础知识:
● 计算机由硬件和软件组成
● 操作系统是软件的一种,主要负责调度和管理计算机硬件进行工作
● 常见的操作系统:PC端:Windows、Linux、MacOS 移动端:Android、IOS、HarmonyOS
一、初始Linux------入门
1.初始linux
Linux内核
Linux系统组成如下:
● Linux系统内核
● 系统级应用程序
内核提供系统最核心的功能,如:调度CPU、调度内存、调度文件系统、调度网络通讯、调度IO等。
系统级应用程序,可以理解为出厂自带程序,可供用户快速上手操作系统,如:文件管理器、任务管理器、图片查看、音乐播放等。
Linux内核是免费开源的,任何人都可以去下载内核源码并查看且修改。
可以通过:https://www.kernel.org 去下载Linux内核。
内核是免费、开源的,就代表了:
● 任何人都可以获得并修改内核,并且自行集成系统级程序
● 提供了内核+系统级程序的完整封装,称之为Linux发行版
不同的发行版:
● 基础命令100%相同
● 部分操作不同(如软件安装)
资料主要基于CentOS系统,辅助带有Ubuntu系统的相关知识。
2.虚拟机介绍
1.虚拟机是什么?
借助虚拟化技术,在系统中,通过软件模拟计算机硬件,并给虚拟硬件安装真实的操作系统,即可得到一台虚拟的电脑,称之为虚拟机。
2.为什么需要使用虚拟机?
学习Linux系统,就需要有一个可用的Linux系统,将自己的电脑重装为Linux系统不现实,我们需要借助虚拟机来获得可用的Linux系统环境进行学习。
3.VMware WorkStation安装
我们可以通过提供虚拟化的软件来获得虚拟机,选用VMware WorkStation软件来提供虚拟机
最新下载方式:
● 可以通过联想、360、火绒、腾讯软件中心搜索VM进行下载
● 从VM的CDS服务器下载安装包 https://softwareupdate.vmware,com/cds/vmw-desktop/
点击进去下载最高版本号即可。
安装完成后检查虚拟网卡是否安装成功 Win+R打开运行终端输入命令:
ncpa.cpl
确保虚拟网卡存在,若不存在建议卸载软件重新安装。
4.在VMware上安装Linux
首先我们需要下载操作系统的安装文件,本次使用CentOS7.6版本进行学习:
下载网址:Index of /7.6.1810/isos/x86_64
打开VM软件,按照下图指示即可完成虚拟机的配置。
最后点击左上角创建的虚拟机,等待自动安装,输入账号密码即可登录成功。
5.远程连接
操作模式分为两种:
● 图形化:鼠标操作
● 命令行:Linux命令
为什么用命令行操作Linux系统?
● Linux图形化页面并没有怎么做优化,所以Linux操作系统的图形化页面不好用,不稳定
● 在开发中,使用命令行形式,效率更高更直观,资源占用低,程序运行更加稳定
可以使用FinalShell软件连接Linux操作系统,并且通过它操作Linux系统。
浏览器进入hostbuf官网即可下载该软件,无脑点下一步即可安装完成。
Windows系统远程连接的配置:
在VM虚拟机桌面空白处点击鼠标右键选择Open Terminal
输入命令:
ifconfig
找到虚拟机IP地址并复制
打开FinalShell,按下图操作顺序完成配置
填入名称、虚拟机IP地址、用户名和密码。
配置完成后双击点开,点击接受并保存,完成连接。
连接完成可以通过输入命令进行验证,分别在VM和FinalShell中输入ls命令,返回结果完全一致。
后续操作就可以将虚拟机最小化,在FinalShell软件中完成命令书写。
注意:Linux虚拟机如果重启,有可能IP地址会发生改变,如果改变IP需要在FinalShell中修改连接的IP地址(后续可以学习到如何固定IP地址不发生改变)。
6.拓展
WSL
掌握使用WSL(Windows Subsystem for Linux)获得Ubuntu系统环境。
使用WSL,可以以非常轻量化的方式获得Linux环境,目前开发者正逐步抛弃以虚拟机的形式获取Linux环境,而在逐步拥抱WSL环境。
什么是WSL?
为什么要使用WSL?
● 开发人员都在用
● 方便,简单,好用,轻量化,省内存
WSL部署
右键点击开始菜单,按图操作,操作完后重启电脑即可。
打开Windows应用商店,搜索Ubuntu即可下载安装。
下载安装完成后打开Ubuntu 设置用户名密码即可。
Ubuntu自带的终端窗口软件不太好用,可以使用微软推出的:Windows Terminal 软件
在应用商店搜索terminal 关键字,找到软件下载并安装
安装完成打开,选择Ubuntu。
为了能够在下一次打开Terminal后能自动打开Ubuntu系统,我们可以完成下图的设置
虚拟机快照
什么是虚拟机快照?
在VM 中制作快照并还原快照,在虚拟机关机后找到快照管理器
点击拍摄快照,添加名称与描述后,会出现一个测试快照,点击测试快照后点击转到,在弹出的页面点击是即可恢复快照
二、Linux基础命令------会用
Linux的目录结构
● /,根目录是最顶级的目录
● Linux只有一个顶级目录:/
● 路径描述的层次关系同样适用 / 来表示
● /home/itheima/a.txt,表示根目录下的home文件夹内有itheima文件夹,内有a.txt
注:区分于Windows系统中路径的层级关系用:\ 表示,Linux系统中使用:/来表示。
Linux命令入门
Linux命令基础格式
无论是什么命令,用于什么用途,在Linux中,命令有其通用格式:
command [-options] [parameter]
● command:命令本身
● -options:[可选,非必填] 命令的一些选项,可以通过选项控制命令的行为细节
● parameter:[可选,非必填] 命令的参数,多数用于命令的指向目标等
语法中的[] ,表示可选的意思
示例:
● ls -l /home/itheima,ls是命令本身,-l是选项,/home/itheima是参数
意思是以列表的形式,显示/home/itheima目录里面的内容
● cp -r test1 test2,cp是命令本身,-r是选项,test1和test2是参数
意思是复制文件夹test1 成为 test2
ls命令
功能:列出目录下的内容,语法细节如下:
ls [-a -l -h] [path]
● -a -l -h 是可选的选项
● path(Linux路径)是此命令可选的参数
当不使用选项和参数,直接使用ls命令本体,表示以平铺的形式,列出当前工作目录下的内容
ls命令的参数和选项具体含义:
● -l,以列表形式查看(竖向排列)
● -h,配合-l,以更加人性化的方式显示文件大小
● -a,显示隐藏文件(Linux中以 . 开头的都是隐藏文件,必须用-a命令才能查看到)
同时语法中的选项是可以组合使用的
写法:
● ls -l -a
● ls -la
● ls -al
上述三种写法都是一样的,表示同时应用 -l 和 -a 的功能
除了选项本身可以组合以外,选项和参数也可以一起使用
Home目录和工作目录
cd命令
功能:切换工作目录
当Linux终端(命令行)打开的时候,会默认以用户的HOME目录作为当前的工作目录
我们可以使用cd命令,更改当前所在的工作目录
cd 命令来自英文:Change Directory
语法:
cd [Linux路径]
● cd命令无需选项,只有参数,表示要切换到哪个目录下
● cd命令直接执行,不写参数,表示回到用户的HOME目录
pwd命令
功能:展示当前工作目录
通过ls验证当前的工作目录,其实是不恰当的
我们可以通过pwd命令,来查看当前的工作目录
pwd命令来自英文:Print Work Directory
语法:pwd
● pwd命令,无选项,无参数,直接输入pwd即可
相对路径和绝对路径
● 相对路径,非 /
开头的称之为相对路径
相对路径表示以当前目录
作为起点,去描述路径,如test/a.txt
,表示当前工作目录内的test文件夹内的a.txt文件
● 绝对路径,以 /
开头的称之为绝对路径
绝对路径从根目录
开始描述路径
示例:
如果当前目录位于/home/zimo/Desktop
但是想要向上回退一级,切换目录到/home/zimo中,改如何做呢
● 可以通过cd 回到HOME目录
● 可以通过特殊路径符来完成
特殊路径符
● . 表示当前目录,比如:cd ./Desktop 表示切换到当前目录下的Desktop目录内,与cd Desktop效果一致
● .. 表示上一级目录,比如:cd .. 即可切换到上一级目录,cd ../.. 切换到上两级目录
● ~ 表示HOME目录,比如:cd ~ 即可切换到HOME目录或者cd ~/Desktop ,切换到HOME内的Desktop目录
示例:
mkdir命令
功能:创建新的目录(文件夹)
mkdir来自英文:Make Directory
语法:
mkdir [-p] Linux路径
● 参数必填,表示Linux路径,即要创建的文件夹的路径,相对路径或绝对路径均可
● -p选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录
示例:
注:创建文件夹需要修改权限,请确保操作均在HOME目录内,不要在HOME目录外操作,涉及到权限问题,HOME外无法成功,后续会讲解权限管控的知识
touch命令
功能:创建文件
语法:
touch Linux路径
● touch命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用
cat命令
功能:查看文件内容
暂时没有学习vi编辑器,所以我们通过图形化,手动在文件里添加内容,以测试cat命令
语法:
cat Linux路径
● cat同样没有选项,只有必填参数,参数表示要查看的文件路径,相对、绝对、特殊路径符均可以使用
more命令
功能:查看文件,可以支持翻页查看
more命令同样可以查看文件内容,与cat不同的是:
● cat是将内容全部显示出来
● more支持翻页,如果文件内容过多,可以一页一页的展示
语法:
more Linux路径
● 同样没有选项,只有必填参数,参数表示要查看的文件路径,相对、绝对、特殊路径符均可以使用
Linux系统内置有一个文件,路径为:/etc/services,可以通过more命令查看
more /etc/services
在查看的过程中可以通过空格翻页,可以通过q退出查看
cp命令
功能:复制文件、文件夹
cp来自英文单词:copy
语法:
cp [-r] 参数1 参数2
● -r 选项,可选,用于复制文件夹使用,表示递归
● 参数1,Linux路径,表示被复制的文件或文件夹
● 参数2,Linux路径,表示要复制去的地方
示例:复制文件 将/home/zimo/itheima下的test.txt文件复制到当前目录下,并查看内容
示例:复制文件夹,在/home/zimo/itheima 文件夹复制到/home/zimo/itheima2 需要加上-r选项
mv命令
功能:移动文件,文件夹
mv来自英文单词:move
语法:
mv 参数1 参数2
● 参数1,Linux路径,表示被移动的文件或文件夹
● 参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在
示例:移动文件,将/home/zimo/itheima中的test.txt文件夹移动到/home/zimo/Desktop内
示例:将/home/zimo/itheima中的test2.txt文件移动到/home/zimo/itheima/test3.txt,由于目标不存在,则将test2.txt改名为test3.txt。
rm命令
功能:删除文件,文件夹
rm来自英文单词:remove
语法:
rm [-r -f] 参数1 参数2 ......参数N
●参数:支持多个,每一个表示被删除的,空格进行分隔
●选项:-r ,删除文件夹使用
-f 表示force,强制删除(普通用户删除没有提示,只有root用户删除会有提示,普通用户一般用不到)
示例:将/home/zimo/下的 itheima2 和 test 文件夹删除,需要用到选项-r
rm命令支持通配符 *,用作模糊匹配
* 表示通配符,即匹配任何内容(包括空),示例:
● test*,表示匹配任何以test开头的内容
● *test,表示匹配任何以test结尾的内容
● *test*,表示匹配任何包含test的内容
示例:将/home/zimo/itheima下的 以test开头的文件以及文件夹删除
进入root用户的方法,通过命令:
su -root
并输入密码:123456 可切换root用户,输入exit可退回普通用户
注:rm是一个危险的命令,特别是在处于root(超级管理员)用户的时候,请谨慎使用!
如下命令,请千万千万不要在root管理员用户下执行:
rm -rf /
rm -rf /*
效果等同于在Windows上执行C盘格式化
which命令
功能:查看命令的程序本体文件路径
我们在前面学习的Linux命令,其实本地就是一个个二进制可执行程序,和Windows中的.exe文件是一个意思,我们可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里。
语法:
which 参数
● 参数:被查看的命令
示例:查看cd的程序文件存放位置
find命令
功能:搜索文件
语法:
find 起始路径 -name "参数"
● 路径:搜索的起始路径
● 参数:搜索的关键字,支持通配符*
示例:在root用户下搜索名字带有test的文件
find命令 - 按文件大小查找文件
语法:
find 起始路径 -size +|-n[kMG]
● + 、- 表示大于和小于
● n表示大小数字
● kMG表示大小单位,k(小写)表示kB,M表示MB,G表示GB
示例:查找大于100MB的文件:find / -size +100M
grep命令
功能:从文件中通过关键字过滤文件行
语法:
grep [-n] 关键字 文件路径
● 选项 -n,可选,表示在结果中显示匹配的行的行号
● 参数,关键字,必填,表示过滤的关键字,带有空格或其他特殊符号,建议使用 " " 将关键字包裹起来
● 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口
示例:通过touch命令在Home目录下创建itheima.txt,并通过图形化化页面编辑保存下列内容
过滤带有good的行:
wc命令
功能:统计
语法:
wc [-c -m -l -w] 文件路径
● 选项,-c,统计bytes数量
● 选项,-m,统计字符数量
● 选项, -l,统计行数
● 选项,-w,统计单词数量
● 参数,文件路径,被统计的文件,可作为内容输入端口
示例:统计itheima.txt的相关参量
管道符
写法:|
管道符的含义是:将管道符左边命令的结果,作为有别命令的输入
示例:
cat a.txt | grep itheima,将cat a.txt的结果作为grep命令的输入,用来过滤itheima关键字
可以支持嵌套:
cat a.txt | grep itheima | grep itcast
echo命令
功能:在命令行内输出指定内容
语法:
echo 输出的内容
● 无需选项,只有一个参数,表示要输出的内容,复杂内容可以用" "包围
示例:在终端上显示Hello Linux(带有空格或者 \ 等特殊符号,建议使用双引号包围,养成好习惯)
` 反引号
功能:被两个反引号包裹的内容,会作为命令执行
示例:输出当前目录的路径pwd,不加反引号,会直接输出pwd三个字母,加上反引号,会执行pwd,然后在命令行输出pwd执行后的结果
tail命令
功能:查看文件尾部内容,跟踪文件的最新更改
语法:
tail [-f -num] Linux路径
● 参数,Linux路径,表示被跟踪的文件路径
● 选项,-f,表示持续跟踪
● 选项,-num,表示,查看尾部多少行,不填默认10行
示例:向itheima.txt中添加一些内容,查看最后的5行
示例:复制标签,在另一个标签中向itheima.txt文件中追加输入"hello linux",此时另一标签可持续追踪itheima文件中内容变化(可通过CTRL + C 停止跟踪)
head命令
功能:查看文件头部内容
语法:
head [-n] 参数
● 参数:被查看的文件
● 选项:-n,查看的行数
示例:查看itheima.txt 前五行的内容
重定向符
功能:将符号左边的结果,输出到右边指定的文件中去
● >,表示覆盖输入
● >>,表示追加输入
示例:将Hello Linux 写入itheima.txt,覆盖原本的内容
示例:在itheima.txt文件中追加写入im Linux 内容
vi \ vim编辑器
vi \ vim是visual interface的简称,是Linux中最经典的文本编辑器,vi 是命令行下对文本文件进行编辑的绝佳选择
vim 是 vi 的加强版本,兼容 vi 的所有指令,不仅能编辑文本,而且还具有 shell 程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性
vi \ vim 编辑器的三种工作模式:
命令模式
如果需要通过vi \ vim 编辑器编辑文件,请通过如下命令:
vi 文件路径
vim 文件路径
vim 兼容全部的 vi 功能,后续全部使用 vim 命令
● 如果文件路径表示的文件不存在,那么此命令会用于编辑新文件
● 如果文件路径表示的文件存在,那么此命令用于编辑已有文件
vi编辑器的快速体验
通过vi / vim命令编辑文件,会打开一个新的窗口,窗口就是:命令模式窗口
命令模式是vi编辑器的入口和出口,如图:
● 进入 vi 编辑器会进入命令模式
● 通过命令模式输入键盘指令,可以进入输入模式
● 输入模式需要退回到命令模式,然后通过命令可以进入底线命令模式
示例:
1.使用:vim hello.txt,编辑一个新文件,执行后进入的是命令模式
2.在命令模式内,按键盘i,进入输入模式
3.在输入模式内输入:itheima and itcast.
4.输入完成后,按esc会回退回命令模式
5.在命令模式,按键盘:,进入底线命令模式
6.在底线命令内输入:wq,保存文件并退出 vi 编辑器
命令模式快捷键
模式 | 命令 | 描述 |
命令模式 | i | 在当前光标位置进入输入模式 |
命令模式 | a | 在当前光标位置 之后 进入输入模式 |
命令模式 | I | 在当前行的开头,进入输入模式 |
命令模式 | A | 在当前行的结尾,进入输入模式 |
命令模式 | o | 在当前光标下一行进入输入模式 |
命令模式 | O | 在当前光标上一行进入输入模式 |
输入模式 | esc | 任何情况下输入esc都能回到命令模式 |
命令模式 | 键盘上,键盘k | 向上移动光标 |
命令模式 | 键盘下,键盘j | 向下移动光标 |
命令模式 | 键盘左,键盘h | 向左移动光标 |
命令模式 | 键盘右,键盘l | 向后移动光标 |
命令模式 | 0 | 移动光标到当前行的开头 |
命令模式 | $ | 移动光标到当前行的结尾 |
命令模式 | pageup(PgUp) | 向上翻页 |
命令模式 | pagedown(PgDn) | 向下翻页 |
命令模式 | / | 进入搜索模式 |
命令模式 | n | 向下继续搜索 |
命令模式 | N | 向上继续搜索 |
命令模式 | dd | 删除光标所在行的内容 |
命令模式 | ndd | n是数字,表示删除当前光标向下n行 |
命令模式 | yy | 复制当前行 |
命令模式 | nyy | n是数字,复制当前行和下面的n行 |
命令模式 | p | 粘贴复制的内容 |
命令模式 | u | 撤销修改 |
命令模式 | ctrl + r | 反向撤销修改 |
命令模式 | gg | 跳到首行 |
命令模式 | G | 跳到行尾 |
命令模式 | dG | 从当前行开始,向下全部删除 |
命令模式 | dgg | 从当前行开始,向上全部删除 |
命令模式 | d$ | 从当前光标开始,删除到本行的结尾 |
命令模式 | d0 | 从当前光标开始,删除到本行的开头 |
底线命令模式
编辑模式没有什么特殊的,进入编辑模式后,任何快捷键都没有作用,就是正常输入文本而已。
唯一需要记住的,就是:通过esc,可以退回到命令模式中即可。
在命令模式内,输入:,即可进入底线命令模式,支持如下命令:
底线命令模式 | :wq | 保存并退出 |
底线命令模式 | :q | 仅退出 |
底线命令模式 | :q! | 强制退出 |
底线命令模式 | :w | 仅保存 |
底线命令模式 | :set nu | 显示行号 |
底线命令模式 | :set paste | 设置粘贴模式 |
查看命令的帮助
可以通过:命令 --help查看命令的帮助手册
查看命令的详细手册
可以通过:man命令查看命令的详细手册
三、Linux权限管理------懂权限
root用户
无论是Windows,MacOS,Linux均采用多用户的管理模式进行权限管理。
● 在Linux系统中,拥有最大权限的账户名为:root(超级管理员)
● 在前期,使用的账户是普通的用户
root 用户拥有最大的系统操作权限,而普通用户在许多地方等待权限是受限的。例如普通用户在根目录下创建文件夹会提示权限不够,而切换到root用户是可以创建的。
● 普通用户的权限,一般在其HOME目录内是不受限的
● 一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限
su命令
功能:用于账户切换
su来自英文单词:Switch User
语法:
su [-] [用户名]
● -符号是可选的,表示是否在切换用户后加载环境变量(后续讲解),建议带上
● 参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root
● 切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl+d
● 使用普通用户,切换到其它用户需要输入密码,如切换到root用户
● 使用root用户切换到其它用户,无需密码,可以直接切换
sudo命令
功能:为普通命令授权,临时以root身份执行
语法:
sudo 其他命令
● 在其它命令之前,带上sudo,即可为这一条命令临时赋予root授权
● 但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证
为普通用户配置sudo认证:
● 切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers
● 在文件最后添加
用户名 ALL=(ALL) NOPASSWD:ALL
● 其他最后的NOPASSWD:ALL 表示使用sudo命令,无需输入密码
● 最后通过wq保存
● 切换为普通用户
● 执行的命令,均以root运行
用户、用户组
Linux系统中可以:
● 配置多个用户
● 配置多个用户组
● 用户可以加入多个用户组中
Linux中关于权限的管控级别有两个级别,分别是:
● 针对用户的权限控制
● 针对用户组的权限控制
用户组管理
以下命令需要root用户执行:
● 创建用户组
groupadd 用户组名
● 删除用户组
groupdel 用户组名
示例:创建一个itcast用户组
用户管理
创建用户
useradd [-g -d] 用户名
● 选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
● 选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
示例:创建test用户,加入itcast组,并指定路径
删除用户
userdel [-r] 用户名
● 选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
示例:删除test用户,没有指定-r,所以HOME目录会保留,可手动删除
查看用户所属组
id [用户名]
● 参数:用户名,被查看的用户,如果不提供则查看自身
修改用户所属组
usermod -aG [用户组] [用户名]
● 参数:把指定用户加入指定用户组
示例:创建test2 用户,将其加入itcast用户组
getent命令
功能:可以查看当前系统有哪些用户
语法:
getent passwd
结果返回七份信息,分别是:
用户名:密码(x):用户ID:描述信息(无用):HOME目录:执行终端(默认bash)
功能:可以查看当前系统有哪些用户组
语法:
getent group
结果返回三份信息,分别是:
组名称:组认证(显示为x):组ID
查看权限控制
认知权限信息
通过 ls -l 可以以列表形式查看内容,并显示权限细节:
● 序号1,表示文件、文件夹的权限控制信息
● 序号2,表示文件、文件夹所属用户
● 序号3,表示文件、文件夹所属用户组
解析序号1,权限细节
权限细节共分为10个槽位
举例:drwxr-xr-x,表示:
● 这是一个文件夹,首字母d表示
● 所属用户(序号2)的权限是:有r有w有x,rwx
● 所属用户组(序号3)的权限是:有r无w有x,r-x(-表示无此权限)
● 其他用户的权限是:有r无w有x,r-x
rwx
● r表示读权限
● w表示写权限
● x表示执行权限
针对文件,文件夹的不同,rwx的含义有细微差别
● r,针对文件可以查看文件内容;针对文件夹看可以查看文件夹内容,如 ls 命令
● w,针对文件表示可以修改此文件;针对文件夹可以在文件夹内:创建、删除、改名等
● x,针对文件表示可以将文件作为程序执行;针对文件夹可以更改工作目录到此文件夹,即cd进入
修改权限控制
chmod
功能:修改文件、文件夹的权限信息
注:只有文件、文件夹的所属用户或root用户可以修改
语法:
chmod [-R] 权限 文件或文件夹
● 选项:-R,对文件夹内的全部内容应用同样的操作
示例:
● chmod u=rwx,g=rx,o=x hello.txt,将文件权限修改为:rwxr-x--x
其中:u表示user所属用户权限,g表示group组权限,o表示other其它用户权限
● chmod -R u=rwx,g=rx,o=x test,将文件夹test以及文件夹内全部内容权限设置为:rwxr-x--x
除此以外,还有快捷写法:chmod 751 hello.txt
将hello.txt的权限修改为751
极限的数字序号
权限可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。
数字的细节如下: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
所以751表示:rwx(7) r-x(5) --x(1)
chown
功能:修改文件、文件夹的所属用户和用户组
注:普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行
语法:
chown [-R] [用户] [:] [用户组] 文件或文件夹
● 选项,-R,同chmod,对文件夹内全部内容应用相同规则
● 选项,用户,修改所属用户
● 选项,用户组,修改所属用户组
● :用于分隔用户和用户组
示例:
● chown root hello.txt,将hello.txt所属用户修改为root
● chown :root hello.txt,将hello.txt所属用户组修改为root
● chown root:itheima hello.txt,将hello.txt所属用户修改为root,用户组修改为itheima
● chown -R root test,将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则
四、Linux实用操作------熟练
各类快捷键
ctrl + c
功能:
● 可以强制停止程序的运行
● 命令输入错误,可以通过快捷键ctrl + c,退出当前命令的输入
ctrl + d
功能:
● 退出账户的登录
● 退出某些特定程序的专属页面
注:不能用于退出vi/vim
历史命令搜索
● 可以通过history命令,查看历史输入过的命令
● 可以通过:!命令前缀,自动执行上一次匹配前缀的命令
● 可以通过快捷键 ctrl + r,输入内容去匹配历史命令
如果搜索到的内容是你需要的,那么:
● 回车键直接执行
● 键盘左右键,可以得到此命令(不执行)
光标移动快捷键
● ctrl +a,跳到命令开头
● ctrl +e,跳到命令结尾
● ctrl + 键盘左键,向左跳一个单词
● ctrl + 键盘右键,向右跳一个单词
清屏
● 通过快捷键ctrl + l,可以清空终端内容
● 或通过命令clear得到同样效果
使用yum为CentOS系统安装软件
操作系统安装软件有多种方式,一般分为:
● 下载安装包自行安装
● 如win系统使用exe文件、msi文件等
● 如mac系统使用dmg文件、pkg文件等
● 系统的应用商店内安装
● 如win系统有Microsoft Store商店
●如mac系统有 AppStore商店
Linux系统同样支持这两种方式,首先学习使用:Linux命令行内的“应用商店”,yum命令安装软件
yum命令
yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题
语法:
yum [-y] [install | remove | search] 软件名称
● 选项:-y,自动确认,无需手动确认安装或卸载过程
● install:安装
● remove:卸载
● search:搜索
yum命令需要root权限哦,可以su切换到root,或使用sudo提权
yum命令需要联网
● yum [-y] install wget,通过yum命令安装wget程序
● yum [-y] remove wget,通过yum命令卸载wget程序
● yum search wget,通过yum命令,搜索是否有wget安装包
若安装wget遇到问题,可参考下列文章:
https://blog.csdn.net/m0_58087746/article/details/142288688?spm=1001.2014.3001.5501
掌握使用apt为Ubuntu安装软件(扩展)
apt命令 - 扩展
前面学习的各类Linux命令,都是通用的。但是软件安装,CentOS系统和Ubuntu是使用不同的包
管理器。
CentOS使用yum管理器,Ubuntu使用apt管理器
通过前面学习的WSL环境,我们可以得到Ubuntu运行环境
语法:
apt [-y] [install | remove | search] 软件名称
用法和yum一致,同样需要root权限
● apt install wget,安装wget
● apt remove wget,移除wget
● apt search wget,搜索wget
systemctl命令
Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启
能够被systemctl管理的软件,一般也称之为:服务
语法:
systemctl start | stop | status | enable | disable 服务名
● start:启动
● stop:关闭
● status:查看状态
● enable:开启开机自启
● disable:关闭开机自启
系统内置的服务比较多,比如:
● NetworkManager,主网络服务
● network,副网络服务
● firewalld,防火墙服务
● sshd,ssh服务(FinalShell远程登录Linux用的就是这个服务)
除了内置的服务以外,部分第三方软件安装后也可以以systemctl进行控制
● yum install -y ntp,安装ntp软件
可以通过ntpd服务名,配合systemctl进行控制
● yum install -y httpd,安装apache服务器软件
可以通过httpd服务名,配合systemctl进行控制
示例:安装ntp软件,通过systemctl 控制 查看状态,启动
部分软件安装后没有集成到systemctl中,我们可以手动添加
这部分内容在后续章节介绍
软链接
ln命令创建软链接
在系统中创建软链接,可以将文件、文件夹链接到其他位置
类似于Windows中的快捷方式
语法:
ln -s 参数1 参数2
● -s选项,创建软链接
● 参数1:被链接的文件或文件夹
● 参数2:要链接去的目的地
实例:1.将etc下yum.conf文件链接到 HOME目录下的yum.conf 2.将/etc/yum文件夹链接到HOME目录下yum文件
ln -s /etc/yum.conf ~/yum.conf
ln -s /etc/yum ~/yum
l 开头代表软链接