✨ 一. Linux 介绍
1. 操作系统
操作系统(英语:operating system,缩写作 OS)是管理计算机硬件与软件 资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存 、决定系统资源供需的优先次序、控制输入与输出设备、操作网络 与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

没有安装操作系统的计算机,通常被称为裸机。
- 如果想在裸机上运行自己所编写的程序,就必须用机器语言书写程序。
- 如果计算机上安装了操作系统,就可以在操作系统上安装支持的高级语言环境,用高级语言开发程序
2. 主流操作系统
| 操作系统 | 优点 | 缺点 | 主要场景 |
|---|---|---|---|
| windows | 1. 简单的界面 2. 丰富的软件 3. 最多的用户群体 4.很多的娱乐软件 | 一些开发工具无法使用 对开发者不是很友好 | 办公、娱乐 还可以的开发体验 |
| mac | 1.良好的界面优化 2. 苹果生态的加持 3. 不错的开发体验 | 封闭的生态 一些娱乐、开发软件无法使用 | 日常办公 不错的开发体验 |
| linux | 1.最好的开发体验 2. 开发、生产环境保持一致 3. 开销低、服务器环境首选 | 1.专业的工具,上手门槛高 2. 界面体验不好(也不需要) 3. 办公、娱乐软件很少 | 服务器环境 最好的开发体验 |
总结:
windows 是最好的桌面系统,有还可以的开发体验。但是对开发者不友好,一些开发软件安装、配置异常麻烦,并且一些工具无法使用或者使用时有 BUG。
linux 办公与娱乐几乎没有,单纯适合做开发。各种工具安装非常方便,Linux 指令用起来也异常的舒服。
mac 是综合了 windows 与 linux 的优点,有不错的桌面系统,并且有不错的开发体验。有最好的办公体验,但是生态闭环,娱乐比不上 windows,开发体验比不上 Linux。
3. Linux
1991 年 林纳斯(Linus) 就读于赫尔辛基大学期间,对 Unix 产生浓厚兴趣,尝试着在 Minix 上做一些开发工作
因为 Minix 只是教学使用,因此功能并不强,林纳斯 经常要用他的终端 仿真器(Terminal Emulator) 去访问大学主机上的新闻组和邮件,为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统,这些在后来成为了 Linux 第一个内核的雏形,当时,他年仅 21 岁!
林纳斯利用 GNU 的 bash 当做开发环境,gcc 当做编译工具,编写了 Linux 内核,一开始 Linux 并不能兼容 Unix
- 即 Unix 上跑的应用程序不能在 Linux 上跑,即应用程序与内核之间的接口不一致
- 一开始 Linux 只适用于 386,后来经过全世界的网友的帮助,最终能够兼容多种硬件

4. 内核版本
内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。
Linux 内核版本又分为稳定版和开发版,两种版本是相互关联,相互循环。
- 稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些 bug 或加入一些新的驱动程序。
- 开发版:由于要试验各种解决方案,所以变化很快。
内核源码网址:http://www.kernel.org
所有来自全世界的对 Linux 源码的修改最终都会汇总到这个网站,由 Linus 领导的开源社区对其进行甄别和修改最终决定是否进入到 Linux 主线内核源码中。
5. 发行版本
Linux 发行版(也被叫做 GNU/Linux 发行版)通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件。
常见的发行版本如下:
- Ubuntu 👍
- Redhat
- Fedora
- openSUSE
- Linux Mint
- Debian
- Manjaro
- Mageia
- CentOS
- Arch
该笔记讲解的环境是基于Ubuntu 22.04 服务器
6. 应用领域
6_1.服务器领域
Linux 在服务器领域的应用是其重要分支
Linux 免费、稳定、高效等特点在这里得到了很好的体现
- 早期因为维护、运行等原因同样受到了很大的限制
- 近些年来 Linux 服务器市场得到了飞速的提升,尤其在一些高端领域尤为广泛
6_2.嵌入式领域
近些年来 Linux 在嵌入式领域的应用得到了飞速的提高
Linux 运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到几百 KB 等特点,使其近些年来在嵌入式领域的应用得到非常大的提高
主要应用:机顶盒、数字电视、网络电话、程控交换机、手机、等都是其应用领域,得到了 Google、三星、摩托罗拉、NEC 等公司的大力推广
6_3. 个人桌面领域
此领域是传统 Linux 应用最薄弱的环节
传统 Linux 由于界面简单、操作复杂、应用软件少的缺点,一直被 Windows 所压制
近些年来随着 Ubuntu、Fedora 等优秀桌面环境的兴起,同时各大硬件厂商对其支持的加大,Linux 在个人桌面领域的占有率在逐渐的提高
7. Linux环境
7_1. 云服务器的使用
在以前学习时,一般是使用虚拟机。但其实使用云服务器学习效果会更好,提前适应云服务器平台的使用,等到工作时用起来就会非常舒服。
国内的云服务器提供商有很多,腾讯云、阿里云都可以。但是这个笔记将使用腾讯云的轻量级应用服务器 Ubuntu 22.04 进行学习。
腾讯云新手特惠专区 :https://cloud.tencent.com/act/pro/Featured
注意
如果有条件,建议直接上云服务器环境,一般在公司都是使用云平台的各种服务。
7_2. 虚拟机
虚拟机有很多种
- VMware Workstation Pro
- WLS
使用云服务器会有额外的支持,但是使用虚拟机就很方便的。但是虚拟机比较吃资源,电脑配置不好的话会变卡。
分为桌面版与服务器版,桌面版类似 windows 有良好的可视化界面,服务器版本就只有一个黑窗口。如果只是做服务器部署,使用第二种就可以了。
安装的时候需要选取 LTS(长期支持) 版本,不然很容易就出现问题。
虚拟机下载:
text通过百度网盘分享的文件:VMware-workstation-full-17.5.0-2258... 链接:https://pan.baidu.com/s/1TCLrM_0aZKnyXK3f9baCsg?pwd=4u9r 提取码:4u9r --来自百度网盘超级会员V6的分享ubuntu 镜像下载:
texthttps://releases.ubuntu.com/?_gl=1*moxlse*_gcl_au*MTAxODk1MDcxLjE3MjcyNjE4OTU.&_ga=2.143552176.464014979.1727261893-2042601692.1727261893
注意
虚拟环境对计算机的配置要求较高,配置麻烦、容易出问题,可以的话建议直接上云服务器。
8. 云服务器
国内有腾讯云、阿里云、华为云等一系列的云服务器提供商,并且还有很多小服务器提供商。当然也可以选择自己搭建服务器,但是那样对于小公司来说只会得不偿失。
自己搭建需要一个需要一台服务器,需要一个固定 IP ,需要 7*24 小时不断电,同时使用短信发送、静态资源存储、数据库服务器的时候不是特别方便
常用的服务器分两种,一种是轻量级服务器,还有一种是标准的云服务器。
| 轻量级服务器 | 云服务器 | |
|---|---|---|
| 面向用户 | 中小企业、开发者 | 所有用户 |
| 网络计费 | 高性价比流量包模式 | 固定带宽/流量费用 |
| 应用管理 | 官方应用镜像及应用管理 | 镜像市场 |
8_1. 应用场景
- 网站搭建:使用轻量应用服务器 Lighthouse 提供的精品镜像(例如 WordPress、Discuz! Q 等),可快速创建满足您业务诉求的网站, 例如企业官网、个人展示网站、博客、论坛、电商、外贸网站等。腾讯云将持续提供更多类型的应用镜像,方便您快速构建各种类型的网站。
- Web 应用服务 :通过使用预置常用 Web 开发平台(如 LAMP 堆栈、Node.js 等)的镜像,可快速部署 Web 应用程序,简单高效上线各类业务应用。
- 快速搭建开发测试环境:提供多种预置 LAMP、Node.js、http://ASP.NET 等常用开发环境的应用镜像,帮助开发者随时随地在生产环境之外构建开发测试环境。
- 云端学习环境:为您提供触手可及的云端学习环境,如 Ubuntu、CentOS 等常用 Linux 系统和 Windows Server 系统。您可以随时创建、随时销毁环境。
8_2. 购买服务器
【腾讯云】热门云产品首单特惠秒杀 点击购买

我自己的话由于是第一次买,然后首单特惠秒杀,当时是38元买了一年的轻量应用服务器。

配置参数解释:
cpu: 1核1G 就够用了。
带宽:带宽越大,打开网页、从服务器下载东西的速度越快
系统盘:够用就好,一般静态资源、数据库、缓存都是存到其他地方去
月流量:这个够用就好,300G 小公司网站都用不完,后续上 CDN 就更用不完了。在能够承受范围内,越大越好。
时长:优惠购买只能一次,能承受范围内,时长越长越好,配置越高越好。

点击立即购买,然后提交订单并且付费就可以了。
然后从腾讯云点击进入轻量应用服务器进入管理页面

在各个页面中,防火墙页面需要开发一些端口,一些外部应用才能够被访问

如果是第一次使用,记得点击右上角的重置密码,设置一下登录密码。
✨ 二. Linux操作
文件与目录
单用户操作系统和多用户操作系统(科普)
单用户操作系统:指一台计算机在同一时间只能由一个用户使用,一个用户独自享用系统的全部硬件和软件资源。Windows XP 之前的版本都是单用户操作系统,现在虽然 windows 已经实现了多用户系统,但是用的还是相对较少。
多用户操作系统:指一台计算机在同一时间可以由多个用户使用,多个用户共同享用系统的全部硬件和软件资源。Unix 和 Linux 的设计初衷就是多用户操作系统。
1. Win 和 Linux 区别
在 Windows 下,打开 “计算机”,我们看到的是一个个的驱动器盘符:

每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形,如图所示:

在 Linux 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录):
Ubuntu 没有盘符这个概念,只有一个根目录 /,所有文件都在它下面

2. 用户目录
位于 /home/user,称之为用户工作目录或家目录,表示方式:
/home/user3. Linux主要目录速查表
| / | 根目录, 一般根目录下只存放目录 在 linux 下有且只有一个根目录,所有的东西都是从这里开始 当在终端里输入 /home,其实是在告诉电脑,先从 /(根目录)开始,再进入到 home 目录 |
|---|---|
| /bin、/usr/bin | 可执行二进制文件的目录,如常用的命令 ls、tar、mv、cat 等 |
| /boot | 放置 linux 系统启动时用到的一些文件,如 linux 的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub |
| /dev | 存放 linux 系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt |
| /etc | 系统配置文件存放的目录,不建议在此目录下存放可执行文件, 重要的配置文件有: /etc/inittab /etc/fstab /etc/init.d /etc/X11 /etc/sysconfig /etc/xinetd.d ...... |
| /home | 系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下~ 表示当前用户的家目录~edu 表示用户 edu 的家目录 |
| /lib、/usr/lib、/usr/local/lib | 系统使用的函数库的目录,程序在执行过程中, 需要调用一些额外的参数时需要函数库的协助 |
| /lost+fount | 系统异常产生错误时,会将一些遗失的片段放置于此目录下 |
| /mnt: /media | 光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下, 也不一定,可以选择任意位置进行挂载 |
| /opt | 给主机额外安装软件所摆放的目录 |
| /proc | 此目录的数据都在内存中,如系统核心, 外部设备,网络状态,由于数据 都存放于内存中,所以不占用磁盘空间, 比较重要的文件有: /proc/cpuinfo /proc/interrupts /proc/dma /proc/ioports /proc/net/* ...... |
| /root | 系统管理员 root 的家目录 |
| /sbin、/usr/sbin、/usr/local/sbin | 放置系统管理员使用的可执行命令,如 fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root 使用的命令,一般用户只能"查看"而不能设置和使用 |
| /tmp | 一般用户或正在执行的程序临时存放文件的目录, 任何人都可以访问,重要数据不可放置在此目录下 |
| /srv | 服务启动之后需要访问的数据目录,如 www 服务 需要访问的网页数据存放在 /srv/www 内 |
| /usr | 应用程序存放目录 /usr/bin:存放应用程序 /usr/share:存放共享数据 /usr/lib:存放不能直接运行的, 却是许多程序运行所必需的一些函数库文件 /usr/local:存放软件升级包 /usr/share/doc:系统说明文件存放目录 /usr/share/man:程序说明文件存放目录 |
| /var | 放置系统执行过程中经常变化的文件 /var/log : 随时更改的日志文件 /var/spool/mail : 邮件存放的目录 /var/run : 程序或服务启动后,将其PID 存放在该目录下 |
4 . 目录常用命令
文件管理主要是对文件或目录的创建、删除、查询、移动。
在职场中,若为后端程序员,必须要或多或少的掌握一些 Linux 常用的终端命令
Linux 发行版本的命令大概有 200 多个,但是常用的命令只有 10 多个而已
提示
学习终端命令的技巧:
- 不需要死记硬背,对于常用命令,用的多了,自然就记住了
- 不要尝试一次学会所有的命令,有些命令是非常不常用的,临时遇到,临时百度就可以
4_1 . 常用Linus 命令
| 序号 | 命令 | 对应英文 | 作用 |
|---|---|---|---|
| 01 | ls | list | 查看当前文件夹下的内容 |
| 02 | pwd | print wrok directory | 查看当前所在文件夹 |
| 03 | cd [目录名] | change directory | 切换文件夹 |
| 04 | touch [文件名] | touch | 如果文件不存在,新建文件 |
| 05 | mkdir [目录名] | make directory | 创建目录 |
| 06 | rm [文件名] | remove | 删除指定文件名 |
| 07 | clear | clear | 清屏 |
tips:
ctrl + shift + =放大 终端窗口的字体显示ctrl + -缩小 终端窗口的字体显示
4_2 . 查看目录内容(ls)
ls 是英文单词 list 的简写,其功能为列出目录的内容,是用户最常用的命令之一,类似于 DOS 下的 dir 命令 。
Linux 下文件和目录的特点
- Linux 文件 或者 目录 名称最长可以有
256个字符 - 以
.开头的文件为隐藏文件,需要用-a参数才能显示 .代表当前目录..代表上一级目录
ls 常用选项
| 参数 | 含义 |
|---|---|
| -a | 显示指定目录下所有的子目录与文件,包括隐藏文件 |
| -l | 以列表的方式显示文件的详细信息 |
| -h | 配合 -l 以人性化的方式显示文件大小 |
4_3 . 目录切换(cd)
cd 是英文单词 change directory 的简写,其功能为更改当前的工作目录,也是用户最常用的命令之一。
| 命令 | 含义 |
|---|---|
| cd | 切换目录 |
| cd ~ | 切换到当前用户的主目录(/home/username) |
| cd . | 保持在当前目录不变 |
| cd .. | 切换到上级目录 |
| cd - | 可以在最近两次工作目录之间来回切换 |
相对路径和绝对路径
相对路径:在输入路径时,最前面不是 / 或者 ~ ,表示相对当前目录所在的目录位置
绝对路径:在输入路径时,最前面是 / 或者 ~,表示从 根目录/家目录 开始的具体目录位置
cd 命令是完成目录切换操作的,当切换目录时,这个目录必须存在。
4_4 . 创建目录(mkdir)
创建一个新的目录
mkdir day1使用 -p 参数可以递归创建目录
mkdir -p day1/code14_5. 删除目录
删除目录可以使用 rmdir 指令,但是我们更常用 rm -rf 文件/目录 的指令进行删除。
rm 删除文件或目录。使用 rm 命令要小心,因为文件删除后不能恢复。
| 选项 | 含义 |
|---|---|
| -f | 强制删除,忽略不存在的文件,无需提示 |
| -r | 递归地删除目录下的内容,删除文件夹时必须加此参数 |
4_6 . tree
tree 命令可以以树状图列出文件目录结构
| 选项 | 含义 |
|---|---|
| -d | 只显示目录 |
5. 文件常用命令
文件的常用命令包括基本的创建、修改、删除、移动、复制。并且对文件操作还可以使用文本编辑进行操作(
nano或vim)。
5_1. 创建文件
touch
创建文件或修改文件时间
- 如果文件不存在,可以创建一个空白文件
- 如果文件已经存在,可以修改文件的末次修改日期
touch demo1.pyecho 文字内容
echo 会在终端中显示参数指定的文字,通常会和 > (重定向) 联合使用
$ echo 'hello world !'
hello world !重定向 > 和 >>
- Linux 允许将命令执行结果重定向到一个文件
- 将本应显示在终端上的内容 输出/追加 到指定文件中
其中
>表示输出,会覆盖文件原有的内容 (相当于w)>>表示追加,会将内容追加到已有文件的末尾 (相当于a)
$ echo 'hello world !' > demo.txt
$ cat demo.txt
hello world !5_2. 查看文件
查看文件:cat vi head tail more
| 命令 | 对应英文 | 作用 |
|---|---|---|
| cat 文件名 | concatenate | 查看文件内容、创建文件、文件合并、追加文件内容等功能 |
| more 文件名 | more | 分屏显示文件内容 |
| grep 搜索文本 文件名 | grep | 搜索文本文件内容 ( re正则表达式搜索 ) |
cat
cat命令可以用来查看文件内容、创建文件、文件合并、追加文件内容等功能cat会一次显示所有的内容,适合查看内容较少的文本文件
| 选项 | 含义 |
|---|---|
| -b | 对非空输出行 编号 |
| -n | 对输出的所有行 编号 |
显示时同时显示行号 :
cat -n按页显示列表内容 :
ls -al | moreps: -al : -a : 显示指定目录下所有的子目录与文件,包括隐藏文件
-l : 以列表的方式显示文件的详细信息
| : 管道符 : 把 前面 ls -al 获取到的内容通过管道走 more只看前十行 :
head -10 filename显示文件第二行
head -2 filename | tail -1ps: head -2 获取到前两行然后通过管道 | 传输给 tail -1 就是获取到第二行显示文件倒数第五行 :
tail -5 filename | head -1ps: tail -5 获取到后五行然后通过管道 | 传输给 head -1 就是获取到倒数第五行查看两个文件间的差别 :
diff file1 file2动态显示文本最新信息 :
tail -f crawler.logps: -f 是 follow 的缩写,表示持续监控文件的更新。
效果:
执行这个命令后,你会看到 crawler.log 文件的最后几行内容。
当有新的内容被添加到 crawler.log 文件时,这些新内容会立即显示在你的终端上。more
more命令可以用于分屏显示文件内容,每次只显示一页内容- 适合于查看内容较多的文本文件
使用 more 的操作键:
| 操作键 | 功能 |
|---|---|
| 空格键 | 显示手册页的下一屏 |
| Enter 键 | 一次滚动手册页的一行 |
| b | 回滚一屏 |
| f | 前滚一屏 |
| q | 退出 |
| /word | 搜索word字符串 |
grep
- Linux 系统中
grep命令是一种强大的文本搜索工具 grep允许对文本文件进行模式查找,所谓模式查找,又被称为正则表达式
| 选项 | 含义 |
|---|---|
| -n | 显示匹配行及行号 |
| -v | 显示不包含匹配文本的所有行 (相当于求反) |
| -i | 忽略大小写 |
- 常用的两种模式查找
| 参数 | 含义 |
|---|---|
| ^a | 行首,搜寻以 a 开头的行 |
| ke$ | 行尾,搜寻以 ke 结束的行 |
ps -ef | grep mysqlps: 命令中的 ps 是 "process status" 的缩写,用于显示当前进程的状态。
-e:表示显示所有进程。在某些系统中,这个选项可能不是必需的,因为 ps 默认可能已经显示所有进程。
| grep mysql : 前面显示了所有进程,然后通过管道匹配mysql,查看当前进程有无mysql5_3. 复制与移动
复制文件(cp)
cp 命令的功能是将给出的文件或目录复制到另一个文件或目录中
| 选项 | 含义 |
|---|---|
| -i | 覆盖文件前提示 |
| -r | 若给出的源文件是目录文件,则cp将递归复制 该目录下的所有子目录和文件,目标文件必须 为一个目录名 |
cp -r 原始文件/目录 目标文件/目录移动文件(mv)
mv 命令可以用来 移动文件 或 目录,也可以给 文件或目录重命名
| 选项 | 含义 |
|---|---|
| -i | 覆盖文件前提示 |
mv -r 原始文件/目录 目标文件/目录6 打包与压缩
打包压缩是日常工作中备份文件的一种方式
在不同操作系统中,常用的打包压缩方式是不同的
Windows常用rarMac常用zipLinux常用tar.gz
tar
tar 是 Linux 中最常用的备份工具,此命令可以把一系列文件打包到一个大文件中,也可以把一个打包的大文件恢复成一系列文件,tar 的命令格式如下:
# 打包文件
tar -cvf 打包文件.tar 被打包的文件/路径...
# 解包文件
tar -xvf 打包文件.tartar 选项说明 :
| 选项 | 含义 |
|---|---|
| c | 生成档案文件,创建打包文件 |
| x | 解开档案文件 |
| v | 列出归档解档的详细过程,显示进度 |
| f | 指定档案文件名称,f 后面一定是 .tar 文件 所以必须放选项的最后(如 -cvf 打包文件.tar) |
❗ 注意 :
f选项必须放在最后,其他选项顺序可以随意
gzip
tar 与 gzip 命令结合可以使用实现文件打包和压缩
tar只负责打包文件,但不压缩用
gzip压缩tar打包后的文件,其扩展名一般用xxx.tar.gz
在 Linux 中,最常见的压缩文件格式就是 xxx.tar.gz
在 tar 命令中有一个选项 -z 可以调用 gzip ,从而可以方便的实现压缩和解压缩的功能。
# 压缩文件
tar -zcvf 打包文件.tar.gz 被压缩的文件/路径...
# 解压缩文件
tar -zxvf 打包文件.tar.gz
# 解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目标路径| 选项 | 含义 |
|---|---|
| -C | 解压缩到指定目录,注意:要解压缩的目录必须存在 |
2. 系统管理
2_1. 常用命令
关机/重启
| 命令 (格式) | 对应英文 | 作用 |
|---|---|---|
shutdown +选项 +时间 | shutdown | 关机/重新启动 |
shutdown名可以安全关闭 或者 重新启动系统
| 选项 | 含义 |
|---|---|
| -r | 重新启动 |
提示:
- 不指定选项和参数,默认表示 1 分钟之后 关闭电脑
- 远程维护服务器时,最好不要关闭系统,而应该重新启动系统
常用命令示例
# 重新启动操作系统,其中 now 表示现在
shutdown -r now
# 立刻关机,其中 now 表示现在
shutdown now
# 系统在今天的 20:25 会关机
shutdown 20:25
# 系统再过十分钟后自动关机
shutdown +10
# 取消之前指定的关机计划
shutdown -c网卡信息
ifconfig
ifconfig 可以查看/配置计算机当前的网卡配置信息
# 查看网卡配置信息
ifconfig
# 查看网卡对应的 IP 地址
ifconfig | grep inet提示:一台计算机中有可能会有一个 物理网卡 和 多个虚拟网卡,
在 Linux 中物理网卡的名字通常以
ensXX表示
127.0.0.1被称为 本地回环/环回地址,一般用来测试本机网卡是否正常
ping
# 检测到目标主机是否连接正常
ping IP地址
# 检测本地网卡工作正常
ping 127.0.0.1
ping一般用于检测当前计算机到目标计算机之间的网络是否通畅,数值越大,速度越慢ps : 数值为目标计算机返回数据包的时间(单位ms), 数值越大即时间越久即速度慢...
ping的工作原理与潜水艇的声纳相似,ping这个命令就是取自声纳的声音- 网络管理员之间也常将
ping用作动词 —— ping 一下计算机X,看他是否开着
原理:网络上的机器都有唯一确定的 IP 地址,我们给目标 IP 地址发送一个数据包,
对方就要返回一个数据包,根据返回的数据包以及时间,我们可以确定目标主机的存在
时间和日期
| 命令 | 作用 |
|---|---|
| date | 查看系统时间 |
| cal | calendar 查看日历,-y 选项可以查看一年的日历 |
磁盘信息
| 命令 | 作用 |
|---|---|
| df -h | disk free 显示磁盘剩余空间 |
| du -h [目录名] | disk usage 显示目录下的文件大小 |
进程信息
所谓 进程,通俗地说就是 当前正在执行的一个程序
| 命令 | 作用 |
|---|---|
| ps aux | 对应英文process status 表示查看进程的详细状况 |
| top | 动态显示运行中的进程并且排序 |
| kill [-9] 进程代号 | 终止指定代号的进程, -9 表示强行终止 |
ps 默认只会显示当前用户通过终端启动的应用程序
ps选项说明功能
| 选项 | 含义 |
|---|---|
| a | 显示终端上的所有进程,包括其他用户的进程 |
| u | 显示进程的详细状态 |
| x | 显示没有控制终端的进程 |
| e | 表示显示所有进程,包括僵尸进程。 |
| f | 对应英文 full-format 表示全格式,显示完整的信息 |
ps :
-a和-e选项在ps命令中都用于显示所有进程,但它们之间存在一些细微的差别:
- -a:显示所有终端的进程,包括其他用户的进程。它不会显示会话领导者的进程,也就是那些没有控制终端的进程。
- -e:显示所有进程,包括那些没有控制终端的进程。这意味着
-e选项会显示系统中所有的进程,而不仅仅是那些有控制终端的进程。简而言之,
-a选项会显示所有终端上的进程,而-e选项会显示所有进程,包括那些没有终端的进程。在大多数情况下,使用
-e选项可以获取最全面的进程列表。
我们常用
ps - ef | grep xx来显示类似 windows任务管理器的 感觉然后管道传输给 grep 筛选出来
提示:使用
kill命令时,最好只终止由当前用户开启的进程,而不要终止
root身份开启的进程,否则可能导致系统崩溃
2_2 . 远程管理
远程控制(ssh)
在 Linux 中 SSH(secure shell) 是非常常用的工具,通过 SSH 客户端 可以连接到运行了 SSH Server 服务的远程机器上
SSH 客户端是一种使用Secure Shell(SSH)协议连接到远程计算机的软件程序SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议
- 利用
SSH 协议可以有效防止远程管理过程中的信息泄露 - 通过
SSH 协议可以对所有传输的数据进行加密,也能够防止 DNS 欺骗和 IP 欺骗
- 利用
SSH的另一项优点是传输的数据可以是经过压缩的,所以可以加快传输的速度
SSH的简单使用
ssh [-p port] user@remoteuser是在远程机器上的用户名,如果不指定的话默认为当前用户remote是远程机器的地址,可以是IP/域名,或者是后面会提到的别名port是SSH Server监听的端口,如果不指定,就为默认值22
注意,如果在
Windows系统中无法使用,可以安装Git之类的工具。
SSH免密登录
前排提示:有关 SSH 配置信息都保存在用户家目录下的 .ssh 目录下
1、配置公钥:执行 ssh-keygen 即可生成 SSH 钥匙,一路回车即可
2、上传公钥到服务器:执行 ssh-copy-id -p port user@remote ,可以让远程服务器记住我们的公钥
配置别名
每次都输入 ssh -p port user@remote,时间久了会觉得很麻烦,特别是当 user、remote 和 port 都得输入,而且还不好记忆
而配置别名可以让我们进一步偷懒,譬如用:ssh ubuntu 来替代上面这么一长串,那么就在 ~/.ssh/config 里面追加以下内容:
Host ubuntu
HostName ip地址
User ubuntu
Port 22保存之后,即可用 ssh ubuntu 实现远程登录了,scp 同样可以使用
文件传输(scp)
scp 就是 secure copy ,是一个在 Linux 下用来进行远程拷贝文件的命令。它的地址格式与 ssh 基本相同,需要注意的是,在指定端口时用的是大写的 -P 而不是小写的。
| 选项 | 含义 |
|---|---|
| -r | 若给出的源文件是目录文件,则 scp 将递归复制该目录下 的所有子目录和文件,目标文件必须为一个目录名 |
| -P | 若远程 SSH 服务器的端口不是 22,需要使用大写字母 -P 选项指定端口 |
# 把本地当前目录下的 01.py 文件 复制到 远程 家目录下的 Desktop/01.py
# 注意:`:` 后面的路径如果不是绝对路径,则以用户的家目录作为参照路径
scp -P port 01.py user@remote:Desktop/01.py
# 把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下的 01.py
scp -P port user@remote:Desktop/01.py 01.py
# 加上 -r 选项可以传送文件夹
# 把当前目录下的 demo 文件夹 复制到 远程 家目录下的 Desktop
scp -r demo user@remote:Desktop
# 把远程 家目录下的 Desktop 复制到 当前目录下的 demo 文件夹
scp -r user@remote:Desktop demo3. 权限管理
3_1 . 文件权限
待更新~
3_2 . 用户权限
待更新~
4. vim
待更新~
