一. 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权限,即有读,执行权限;无写权限;

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

4. chmod命令

5. chown命令

Linux史上最全教程相关推荐

  1. 新唐单片机 ICP 史上最全教程

    新唐单片机 ICP 史上最全教程 新唐单片机 ICP烧录教程 目录 新唐单片机 ICP 史上最全教程 1.ICP软件安装 2.连接设备 3.设备供电 4.开启软件 5.欢迎界面 6.补充事项 7.建立 ...

  2. linux如何解压.z文件,linux文件解压缩命令(史上最全教程)

    1. 前言 本文主要讲解linux文件解压缩命令,史上最全总结. 2. Linux如何打包目录和解包: tar cvf FileName.tar DirName 解包tar文件: tar xvf Fi ...

  3. GitHub Pages + Hexo搭建个人博客网站,史上最全教程

    文章目录 一.准备工作 1. GitHub账号 2. 安装Git 3. 安装NodeJS 二.创建仓库 三.安装Hexo 四.更换主题 1. NexT 主题 2. Fluid主题 五.创建文章 六.个 ...

  4. Linux史上最全(30000字)知识点总结,含部署环境搭建步骤(建议收藏后看)

    认识Linux 入门概述 我们为什么要学习Linux linux诞生了这么多年,以前还喊着如何能取代windows系统,现在这个口号已经小多了,任何事物发展都有其局限性都有其天花板.就如同在国内再搞一 ...

  5. Linux 史上最全top命令及参数详解

    总目录 **一.top简介** **二.top命令** 1.top -d:number代表秒数 默认5秒 刷新一次 2.top -b:以批次的方式执行top 3.top -b: '批量模式',用来将输 ...

  6. 史上最全教程没有之一,微信小程序使用云开发解决微信支付问题,我走了几天几夜的弯路啊

    我现在用云开发平台,想实现微信支付功能: 微信支付的前提 1.你的小程序开通了支付功能或者,你的小程序关联了商户号 2.你的小程序能开通支付功能,一般都是非个人类型的小程序 准备工作 1.获取小程序的 ...

  7. screen史上最全教程

    当我们用xshell连接远程服务器时候,可能会遇到网络问题,导致中断连接,此时我们可以使用screen软件去管理会话. 1.首先需要安装screen apt-get install screen  2 ...

  8. 重量级 | 重量级!Maven史上最全教程,看了必懂

    Hi! 我是小小,今天是本周的第一篇,本周第一篇主要内容是maven项目的创建和使用. 前言 为了持续集成和持续部署,需要把项目改造为,或者使用maven创建项目,下面介绍maven 为什么要使用ma ...

  9. github史上最全教程

    一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...

最新文章

  1. 【leetcode】937. Reorder Log Files
  2. B04_NumPy从已有的数组创建数组(numpy.asarray,numpy.frombuffer,numpy.fromiter)
  3. 检测网络是否稳定的计算机命令,如何查看自己的网络是否稳定
  4. HOWTO:将 IOCTL 发送到筛选器驱动程序
  5. 实战系列-Java中线程安全集合类(二)
  6. Spring Boot 案例:连接后台数据库实现用户登录
  7. u盘 连接服务器系统软件,u盘服务器系统
  8. 3.13PMP试题每日一题
  9. 计算几何-Andrew法-凸包
  10. 一个队列类的实现(比delphi自带的速度快70倍)
  11. 无线通信与编码_新型OFDM波形集_使用MATLAB仿真实现UFMC并与OFDM作对比_含实现代码
  12. 职业四象限,分分钟定位你的方向
  13. selenium+python自动化84-chrome手机wap模式(登录淘宝页面)
  14. matlab2015 colormap,matlab中colormap函数
  15. 简约好看的绚丽彩虹同学录V1.4源码
  16. srs linux开机启动,SRS之安装与使用
  17. java,android中网络数据获取和json解析
  18. 免费生成微信小程序的经验
  19. 和Timesten有个约会--Timesten技术专栏系列(一)
  20. android的输出流和剪裁python实现以下原理

热门文章

  1. 《A hybrid system for entity recognition ...》阅读笔记
  2. jupyter notebook重命名失败修复方法
  3. 外贸开发信退信严重,找EmailCamel解决!
  4. NOIP 提高组爆零祭
  5. Spring Boot Starters是什么?
  6. 【笔记】眼动模式分析的一些关键词
  7. ARIMA基本概念和流程讲解
  8. 三星I9300刷机教程-卡刷
  9. 三星i9300刷机及Root
  10. linux 把一个文件夹重命名后,移动到另外一个文件夹下