目录
目录
一、Linux简介
1.1 主流操作系统
1.2 Linux 发展历史
1.3 Linux系统版本
二、Linux安装
三、Linux 目录结构
四、Linux常用命令
4.1 基础常用命令说明
4.2 Linux 命令使用技巧
4.3 Linux 命令格式
4.4 进阶重点常用命令
4.4.1 拷贝移动命令
4.4.2 打包压缩命令
4.4.3 文本编辑命令
4.4.4 查找命令
4.4.5 查看系统的进程命令
4.4.6 管道命令(|)
一、Linux简介
1.1 主流操作系统
不同领域的主流操作系统,主要分为以下这么几类: 桌面操作系统、服务器操作系统、移动设备操作系统、嵌入式操作系统。在这些领域中,先看看下列具有代表性的操作系统:
- 桌面操作系统
操作系统 | 特点 |
Windows | 用户数量最多 |
MacOS | 操作体验好,办公人士首选 |
Linux | 用户数量少(桌面操作系统,Linux使用较少) |
- 服务器操作系统
操作系统 | 特点 |
Unix | 安全、稳定、付费 |
Linux (linux is not unix) | 安全、稳定、免费、占有率高 |
Windows Server | 付费、占有率低 |
- 移动设备操作系统
操作系统 | 特点 |
Android | 基于 Linux 、开源,主要用于智能手机、平板电脑和智能电视 |
IOS | 苹果公司开发、不开源,用于苹果公司的产品,例如:iPhone、 iPad |
- 嵌入式操作系统
操作系统 | 特点 |
Linux | 机顶盒、路由器、交换机 |
1.2 Linux 发展历史
Linux系统诞生于1991年,由Linus Torvalds创建并发布第一个内核版本,随后与GNU项目合作形成完整操作系统。发行版如Slackware、Debian、Red Hat相继出现,开源社区的积极贡献和商业支持推动了Linux在各领域的广泛应用。Linux发展的关键人物和关键事件如下:
- Linus Torvalds(林纳斯·托瓦兹):Linus Torvalds 是 Linux 内核的创始人,他于1991年开始编写 Linux 内核,并于同年8月发布了第一个版本。他的工作和领导使得 Linux 内核得以迅速发展。
- GNU 项目:在Linux之前,GNU项目早已开始了自由操作系统的开发。1983年,理查德·斯托曼创立了GNU项目,旨在创建一个完全由自由软件组成的操作系统。尽管GNU项目提供了大量的用户空间工具和库,但缺乏一个完整的内核。
- Linux 发布:1991年,Linus Torvalds发布了第一个 Linux 内核的版本,即0.01版,它只能在个人计算机上运行。随着时间的推移,Linux 内核逐渐发展壮大,添加了更多的功能和支持。
- GNU/Linux 合作:GNU 项目和 Linux 内核的合作成为 Linux 发展历史上的一个重要转折点。GNU 项目的用户空间工具和库与 Linux 内核相结合,形成了完整的操作系统。因此,人们通常将 Linux 系统称为 GNU/Linux。
- 发行版的出现:1993年,第一个 Linux 发行版——Slackware 诞生,其后出现了诸如 Debian、Red Hat 等各种不同的发行版,为用户提供了更多的选择和便利。
- 开源社区的发展:Linux 的成功离不开开源社区的贡献和支持。众多开发者和志愿者积极参与 Linux 内核和相关项目的开发、测试和维护,为 Linux 系统的不断改进和发展贡献了力量。
- 商业支持:随着 Linux 在服务器领域的日益普及,一些公司开始提供与 Linux 相关的商业支持和服务,如 Red Hat、SUSE 等,推动了 Linux 在企业市场的发展。
- 广泛应用:Linux 系统已经被广泛应用于服务器、个人计算机、超级计算机、嵌入式系统、移动设备等各个领域,成为当今世界上最流行的操作系统之一。
1.3 Linux系统版本
Linux系统的版本分为两种,分别是:内核版 和 发行版。
1). 内核版(托瓦兹团队研发的产品称为内核版)
- 由Linus Torvalds及其团队开发、维护
- 免费、开源
- 负责控制硬件
2). 发行版(基于内核版进行升级改造)
- 基于Linux内核版进行扩展
- 由各个Linux厂商开发、维护
- 有收费版本和免费版本
通常使用的Linux操作系统,实际上选择的是Linux的发行版本。在linux系统中,有各种各样的发行版本,下面罗列部分常见的版本:
发行版本 | Logo | 特点 |
Ubuntu | 以桌面应用为主 | |
RedHat | 应用最广泛、收费 | |
CentOS | RedHat的社区版、免费 | |
openSUSE | 对个人完全免费、图形界面华丽 | |
Fedora | 功能完备、快速更新、免费 | |
红旗Linux | 北京中科红旗软件技术有限公司开发 |
二、Linux安装
Linux系统的安装方式,主要包含以下两种:
方式 | 概述 | 场景 |
物理机安装 | 直接将操作系统安装到服务器硬件 | 企业开发中,使用的服务器基本都是采用这种方式 |
虚拟机安装 | 通过虚拟机软件安装 | 在学习阶段,没有自己服务器,而又需要学Linux,就可以安装在虚拟机上(或者购买云服务商的云服务器) |
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能、运行在完全隔离环境中的完整计算机系统。常用虚拟机软件:
- VMWare
- VirtualBox
- VMLite WorkStation
- Qemu
- HopeddotVOS
三、Linux 目录结构
在Linux系统中,存在目录概念,但Linux的目录结构和Windows的目录结构是存在比较多的差异。在Windows目录下,是一个一个的盘符(C盘、D盘、E盘),目录是归属于某一个盘符的。而Linux系统中的目录有两个特点:
- / 是所有目录的顶点
- 目录结构像一颗倒挂的树
Linux 和 Windows的目录结构对比:
Linux的目录结构如下:
根目录/ 下各个目录的作用及含义说明:
编号 | 目录 | 含义 |
1 | /bin | 存放二进制可执行文件 |
2 | /boot | 存放系统引导时使用的各种文件 |
3 | /dev | 存放设备文件 |
4 | /etc | 存放系统配置文件, 比如:安装jdk,安装maven、配置环境变量 |
5 | /home | 用户的主目录,存放用户的个人资料的。比如:linux是一个多用户的操作系统,创建了zhangsan用户,那么在home目录里面有zhangsan文件夹。 |
6 | /lib | 存放程序运行所需的共享库和内核模块 |
7 | /opt | 额外安装的可选应用程序包所放置的位置 |
8 | /root | 超级管理员的主目录 |
9 | /sbin | 存放二进制可执行文件,只有root用户才能访问 |
10 | /tmp | 存放临时文件 |
11 | /usr | 安装软件主要存储在该目录中 |
12 | /var | 存放运行时需要改变数据的文件,例如日志文件 |
四、Linux常用命令
4.1 基础常用命令说明
Linux系统中,最常用的命令包含以下几个:
序号 | 命令 | 对应英文 | 作用 |
1 | ls [目录名] | list | 查看当前目录下的内容 |
2 | pwd | print work directory | 查看当前所在目录 |
3 | cd [目录名] | change directory | 切换目录 |
4 | touch [文件名] | touch | 如果文件不存在,创建文件 |
5 | mkdir [目录名] | make directory | 创建目录 |
6 | rm [文件名] | remove | 删除指定文件 |
- ls
指令解读:
ls 查看当前目录下的内容(文件及目录) list列表缩写
ls / 查看指定目录(/)下的内容
ls -a 查看所有内容,包含隐藏的内容 a是all的缩写
ls -al 列表方式查看
ll -a 列表方式查看,简洁方式 ll 与 ls -l 相等
- pwd
指令解读:
pwd 查看当前所在目录 print work directory
- touch
指令解读:
touch 1.txt 创建文件1.txt
touch 2.txt 3.txt 4.txt 一次性创建文件2.txt,3.txt,3.txt
- mkdir
指令解读:
mkdir 01 创建文件夹01
mkdir aa bb cc 一次性创建多个目录
mkdir -p dd/ff 如果父目录dd不存在就先创建父目录dd,之后创建子目录ff
- rm
指令解读:
rm 4.txt 删除文件 (删除文件时,需要确认,输入y, 代表确定)
rm -f 4.txt 强制删除,不会问是否删除
rm 目录名 默认忽略这个命令,不会删除
rm -rf 目录名 recusion是r的缩写,代表递归,这样就可以递归删除当前目录下子文件和子目录
rm -rf /* 删除磁盘上所有资源,千万注意不要使用,否则需要重装系统
4.2 Linux 命令使用技巧
在我们使用Linux系统命令时,可以使用以下几个技巧:
1). Tab键自动补全
2). 连续两次Tab键,给出操作提示
3). 使用上下箭头快速调出曾经使用过的命令
4). 使用clear命令或者Ctrl+l快捷键实现清屏
4.3 Linux 命令格式
command [-options] [parameter]
说明:
command: 命令名
[-options]: 选项,可用来对命令进行控制,也可以省略
[parameter]: 传给命令的参数,可以是零个、一个或者多个
注意:
[ ] 代表可选
命令名、选项、参数之间有空格进行分隔
4.4 进阶重点常用命令
4.4.1 拷贝移动命令
命令:cp
作用: 用于复制文件或目录
语法: cp [-r] source dest
copy缩写
说明:
-r: 如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件
举例:
cp hello.txt itcast/ 将hello.txt复制到itcast目录中
cp hello.txt ./hi.txt 将hello.txt复制到当前目录,并改名为hi.txt, ./代表当前目录
cp -r itcast/ ./itheima/ 将itcast目录和目录下所有文件复制到itheima目录下
cp -r itcast/* ./itheima/ 将itcast目录下所有文件复制到itheima目录下
命令:mv
作用: 剪切,重命名(如果目标位置已存在就是移动剪切,目标位置不存在就是重命名)
语法: mv source dest
说明:mv 命令既能够改名,又可以移动,具体是改名还是移动,系统会根据我们输入的参数进行判定(如果第二个参数dest是一个已存在的目录,将执行移动操作,其他情况都是改名)
举例:
mv hello.txt hi.txt 将hello.txt改名为hi.txt
mv hi.txt itheima/ 将文件hi.txt移动到itheima目录中
mv hi.txt itheima/hello.txt 将hi.txt移动到itheima目录中,并改名为hello.txt
mv itcast/ itheima/ 如果itheima目录不存在,将itcast目录改名为itheima
mv itcast/ itheima/ 如果itheima目录存在,将itcast目录移动到itheima目录中
4.4.2 打包压缩命令
压缩文件说明:
常用windows压缩文件格式: xxx.rar xxx.zip xxx.7z
常用linux压缩文件格式:
① 打包文件: xxx.tar 打包就是将多个资源目录或文件困在一起
② 打包并压缩文件: xxx.tar.gz 打包就是将多个资源目录或文件困在一起,并且会将数据压缩
名称:tar
作用: 对文件进行打包、解包、压缩、解压
语法: tar [-zcxvf] fileName [files]
包文件后缀为.tar表示只是完成了打包,并没有压缩(归档文件)
包文件后缀为.tar.gz表示打包的同时还进行了压缩
说明:
-z: z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压
-c: c代表的是create,即创建新的打包文件
-x: x代表的是extract,实现从包文件中还原文件(解压)
-v: v代表的是verbose,显示命令的执行过程
-f: f代表的是filename,用于指定包文件的名称
举例:
打包
tar -cvf hello.tar ./* 将当前目录下所有文件打包,打包后的文件名为hello.tar
打包并压缩
tar -cvzf hello.tar.gz ./* 将当前目录下所有文件打包并压缩,打包后的文件名为hello.tar.gz
解包
tar -xvf hello.tar 将hello.tar文件进行解包,并将解包后的文件放在当前目录
tar -xvf hello.tar.gz 将hello.tar.gz文件进行解压,并将解压后的文件放在当前目录
tar -xvf hello.tar.gz -C /usr/local 将hello.tar.gz文件进行解压,并将解压后的文件放在/usr/local目录
4.4.3 文本编辑命令
- 介绍
文本编辑的命令,主要包含两个: vi 和 vim,两个命令的用法类似。
vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于Windows中的记事本。它的语法是:vi fileName
说明:
1). vim是从vi发展来的一个功能更加强大的文本编辑工具,编辑文件时可以对文本内容进行着色,方便对文件进行编辑处理,所以实际工作中vim更加常用。
2). 要使用vim命令,需要我们自己完成安装。可以使用下面的命令来完成安装:`yum install vim`
- vim使用
vim其实就是一个文本编辑器语法: vim fileName
说明:
1). 在使用vim命令编辑文件时,如果指定的文件存在则直接打开此文件。如果指定的文件不存在则新建文件。
2). vim在进行文本编辑时共分为三种模式,分别是 命令模式(Command mode),插入模式(Insert mode)和底行模式(Last line mode)。这三种模式之间可以相互切换。在使用vim时一定要注意当前所处的是哪种模式。
- 三种模式
① 命令模式(不可编辑内容),命令模式下可以查看文件内容、搜索文本内容.
命令模式指令 | 含义 |
i 或 a 或 o | 进入插入模式,i是光标前面插入,a是光标后面插入,o是在下一行插入 |
gg | 定位到文本内容的第一行第一个字符 |
GG | 定位到文本内容的最后一行 |
yy | 复制当前行 |
p | 粘贴当前行 |
dd | 删除光标所在行的数据 |
ndd | 删除当前光标所在行及之后的n行数据 |
u | 撤销操作 |
shift+zz | 保存并退出 |
/搜索的内容 | 在当前文件中搜索内容,符合的内容会高亮 |
② 插入模式
A. 插入模式下可以对文件内容进行编辑
B. 在命令模式下按下[i,a,o]任意一个,可以进入插入模式。进入插入模式后,下方会出现【insert】字样
C. 在插入模式下按下ESC键,回到命令模式
③ 底行模式
- 按下esc回到命令模式
- 在命令模式的基础上按下 shift+:
- 按下保存退出: :wq(保存退出) :q!(强制退出不保存)
底行模式命令 | 含义 |
:wq | 保存并退出 write quit |
:q! | 不保存强制退出 |
:set nu | 显示行号 number |
:set nonu | 取消行号显示 |
:n | 定位到第n行, 如 :10 就是定位到第10行 |
④ 模式切换图
命令模式(查看内容 /搜索的内容) -------按下 :i a o ----> 插入模式(编辑文件) ------esc--->命令模式------->shift + : --------> 底行模式(保存退出 wq)
4.4.4 查找命令
名称:find
作用: 在指定目录下查找文件
语法: find dirName -option fileName
举例:
find . –name "*.java" 在当前目录及其子目录下查找.java结尾文件
find /itcast -name "*.java" 在/itcast目录及其子目录下查找.java结尾的文件
名称:grep
作用: 从指定文件中查找指定的文本内容,并且返回查找到的对应行数据
语法: grep word fileName
举例:
grep Hello HelloWorld.java 查找HelloWorld.java文件中出现的Hello字符串的位置
grep hello *.java 查找当前目录中所有.java结尾的文件中包含hello字符串的位置
grep -n hello Itheima.java -n显示行号
grep -ni hello Itheima.java -i 忽略大小写匹配内容
4.4.5 查看系统的进程命令
ps -ef 系统的所有的进程都展示出来 process
ps -aux 查询所有进行信息,并显示每个进程cpu耗用,内存耗用
top 查看整体的内存耗用
杀死进程
kill -9(强制杀死)|-2(温和杀死) 进程id号
-2 会先让程序保存在进行退出, 温和的退出
-15 通知程序进行安全、干净的退出。退出前做一些准备工作:释放资源,临时文件清理。优雅的退出。
但是-2 和 -15 在操作系统后台进程时系统可能认为是不良操作会导致退出失败。
-9 强制退出。一定会退出
4.4.6 管道命令(|)
作用: 上一个命令的结果提供给下一个命令去使用。
语法:
命令1 | 命令2 | 命令3 ...