Skip to content

✨ 一. Linux 介绍


1. 操作系统

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

微信截图_20240913163444

没有安装操作系统的计算机,通常被称为裸机

  • 如果想在裸机上运行自己所编写的程序,就必须用机器语言书写程序。
  • 如果计算机上安装了操作系统,就可以在操作系统上安装支持的高级语言环境,用高级语言开发程序


2. 主流操作系统

操作系统优点缺点主要场景
windows1. 简单的界面
2. 丰富的软件
3. 最多的用户群体
4.很多的娱乐软件
一些开发工具无法使用
对开发者不是很友好
办公、娱乐
还可以的开发体验
mac1.良好的界面优化
2. 苹果生态的加持
3. 不错的开发体验
封闭的生态
一些娱乐、开发软件无法使用
日常办公
不错的开发体验
linux1.最好的开发体验
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,后来经过全世界的网友的帮助,最终能够兼容多种硬件
微信截图_20240913165025

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 镜像下载:

text
https://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. 购买服务器

【腾讯云】热门云产品首单特惠秒杀 点击购买

c8c0927acab85a723d1c0cf2f01c989

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


微信截图_20240913175850

配置参数解释:

cpu: 1核1G 就够用了。

带宽:带宽越大,打开网页、从服务器下载东西的速度越快

系统盘:够用就好,一般静态资源、数据库、缓存都是存到其他地方去

月流量:这个够用就好,300G 小公司网站都用不完,后续上 CDN 就更用不完了。在能够承受范围内,越大越好。

时长:优惠购买只能一次,能承受范围内,时长越长越好,配置越高越好。

微信截图_20240913180052

点击立即购买,然后提交订单并且付费就可以了。

然后从腾讯云点击进入轻量应用服务器进入管理页面

微信截图_20240913180442

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

be962e12e1c25bdd581741ae2f66c71

如果是第一次使用,记得点击右上角的重置密码,设置一下登录密码。



✨ 二. Linux操作

文件与目录

单用户操作系统和多用户操作系统(科普)

单用户操作系统:指一台计算机在同一时间只能由一个用户使用,一个用户独自享用系统的全部硬件和软件资源。Windows XP 之前的版本都是单用户操作系统,现在虽然 windows 已经实现了多用户系统,但是用的还是相对较少。

多用户操作系统:指一台计算机在同一时间可以由多个用户使用,多个用户共同享用系统的全部硬件和软件资源。Unix 和 Linux 的设计初衷就是多用户操作系统。


1. Win 和 Linux 区别

Windows 下,打开 “计算机”,我们看到的是一个个的驱动器盘符:

微信截图_20240913181945

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

微信截图_20240913182024

Linux 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录):

Ubuntu 没有盘符这个概念,只有一个根目录 /,所有文件都在它下面

微信截图_20240913182100

2. 用户目录

位于 /home/user,称之为用户工作目录或家目录,表示方式:

bash
/home/user

3. 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 命令

序号命令对应英文作用
01lslist查看当前文件夹下的内容
02pwdprint wrok directory查看当前所在文件夹
03cd [目录名]change directory切换文件夹
04touch [文件名]touch如果文件不存在,新建文件
05mkdir [目录名]make directory创建目录
06rm [文件名]remove删除指定文件名
07clearclear清屏

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)

创建一个新的目录

bash
mkdir day1

使用 -p 参数可以递归创建目录

bash
mkdir -p day1/code1

4_5. 删除目录

删除目录可以使用 rmdir 指令,但是我们更常用 rm -rf 文件/目录 的指令进行删除

rm 删除文件或目录。使用 rm 命令要小心,因为文件删除后不能恢复。

选项含义
-f强制删除,忽略不存在的文件,无需提示
-r递归地删除目录下的内容,删除文件夹时必须加此参数

4_6 . tree

tree 命令可以以树状图列出文件目录结构

选项含义
-d只显示目录


5. 文件常用命令

文件的常用命令包括基本的创建、修改、删除、移动、复制。并且对文件操作还可以使用文本编辑进行操作(nanovim)。


5_1. 创建文件


touch

创建文件或修改文件时间

  • 如果文件不存在,可以创建一个空白文件
  • 如果文件已经存在,可以修改文件的末次修改日期
bash
touch demo1.py

echo 文字内容

echo 会在终端中显示参数指定的文字,通常会和 > (重定向) 联合使用

bash
$ echo 'hello world !'
hello world !

重定向 >>>
  • Linux 允许将命令执行结果重定向到一个文件
  • 将本应显示在终端上的内容 输出/追加 到指定文件中

其中

  • > 表示输出,会覆盖文件原有的内容 (相当于w)
  • >> 表示追加,会将内容追加到已有文件的末尾 (相当于 a)
bash
$ 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对输出的所有行 编号

显示时同时显示行号 :

bash
cat -n

按页显示列表内容 :

bash
ls -al | more
bash
ps: -al : -a : 显示指定目录下所有的子目录与文件,包括隐藏文件
		  -l : 以列表的方式显示文件的详细信息
		  
	| : 管道符 : 前面 ls -al 获取到的内容通过管道走 more

只看前十行 :

bash
head -10 filename

显示文件第二行

bash
head -2 filename | tail -1
bash
ps: head -2 获取到前两行然后通过管道 | 传输给 tail -1 就是获取到第二行

显示文件倒数第五行 :

bash
tail -5 filename | head -1
bash
ps: tail -5 获取到后五行然后通过管道 | 传输给 head -1 就是获取到倒数第五行

查看两个文件间的差别 :

bash
diff file1 file2

动态显示文本最新信息 :

bash
tail -f crawler.log
bash
ps: -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 结束的行
bash
ps -ef | grep mysql
bash
ps: 命令中的 ps "process status" 的缩写,用于显示当前进程的状态。
	-e:表示显示所有进程。在某些系统中,这个选项可能不是必需的,因为 ps 默认可能已经显示所有进程。
	
	| grep mysql : 前面显示了所有进程,然后通过管道匹配mysql,查看当前进程有无mysql


5_3. 复制与移动


复制文件(cp)

cp 命令的功能是将给出的文件或目录复制到另一个文件或目录中

选项含义
-i覆盖文件前提示
-r若给出的源文件是目录文件,则cp将递归复制
该目录下的所有子目录和文件,目标文件必须
为一个目录名
bash
cp -r  原始文件/目录  目标文件/目录

移动文件(mv)

mv 命令可以用来 移动文件目录,也可以给 文件或目录重命名

选项含义
-i覆盖文件前提示
bash
mv -r  原始文件/目录  目标文件/目录


6 打包与压缩

打包压缩是日常工作中备份文件的一种方式

在不同操作系统中,常用的打包压缩方式是不同的

  • Windows 常用 rar
  • Mac 常用 zip
  • Linux 常用 tar.gz

tar

tar 是 Linux 中最常用的备份工具,此命令可以把一系列文件打包到一个大文件中,也可以把一个打包的大文件恢复成一系列文件,tar 的命令格式如下:

bash
# 打包文件
tar -cvf 打包文件.tar 被打包的文件/路径...

# 解包文件
tar -xvf 打包文件.tar

tar 选项说明 :

选项含义
c生成档案文件,创建打包文件
x解开档案文件
v列出归档解档的详细过程,显示进度
f指定档案文件名称,f 后面一定是 .tar 文件
所以必须放选项的最后(如 -cvf 打包文件.tar)

❗ 注意 : f 选项必须放在最后,其他选项顺序可以随意


gzip

targzip 命令结合可以使用实现文件打包和压缩

tar 只负责打包文件,但不压缩

gzip 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.gz

Linux 中,最常见的压缩文件格式就是 xxx.tar.gz

tar 命令中有一个选项 -z 可以调用 gzip ,从而可以方便的实现压缩和解压缩的功能

bash
# 压缩文件
tar -zcvf 打包文件.tar.gz 被压缩的文件/路径...

# 解压缩文件
tar -zxvf 打包文件.tar.gz

# 解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目标路径
选项含义
-C解压缩到指定目录,注意:要解压缩的目录必须存在


2. 系统管理

2_1. 常用命令


关机/重启

命令 (格式)对应英文作用
shutdown +选项 +时间shutdown关机/重新启动
  • shutdown 名可以安全关闭 或者 重新启动系统
选项含义
-r重新启动

提示:

  • 不指定选项和参数,默认表示 1 分钟之后 关闭电脑
  • 远程维护服务器时,最好不要关闭系统,而应该重新启动系统

常用命令示例

bash
# 重新启动操作系统,其中 now 表示现在
shutdown -r now

# 立刻关机,其中 now 表示现在
shutdown now

# 系统在今天的 20:25 会关机
shutdown 20:25

# 系统再过十分钟后自动关机
shutdown +10

# 取消之前指定的关机计划
shutdown -c


网卡信息


ifconfig

ifconfig 可以查看/配置计算机当前的网卡配置信息

bash
# 查看网卡配置信息
ifconfig

# 查看网卡对应的 IP 地址
ifconfig | grep inet

提示:一台计算机中有可能会有一个 物理网卡 和 多个虚拟网卡,

在 Linux 中物理网卡的名字通常以 ensXX 表示

  • 127.0.0.1 被称为 本地回环/环回地址,一般用来测试本机网卡是否正常


ping
bash
# 检测到目标主机是否连接正常
ping IP地址

# 检测本地网卡工作正常
ping 127.0.0.1
  • ping 一般用于检测当前计算机到目标计算机之间的网络是否通畅,数值越大,速度越慢

ps : 数值为目标计算机返回数据包的时间(单位ms), 数值越大即时间越久即速度慢...

  • ping 的工作原理与潜水艇的声纳相似,ping 这个命令就是取自声纳的声音
  • 网络管理员之间也常将 ping 用作动词 —— ping 一下计算机X,看他是否开着

原理:网络上的机器都有唯一确定的 IP 地址,我们给目标 IP 地址发送一个数据包,

对方就要返回一个数据包,根据返回的数据包以及时间,我们可以确定目标主机的存在



时间和日期

命令作用
date查看系统时间
calcalendar 查看日历,-y 选项可以查看一年的日历


磁盘信息

命令作用
df -hdisk 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 命令中都用于显示所有进程,但它们之间存在一些细微的差别:

  1. -a:显示所有终端的进程,包括其他用户的进程。它不会显示会话领导者的进程,也就是那些没有控制终端的进程。
  2. -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的简单使用
bash
ssh [-p port] user@remote
  • user 是在远程机器上的用户名,如果不指定的话默认为当前用户
  • remote 是远程机器的地址,可以是 IP/域名,或者是后面会提到的别名
  • portSSH Server 监听的端口,如果不指定,就为默认值 22

注意,如果在 Windows 系统中无法使用,可以安装 Git 之类的工具。


SSH免密登录

前排提示:有关 SSH 配置信息都保存在用户家目录下的 .ssh 目录下

1、配置公钥:执行 ssh-keygen 即可生成 SSH 钥匙,一路回车即可

2、上传公钥到服务器:执行 ssh-copy-id -p port user@remote ,可以让远程服务器记住我们的公钥


配置别名

每次都输入 ssh -p port user@remote,时间久了会觉得很麻烦,特别是当 userremoteport 都得输入,而且还不好记忆

而配置别名可以让我们进一步偷懒,譬如用:ssh ubuntu 来替代上面这么一长串,那么就在 ~/.ssh/config 里面追加以下内容:

bash
Host ubuntu
    HostName ip地址
    User ubuntu
    Port 22

保存之后,即可用 ssh ubuntu 实现远程登录了,scp 同样可以使用



文件传输(scp)

scp 就是 secure copy ,是一个在 Linux 下用来进行远程拷贝文件的命令。它的地址格式与 ssh 基本相同,需要注意的是,在指定端口时用的是大写的 -P 而不是小写的。

选项含义
-r若给出的源文件是目录文件,则 scp 将递归复制该目录下
的所有子目录和文件,目标文件必须为一个目录名
-P若远程 SSH 服务器的端口不是 22,需要使用大写字母 -P 选项指定端口
bash
# 把本地当前目录下的 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 demo


3. 权限管理

3_1 . 文件权限

待更新~



3_2 . 用户权限

待更新~



4. vim

待更新~