Linux定义
Linux 是一种开源的、多用户的、多任务的操作系统,它基于 Unix 操作系统的理念开发,具有高度的稳定性、安全性和可定制性。Linux 以其内核为核心,包括系统工具、应用程序和文件系统等组件,能够在多种硬件平台上运行,从个人电脑到服务器,甚至是嵌入式设备。
操作系统
-
操作系统是安装在硬件设备上的第一层软件,它充当着用户与硬件之间的桥梁。
-
借助操作系统,用户能够便捷地对各类硬件设备进行调用和管理,无需深入了解硬件复杂的底层工作原理。
-
操作系统为应用程序的运行提供了基础环境。像我们常用的 QQ、微信等应用程序,只有在操作系统的支持下才能够进行安装和正常使用。
操作系统的常见分类
-
桌面操作系统
-
Windows
-
macOS
-
Linux
-
-
服务端操作系统
-
Linux(占有比重非常高)
-
Widows Server
-
-
移动端操作系统
-
IOS
-
Android
-
-
嵌入式操作系统
-
Linux(自动贩卖机/收银台/汽车中控)
-
Linux系统
特点
-
开源:
-
Linux 系统的开源特性使其源代码可供任何人查看、修改和分发。这不仅促进了全球范围内开发者的协作,还使得用户能够根据自身需求对系统进行定制化开发。例如,一些企业可以针对自身业务场景,对 Linux 内核进行裁剪和优化,以更好地适应特定的硬件环境和应用需求。
-
-
免费:
-
通常情况下,Linux 系统可以免费获取和使用。这对于个人用户和企业来说,能够显著降低软件采购成本。许多开源的 Linux 发行版,如 Ubuntu、CentOS 等,都可以从官方网站免费下载,并且可以自由地安装和使用在多台设备上。不过,需要注意的是,开源不意味着一定是免费的,要看具体开源协议。有些基于 Linux 的商业发行版可能会收取一定的费用,但同时也会提供相应的技术支持和服务。
-
-
安全稳定:
-
Linux 系统具有出色的安全性能。它采用了多种安全机制,如用户权限管理、文件系统权限设置、SELinux(Security - Enhanced Linux)等安全模块,能够有效地防止未经授权的访问和恶意攻击。同时,Linux 内核的稳定性也备受赞誉,它能够长时间稳定运行,很少出现系统崩溃的情况。这使得 Linux 在服务器领域得到了广泛应用,许多关键业务系统,如银行、电信等行业的核心服务器,都采用 Linux 系统来确保服务的连续性和稳定性。
-
-
可移植性好:
-
Linux 系统可以在多种硬件平台上运行,包括个人电脑、服务器、嵌入式设备等。无论是 x86 架构的处理器,还是 ARM、PowerPC 等其他架构的处理器,Linux 都能够很好地适配。这得益于 Linux 内核的可移植性设计,以及丰富的设备驱动支持。例如,在嵌入式领域,Linux 被广泛应用于智能家居设备、工业控制芯片等各种硬件平台上,开发者可以根据硬件特点选择合适的 Linux 发行版,并进行定制化开发,以满足不同设备的功能需求。
-
-
高性能:
-
在服务端环境中,Linux 系统通常以无图形化界面的方式运行,这使得系统资源能够更加集中地分配给业务处理。没有图形化界面的开销,Linux 服务器能够高效地处理大量的并发请求,提供出色的性能表现。例如,在 Web 服务器、数据库服务器等应用场景中,Linux 系统可以同时处理数千甚至数万个并发连接,确保服务的高效运行。此外,Linux 系统还提供了丰富的性能优化工具和参数配置选项,管理员可以根据具体的业务需求对系统进行调优,进一步提升系统性能。
-
Linux系统分类
市面上常见的Linux系统都有一个共同的名字:Linux发行版(在内核版基础上额外增加一些应用软件和图像化页面)
Linux系统的文件和目录
在Linux系统中,所有文件的起源是‘/’,习惯称之为根目录
home目录是所有用户文件的根目录
特征:
-
在Linux系统中没有盘符的概念
-
Linux系统中的所有文件都存放在根目录下(常用 / 表示)
使用目录:
-
/:根目录
-
/home:所有普通用户的根目录
-
/root
:Linux系统超级管理员的根目录 -
/usr/bin
:Linux命令大部分都存在于该目录下
特点
-
普通用户和超级管理员用户权限有很大区别
-
普通用户可以进入超级管理员的根目录,但是无法对其中的文件进行任何操作
-
但是超级管理员用户可以做任何操作
-
-
一般情况下,普通用户的操作范围权限在自己的根目录当中
-
例如:当前用户为
admin
,操作范围权限:/home/admin
-
Linux命令的基本格式
格式组成: 命令主体 -命令选择 命令参数 常见命令形式: 1)命令主体 2)命令主体 -命令选项 3)命令主体 参数 4)命令主体 -命令选项 命令参数 特点: 命令主体必须存在,而选项和参数都是可选的
查看命令帮助信息方法
方法一: 命令主体 --help:可以查看命令具备哪些选项及选项含义 方法二: man 命令主体 : 查看命令的手册信息 注意:默认情况下系统手册是英文的,可以自行扩展修改为中文,实际应用推荐使用方法一
命令学习方法说明
此处以ls命令为例
ls:展示当前路径下有哪些文件 ls -a:显示当前路径下的所有文件(包括隐藏文件(文件名以.开头)) ls -l:显示当前路径下文件的详细信息 ls -al:显示当前路径下文件的详细信息(包括隐藏文件) 注意: 1. 命令选项连用形式为:命令主体 -选项1选项2 2. 命令主体和选项之间必须包含一个空格 3. 命令选项的作用一般是用来扩展命令主体功能的
Linux命令的共通知识点
通配符的使用
通配符:又叫文件名替换符号,符号具有特殊含义,例如:文件名:test,通配符可以写出:
????
或者*
*:代表可以匹配任意长度的文件名(所有) ?:代表可以匹配单个字符,如果目标文件名有多个字符,该符号可以使用多个 []:括号内的内容表示一个范围,[abc]:代表匹配文件名是a 或 b 或 c ,等价于[a-c]
绝对路径和相对路径
- 绝对路径:路径源头固定不变,常见有两个:
/
:根目录~
:当前用户的家目录 - 相对路径:以当前所在路径为源头,常见的表示形式有两个:
.
当前路径..
当前目录的上一层(父层级)
- 路径注意事项:
-
绝对路径使用时,需要确定
-
文件目录在根目录下还是用户目录下,合理选择起始符号即可
-
初学时,建议所有路径优先使用绝对路径,当清楚文件结构关系后,逐步转换为相对路径
-
相对路径中,如果是当前路径下的文件获取操作,那么
./
一般是可以省略的
案例
案例一:文件和目录操作相关命令(重点)
在桌面上打开终端窗口,执行如下操作: 01.查看当前路径位置 pwd 02.查看当前目录下有哪些文件和文件夹 ls 03.创建 adir,bdir,cdir三个文件夹(创建一个文件夹/创建多个文件夹) mkdir adir mkdir bdir cdir 04.切换到 adir 目录下 cd adir 或者 cd ./adir 05.创建文件 aa touch aa 06.切换到 kali 目录下(绝对路径/相对路径) cd ~ cd /home/kali 07.创建文件 file 并重命名为 aa mv file aa 这种情况下,当前文件中不存在aa的文件,否则执行的是将aa文件移动到file中 08.复制文件 aa 到 adir目录下(要求提示是否覆盖) cp -i aa adir 09.复制文件夹 bdir 到 cdir 目录下 cp -r bdir cdir 不加-r无法直接复制,会提示 ‘cp: 未指定 -r;略过目录 'bdir'’ 10.移动文件 aa 到 bdir 目录下 mv aa bdir 11.创建 bb,cc 两个文件(创建多个文件) touch bb cc 12.删除 bb 文件 rm bb 13.删除 adir 文件 不能直接 rm adir 会提示 rm: 无法删除 'adir': 是一个目录 rm -r adir 14.删除当前目录下所有文件和文件夹 rm -r *
pwd:查看当前所在的路径位置(涉及到路径切换 cd 命令时,确认路径使用) ls:查看当前路径下有哪些文件(对路径下文件进行了修改 -新建/复制/删除 时使用) cd:切换路径(更换操作目录时使用,常和绝对路径/相对路径配合使用) touch:创建普通文件(单文件:touch 文件名 多文件:touch 文件名1 文件名2 ...) mkdir:创建目录文件(单文件夹:mkdir 文件夹名1 多文件夹:mkdir 文件夹名1 文件夹名2 ....) cp:复制文件/文件夹 (文件:cp 源文件 目标文件夹 目录:cp -r 源文件夹 目标文件夹) mv:移动文件/文件夹/改名(文件:mv 源文件 目标文件夹 目录:mv 源文件夹 目标文件夹) mv:改名(mv 源文件名 新名字)(新名字必须是当前目录下不存在的文件夹) rm:删除文件/文件夹(文件:rm 文件名 目录:rm -r 文件夹名) rm:删除所有文件和文件夹(rm -r *)
案例二: 对文件内容的相关操作命令
在桌面上打开终端窗口,执行如下操作: 01. 将根目录下所有文件的详细信息输出到 demo 文件中(包含隐藏文件) ls -al / > demo ps:不用考虑存不存在demo文件,不存在,自己会创建 02. 直接查看 demo 文件 cat demo 03. 将 /usr/bin 目录下所有文件的详细信息追加到 demo 文件中 ls -al /usr/bin >> demo 注意:追加是两个>,一个会覆盖掉文件本来的内容 04. 以分屏的形式查看 demo 文件内容 more demo 向下:空格 向上:B 退出:Q 05. 查找 demo 文件中包含 mysql 的信息 grep 'mysql' demo 06. 在 /usr/bin 目录下所有文件的信息中查找包含 mysql 的信息 ls -al /usr/bin | grep 'mysql' 07. 清空当前终端窗口内容 clear
补充:
>:重定向符号(将左侧命令的结果输出到右侧的文件中)(反复执行,文件原有内容会被替换) >>:追加重定向符号(将左侧命令的结果输出到右侧的文件中)(反复执行,内容追加,文件原有内容不会被替换) cat:代表查看文件内容(格式:cat 文件名)(适合于查看文件内容较少的文件) more:以分屏形式查看文件内容(格式:more 文件名)(适合于查看文件内容较多的文件) |:管道符号(将左侧命令的结果传递给右侧命令当数据源) |:例如:ls -al /user/bin | grep 'mysql' (从左侧命令的结果中查找mysql)(管道符右侧命令多用:grep 和 more)
案例三 查看日志文件信息
在桌面上打开终端窗口,执行如下操作: 01. 将根目录下所有文件的详细信息输出到 demo 文件中 ls -al / > demo 02. 查看 demo 文件前 5 行内容 head -5 demo 03. 查看 demo 文件后 5 行内容 tail -5 demo 04. 将 ping www.itheima.com 的信息输出到 ping_log 文件中 ping www.itheima.com ping IP地址/域名 作用:查验该IP/域名是否能够通信 在Linux中,只要不手动停止,默认情况下,会一直运行 ping www.itheima.com > ping_log 05. 重新开启一个终端窗口,动态查看 ping_log 文件中的信息 tail -f ping_log 注意:工作中要动态查看日志文件,就使用这个命令
head:可以查看文件开头内容(head 文件名:可以查看文件前十行内容;head -行数 文件名:查看文件前×行内容) tail:可以查看文件结尾内容(tail 文件名:可以查看文件后十行内容;tail -行数 文件名:查看文件后×行内容) tail -f:动态查看日志文件内容(tail -f 日志文件名) 注意: 1.系统相关日志存放位置:/var/log 2.项目相关日日存放位置:需要根据项目询问对应的开发人员
案例四 关机/重启/查看信息
在桌面上打开终端窗口,执行如下操作: 01. 查看当前系统内核版本信息 cat /proc/version 02. 查看当前系统发行版本信息 每个系统查看位置不一样 cat /etc/os-release (kali系统) 03. 重启当前系统 reboot 04. 关系当前系统 shutdown -h now
重启:reboot 关机:shutdown -h now
案例五 程序和进程操作相关命令
在桌面上打开终端窗口,执行如下操作: 01. 查看当前系统下的进程信息(静态!!!) ps -aux 02. 手动打开火狐浏览器 03. 获取火狐浏览器的进程信息(进程ID) ps -aux | grep 'firefox' 04. 通过结束火狐浏览器进程的方式关闭浏览器 kill -9 5496 注意:5496是程序的进程ID,需要根据实际值进行变更 05. 打开当前系统的“任务管理器”动态查看进程(动态!!!) top
ps -aux:查看当前系统下所有的进程信息 常用用法:ps -aux | grep 程序名:能够获取目标程序的进程ID kill -9 进程ID:通过进程ID关闭对应程序(-9:强制关闭) 扩展:top:可以调用Linux系统下的"任务管理器",可以动态查看所有的进程信息
案例六 端口号信息的获取及操作命令
在桌面上打开终端窗口,执行如下操作: 01. 查看当前系统中开放的端口有哪些 netstat -anptu 02. 查看哪个程序正在使用 3306端口(需要root用户权限) su - lsof -i:3306
netstat -anptu:可以获取当前系统的网络相关信息(获取端口号信息) lsof -i:端口号:查看占用某一端口的程序名称及进程ID(需要root用户权限) 注意:可以通过kill -9 进程ID 命令完成对端口占用程序的移除
案例七
01. 在当前目录下创建文件 cm_demo touch cm_demo 02. 查看文件当前权限信息 ls -l 03. 使用字母法将文件权限修改为:拥有者:可读/用户组:可写/其他用户:可执行 源文件:-rw -rw r-- chmod u-w,g-r,o=x cm_demo 04. 使用数字法将文件权限修改为:拥有者:可读可写可执行/用户组:可读可写/其他用户:可写可执行 数字1:rwx 7 数字2:rw- 6 数字3:-wx 3 chmod 763 cm_demo
-
字母法: 命令格式:
chmod 权限 文件名
-
每组的代表字母:
-
拥有者:u
-
用户组:g
-
其他人:o
-
所有:a
-
-
权限修改动作代表字母:
-
添加:+
-
撤销:-
-
赋予:=
-
-
权限代表字母:
-
r:读取
-
w:写入
-
x:执行
注意:
-
无论如何修改文件权限,权限修改部分不可以存在空格
-
同时修改多组权限时,需要使用逗号分隔
-
文件权限修改是可以反复执行的,不用担心修改错误,可以随时修正
-
案例八 系统操作相关命令
在桌面上打开终端窗口,执行如下操作: 01.查看mysql程序的存放位置 which mysql 02.从普通用户切换至root用户,再从root用户切换回普通用户 su - 输入root用户密码 su - admin 03.查看当前系统所有登录用户的信息 who -u 04.退出当前终端窗口 exit
which 程序名:可以查看程序安装位置 su - 用户名:切换至用户(su - :切换到root用户)(切换哪个用户,输入用户对应密码,密码没有提示) who -u:查看用户登信息 exit:退出终端窗口(退出用户)
案例九 查找文件
在桌面上打开终端窗口,执行如下操作: 01.在路径下创建adir、bdir两个文件夹 mkdir adir bdir 02.在adir目录下创建文件 f_demo ls adir/ 03.切换路径到bdir目录下 cd bdir/ 04.在当前目录从 /root 目录中查找 f_demo 文件 find /root/ -name 'f_demo'
find 路径 -name '目标文件名':在给出的路径下查找目标文件 注意: 1.路径处可以使用绝对路径或相对路径 2.目标文件名处可以使用通配符(*/?/[])
案例十 链接文件
在桌面上打开终端窗口,执行如下操作: 01. 在当前路径下创建文件 demo touch demo 02. 给 demo 文件创建链接文件名为 ldemo ln -s ~/demo ldemo 03. 修改 ldemo 链接文件的内容 04. 查看 demo 文件的内容是否同样变化 05. 修改 demo 文件内容,查看 ldemo 链接文件内容是否同样变化
ln -s 源文件/文件夹 链接文件名:给源文件/文件夹创建链接文件(软链接:等价于Windows系统的快捷方式) 注意: 1.源文件/文件夹最好给绝对路径(防止链接文件被移动位置后失效) 2.源文件/文件夹被删除,链接文件会失效 3.扩展:ln 源文件/文件夹 链接文件名:硬链接(此处不做了解)
Linux系统三种压缩解压方法的说明
在桌面上打开终端窗口,执行如下操作: 01. 在当前路径下创建 atdir, btdir 两个文件夹 mkdir atdir btdir 02. 在 atdir 目录下创建 aa,bb,cc 三个文件 touch aa bb cc 03. 分别用三种压缩方法对 atdir 目录进行压缩 tar -zcvf atdir.tar.gz atdir/ tar -jcvf atdir.tar.bz2 atdir/ zip -r atdir atdir 04. 解压缩上一步产生的压缩包文件内容至 btdir 目录下 tar -zxvf atdir.tar.gz -C btdir/ tar -jxvf atdir.tar.bz2 -C btdir/ unzip -d btdir atdir.zip
tar 和 gzip 打包和压缩:tar -zcvf 压缩包名.tar.gz 目标文件/文件夹 解包和解压:tar -zxvf 压缩包名.tar.gz 扩展-指定解压位置:tar -zxvf 压缩包名.tar.gz 目标文件/文件夹 -C 解压位置文件夹 tar 和 bzip2 打包和压缩:tar -jcvf 压缩包名.tar.bz2 目标文件/文件夹 解包和解压:tar -jxvf 压缩包名.tar.bz2 扩展-指定解压位置:tar -zxvf 压缩包名.tar.bz2 目标文件/文件夹 -C 解压位置文件夹 zip 和 unzip 压缩:zip -r 压缩包名 目标文件/文件夹 解压:unzip -d 解压位置文件夹 压缩包名 选项含义: z:gzip(压缩/解压) j:bzip2(压缩/解压) c:打包 x:解包 v:显示过程 f:指向文件 -C:指定解压路径
vi编辑器的使用
使用步骤: 1. vi 文件名:如果文件存在,则打开文件;如果文件不存在,则新建文件(默认命令模式) 2. 按字母i键:从命令模式切换至插入模式 3. 正常编辑文件内容 4. 按下Esc键,从插入模式切换至末行模式 5. 输入 :wq 再按一个回车:保存文件内容并退出 说明: w:写入 q:退出 !:强制操作(!q : 强制退出不保存)