Linux 是一套开放源代码程序的、可以自由传播的类 Unix 操作系统软件。Linux 系统主要被应用于服务器端、嵌入式开发和 PC 桌面 3 大领域,其中服务器端领域是重中之重。
内核与发行版本内核:内存管理,进程调度,文件管理等,并对外暴露接口
发行版:是在内核的基础上提供更多好用的软件。
- Linux严格区分大小写
- Linux中所有内容都以文件形式保存,包括硬件
- Linux不靠拓展名区分文件类型
由于团队是多人协同开发,为方便同事明白该文件的类型,所以约定一些后缀名
压缩包:.gz .bz2 .tar.bz2 .tgz
二进制软件包 : .rpm
网页文件: .html .php
脚本文件: .sh
配置文件: .conf
虚拟机是通过软件模拟出具有完整硬件系统功能的、运行在一个完成隔离环境中的完整计算机系统。
VMWare是一个虚拟机软件,有提供快照功能,类似与保存进度。
Linux目录结构Linux目录结构是树状结构,以 / 为根
常见目录
/home – 普通用户的家目录
/user – 用户信息
/bin 与 / sbin – 存放脚本文件
[root@localhost ~]#
root 当前用户
localhost 主机名
~ 所在目录为家目录,超级用户的家路径为root,普通用户的家路径为home
#表示超级用户
$ 表示普通用户
[root@localhost ~]# ip addr查看目录的文件
#ls [选项][文件或目录] # -a # -l 详细 # -h 人性显示 [root@localhost ~]# ls -lh #查询当前目录下详细并人性化格式的文件 ...... [root@localhost ~]# ll # 等同与 ls -lh ...... [root@localhost ~]# ll a/b # 查询当前路径下的 a目录下的 b目录下的文件详情 total 8 -rw-------. 1 root root 1243 Jun 12 10:54 anaconda-ks.cfg -rw-------. 1 root root 1243 Jun 12 19:07 anaconda-ks.cfg.cp # 若是 - 开头是文件 # 若是d开头是文件夹显示当前目录路径
[root@localhost ~]# pwd创建文件/文件夹
# touch 文件名 --- 创建文件 # mkdir 文件夹 --- 创建文件夹 # -p -- 多级目录创建 [root@localhost ~]# touch txt.text #创建文件 [root@localhost ~]# mkdir dir #创建文件夹 [root@localhost ~]# mkdir -p dir/dir #创建文件夹,创建未创建的父目录进入目录
cd [目录] cd .. 上级目录 cd ~ 进入当前用户家目录 cd 进入当前用户家目录 cd - 进入上次路径删除文件夹/文件
# rm [目录名] -- 删除文件夹/ 删除文件 # -r 递归删除 # -f 强制删除 # 删除文件夹: rm -rf [目录名] # 删除文件: rm -rf [文件名] / rm -f [文件名] [root@localhost ~]# rm -rf dir #该方式可以删除文件夹也可以删除文件备份/剪切/重命名
# cp [原文件][拷贝文件] -- 备份 # mv [原文件][目标文件夹] -- 剪切 # mv [源文件][重命名文件名] -- 重命名 [root@localhost ~]# cp hello.text dir/hello.text.cp #将hello.text文件拷贝复制到dir目录下,文件名为hello.text.cp [root@localhost ~]# mv txt.text dir/txt.text #将txt.text剪切到dir目录下,文件名为txt.text [root@localhost ~]# mv dir/txt.text dir/t.text #将dir目录下的txt.text文件改名为t.text查询命令所在目录
# whereis [命令] -- 获取到命令的绝对路径 # which [命令] -- 获取到命令的绝对路径 [root@localhost ~]# whereis ls #查询ls命令所在的路径与帮助文档路径 [root@localhost ~]# which ls #查询ls命令所在路径在显示器输出内容,获取环境变量
[root@localhost ~]# echo $PATH查找文件
# find [在什么路径下查找][查找方式] # find / -name 'anaconda-ks.cfg*' -- 查找根目录下按照名字查找 [root@localhost ~]# find / -name 'an*' #查找/根目录下文件名匹配表达式的文件名 [root@localhost ~]# find / -iname 'AN*' #忽略大小写查看文件内容
# cat [文件] -- 查看文件所有内容 [root@localhost ~]# cat anaconda-ks.cfg #查看anaconda-ks.cfg文件内容搜索文件含搜索内容的行
# grep [搜索内容] [文件] -- 搜索文件中含有搜索内容的行 [root@localhost ~]# grep System anaconda-ks.cfg #搜索anaconda-ks.cfg文件中含有System的行 [root@localhost ~]# grep -i System anaconda-ks.cfg #搜索anaconda-ks.cfg文件中含有System的行,忽略大小写查询命令帮助文档
# man [命令] -- 查看命令的介绍,按下键滑动内容,按q退出查看,按h查看命令帮助 # [命令] --help --查看命令介绍的所有内容 [root@localhost ~]# man ls #查看ls命令的帮助文档(翻页) [root@localhost ~]# ls --help #查看ls命令的帮助文档(直接显示所有)安装软件
# yum install -y [软件名] -- 安装工具 [root@localhost ~]# yum install -y zip #下载zip压缩解压文件/文件夹
zip格式
# zip [压缩文件名][源文件/目录需要-r] ---- 压缩 # -r 递归压缩 # upzip [压缩文件] --- 解压压缩文件
gz格式
# gzip [原文件] -- 压缩为.gz格式的压缩文件,源文件会消失 # gzip -r [目录] -- 将文件夹中的文件压缩,原文件会消失 # gzip -d [压缩文件] -- 解压文件 # gunzip -r [压缩目录] -- 解压文件夹中的文件 # gz实现整个文件夹压缩,先将文件夹打包成文件,在压缩
打包并压缩成gz
# tar -cvf [打包文件名][源文件] -- 打包 # tar -xvf [打包文件名] -- 解打包 # tar -zcvf [压缩包名.tar.gz][源文件] -- 打包并压缩成gzip格式 # tar -zxvf [压缩包名] -- 解压 # tar -zxvf [解压包名] -C [指定目录] -- 解压到指定目录关机和重启命令
shutdown命令: 用法 shutdown [选项] 时间 选项: -c 取消前一个关机命令 -h 关机 -r 重启 #使用shutdown会在关机的时候帮我们保存数据磁盘使用情况
磁盘使用情况df: 选项-h: 格式化显示输出磁盘使用情况查看操作命令历史
查看操作历史history: 用于显示执行过的历史命令记录日志监控命令
日志监控命令:tail [选项] [文件名] -f 显示文件最新追加的内容。 -n 行数 在屏幕上显示指定文件的末尾参数设置的行数查看内存占用
查看内存占用:free查看任务进程
查看任务进程:top 第一行: 10:01:23 — 当前系统时间 126 days, 14:29 — 系统已经运行了126天14小时29分钟(在这期间没有重启过) 2 users — 当前有2个用户登录系统 load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。 第二行: Tasks — 任务(进程),系统现在共有183个进程,其中处于运行中的有1个,182个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。 第三行:cpu状态 6.7% us — 用户空间占用CPU的百分比。 0.4% sy — 内核空间占用CPU的百分比。 0.0% ni — 改变过优先级的进程占用CPU的百分比 92.9% id — 空闲CPU百分比 0.0% wa — IO等待占用CPU的百分比 0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比 0.0% si — 软中断(Software Interrupts)占用CPU的百分比 第四行:内存状态 8306544k total — 物理内存总量(8GB) 7775876k used — 使用中的内存总量(7.7GB) 530668k free — 空闲内存总量(530M) 79236k buffers — 缓存的内存量 (79M) 第五行:swap交换分区 2031608k total — 交换区总量(2GB) 2556k used — 使用的交换区总量(2.5M) 2029052k free — 空闲交换区总量(2GB) 4231276k cached — 缓冲的交换区总量(4GB) 第五行以下: PID — 进程id USER — 进程所有者 PR — 进程优先级 NI — nice值。负值表示高优先级,正值表示低优先级 VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA SHR — 共享内存大小,单位kb S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 %CPU — 上次更新到现在的CPU时间占用百分比 %MEM — 进程使用的物理内存百分比 TIME+ — 进程使用的CPU时间总计,单位1/100秒 COMMAND — 进程名称(命令名/命令行)vi编辑器
三个模式:编辑模式(命令模式)、输入模式、末行模式
命令模式:将按键作为命令
输入模式:将按键作为文本输入到文件中
末行模式:可以书写完整命令
模式之间的转换命令模式使用 i,a,s,o,I,A,S,O 可以进入到 输入模式
命令模式使用 : 可以进入到末行模式
末行模式/输入模式使用 ESC 可以到命令模式
vi使用[root@localhost ~]# vi hello.text #表示进入hello.text文件,若不能存在会创建(需要退出时保存,不然不创建)
命令模式最下面是文件信息
输入模式最下面是 insert
末行模式最下面是 :
命令模式命令翻页: ctrl + f(向下移动一页) ctrl + b(向上移动一页) ctrl + d(向下移动半页) ctrl + u(向上移动半页)
光标移动:h(左) j(下) k(上) l(右) $(到行末) 0(到行首) G(最后一行) nG(n是行数) gg(第一行) n + enter (n是行数)
删除:dd ndd dG dnG d$ (n是行数)
复制:yy nyy (n是行数,复制后,使用p 粘贴)
末行模式命令退出策略:wq(保存并退出) q!(退出但不保存)
查找:/patter(patter是要查找的内容,使用该命令后,通过n正向查找,N反向查找) ?patter(patter是查找内容,使用该命令后,通过n正向查找,N反向查找)
替换:n1,n2s/word1/word2/gi (n1行到n2行的word1替换成word2,g表示全局匹配,i表示忽略大小写)



