一. Linux简介
1.硬件和软件
我们所熟知的计算机是由硬件和软件组成。
硬件:计算机系统中由电子,机械和光电子元件等组成的各种物理装置装置的统称;
简单来说硬件就是看得见摸得到的。
软件:是用户和计算机硬件之间的接口和桥梁,用户通过软件和计算机进行交流。而我们要学习的Linux就是软件的一类。
一个完整的计算机:
2. 操作系统
1.1 概念
操作系统是计算机软件的一种,它主要作为用户和计算机之间的桥梁,调度和管理计算机硬件进行工作。而计算机如果没有操作系统就是一堆无法使用塑料而已。
1.2 功能
当计算机拥有了操作系统,就相当于有了灵魂,操作系统可以
a. 调度CPU进行工作
b. 调度内存进行工作
c. 调度硬盘进行数据存储
d. 调度网卡进行网络通讯
e. 调度音响发出声音,打印机打印内容
......
"用户使用操作系统,操作系统安排硬件干活"
1.3 常见的操作系统
a. PC端操作系统:Windows、Linux、MacOS
b. 移动端操作系统:Android、IOS、HarmonyOS
3. Linux操作系统
1.1 诞生
Linux创始人:林纳斯 托瓦兹
Linux诞生于1991年,作者上大学期间
由于创始人在上大学期间经常浏览新闻和处理邮件,发现现有操作系统不好用,于是决心自己写一个保护模式下的操作系统,这就是Linux原型,当时他21岁,后来经全世界网友的支持,现在能够兼容多种硬件,成为最主流的服务器操作系统之一。
1.2 Linux内核
Linux系统由Linux系统内核和系统级应用组成
1)内核提供系统最核心的功能,如:调度CPU、调度内存、调度系统文件、调度IO等.
2)系统级应用程序,可以理解出厂自带程序,可供用户快速上手操作系统,如文件管理器,任务管理器,图片查看,音乐播放等。
如:播放音乐,无论用户是用自带音乐播放器或者是自行安装的第三方播放器,均是由播放器程序,调用内核提供的相关功能,由内核调度硬件CPU进行解码,音响发生等。
1.3 Linux发行版
内核是免费的、开源的、这也就代表了
1)任何人都可以获得并修改内核、并且自行集成系统级程序
2)提供了内核+系统级程序的完整封装,称之为Linux发行版
任何人都可以封装Linux、目前市面上有非常多的Linux发行版、常用的如下
其中在国内CentOS使用最多,国外ubuntu很受欢迎
Centor下载链接
清华大学开源软件镜像站Ubuntu下载链接
1.4 Linux应用领域
今天各种场合都有使用各种 Linux 发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL + PHP)组合。
目前 Linux 不仅在家庭与企业中使用,并且在政府中也很受欢迎。
- 巴西联邦政府由于支持 Linux 而世界闻名。
- 有新闻报道俄罗斯军队自己制造的 Linux 发布版的,做为 G.H.ost 项目已经取得成果。
- 印度的 Kerala 联邦计划在向全联邦的高中推广使用 Linux。
- 中华人民共和国为取得技术独立,在龙芯处理器中排他性地使用 Linux。
- 在西班牙的一些地区开发了自己的 Linux 发布版,并且在政府与教育领域广泛使用,如 Extremadura 地区的 gnuLinEx 和 Andalusia 地区的 Guadalinex。
- 葡萄牙同样使用自己的 Linux 发布版 Caixa Mágica,用于 Magalh?es 笔记本电脑和 e-escola 政府软件。
- 法国和德国同样开始逐步采用 Linux。
4. 虚拟机
借助虚拟化技术,我们可以在系统中,通过软件模拟计算机硬件,并给虚拟机硬件安装真实的操作系统。这样就可以在电脑中虚拟出一个完整的电脑,以供我们学习Linux系统。
二. Linux常用命令
1. 命令通用格式
command [-option] [parameter]
command:命令本身
option:[可选,非必填]命令的一些选项,可以通过选项控制命令行为细节
parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等
示例
示例1
ls -l/home/haha
意思是以列表的形式,显示/home/haha目录下的内容
ls是命令本身,-l是选项,/home/haha是参数
示例2
cp -r test1 test2
意思是复制test1成为test2
cp是命令本身,-r是选项,test1和test2是参数
2. ls命令
作用:列出目录下的内容
语法格式:
1.格式:ls [-a -l -h] [Linux路径]
-a -l -h是可选的选项
-a:表示all的意思,即列出全部文件(包括隐藏的文件/文件夹)
-l:表示以列表(竖向排列)的形式展示内容,并展示更多信息
-h:表示以易于阅读的形式,列出文件大小,如K,M,G;且必须搭配-l一起使用
Linux路径是此命令可选的参数
注:当不使用选项和参数,直接使用ls命令本体,表示:以平埔的形式列出当前工作目录下的内容
2.语法中的选项是可以组合使用的(表示同时拥有):
如-a和-l的组合(表示同时拥有-l和-a的功能)可以按照ls -a -l 或 ls -la 或 ls -al方式书写
3.语法中的选项组合后还可以和参数一起使用:
如ls -al / 表示以列表的形式展示根目录下的所有(包括隐藏的)文件/文件夹
当前目录?
Linux系统的命令行终端,在启动的时候,默认会加载:
当前登录用户的HOME目录作为当前工作目录,所以ls命令列出的是HOME目录的内容
HOME目录:每个Linux操作用户在Linux系统的的个人账户目录,路径在:/home/用户名
如下图中的Linux用户是tom,其HOME目录是:/home/tom
示例1(无参数和选项)
示例2(有参数和选项)
3. 目录切换相关命令(cd/pwd)
cd命令来自英文:Change Directory
pwd命令来自英文:Print Work Directory
语法格式:
1.语法:cd [Linux路径]
cd命令无需选项,只有参数,表示要切换到哪个目录下
cd命令直接执行,不写参数,表示回到用户的HOME目录
2.语法:pwd
作用:查看当前所在的工作目录
pwd命令,无选项,无参数,直接输入pwd即可
示例1(用root用户)
示例2(用普通用户zh)
4. 相对路径和绝对路径
相对路径:以根目录位起点,描述路径的一种写法,路径描述以/开头
绝对路径:以当前路径为起点,描述路径的一种写法,路径无需以/开头
示例1(绝对路径)
如果是普通用户的话:cd /home/zh/Desktop
示例2(相对路径)
特殊路径符
. 表示当前目录,比如cd./Desktop表示切换到当前目录下的Desktop目录内,和cd Desktop效果一致
.. 表示上一级目录,比如cd.. 即切换到上一级目录,cd../..切换到上二级的目录
~ 表示HOME目录。比如cd~ 即可切换到HOME目录或cd~/Desktop,切换到HOME内的Desktop目录
示例3
5. 创建目录(文件夹)mkdir
mkdir来自英文:Make Directory
语法格式
mkdir [-p] Linux路径
-p选项可选,表示自动创建不存在的父目录,适用于创建连续的多层级目录
参数必填,表示Linux路径,既要创建的文件夹的路径,相对路径或绝对路径均可
示例1
示例2
注意:创建文件夹需要修改权限,请确保操作均在HOME目录内,不要再HOME外操作,因为涉及到权限问题,HOME外无法创建成功。
6. 文件操作命令1(touch、cat、more)
语法格式
1. touch Linux路径
touch命令无选项,参数必填,表示要创建的文件路径。相对、绝对、特殊路径字符均可以使用
2. cat Linux路径
cat同样没有选项,只有必填参数,参数表示:被查看文件路径。相对、绝对、特殊路径字符均可以使用
3. more Linux路径
more同样没有选项,只有必填参数,参数表示:被查看文件路径。相对、绝对、特殊路径字符均可以使用
2和3的区别
cat是直接将内容全部显示出来
more支持翻页,如果文件内容过多,可以一页一页的展示
示例1 (touch、cat命令的使用)
示例2(more命令的使用)
使用more命令查看路径为:/etc/services的文件
再查看过程中,通过空格翻页;
通过q退出查看
7. 文件操作命令2(cp、mv、rm)
cp来源于英文单词copy
mv来源于英文单词move
语法格式
1. cp命令复制文件\文件夹
语法:cp [-r] 参数1 参数2
-r选项,可选,用于复制文件夹使用,表示递归
参数1,Linux路径,表示被复制的文件或文件夹
参数2,Linux路径,表示要复制去的地方
2. mv命令
用于移动文件\文件夹
语法:mv 参数1 参数2
参数1,Linux路径,表示被移动的文件或文件夹
参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在
3. rm命令
用于删除文件\文件夹
语法:rm [-r -f] 参数1 参数2 ...参数N
-r选项,可选,用于删除文件\文件夹
-f表示force,强制删除(不会弹出提示确认信息)
注:普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示,所以一般普通用户用不到-f选项
参数1、参数2...参数N表示要删除的文件或文件夹路径,用空格隔开
4.通配符" * "用来模糊匹配
*表示通配符,即匹配任意内容(包括空)
示例
text*,表示匹配人何以test开头的内容
*test,表示匹配任何以test结尾的内容
*test*,表示匹配任何包含test的内容
示例1(cp命令的使用)
复制文件
复制文件夹
示例2(mv命令的使用)
移动文件,移动目标存在
移动文件,移动目标不存在,进行改名
示例3(rm命令的使用)
删除文件
删除文件夹
示例4
删除所有以test开头的文件夹
注意事项
rm是一个危险的命令,特别是在处于root(超级管理员)用户的时候,请谨慎使用!!!
如下命令,请千万不要在root管理员用户下使用
rm -rf/
rm -rf/*
效果等同于在Windows上执行C盘格式化
8. grep、wc、管道符“ | ”
grep作用:从文件中通过关键字过滤文件行
语法格式
1. grep命令
语法:grep [-n] 关键字 文件路径
选项 -n,可选,表示在结果中显示匹配的行的行号
关键字,必填,表示过滤的关键字,带有空格或其他特殊符号,建议使用" "将关键字包围起来
文件路径,必填,表示过滤文件内容的文件路径,可作为内容输入端口
2. wc命令
语法:wc [-c -m -l -w] 文件路径
-c 统计bytes数量
-m 统计字符数量
-l 统计行数
-w 统计单词数量
文件路径,被统计的文件,可作为内容输入端口
3. 管道符|
含义:将管道符左边的结果,作为右边命令的输入
示例1(grep命令的使用)
通过touch命令在HOME目录创建haha.txt,通过图形化页面编辑并保存如下内容
My name is haha.It comes from China.
Xixi very handsome and smart.
示例2(wc命令的使用)
示例3(管道符“ | ”的应用)
示例4(管道符“ | ”嵌套的应用)
先创建一个文件名为test.txt,通过图形化页面编辑并保存如下内容
Zhang San is a student,he is very smart.
Li Si is a student,he is the monitor.
9. which、find命令
1. which命令
前面的一系列命令,他们的本体其实就是一个个的二进制可执行程序,就像windows系统中的.exe文件,是一个意思,我们可以通过which命令,查看所使用的一系列的程序文件存放在哪里
语法:which 要查找的命令
2. find命令
在图形化中,我们可以通过系统提供的搜索功能,搜索指定的文件
同样,在linux系统中。我们可以同通过find命令去搜索指定的文件
*按照文件名搜索
语法:find 起始路径 -name "被查找文件名"
注:也可以搭配通配符使用
*按照文件大小搜索
语法:find 起始路径 -size + |-n[KMG]
+、-表示大于小于
n表示大小数字
KMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
例
查找小于10kB的文件:find / -size -10k
查找大于100MB的文件:find / -size +100M
查找大于1G的文件:find / -size +1G
为了示例演示,获取最大权限,可以在整个系统完成搜索我们可以切换到root用户
命令:su -root
输入密码:******
示例1
示例2
10. echo、tail、重定向符
语法格式
1. echo:在命令行内输出指定内容
语法格式:echo 输出内容
无选项,只有一个参数,表示要输出的内容,复杂内容可以用""包围
注:若输出内容带有空格或\等特殊符号,建议使用双引号包围
2. 反引号`
问题提出:在命令行输入echo pwd输出的时pwd,但我们的本意是想输出当前工作目录
解决方案--->使用反引号(飘号),被`包围的内容会被当作命令去执行
echo `pwd`
3. 重定向符:>和>>
>,将左侧命令的结果,"覆盖"写入到符号右侧指定的文件中
>>,将左侧命令的结果,"追加"写入到符号右侧指定的文件中
4. tail:查看文件尾部内容,跟踪文件的最新更改
语法:tail [-f -num] Linux路径
选项,-f,表示持续跟踪
选项,-num,表示,查看尾部多少行,不填默认是10行
示例1:echo命令的使用
示例2:反引号`的使用
示例3:重定向符
示例4:tail命令的使用
11. vi/vim编译器
概念
vi/vim时visual interface的简称,是Linux中最经典的文本编辑器
同图形化界面中的文本编辑器一样vi是命令行下对文本文件进行编译的绝佳选择
vim是vi的加强版,兼容vi的所有指令,不仅能编辑文本,而且还具有shell编程的功能,可以不同颜色的字体辨别语法的正确性,极大方便了程序的设计和编辑性
vi/vim编辑器的三种工作模式
1)命令模式(Command mode)
命令模式下,所敲的案件编辑器都理解为命令,以命令驱动执行不同的功能
此模式下,可以对文件内容进行文本编辑
2)输入模式(Insert mode)
也就是所谓的编辑模式、插入模式
此模式下,可以对文件内容进行自由编辑
3)底线命令模式(Last line mode)
以:开始,通常用于文件的保存、退出
命令模式下常用快捷键
模式 | 命令 | 描述 |
命令模式 | i | 在当前光标位置进入输入模式 |
命令模式 | a | 在当前光标位置之后进入输入模式 |
命令模式 | I | 在当前行的开头,进入输入模式 |
命令模式 | A | 在当前行的结尾,进入输入模式 |
命令模式 | o | 在当前光标下一行进入输入模式 |
命令模式 | O | 在当前光标上一行进入输入模式 |
输入模式 | esc | 任何情况下输入esc都能回到命令模式 |
模式 | 命令 | 描述 |
命令模式 | 0 | 移动光标到当前行的开头 |
命令模式 | $ | 移动光标到当前行的结尾 |
命令模式 | paguap(pgUp) | 向上翻页 |
命令模式 | pangdown(PgDn) | 向下翻页 |
命令模式 | / | 进入搜索模式 |
命令模式 | n | 向下继续搜索 |
命令模式 | M | 向上继续搜索 |
语法格式
语法格式:
vi 文件路径
vim 文件路径
vim兼容全部的vi功能,后续将全部使用vim命令
注:
如果文件路径表示的文件不存在,那么此命令会用于编辑新文件
如果文件路径表示的文件存在,那么此命令用于编辑已有文件
示例
通过vi/vim命令编辑文件,会打开一个新的窗口,此时这个窗口就是命令模式窗口命令模式是vi编辑器的入口和出口;
进入vi编辑器会进入命令模式,然后通过命令模式输入键盘指令,可以进入输入模式;
最后输入模式需要退回到命令模式,然后通过命令可以进入底线命令模式
步骤
1)使用 vim hello.txt,编辑一个新文件,执行后进入的是命令模式
按回车键
2)在命令模式内,按键盘i,进入输入模式
3)在输入模式内输入:Hello Linux
4)输入完成后,按esc回退到命令模式
5)在命令模式内,按键盘:进入底线模式
6)在底线模式内输入:wq,保存文件退出vi编辑器
7)查看文件内容
内容已被写入
三. Linux的用户和权限
1. Linux的root用户
1.1 概述
1)无论是Windows、MacOS还是Linux均采用多用户的管理模式进行权限管理。
2)在Linux系统中,拥有最大权限的账户名为root(超级管理员),而在前期我们一直用的都是普通用户zh
3)root用户有最大的系统操作权限,而普通用户在很多地方的权限是受阻的
例如,当我们使用普通用户在根目录下创建文件/目录时,会提示我们“权限不够,无法创建文件/目录“
普通用户的权限,一般在其HOME目录内是不受限的
一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限
1.2 su和exit命令
su来源于英语单词:Switch User
语法
语法:su [-] [用户名]
-符号是可选的,表示是否在切换用户后加载环境变量(后续将会讲解),建议带上
参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root
切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl+d
注:
1)使用普通用户,切换到其他用户需要输入密码,例如切换到root用户
2)使用root用户切换到其他用户,无需密码,可直接切换(毕竟是超级管理员)
1.3 sudo命令
在我们得知root密码时,可以通过su命令切换到root得到最大权限;但是不建议长期使用root用户,避免带来系统损坏。此时我们可以使用sudo命令,为普通用户授权,临时以root身份执行
语法:
语法:sudo 其它命令
在其他命令之前,带上sudo,即可为这一条命令临时赋予root授权
但并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证
为普通用户配置sudo认证:
a. 切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers
b. 在文件最后添加:zh ALL=(ALL) NOPASSWD:ALL
c. 最后通过wq保存
d. 切换回普通用户,在根目录下创建haha文件夹测试
可以发现本来只能在超级用户进行的操作,通过使用sudo命令,普通用户也可进行操作
2. 用户和用户组
2.1 用户、用户组
1)Linux系统中可以配置多个用户、用户组(用户可以加入多个用户组中)
2)Linux中关于权限的管理级别有两个级别,分别是:针对用户的权限控制,针对用户组的权限控制;比如,针对某文件,可以控制用户的权限,也可以控制用户组的权限。
2.2 用户组管理
1)创建用户组
语法:
groupadd 用户组名
2)删除用户组
语法
groupdel 用户组名
3)创建用户
语法:
useradd [-g -d] 用户名
选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
4)删除用户
语法:
语法:userdel [-r] 用户名
选项-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
5)查看用户所属组
语法:
id [用户名]
参数:用户名,被查看的用户,如果不提供则查看自身
6)修改用户所属组
语法:
usermod -aG 用户组 用户名,将指定用户加入指定组
3. 查看权限控制信息
3.1 认识权限信息
(1,表示文件、文件夹的权限控制信息;2,表示文件、文件夹所属用户;3,表示文件、文件夹所属用户组)
1)解析序号1,权限细节
权限细节共分为10个槽位:
-表示文件 d表示文件夹 I表示软连接 |
所属用户权限 | 所属用户组权限 | 其它用户权限 | ||||||
-或d或I | r或- | w或- | x或- | r或- | w或- | x或- | r或- | w或- | x或- |
注:“ - ”表示无此权限
2)rwx的含义
r(read),表示读权限
w(write),表示写权限
x(Execute permission),表示执行权限
3)针对文件、文件夹的不同,rwr的含义有细微的差别
rwx | 针对文件 | 针对文件夹 |
r | 可以查看文件内容 | 可以查看文件夹内容,如ls命令 |
w | 可以修改此文件 | 可以在文件夹内:创建、删除、改名等操作 |
x | 可以将此文件作为程序执行 | 可以更改工作目录到此文件夹,即cd进入 |
4)示例:drwxr-xr-x
1)d,表示这是一个文件夹
2)rwx,表示该文件夹所属用户对该文件有rwx权限,即有读、写、执行权限;
3)r-x(第一个),表示该文件夹所属用户组对该文件有r-x权限,即有读,执行权限;无写权限;文章来源:https://www.toymoban.com/news/detail-769488.html
4)r-x(最后一个),表示其他用户对该文件夹的权限是r-x,即有读,执行权限;无写权限;文章来源地址https://www.toymoban.com/news/detail-769488.html
4. chmod命令
5. chown命令
到了这里,关于Linux史上最全教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!