Linux基础
1 操作系统(科普)
1.1 科普

1.2 不同应用领域的主流操作系统
1.2.1 桌面操作系统
- Windows系列—用户群体大,安全性不好,稳定性不好
- masOS—适合于开发人员
- Linux—应用软件少,更加适合于服务器和嵌入式领域
1.2.2 服务器操作系统—远程维护
- Linux—安全,稳定,免费,占有率高
- Windows Server—付费,占有率低
1.2.3 嵌入式操作系统
- Linux
1.2.4 移动设备操作系统
- iOS
- Android(基于Linux)
1.3 虚拟机

就是一个软件,辅助我们操作系统
1.4 操作系统的发展史(科普)
1.4.1 Unix




1.4.2 Minux

1.4.3 Linux

1.5 Linux内核及发行版

1.5.1 Linux内核版本
- **内核(kernel)**是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在逻辑设备与应用程序间的抽象层;
- Linux内核版本又分为稳定版和开发板,两种版本相互关联,相互循环;
- 稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些bug或加入一些新的驱动程序;
- 开发版:由于要实验各种解决方案,所以变化很快;
!!发行版本多个!!内核版本只有一个!!
1.5.2 Linux发行版
- **Linux发行版(也被叫做GNU/Linux发行版)**通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件;

1.6 Linux系统下的文件目录结构
1.6.1 单用户操作系统和多用户操作系统
- 单用户操作系统:指一台计算机在同一时间只能由一个用户使用,一个用户独自享用系统的全部硬件和软件资源;
- Windows XP之前的版本都是单用户操作系统
- 多用户操作系统:指一台计算机在同一时间可以由多个用户使用,多个用户共同享用系统的全部硬件和软件资源;
- Unix和Linux的设计初衷就是多用户操作系统;
1.6.2 Windows和Linux的文件系统区别
(1)Wnidows下的文件系统

(2)Linux下的文件系统,没有盘符概念

上图中,多个用户(theima/python/laowang)是多个用户,可以同时都在home下进行自己的操作,但python下自己的文件是别的用户是不可以访问的;
- Ubantu中没有盘符,因此用/表示根目录;
1.6.3 Linux主要目录速查表

- 需要注意的是,下图所有文件都是操作系统的文件,随意改动删除都会造成操作系统出现问题,所以,尽量以后文件都在home文件夹中操作;

2 常用Linux命令的基本使用
- 学习Linux终端命令的原因
- Linux刚面世时并没有图形界面,所有操作全靠命令完成,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等;
- 职场中,大量的服务器维护工作都是远程通过SSH客户端完成没有图形界面,所有维护工作都需要通过命令来完成;
- 常用Linux命令就10多个而已,其他再百度;
2.1 Linux命令
2.1.1 常用Linux命令的基本使用
-
放大:ctrl+shift+=
-
缩小:ctrl±

-
rm是删除文件,删除目录需要额外操作;
2.1.2 Linxu终端命令格式—[ ]可选

-
命令和选项之间,选项和参数之间要有空格;
-
查阅命令帮助信息:man是mannual的简称
- –help:command --help;
- man: man command;

2.2 文件和目录常用命令
2.2.1 目标
- 查看目录内容
- ls
- 切换目录
- cd
- 创建和删除操作
- touch
- rm
- mkdir
- 拷贝和移动文件
- cp
- mv
- 查看文件内容
- cat
- more
- grep
- 其他
- echo
- 重定向>和>>
- 管道l
2.2.2 终端使用技巧
(1)自动补全
- 在敲出文件/目录/命令的前几个字幕之后,tab键会自动补全;
- 不能确定时,两次tab,系统会提示可能存在的命令;
(2)曾经使用过的命令
- 按上/下光标键可以在曾经使用过的命令之间来回切换;
- 如果想要退出选择,并不想执行当前选中的命令,可以按ctrl+c;
2.2.3 ls命令说明
-
ls是英文单词list的简写,列出目录内容,用户最常用命令之一,类似于DOS下的dir命令;
-
Linux下的文件和目录的特点
-
Linux文件或者目录名称最长可以有256个字符;
-
以 . 开头的文件尾隐藏文件,需要用-a参数才能显示;
-
.代表当前目录
-
…代表上一级目录,cd …就可以返回上一级目录
-
-
ls常用选项 -h要配合-l一起使用,不能单独使用-h

-
可以将选项合在一起,例如:ls -lha

-
ls通配符的使用
| 通配符 | 含义 |
|---|---|
| ***** | 代表任意个数个字符,ls *1.txt; ls 1 *, ls * 3 * |
| ? | 代表任意一个字符,至少1个,ls 1?1.txt |
| [] | 表示可以匹配字符组中的任意一个, |
| [abc] | 匹配a\b\c中的任意一个,ls [12345]23.txt; |
| [a-f] | 匹配从a到f范围内的任意一个字符,ls [1-5]23.txt |
2.2.4 cd命令说明
1、cd
- cd是change directory的简写,更改当前的工作目录;
- 注意:Linux所有的目录和文件名都是大小写敏感的

2、相对路径和绝对路径
- 相对路径:在输入路径时,最前面不是/或者~,表示相对当前目录所在的目录位置;
- 绝对路径:在输入路径时,最前面的是/或者~,表示从根目录/家目录开始的具体目录位置;
2.2.5 创建和删除操作touch,mkdir,rm
1、touch
- 创建文件或修改文件时间
- 文件不存在,就创建一个空白文件
- 文件已经存在,修改文件的末次修改日期
2、mkdir
- 创建一个新的目录

- 注意:在Linux中同一个目录下,文件和目录不可以同名!

3、rm
-
删除文件或目录
-
注意:rm会直接从磁盘上删除文件或目录,所以要谨慎使用!

-
这条指令会删除当前目录下的所有文件或目录!

2.2.6 拷贝或移动文件tree、cp、mv

1、tree
-
tree命令可以以树状图列出文件目录结构

-
~表示家目录,/表示根目录,.表示隐藏
2、cp
- cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令;


- 如果文件名不发生改变,可以只指定目标路径;

3、mv
-
mv命令用来移动文件或目录,也可以给文件或目录重命名

-
**重命名:**与目标文件路径相同,就不执行移动,而是重命名;
-
注意:在终端命令行中对文件的操作不可以回撤,因此-i很重要
2.2.7 文件内容命令cat、more、grep

1、cat
-
cat命令可以用来查看文件内容,创建文件,文件合并,追加文件内容等功能;
-
cat会一次显示所有的内容,适合查看内容较少的文本文件;

2、more -
more命令可以用于分屏显示文件内容,每次只显示一页内容;
-
适合于查看内容较多的文本文件;

3、grep
- Linux系统中grep命令是一种强大的文本搜索工具;
grep允许对文本文件进行模式查找,所谓模式查找就是正则表达式;


- 常用的两种模式查找

2.2.8 其他命令echo、>,>>,|
1、echo文字内容
echo会在终端中显示参数指定的文字,通常会和重定向联合使用;

- 使用echo可以直接在创建新文件的同时,指定文件内容
2、重定向>和>>
- Linux允许将命令执行结构重定向到一个文件
- 重定向:将本应该显示在终端上的内容输出/追加到指定文件中
其中 >表示输出,会覆盖文件原有内容>>表示追加,会将内容追加到已有文件的末尾
3、管道|
- Linux允许将一个命令的输出可以通过管道作为另一个命令的输入
常见的管道命令有:
more:分屏显示内容;grep:在命令执行结果的基础上查询指定的文本;


2.3 远程管理常用命令

2.3.1 关机/重启/shutdown

- shutdown命令可以安全关闭或者重新启动系统;
| 选项 | 含义 |
|---|---|
| -r | 重新启动 |
- 不指定选项和参数,默认表示1分之后关闭电脑;
- 远程维护服务器时,最好不要关闭系统,而应该重新启动系统;

2.3.2 查看或配置网卡信息ifconfig、ping

1、网卡:
- 网卡是一个专门负责网络通讯的硬件设备;
- IP地址是设置在网卡上的地址信息;
- 我们可以把电脑比作电话,网卡相当于sim卡,IP地址相当于电话号码;
2、IP地址
- 每台联网的电脑都有IP地址,是保证电脑之间正常通讯的重要设置
- 注意:每台电脑的IP地址不能相同,否则会出现IP地址冲突,并且没有办法正常通讯;
3、ifconfig
-
ifconfig可以查看/配置计算机当前的网卡配置信息

-
一台计算机中可能有一个物理网卡和多个虚拟网卡,在Linux中物理网卡的名字通常以
ensXX表示; -
127.0.0.1被称为本地回环/环回地址,一般用来测试本地网卡是否正常;
4、ping

ping一般用来检测当前计算机到目标计算机之间的网络是否畅通,数值越大,速度越慢;- ping的工作原理与潜水艇的声呐相似,ping这个命令取自声呐的声音
- 原理:网络上机器都有唯一确定的IP地址,给目标IP地址发送一个数据包,对方就要返回一个数据包,根据返回的数据包以及时间,确定目标主机的存在;
- 提示:在Linux中,想要终止一个终端程序的执行,绝大多数都可以使用
ctrl+c
2.3.3 远程登录和复制文件ssh、scp

1、ssh基础(重点)

2、域名和端口号
(1)域名
- 由一串用点分隔的名字组成,例如:
www.itcast.cn - 是IP地址的别名,方便用户记忆
(2)端口号
-
IP地址:通过IP地址找到网络上的计算机;
-
端口号:通过端口号可以找到计算机运行的应用程序
- SSH服务器(也是一个软件)的默认端口号是22,如果是默认端口号,在连接的时候可以省略;
-
常见服务器端口号列表

3、SSH客户端的简单使用—exit退出连接


4、scp(掌握)


- 例如,一个01.py的传送

- 目录(多个文件)一起传送,-r

- 注意:

2.4 SSH高级
- 免密码登录
- 配置别名
提示:有关SSH配置信息都保存在用户家目录下的.ssh目录下,.表示隐藏目录;-a才可以看到;

- 当第一次连接,会提示yes授权信息,在连接一次之后,就会生成known_hosts文件用来保存刚刚连接的授权信息,再次连接时,就不会出现询问信息;而这个文件就是保存在.ssh目录下的;
2.4.1 免密码登录(SSH或者FTP都是)
(1)步骤(!!在客户端执行以下两个命令,就可以免密登录!!)
-
配置公钥
- 执行
ssh-keygen即可生成SSH钥匙,一路回车即可;
- 执行
-
上传公钥到服务器
- 执行
ssh-copy-id -p port user@remote,可以让远程服务器记住我们的公钥;
- 执行
2、免密码登录工作原理

2.4.2 配置远程计算机的别名
-
每次都输入
ssh -p port user@remote,会比较麻烦,配置别名可以简化;

-
在
~/.ssh/中创建文件config;并将上述内容写入; -
gedit打开文件;
2.5 用户权限相关命令
- 用户和权限的基本概念
- 用户管理终端命令
- 组管理终端命令
- 修改权限终端命令
2.5.1 用户和权限的基本概念
1、基本概念
- 用户是Linux系统工作中重要的一环,用户管理包括用户与组管理;
- 在Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限;
- 对文件/目录的权限包括:

2、组—为了方便用户管理,不需要单独用户设置,而是针对组设置不同权限

2.5.2 ls-l扩展
-
ls -l可以查看文件夹下文件的详细信息,从左到右依次是:


-
权限,第1个字符如果是
d表示目录; -
硬链接数,通俗讲,就是有多少种方式,可以访问到当前目录/文件;
-
拥有者,家目录下文件/目录的拥有者通常都是当前用户;
-
组,在Linux中,很多时候,会出现组名和用户名相同的情况;
-
大小
-
时间
-
名称

-
**硬链接数3分别是
绝对路径+cd .+cd ..(n个子目录就有n个cd…可返回,对应硬链接数也会+n!!):**文件硬链接一般是1,目录硬链接数取决于有多少子目录;
2.5.3 chmod简单使用(重要)
-
chmod可以修改用户/组对文件/目录的权限;

-
提示:以上方式会一次性修改拥有者/组的权限;
-
目录如果没有可执行权限就不能访问;
2.5.4 超级用户sudo

2.6 组管理 终端命令
2.6.1 groupadd、groupdel、cat /etc/group
-
提示:创建组/删除组的中断命令都需要通过
sudo执行;

-
提示:
- 组信息保存在
/etc/group文件中; /etc目录是专门用来保存系统配置信息的目录;- /根目录,~家目录;
- 组信息保存在
2.6.2 群组演练目标确定chagrp

2.7 用户管理终端命令
- 提示:创建用户/删除用户/修改其他用户密码的中断命令都需要通过
sudo执行
2.7.1 创建用户/设置密码/删除用户



2.7.2 查看用户信息,id、who、whoami

1、passwd文件



-
uid是用户代号,gid是群组代号;
-
下面,只有python : x:1000:表示的是python组,其他都是表示python用户在不同的组中;即定义一个用户,将用户放入不同组中拥有不同的权限;

-
zhangsan:123
2.7.3 usermod
-
与上图对应,一个主组后面都是附加组;

-
Shell是一个软件,在ubuntu中就是可以输入命令行的终端窗口;
2.7.4 which(重要)
-
提示
/etc/passwd是用来保存用户信息的文件;/usr/bin/passwd是用于修改用户密码的程序;
-
which命令可以查看执行命令所在位置,例如:


bin和sbin,bin是普通的可执行文件,sbin是系统管理有关的可执行文件;

- 提示:
cd这个终端命令是内置在系统内核中的,没有独立文件,因此用which无法找到;
2.7.5 切换用户su,exit

2.7.6 修改文件权限chown、chgrp、chmod

chmod在设置权限时,可以简单地使用三个数字分别对应拥有者/组和其他用户的权限;



- chmod演练目标

2.8 系统信息
-
本节内容主要是为了方便通过远程终端维护服务器时,查看服务器上当前系统日期和时间/磁盘空间占用情况/程序执行情况;
-
本小节学习的终端命令基本都是查询命令,通过这些命令对系统资源的使用情况有个了解;
-
目标
- 时间和日期
- date
- cal
- 磁盘和目录空间
- df
- du
- 进程信息
- ps
- top
- kill
- 时间和日期
2.8.1 时间和日期date,cal

2.8.2 磁盘信息df -h、du-h



2.8.3 进程信息pa aux、top、kill
-
所谓进程,就是当前正在执行的一个程序

-
要退出
top可以直接输入q; -
不用轻易使用
kill杀死root进程,因为有系统服务的程序/进程;
2.9 其他命令
- 目标
- 查找文件
- find
- 软链接
- ln
- 打包和压缩
- tar
- 软件安装
apt-get
- 查找文件
2.9.1 查找文件find

2.9.2 软链接 ln -s(windows下的快捷方式)

- 源文件要使用绝对路径

2.9.3 硬链接
-
在使用
ln创建链接时,如果没有-s选项,就会创建一个**硬链接,**而不是软链接;

-
硬链接,即使源文件删除,也并不会影响到硬链接文件,对应硬链接数2->1;

-
只有当一个文件数据的所有硬链接都删除之后,文件数据才会被移除磁盘!
2.10 打包压缩tar
- 在不同操作系统中,常用的打包压缩方式不同
Windows常用rarMac常用zipLinux常用tar.gz
2.10.1 打包/解包tar -cvf/-xvf
tar是Linux中最常用的备份工具,可以把一系列文件打包到一个大文件中,也可以把一个打包的大文件恢复成一系列文件;- tar只负责打包,不负责压缩


2.10.2 压缩/解压缩gzip,bzip
(1)gzip

- 注意:可以使用-C直接解压缩到指定目录
(2)bzip2(two)

2.11 软件安装
2.11.1 通过apt安装/卸载软件
-
apt是
Advanced Packaging Tool,是Linux下的一款安装包管理工具; -
可以在终端中方便安装/卸载/更新软件包;

-
安装演练

2.11.2 配置软件源

本文全面介绍了Linux操作系统的基础知识,包括桌面、服务器和嵌入式领域的主流操作系统,如Windows、macOS和Linux。强调了Linux在服务器和嵌入式领域的优势。讲解了虚拟机的概念,以及操作系统的发展历程,尤其是Unix、Minix和Linux的演变。深入剖析了Linux内核和发行版的区别,以及Linux文件目录结构的特点。此外,还详细阐述了常用Linux命令的使用,如ls、cd、rm、cp、mv等,以及远程管理命令如ssh、scp。文章还涵盖了用户权限、文件系统、进程管理和系统信息查询等方面,为读者提供了全面的Linux操作指南。
2520

被折叠的 条评论
为什么被折叠?



