当前位置:   article > 正文

Linux史上最全教程_linux教程

linux教程

一. 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. 命令通用格式

  1. command [-option] [parameter]
  2. command:命令本身
  3. option:[可选,非必填]命令的一些选项,可以通过选项控制命令行为细节
  4. parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等

示例

  1. 示例1
  2. ls -l/home/haha
  3. 意思是以列表的形式,显示/home/haha目录下的内容
  4. ls是命令本身,-l是选项,/home/haha是参数
  5. 示例2
  6. cp -r test1 test2
  7. 意思是复制test1成为test2
  8. cp是命令本身,-r是选项,test1test2是参数

2. ls命令

作用:列出目录下的内容

语法格式:

  1. 1.格式:ls [-a -l -h] [Linux路径]
  2. -a -l -h是可选的选项
  3. -a:表示all的意思,即列出全部文件(包括隐藏的文件/文件夹)
  4. -l:表示以列表(竖向排列)的形式展示内容,并展示更多信息
  5. -h:表示以易于阅读的形式,列出文件大小,如K,M,G;且必须搭配-l一起使用
  6. Linux路径是此命令可选的参数
  7. 注:当不使用选项和参数,直接使用ls命令本体,表示:以平埔的形式列出当前工作目录下的内容
  8. 2.语法中的选项是可以组合使用的(表示同时拥有):
  9. 如-a和-l的组合(表示同时拥有-l和-a的功能)可以按照ls -a -l 或 ls -la 或 ls -al方式书写
  10. 3.语法中的选项组合后还可以和参数一起使用:
  11. 如ls -al / 表示以列表的形式展示根目录下的所有(包括隐藏的)文件/文件夹
  12. 当前目录?
  13. Linux系统的命令行终端,在启动的时候,默认会加载:
  14. 当前登录用户的HOME目录作为当前工作目录,所以ls命令列出的是HOME目录的内容
  15. HOME目录:每个Linux操作用户在Linux系统的的个人账户目录,路径在:/home/用户名
  16. 如下图中的Linux用户是tom,其HOME目录是:/home/tom

示例1(无参数和选项)

 示例2(有参数和选项) 

 

3. 目录切换相关命令(cd/pwd)

cd命令来自英文:Change Directory

pwd命令来自英文:Print Work Directory

语法格式:

  1. 1.语法:cd [Linux路径]
  2. cd命令无需选项,只有参数,表示要切换到哪个目录下
  3. cd命令直接执行,不写参数,表示回到用户的HOME目录
  4. 2.语法:pwd
  5. 作用:查看当前所在的工作目录
  6. 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

语法格式

  1. mkdir [-p] Linux路径
  2. -p选项可选,表示自动创建不存在的父目录,适用于创建连续的多层级目录
  3. 参数必填,表示Linux路径,既要创建的文件夹的路径,相对路径或绝对路径均可

示例1

示例2

 注意:创建文件夹需要修改权限,请确保操作均在HOME目录内,不要再HOME外操作,因为涉及到权限问题,HOME外无法创建成功。

 6. 文件操作命令1(touch、cat、more)

语法格式

  1. 1. touch Linux路径
  2. touch命令无选项,参数必填,表示要创建的文件路径。相对、绝对、特殊路径字符均可以使用
  3. 2. cat Linux路径
  4. cat同样没有选项,只有必填参数,参数表示:被查看文件路径。相对、绝对、特殊路径字符均可以使用
  5. 3. more Linux路径
  6. more同样没有选项,只有必填参数,参数表示:被查看文件路径。相对、绝对、特殊路径字符均可以使用
  7. 2和3的区别
  8. cat是直接将内容全部显示出来
  9. more支持翻页,如果文件内容过多,可以一页一页的展示

示例1 (touch、cat命令的使用)

示例2(more命令的使用)

使用more命令查看路径为:/etc/services的文件

再查看过程中,通过空格翻页;

通过q退出查看

 7. 文件操作命令2(cp、mv、rm)

cp来源于英文单词copy

mv来源于英文单词move

语法格式

  1. 1. cp命令复制文件\文件夹
  2. 语法:cp [-r] 参数1 参数2
  3. -r选项,可选,用于复制文件夹使用,表示递归
  4. 参数1,Linux路径,表示被复制的文件或文件夹
  5. 参数2,Linux路径,表示要复制去的地方
  6. 2. mv命令
  7. 用于移动文件\文件夹
  8. 语法:mv 参数1 参数2
  9. 参数1,Linux路径,表示被移动的文件或文件夹
  10. 参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在
  11. 3. rm命令
  12. 用于删除文件\文件夹
  13. 语法:rm [-r -f] 参数1 参数2 ...参数N
  14. -r选项,可选,用于删除文件\文件夹
  15. -f表示force,强制删除(不会弹出提示确认信息)
  16. 注:普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示,所以一般普通用户用不到-f选项
  17. 参数1、参数2...参数N表示要删除的文件或文件夹路径,用空格隔开
  18. 4.通配符" * "用来模糊匹配
  19. *表示通配符,即匹配任意内容(包括空)
  20. 示例
  21. text*,表示匹配人何以test开头的内容
  22. *test,表示匹配任何以test结尾的内容
  23. *test*,表示匹配任何包含test的内容

示例1(cp命令的使用)

复制文件

复制文件夹

 示例2(mv命令的使用)

移动文件,移动目标存在

移动文件,移动目标不存在,进行改名

示例3(rm命令的使用)

删除文件

删除文件夹 

示例4

删除所有以test开头的文件夹

注意事项

rm是一个危险的命令,特别是在处于root(超级管理员)用户的时候,请谨慎使用!!!

如下命令,请千万不要在root管理员用户下使用

rm -rf/

rm -rf/*

效果等同于在Windows上执行C盘格式化

8. grep、wc、管道符“ | ”

 grep作用:从文件中通过关键字过滤文件行

语法格式

  1. 1. grep命令
  2. 语法:grep [-n] 关键字 文件路径
  3. 选项 -n,可选,表示在结果中显示匹配的行的行号
  4. 关键字,必填,表示过滤的关键字,带有空格或其他特殊符号,建议使用" "将关键字包围起来
  5. 文件路径,必填,表示过滤文件内容的文件路径,可作为内容输入端口
  6. 2. wc命令
  7. 语法:wc [-c -m -l -w] 文件路径
  8. -c 统计bytes数量
  9. -m 统计字符数量
  10. -l 统计行数
  11. -w 统计单词数量
  12. 文件路径,被统计的文件,可作为内容输入端口
  13. 3. 管道符|
  14. 含义:将管道符左边的结果,作为右边命令的输入

示例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. 1. which命令
  2. 前面的一系列命令,他们的本体其实就是一个个的二进制可执行程序,就像windows系统中的.exe文件,是一个意思,我们可以通过which命令,查看所使用的一系列的程序文件存放在哪里
  3. 语法:which 要查找的命令
  4. 2. find命令
  5. 在图形化中,我们可以通过系统提供的搜索功能,搜索指定的文件
  6. 同样,在linux系统中。我们可以同通过find命令去搜索指定的文件
  7. *按照文件名搜索
  8. 语法:find 起始路径 -name "被查找文件名"
  9. 注:也可以搭配通配符使用
  10. *按照文件大小搜索
  11. 语法:find 起始路径 -size + |-n[KMG]
  12. +、-表示大于小于
  13. n表示大小数字
  14. KMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
  15. 查找小于10kB的文件:find / -size -10k
  16. 查找大于100MB的文件:find / -size +100M
  17. 查找大于1G的文件:find / -size +1G
  18. 为了示例演示,获取最大权限,可以在整个系统完成搜索我们可以切换到root用户
  19. 命令:su -root
  20. 输入密码:******

 示例1

 示例2

10. echo、tail、重定向符

语法格式

  1. 1. echo:在命令行内输出指定内容
  2. 语法格式:echo 输出内容
  3. 无选项,只有一个参数,表示要输出的内容,复杂内容可以用""包围
  4. 注:若输出内容带有空格或\等特殊符号,建议使用双引号包围
  5. 2. 反引号`
  6. 问题提出:在命令行输入echo pwd输出的时pwd,但我们的本意是想输出当前工作目录
  7. 解决方案--->使用反引号(飘号),被`包围的内容会被当作命令去执行
  8. echo `pwd`
  9. 3. 重定向符:>和>>
  10. >,将左侧命令的结果,"覆盖"写入到符号右侧指定的文件中
  11. >>,将左侧命令的结果,"追加"写入到符号右侧指定的文件中
  12. 4. tail:查看文件尾部内容,跟踪文件的最新更改
  13. 语法:tail [-f -num] Linux路径
  14. 选项,-f,表示持续跟踪
  15. 选项,-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向上继续搜索

语法格式

  1. 语法格式:
  2. vi 文件路径
  3. vim 文件路径
  4. vim兼容全部的vi功能,后续将全部使用vim命令
  5. 注:
  6. 如果文件路径表示的文件不存在,那么此命令会用于编辑新文件
  7. 如果文件路径表示的文件存在,那么此命令用于编辑已有文件

示例

通过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

语法

  1. 语法:su [-] [用户名]
  2. -符号是可选的,表示是否在切换用户后加载环境变量(后续将会讲解),建议带上
  3. 参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root

切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl+d

注:

1)使用普通用户,切换到其他用户需要输入密码,例如切换到root用户

2)使用root用户切换到其他用户,无需密码,可直接切换(毕竟是超级管理员)

 ​​​​​

1.3 sudo命令

在我们得知root密码时,可以通过su命令切换到root得到最大权限;但是不建议长期使用root用户,避免带来系统损坏。此时我们可以使用sudo命令,为普通用户授权,临时以root身份执行

语法:

  1. 语法:sudo 其它命令
  2. 在其他命令之前,带上sudo,即可为这一条命令临时赋予root授权
  3. 但并不是所有的用户,都有权利使用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)创建用户

语法:

  1. useradd [-g -d] 用户名
  2. 选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
  3. 选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名

4)删除用户

语法:

  1. 语法:userdel [-r] 用户名
  2. 选项-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留

5)查看用户所属组

语法:

  1. id [用户名]
  2. 参数:用户名,被查看的用户,如果不提供则查看自身

6)修改用户所属组

语法:

usermod -aG 用户组 用户名,将指定用户加入指定组

3. 查看权限控制信息

3.1 认识权限信息

(1,表示文件、文件夹的权限控制信息;2,表示文件、文件夹所属用户;3,表示文件、文件夹所属用户组)

1)解析序号1,权限细节

权限细节共分为10个槽位:

-表示文件

d表示文件夹

I表示软连接

所属用户权限所属用户组权限其它用户权限
-或d或Ir或-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权限,即有读,执行权限;无写权限;

4)r-x(最后一个),表示其他用户对该文件夹的权限是r-x,即有读,执行权限;无写权限;

4. chmod命令

5. chown命令

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/142695
推荐阅读
相关标签
  

闽ICP备14008679号