Linux 入门笔记


一、 概述

1. 操作系统

① 计算机由硬件和软件组成

② 操作系统属于软件范畴,主要作用是协助用户调度硬件工作,充当用户和计算机硬件之间的桥梁

③ 常见的操作系统

🤠 PC端:Windows、Linux、MacOS

🤠 移动端:Android、IOS、鸿蒙

2. linux系统

⭐ 出生日期:1991年

(1)组成

🤠 linux 系统由 linux系统内核 和 系统级应用程序 两部分组成

① 内核:调度CPU、调度内存、调度文件系统、调度网络通讯、调度IO 等

② 系统记应用程序:文件管理器、任务管理器、图片查看、音乐播放 等

(2)虚拟机

🐷 问题来了,怎么去暗转一个 Linux 系统呢?

① 虚拟机:通过虚拟化技术,在电脑内,虚拟出计算机硬件,并给虚拟的硬件安装操作系统,
  即可得到一台虚拟的电脑(笔者使用 VMware)
② 可以给电脑重装一个系统(不建议) 
(3)第三方工具

🥞 finallshell

😥 操作作Linux系统中间跨越VMware窗口会导致交互不太方便
😎 我们只需要使用命令行无需使用图形化,所以通过命令行远程连接使用即可

二、基础知识

1. 目录结构

🥞 linux 的目录系统是以 “ / ” 为最高目录(根目录),所有文件都在它下面

在这里插入图片描述
👨‍🏫 linux 中层级关系用 反斜杠 / 表示,不同于 windows 的 正斜杠 \

2. 基础命令

👨‍🏫 命令表示说明:command [ -options ] [ parameter ]

⭐ command:命令本身
⭐ -options:[可选项] (控制命令的一些操作细节)
⭐ parameter:[可选项](命令的参数,多用于指向特定目标)
⭐ [ ]:表示是可写可不写
(1) ls:列出目录下的内容
🥞 ls [ -a -l -h ] [ 路径 ]
⭐ -a:表示列出全部文件(包括隐藏文件)
⭐ -l:表示以竖排的方式列出文件列表
⭐ -h:表示以易于阅读的方式列出文件(必须搭配 -l 一起使用),比如 列出文件大小
(2) cd:切换工作目录(change directory)
🥞 cd [ 路径 ]
⭐ 不写路径默认切换到 home 目录
(3) pwd:查看当前所在工作目录(print work directory)(无选项无参数)
(4) 特殊路径符
⭐ .   :表示当前目录
⭐ ..  :表示上一级目录
⭐ ~   :表示 home 目录
(5) mkdir:创建目录命令
🥞 mkdir [-p] 路径
⭐ -p:表示自动创建不存在的父目录,可以一次性创建多层文件夹
(6) 文件操作命令Ⅰ

🐷 都支持 相对路径、绝对路径、特殊路径

🥞 touch 路径:创建文件

🥞 cat 路径:查看文件内容,一次性全部展示出来

🥞 more 路径:类似 cat,支持翻页
(7) 文件操作命令Ⅱ

🐷 cp:文件拷贝

🥞 cp [-r] 参数1 参数2
⭐ -r:复制文件夹使用
⭐ 参数1:源路径(源文件)
⭐ 参数2:目标路径(目的地)

🐷 mv:文件移动

🥞 mv 参数1 参数2
⭐ 参数1:源文件路径
⭐ 参数2:目的地路径

🐷 rm:删除文件

🥞 rm [-r -f] 参数1 参数2 ……参数n
⭐ -r:用于删除文件夹
⭐ -f:表示强制删除(不弹出确认信息)【普通用户删除也没有提示信息,root用户才有提示,所以一般用户用不上】
⭐ 参数:表示要删除的文件、文件夹路径,可以多个,用空格隔开
👨‍🏫 支持使用通配符:* (任意)
	🌹 a*:以a开头
	🌹 *a:以a结尾
	🌹 *a*:包含a 
(8) 查找命令

🐷 查找 命令 路径的命令(命令是一个 exe文件)

🥞 which:要查找的“命令”
⭐ 比如:pwd 就是一个命令,which 也是一个命令

🐷 按文件名查找文件

🥞 find 起始路径 -name "要查找的文件名"
👨‍🏫 支持通配符模糊查询

🐷 按文件大小查找文件

🥞 find 起始路径 -size +/- n[k/M/G]
⭐ +/-:表示大于和小于
⭐ n:表示文件大小的数值
⭐ k/M/G:表示文件大小的单位(k小写,其他大写)kb、Mb、Gb
(9) grep、wc和管道符

🐷 过滤器 grep

🥞 grep [-n] 关键字 文件路径
⭐ -n:表示在结构显示匹配的行号
⭐ 关键字:表示需要过滤的关键字(相当于筛选)(带有特殊符号得使用 双引号 “” 包住避免产生歧义)
⭐ 文件路径:表示要过滤内容的文件路径(可作为内容输入端口)

🐷 wc:做数量统计

🥞 wc [-c -m -l -w] 文件路径
⭐ -c:统计 bytes 数量
⭐ -m:统计字符数量
⭐ -l:统计行数
⭐ -w:统计单词数量
⭐ 文件路径:被统计的文件,可作为内容输入端口

🐷 管道符:| (将左端命令的结果 作为 右边命令 的输入)

(10) echo、tail和重定向

🐷 echo:在命令行输出指定内容

🥞 echo 输出内容
⭐ 输出内容过于复杂的时候可以用双引号包着 “”

👨‍🏫 反引号:` `
⭐ echo ` pwd`
⭐ 将反引号包围的内容作为命令执行

🐷 重定向符:> 和 >>

🥞 例:echo “content”  > test.txt :覆盖写入 content 到 test.txt 中
⭐ >:将左侧命令的结果 覆盖 写入到 右侧指定的文件中
⭐ >>:将左侧命令的结果 追加 写入 右侧指定文件的末尾

🐷 tail:查看文件末尾 部内容,跟踪文件的最新更改

🥞 tail [-f -num] 路径
⭐ -f:表示持续跟踪
⭐ -num:表示查看尾部多少行,不填默认十行
(11) vi编辑器

🐷 vi / vim:文本编辑器 (visual interferce) 【vim 兼容所有的 vi 功能】

在这里插入图片描述

🥞 vi / vim 文件路径
⭐ 打开新窗口,进入的是命令模式

🤠 命令模式(Command mode)
⭐ 键盘输入的都是命令
⭐ 按 i 进入 输入模式  ……
⭐ 按 “:” 进入底线命令模式

🤠 输入模式(insert mode)
⭐ (编辑模式)可以对文本内容进行资源编辑
⭐ 按 esc 退回 命令模式

🤠 底线命令模式(last line mode)
⭐ 通常用于文件的保存和退出
⭐ :wq 保存并退出
⭐ :q 仅退出
⭐ :q! 强制退出
⭐ :w 仅保存
⭐ :set nu 显示行号
⭐ :set paste 设置粘贴模式 
(12)附加

⭐ 命令 --help:任何命令都支持查询命令帮助(ls --help)

⭐ man 命令:查看命令手册

⭐ ctrl + c :终止命令

⭐ ctrl + d :退出或登出

⭐ history:查看历史输入过的命令

⭐ !+命令前缀:自动执行最近一次匹配前缀的命令

⭐ ctrl+r:输入内容匹配历史命令

搜到的内容后
① 回车:直接执行
② 键盘左右方向键,便可修改此命令(不执行)

⭐ 光标移动快捷键

① ctrl+a:跳到开头
② ctrl+e:跳到命令结尾
③ ctrl+键盘左键、右键:向左、向右跳过一个单词

⭐ ctrl+l(clear命令):清屏

三、实用操作

1. 软件安装

🐷 centos:yum:RPM包软件管理器,用于自动化安装配置 linux 软件,并可以自动解决依赖问题
🐷 Ubuntu:apt

🥞 yum [-y] [install | remove | search] 软件名称
⭐ 选项:-y 自动确认,跳过二次确认安装或卸载的过程
⭐ install:安装
⭐ remove:卸载
⭐ search:搜索

👨‍🏫 yum 需要 root 权限,而且需要联网

2. systemctl

🐷 控制服务的 启动、停止、开机自启

🥞 systemctl start | stop | status | enable | disable 服务名
⭐ start:启动
⭐ stop: 停止
⭐ status:查看状态
⭐ enable:开启开机自启动
⭐ disable:关闭开机自启动

🐷 系统的内置服务

⭐ NetworkManager:主网络服务
⭐ network:副网络服务
⭐ firewall:防火墙服务
⭐ sshd:ssh服务(可用于远程登录)

3. 软链接

🐷 在系统中创建软链接,相当于创建一个 windows 文件系统的快捷方式

🥞 ls -s 参数1 参数2   (是 L 的小写,不是 i 的大写)
⭐ -s 选项:创建软链接
⭐ 参数1:被链接的文件或文件夹
⭐ 参数2:要链接去的目的地

4. 日期、时区

🐷 date 命令查看系统时间

🥞 date [-d] [+格式化字符串]
⭐ -d 按照指定的字符串显示日期,一般用于日期计算
  🥚 "+1 day"
  🥚 "-1 day"
  🥚 "+1 month"
   ……
⭐ 格式化字符串:通过特定的字符串标记,来控制显示的日期格式
  🥚 %Y:年
  🥚 %y:年份后两位数字(21,22,23)
  🥚 %m:月份(01,02……12)
  🥚 %d:日(01,02……31)
  🥚 %H:小时(00,01……59)
  🥚 %M:分钟(00,01……59)
  🥚 %S:秒(00,01……60)
  🥚 %s:自 1970-01-01 00:00:00 UTC 到现在的秒数(以秒数为单位的时间戳)

🐷 修改 linux 时区

⭐ 将系统自带的 localtime 文件删除
	rm -f /etc/localtime
⭐ 将 上海时区的文件 软链接为  localtime 文件即可
	sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

🐷 ntp 程序:自动校准系统时间

🥞 yum -y install ntp :安装程序

🥞 systemctl start ntpd:启动程序

🥞 systemctl enable ntpd:开启开机自启动

⭐ 手动校准:ntpdate: -u ntp.aliyun.com (需要 root 权限) (阿里云的服务网址)

5. IP 地址、主机名

(1) IP 地址

🐷 格式:a.b.c.d:其中a、b、c、d 都是 0~255 之间数字

👨‍🏫 特殊的 IP 地址

⭐ 127.0.0.1:本机 IP 地址 
⭐ 0.0.0.0:特殊 IP 地址
 🥚 可以指本机
 🥚 可以在端口中用来确定绑定关系
 🥚 在一些 IP 地址限制中,表示所有 IP 的意思,当放行规则设为 0.0.0.0,表示允许任何 IP 访问

🥞 ifconfig:查看 IP 地址
(2)主机名
🥞 hostname:查看系统主机名

🥞 hostname set-hostname 名:修改主机名(需要 root)
(3)域名解析

🐷 IP 地址又臭又长,正经人谁记啊?域名应运而生(例:www.baidu.com【百度的域名】)

😵 怎么通过域名访问到服务器的呢?

🥞 域名解析器(江湖人称 地址本)
在这里插入图片描述⭐ 本地私人地址本:

🥚 Windows:C:\Windows\System32\drivers\etc\hosts  【管理员身份用记事本可修改】
🥚 Linux:/etc/hosts 【root 权限即可修改】

⭐ 联网地址本:DNS服务器

🥚 180.76.76.76(百度)
🥚 223.5.5.5(阿里)
🥚 114.114.114.114(电信)
🥚 8.8.8.8(谷歌)
……
(4)配置虚拟机固定 IP

😤 传送门: 简直山路十八弯

6. 网络传输

(1)网络请求和下载

🐷 ping 命令:检查指定的网络服务器是否联通

🥞 ping [-c 次数] ip或域名
⭐ -c ping 的次数

🐷 wget 命令:下载网络文件

🥞 wget [-b] url
⭐ -b,可选,后台下载,日志写入当前工作目录的 wget-log 文件
⭐url:下载链接

🥚 后台下载时,可以通过 tail -f wget-log 实现监控下载进度

🐷 curl 命令:可以发送 http网络请求,可用于:下载文件、获取信息等

🥞 curl [-O] url  (是 大写字母 O 不是 零)
⭐ -O:用于下载文件,当 url 是下载链接时,可以使用此选项保存文件
⭐ url:要发起请求的网络地址
(2)端口

🤠 端口:是设备与外界通讯交流的出入口。

⭐ 物理端口:USB接口,RJ45网口,HDMI 端口等
⭐ 虚拟端口:是指计算机内部的端口,是操作系统和外部进行交互使用的

🐷 计算机程序之间的通讯,通过 ip 地址只能锁定计算机,但无法锁定具体的程序,而端口就弥补了这个缺陷。

🐷 端口的划分

⭐ 公认端口:1 ~ 1023,用于系统内置或常用知名软件绑定使用
⭐ 注册端口:1024 ~ 49151,用户自定义
⭐ 动态端口:49152 ~ 65535,用于临时使用,多用于出口

🐷 查看端口的占用

👴 第三方软件,先安装:yum -y insatll nmap
🥞 语法:nmap ip地址
⭐ 可以查看 指定ip地址的的对外暴露端口

👴 安装natstat:yum -y install net-tools
🥞 语法:netstat -anp | grep 端口号/进程号
⭐ 查看指定端口是否被占用,或者查看指定进程占用了那些端口

7. 进程管理

🐷 查看进程

🥞 ps [ -e -f ] 
⭐ -e:显示出全部的进程信息
⭐ -f:以完全格式化的形式展示进程信息

配合管道符使用筛选进程信息
🥞 ps -ef | grep 关键字

🐷 进程信息

⭐ UID:进程所属的用户 ID
⭐ PID:进程的进程号
⭐ PPID:进程的父进程 ID (启动此进程的其他进程)
⭐ C:此进程的 CPU 占用率
⭐ STIME:进程的启动时间
⭐ TTY:启动此进程的终端序号(?:表示非终端启动)
⭐ TIME:进程占用 CPU 的时间
⭐ CMD:进程对应的名称 或 启动路径 或 启动命令

🐷 关闭进程

🥞 kill [ -9 ] 进程ID
⭐ -9:表示强制关闭进程

8. 主机状态

(1)查看系统资源占用

🤠 top 命令:查看 CPU、内存的使用情况

🐷 top 命令内容详解
在这里插入图片描述

🥞 第一行
⭐ top:命令名称
⭐ 16:16:32:系统时间
⭐ load:1、5、15 分钟的平均负载

🥞 第二行
⭐ Tasks:进程数量
⭐ running:运行中的子进程
⭐ sleeping:睡眠中的进程
⭐ stopped:停止的进程
⭐ zombie:僵尸进程(子进程已stooped,父进程未及时释放子进程的资源)

🥞 第三行
⭐ %Cpu(s):CPU使用率
⭐ us:用户CPU使用率
⭐ sy:系统CPU使用率

🥞 第四、五行
⭐ Mib Mem:物理内存
⭐ Mib swap:虚拟内存(交换空间)

在这里插入图片描述
⭐ PID:进程id
⭐ USER:进程所属用户
⭐ PR:优先级,越小越高
⭐ RES:进程使用的物理内存(kb)
⭐ S:进程状态(S:休眠,R:运行,Z:僵死,N:负数优先级,I:空闲)
⭐ %CPU:进程占用CPU率
⭐ %MEM:进程占用内存率
⭐ TIME+:进程使用CPU时间总计,单位 10毫秒
⭐ COMMAND:进程的命令 或 程序文件路径

🐷 top 命令选项
在这里插入图片描述
🐷 top 交互式选项
在这里插入图片描述

(2)磁盘信息监控

🐷 df 命令:查看硬盘的使用情况

🥞 df [-h]
⭐ -h:更加人性化的显示

🐷 iostat:查看CPU、磁盘的相关信息

🥞 iostat [-x] [num1] [num2]
⭐ -x:显示更多信息
⭐ num1:数字,刷新间隔
⭐ num2:数字,刷新次数

🐷 iostat -x:命令内容详情

⭐ rKB/s:每秒发送到设备的 读取请求数
⭐ wKB/s:每秒发送到设备的 写入请求数
⭐ util:磁盘利用率
(3)网络状态监控

🐷 sar 命令:查看相关的网络统计(复杂得不要不要的,从简而谈)

🥞 sar -n DEV num1 num2
⭐ -n:查看网络
⭐ DEV:查看网络接口
⭐ num1:刷新间隔(默认查看一次就结束)
⭐ num2:查看次数(默认无限)

🐷 sar命令内容
在这里插入图片描述

9. 环境变量

🐷 作用:记录一些关键信息,用以辅助操作系统运行

🥞 格式:Key - Value 型结构


🐷 env命令:即可查看当前系统中记录的环境变量

🥞 环境变量PATH:记录了系统执行任何命令的搜索路径(路径之间用 :隔开)
在这里插入图片描述


🐷 $ 符号

🥞 用来取 环境变量 的 值(可结合 echo 输出在控制台)
在这里插入图片描述
🥞 ${变量名}ABC:结合其他内容一起输出
在这里插入图片描述


🐷 自行设置环境变量

🥞 临时设置:export 变量名 = 变量值

🥞 永久生效

① 针对当前用户生效:配置在当前用户的:~/.bashrc 文件中
② 针对所有用户生效:配置在系统的: /etc/profile 文件中
⭐ 生效语法:source 配置文件(立刻生效,否则得重新连接才生效)

🐷 自定义环境变量PATH

🥞 export PATH=$PATH:自定义路径  【在原有的 PATH 上 + 自定义环境变量】
⭐ 自定义程序 放在 自定义的路径,再把此 路径 配置到 PATH 变量上即可

10. 上传下载

🐷 图形化界面直接操作

🐷 rz、sz 命令(需要终端软件支持)

🥞 安装:yum -y install lrzsz
⭐ 下载:sz 文件名
⭐ 上传:rz 图形化界面选择文件

11. 压缩和解压

🐷 linux常见的压缩格式:tar、gzip、zip等
⭐ .tar:tarball,归档文件,简单的打包成一个文件内,体积压缩不明显
⭐ .gz:常见为 .tar.gz、.gzip 的格式,使用 gzip 算法压缩文件到一个文件内,极大的减少文件体积

🥞 tar [-c -v -x -f -z -C] 文件1 文件2 文件3 ……
⭐ -c:创建压缩文件,用于压缩模式
⭐ -v:显示过程,查看进度
⭐ -x:解压模式
⭐ -f:选择文件,必须放在选项最后端,方便连接 文件
⭐ -z:gzip 模式,不使用 -z 就是普通的 tarball 模式
⭐ -C:选择解压的目的地,用于解压模式

(1) tar压缩

在这里插入图片描述


(2)tar解压

在这里插入图片描述

(3)zip压缩
🥞 zip [-r] 文件1 文件2 ……
⭐ -r:压缩文件夹

在这里插入图片描述

(4)unzip 解压
🥞 unzip [-d] 压缩包
⭐ -d:指定解压文件的目的地(同tar的-C)

在这里插入图片描述

12. 系统定时任务

🐷 cron 进程

🥞 crontab [-e -l -r]
⭐ -e:编辑任务表
⭐ -l:列出任务表中的命令
⭐ -r:删除任务

🥞 crontab -e 任务表编辑:
🍔 时间+动作
⭐ 分 时 日 月 周 命令(中间用空格隔开)
① * :表示任意
② / :/x 表示每经过 x 时
③ - :x-z (从 x 到 z)
④ ,:a,b,c……(散列数字)

🐷 实例

任务作用
* * * * * 命令每隔1分钟执行一次命令
1,5 */1 2-6 * * 命令每隔一个小时 1或5分钟 每月的2到6日 任意星期 执行一次命令
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值