Linux超详细笔记

文章目录

Linux学习笔记

操作系统

操作系统是计算机软件的一种,它主要负责:

作为用户和计算机硬件之间的桥梁,调度和管理计算机硬件进行工作。

Linux初识

Linux的诞生

Linux创始人:林纳斯托瓦兹

Liux诞生于1991年,作者上大学期间

因为创始人在上大学期间经常需要浏览新闻和处理邮件,发现现有的操作系统不好用,于是他决心自己写一个保护模式下的操作系统,这就是Liux的原型,当时他21岁,后来经过全世界网友的支持,现在能够兼容多种硬件,成为最为流行的服务器操作系统之一。

Linux内核

Linux系统的组成如下:

  • Linux系统内核

  • 系统级应用程序

  • 内核提供系统最核心的功能,如:调度CPU、调度内存、调度文件系统、调度网络通讯、调度IO等。

  • 系统级应用程序,可以理解为出厂自带程序,可供用户快速上手操作系统,如:文件管理器、任务管理器、图片查看、音乐播放等。

无论是系统程序还是第三方程序,都是通过调度内核完成硬件的调度。

可以看出,内核是Liux操作系统最核心的所在,系统级应用程序只是锦上添花.

Liux内核是免费开源的,任何人都可以下载内核源码并查看且修改。

可以通过:https://www.kernel.org去下载Linux内核.

Linux发行版

任何人都可以封装Linux,目前市面上由非常多的Linux发行版。最火热的是CentOS和ubuntu。

虚拟机

借助虚拟化技术,我们可以在系统中,通过软件:模拟计算机硬件,并给虚拟硬件安装真实的操作系统。

VMware安装

Vmware17下载地址:(包括激活方法)

https://pan.baidu.com/s/1SPJb9klDfeMHSNnVGh0puA?pw=63cc

安装完成之后,检查网络适配器,是否出现Vmware1和Vmware8

CentOS下载链接

https://vault.centos.org/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso

远程连接Linux系统

对于操作系统的使用,有2种使用形式:

  • 图形化页面使用操作系统
  • 以命令的形式使用操作系统

不论是Windows还是Linux亦或是MacOS系统,都是支持这两种使用形式。

  • 图形化:使用操作系统提供的图形化页面,以获得图形化反馈的形式去使用操作系统。
  • 命令行:使用操作系统提供的各类命令,以获得字符反馈的形式去使用操作系统。

尽管图形化是大多数人使用计算机的第一选择,但是在Linux操作系统上,这个选择被反转了。

无论是企业开发亦或是个人开发,使用Linux操作系统,多数都是使用的:命令行。

这是因为:

  • Linux从诞生至今,在图形化页面的优化上,并未重点发力。所以Linux操作系统的图形化页面:不好用、不稳定。
  • 在开发中,使用命令行形式,效率更高,更加直观,并且资源占用低,程序运行更稳定。

FinalShell

我们使用VMware可以得到Linux虚拟机,但是在VMware中操作Linux的命令行页面不太方便,主要是:

  • 内容的复制、粘贴跨越VMware不方便
  • 文件的上传、下载跨越VMware不方便
  • 也就是和Linux系统的各类交互,跨越VMware不方便

我们可以通过第三方软件,FinalShell,远程连接到Linux操作系统之上。

并通过FinalShell去操作Linux系统。

这样各类操作都会十分的方便。

FinalShell下载地址http://www.hostbuf.com/downloads/finalshell_install.exe

FinalShell连接Linux
  1. 在虚拟机右键打开命令行窗口
  1. 在命令行输入 ifconfig


​ 可以看到我们的虚拟ip地址为192.168.211.128

  1. 打开finalshell,依次点击

最后,打开就能看到如下界面

当我们因为关机等原因导致ip地址发生变换的时候,我们可以修改finalshell的连接地址

WSL配置Ubuntu

WSL :Windows Subsystem for Linux,是用于Windows.系统之上的Linux子系统。

作用很简单,可以茌Windows系统中获得Linux系统环境,并完全直连计算机硬件,无需通过虚拟机虚拟硬件。

步骤:

  1. 打开应用与功能设置,点击右上角的程序与功能
  1. 点击启用或关闭Windows功能
  1. 在适用于Linux的Windows子系统前打勾,然后一定要重启电脑。
  1. 在微软商店下载ubuntu。

Linux常用命令

  • 在Linux系统中,路径之间的层级关系,使用:/来表示
  • 在Windows系统中,路径之间的层级关系,使用:\来表示

1.入门

无论是什么命令,用于什么用途,在Liux中,命令有其通用的格式:

command -options parameter*

  • command:命令本身
  • -options:可选,非必填命令的一些选项,可以通过选项控制命令的行为细节
  • parameter:可选,非必填命令的参数,多数用于命令的指向目标等

2.ls命令

ls命令的作用是列出目录下的内容,语法细节如下:

ls -a -l -h linux路径

  • -a -l -h是可选的选项
  • Linux路径是此命令可选的参数

当不使用选项和参数,直接使用ls命令本体,表示:以平铺形式,列出当前工作目录下的内容

  1. ls命令的作用是?
    在命令行中,以平铺的形式,展示当前工作目录(默认HOME目录)下的内容(文件或文件夹)
  2. HOME目录是?
    每一个用户在Linux系统的专属目录,默认在:/home/用户名
  3. 当前工作目录?
    Linux命令行在执行命令的时候,需要一个工作目录,打开命令行程序(终端)默认设置工作目录在用户的HOME目录

-a选项

-a选项,表示:all的意思,即列出全部文件(包含隐藏的文件/文件夹)

-l选项

-l选项,表示:以列表(竖向排列)的形式展示内容,并展示更多信息

-h选项

展示文件大小单位,必须要搭配-l一起使用

选项的组合使用

bash 复制代码
ls -l -a
ls -al
ls -la

意思是相同的,都是表示以列表的形式展示目录,并展示隐藏文件信息。

cd命令

当Linux终端(命令行)打开的时候,会默认以用户的HOME目录作为当前的工作目录

我们可以通过cd命令,更改当前所在的工作目录。

cd命令来自英文:Change Directory

语法:cd Linux路径

  • cd命令无需选项,只有参数,表示要切换到哪个目录下
  • cd命令直接执行,不写参数,表示回到用户的HOME目录

3.pwd命令

通过s来验证当前的工作目录,其实是不恰当的。

我们可以通过pWd命令,来查看当前所在的工作目录。

pwd命令来自:Print Work Directory

语法:pwd

  • pwd命令,无选项,无参数,直接输入pwd即可

4.相对路径和绝对路径

  • 绝对路径:以根目录为起点,描述路径的一种写法,路径描述以/开头
  • 相对路径:以当前目录为起点,描述路径的一种写法,路径描述无需以/开头

特殊路径符:

  • . 表示当前目录,比如cd ./Desktop表示切换到当前目录下的Desktop目录内,和cd Desktop效果一致
  • ... 表示上一级目录,比如:cd... 即可切换到上一级目录,cd .../... 切换到上二级的目录
  • ~ 表示HOME目录,比如:cd ~即可切换到HOME目录或cd ~/Desktop,切换到HOME内的Desktop目录

5.mkdir命令

  1. mkdir命令的语法和功能
  • mkdir用以创建新的自录(文件夹)

  • 语法:mkdir -p Linux路径

  • 参数必填,表示要创建的目录的路径,相对、绝对、特殊路径符都可以使用

  1. -p选项的作用

    可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录

注意:创建文件夹需要修改权限,请确保操作均在HOME目录内,不要在HOME外操作 涉及到权限问题,HOME外无法成功 后续我们会讲解权限管控的知识

6.文件操作命令

(1)touch创建文件

可以通过touch命令创建文件

语法:touch Linux路径

  • touch命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用
(2)cat查看文件内容

准备好文件内容后,可以通过cat查看内容。

语法:cat Linux路径

cat同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用

(3)more查看文件内容

more命令同样可以查看文件内容,同cat不同的是:

  • cat是直接将内容全部显示出来
  • more支持翻页,如果文件内容过多,可以一页页的展示

语法:more Linux路径

同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用

Linux系统内置有一个文件,路径为:/etc/services,可以使用more命令查看

more /etc/services

  • 在查看的过程中,通过空格翻页

  • 通过q退出查看

(4)cp复制文件文件夹

cp命令可以用于复制文件\文件夹,cp命令来自英文单词:copy

语法:cp -r 参数1 参数2

  • -r选项,可选,用于复制文件夹使用,表示递归
  • 参数1,Linux路径,表示被复制的文件或文件夹
  • 参数2,Linux路径,表示要复制去的地方
(5)mv移动文件或文件夹

mv命令可以用于移动文件\文件夹,mv命令来自英文单词:move

语法:mv 参数1 参数2

  • 参数1,Linux路径,表示被移动的文件或文件夹
  • 参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名(即有重命名的效果),确保目标存在
(6)rm删除文件、文件夹

rm命令可用于删除文件、文件夹

rm命令来自英文单词:remove

语法:rm -r -f 参数1 参数2 ... 参数N

  • 同cp命令一样,-r 选项用于删除文件夹

  • -f表示force,强制删除(不会弹出提示确认信息)

  • 普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示

所以一般普通用户用不到-选项

参数1、参数2、、参数N表示要删除的文件或文件夹路径,按照空格隔开

rm命令支持通配符*,用来做模糊匹配

符号*表示通配符,即匹配任意内容(包含空),示例:

  • test*,表示匹配任何以test开头的内容

  • *test,表示匹配任何以test结尾的内容

  • *test*,表示匹配任何包含test的内容

  • 可以通过su - root,并输入密码******(和普通用户默认一样)临时切换到root用户体验

  • 通过输入ext命令,退回普通用户。(临时用root,用完记得退出,不要一直用

7.which命令

Linux命令,其实它们的本体就是一个个的二进制可执行程序。

和Windows系统中的.exe文件,是一个意思。

我们可以通过Which命令,查看所使用的一系列命令的程序文件存放在哪里

语法:which 要查找的命令

8.find命令

  1. 按文件名查找

在Linux系统中,我们可以通过find命令去搜索指定的文件。

语法:find 起始路径 -name "被查找文件名"

find语法支持通配符

最好在root用户下查找

  1. 按文件大小查找

语法:find 起始路径 -size +| -n kMG

  • +、-表示大于和小于
  • n表示大小数字
  • k,M,G表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB

示例:

  • 查找小于10KB的文件:find / -size -10k
  • 查找大于100MB的文件:
  • 查找大于1GB的文件:find / -size +1G

9.grep命令

可以通过grep命令,从文件中通过关键字过滤文件行。

语法:grep -n 关键字 文件路径

  • 选项-n,可选,表示在结果中显示匹配的行的行号。
  • 参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用" "将关键字包围起来
  • 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口

10.wc命令做数量统计

可以通过wc命令统计文件的行数、单词数量等

语法:wc -c -m -l -w 文件路径

  • 选项,-c,统计bytes数量
  • 选项,-m,统计字符数量
  • 选项,-l,统计行数
  • 选项,-w,统计单词数量
  • 参数,文件路径,被统计的文件,可作为内容输入端口

11.管道符 |

管道符的含义是:将管道符左边命令的结果,作为右边命令的输入

例如:

12.echo命令(输出命令)

可以使用echo命令在命令行内输出指定内容

语法:echo 输出的内容

  • 无需选项,只有一个参数,表示要输出的内容,复杂内容可以用" "包围

13.反引号

看一下如下命令:echo pwd

本意是想,输出当前的工作路径,但是pwd被作为普通字符输出了。

我们可以通过将命令用反引号(通常也称之为飘号)`将其包围

被包围的内容,会被作为命令执行,而非普通字符

14.重定向符

重定向符:>和>>

> 将左侧命令的结果,覆盖写入到符号右侧指定的文件中

>> 将左侧命令的结果,追加写入到符号右侧指定的文件中

15.tail命令

使用tail命令,可以查看文件尾部内容,跟踪文件的最新更改,语法如下:
tail -f -num Linux路径

  • 参数,Linux路径,表示被跟踪的文件路径
  • 选项,-f,表示持续跟踪
  • 选项,-num,表示,查看尾部多少行,不填默认10行

16.Vi编辑器

  1. 什么是vi/vim编辑器?
    vi|vim编辑器,就是命令行模式下的文本编辑器,用来编辑文件
    vim是vi的升级版,一般用vim即可,包含全部vi功能
  2. 基础命令
    vi 文件路径
    vim 文件路径
  3. 工作模式
(1)命令模式快捷键


(2)底线命令快捷键

Linux用户和权限

1.root用户

root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。

例如:普通用户无法在home目录外创建文件夹,而root用户可以。

su命令和exit命令

su命令就是用于账户切换的系统命令,其来源英文单词:Switch User

语法:su - 用户名

  • -符号是可选的,表示是否在切换用户后加载环境变量,建议带上
  • 参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root
  • 切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl+d
sudo命令

sudo命令可以让用户执行命令时临时获得root权限。

语法:sudo 其它命令

  • 在其它命令之前,带上sudo,即可为这一条命令临时赋予root授权
  • 但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证

为普通用户配置sudo认证

切换到root用户,执行visudo命令,会自动通过vi编辑器打开:etc/sudoers

在文件的最后添加:

sh 复制代码
用户名 ALL=(ALL)	NOPASSWD:ALL

其中用户名指为哪个用户配置,最后的NOPASSWD:ALL表示使用sudo命令,无需输入密码

最后通过:wq保存

切换回普通用户

执行的命令,均以root运行

2.用户、用户组

Linux系统中可以:

  • 配置多个用户
  • 配置多个用户组
  • 用户可以加入多个用户组中

Linux中关于权限的管控级别有2个级别,分别是:

  • 针对用户的权限控制
  • 针对用户组的权限控制
用户组管理

以下命令需root用户执行

  • 创建用户组
    groupadd 用户组名
  • 删除用户组
    groupdel 用户组名
用户管理

以下命令需root用户执行

  • 创建用户
    useradd -g-d 用户名

    • 选项:一g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g

    • 选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名

  • 删除用户
    userdel -r 用户名

    • 选项:-r,删除用户的HOME目录,不使用-r,别除用户时,HOME目录保留
    记录问题(userdel失效):
    sh 复制代码
    userdel: user test2 is currently used by process 59661

    这个的原因是切换回root用户之后,test2用户还被某个进程占用。

    解决方案:ctrl+d(退出当前用户)

    第一次使用ctrl+d退出root用户,回到test用户;第二次使用ctrl+d退出test2用户,此时会返回到root用户(再按ctrl+d退出登陆连接),此时使用userdel test2 正常删除。

  • 查看用户所属组
    id 用户名

    ​ 在root下可以查看别的用户

    • 参数:用户名,被查看的用户,如果不提供则查看自身
  • 修改用户所属组
    usermod -aG 用户组 用户名,将指定用户加入指定用户组

  • getent

    1. 查看系统中的用户组

​ 语法:getent passwd

​ 用户名:密码(X):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)

​ 2. 查看系统中的用户组

​ 语法:getent group

3.查看权限控制信息

认知权限信息

通过ls -l 可以以列表形式查看内容,并显示权限细节。

  • 序号1,表示文件、文件夹的权限控制信息
  • 序号2,表示文件、文件夹所属用户
  • 序号3,表示文件、文件夹所属用户组

权限细节总共10个槽位

rwx

r:read读取权限, w:write写入权限, x:execute执行权限

  • r,针对文件可以查看文件内容
    • 针对文件夹,可以查看文件夹内容,如ls 命令
  • w,针对文件表示可以修改此文件
    • 针对文件夹,可以在文件夹内:创建、删除、改名等操作
  • x,针对文件表示可以将文件作为程序执行
    • 针对文件夹,表示可以更改工作目录到此文件夹,即cd进入

4.修改权限信息

chmod命令

使用chmod命令,修改文件、文件夹的权限信息。
注意,只有文件、文件夹的所属用户或root用户可以修改。

语法:chmod -R 权限 文件或文件夹

  • 选项:-R,对文件夹内的全部内容应用同样的操作

示例:

  • chmod u=rwx,g=rx,o=x hello.txt,将文件权限修改为:rwxr-x--x
  • 其中:u表示user所属用户权限,g表示group组权限,o表示other其它用户权限

权限的数字序号

权限可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。

数字的细节如下:r记为4,w记为2,x记为1,可以有:

  • 0:无任何权限,即---
  • 1:仅有x权限,即--x
  • 2:仅有w权限,即-w-
  • 3:有w和x权限,即-wx
  • 4:仅有权限,即r--
  • 5:有r和x权限,即r-x
  • 6:有r和w权限,即rw-
  • 7:有全部权限,即rwx

例如:chmod 731 text.txt 表示修改text.txt的权限为对于所属用户有全部权限,对所属用户组有写入和执行权限,对其他用户仅有执行权限

chown命令

使用chown命令,可以修改文件、文件夹的所属用户和用户组
普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行

语法:chown -R 用户 : 用户组 文件或文件夹

  • 选项,-R,同chmod,对文件夹内全部内容应用相同规则
  • 选项,用户,修改所属用户
  • 选项,用户组,修改所属用户组
  • :用于分隔用户和用户组

示例:

  • chown root hello.txt,将hello.txt所属用户修改为root
  • chown :root hello.txt,将hello.txt所属用户组修改为root
  • chown root:gunala hello.txt,将hello.txt所属用户修改为root,用户组修改为gunala
  • chown -R root test,将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则

Linux实用操作

1.常用快捷键

  1. ctrl+c强制停止
  2. ctrl+d退出登出
  3. history查看历史命令
  4. !命令前缀,自动匹配上一个命令
  5. ctrl+r,搜索历史命令
  6. ctrl+a|e,光标移动到命令开始或结束
  7. ctl+←|→,左右跳单词
  8. ctrl+l或clear命令清屏

2.软件安装

yum命令

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

语法:yum -y install remove search 软件名称

选项:

  1. -y,自动确认,无需手动确认安装或卸载过程
  2. install::安装
  3. remove:卸载
  4. search:搜索

yum命令需要root权限哦,可以su切换到root,或使用sudo提权。 yum命令需要联网

3.systemctl命令

Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启

能够被systemctl管理的软件,一般也称之为:服务

语法:systemctl start|stop|status|enable|disable 服务名

  • start启动
  • stop关闭
  • status查看状态
  • enable开启开机自启
  • disable关闭开机自启

系统内置的服务比较多,比如:

  • NetworkManager,主网络服务
  • network,副网络服务
  • firewalld,防火墙服务
  • sshd,ssh服务(FinalShell远程登录Linux使用的就是这个服务)

4.ln软链接

在系统中创建软链接,可以将文件、文件夹链接到其它位置。

类似Windows系统中的《快捷方式》

语法:ln -s 参数1 参数2

-s选项,创建软连接

  • 参数1:被链接的文件或文件夹
  • 参数2:要链接去的目的地

实例:

  • In-s /etc/yum.conf ~/yum.conf
  • In -s /etc/yum ~/yum

5.Date命令

通过date命令可以在命令行中查看系统的时间

语法:date -d +格式化字符串

  • -d按照给定的字符串显示日期,一般用于日期计算

  • 格式化字符串:通过特定的字符串标记,来控制显示的日期格式

    • %Y年

    • %y年份后两位数字

    • %m月份(01,12)

    • %d日(01,31)

    • %H小时(00,23)

    • %M分钟(00,59)

    • %S秒(00,60)

    • %s自1970-01-01 00:00:00 UTC 到现在的秒数

例如:显示2024-01-01 00:00:00的格式的日期

由于日期与时间之间有空格,会被错认为是额外的操作数。所以可以在格式化的字符串上加上字符串标识符""

-d选项,可以按照给定的字符串显示日期,一般用于日期计算

bash 复制代码
date -d "+1 day" +%Y%m%d
#显示后一天的日期
date -d "-1 day" +Y%m%d
#显示前一天的日期
date -d "-1 month" +Y%m%d
#显示上一月的日期
date -d "+1 month" +Y%m%d
#显示下一月的日期
date -d "-1 year" +%Y%m%d
#显示前一年的日期
date -d "+1 year" +%Y%m%d
#显示下一年的日期

其中支持的时间标记为:

  • year年
  • month月
  • day天
  • hour小时
  • minute分钟
  • second秒

-d 选项可以和格式化字符串配合一起使用哦

修改时区

在linux系统中默认时区是UTC,如何更改成东八区时区呢?

使用root权限,执行如下命令:

bash 复制代码
rm -f /etc/localtime

sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntp程序

我们可以通过ntp程序自动校准系统时间

安装ntp:

bash 复制代码
yum-y install ntp

启动并设置开机自启:

bash 复制代码
systemctl start ntpd
systemctl enable ntpd

当ntpd启动后会定期的帮助我们联网校准系统的时间

也可以手动校准(需root权限):

bash 复制代码
ntpdate-u ntp.aliyun.com

6.ip地址和主机名

ifconfig

在linux系统中,可以通过ifconfig指令来查看当前主机的ip地址

可以看到左边有三个网卡:ens33是主网卡,lo是回环网卡,vir是虚拟网卡

其中,我们只需要关心主网卡就行了。

主机名

可以使用命令:hostname 查看主机名

可以使用命令:hostnamectl set-hostname 主机名 ,修改主机名(需root)

域名解析

访问www.baidu.com的流程如下:

因为是先访问本机中的host文件,查看是否存在映射,所以可以在host文件中配置映射关系。

例如:打开windows下的C:\Windows\System32\drivers\etc\hosts文件。

在其中输入linux的ip地址和自定义的域名

再打开finalshell的连接设置,将主机字段修改成配置的域名

最后重新连接,连接成功!

7.配置linux的固定ip

  1. 选择Vmnet8,注意一定要打开管理员权限,才能修改(点击窗口左下角带盾牌的"更改设置")

  1. 网关修改成如下:

  2. 确认完后,重启虚拟机。在命令行中切换管理员,打开以下文件:

  3. 添加修改如下:

    ZONE=public
    IPADDR="192.168.88.138"
    NETMASK="255.255.255.0"
    GETWAY="192.168.88.2"
    DNS1="192.168.88.2"

  4. 最后重启network服务

    复制代码
    systemctl stop network
    systemctl start network

8.ping命令

可以通过pig命令,检查指定的网络服务器是否是可联通状态

语法:ping -c num ip或主机名

选项:-c,检查的次数,不使用-c选项,将无限次数持续检查

参数:ip或主机名,被检查的服务器的ip地址或主机名地址

记录问题:网络无法到达

解决办法:首先检查上一步固定ip是否有误

bash 复制代码
vi /etc/sysconfig/network-scripts/ifcfg-ens33

重启网络:

bash 复制代码
systemctl restart network

如果没有问题,检查网关:

  1. 查看网卡

    bash 复制代码
    nmcli connection show
  2. 查看网关

    bash 复制代码
    service NetworkManager stop
    route -n

​ 若如图未配置正确,

bash 复制代码
route add default gw 000.000.000.000
route -n

这里000.000.000.000是指你自己上一步在固定ip时配置的网关

​ 最后应该就没问题了

9.wget命令

wgt是非交互式的文件下载器,可以在命令行内下载网络文件

语法:wget -b url

  • 选项:-b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件
  • 参数:url,下载链接

10.curl命令

该命令既可以发送网络请求,也可以下载文件

语法:curl -O url

-,表示下载文件

11.端口

端口,是设备与外界通讯交流的出入口。端口可以分为:物理端口和虚拟端口两类

  • 物理端口:又可称之为接口,是可见的端口,如USB接口,RJ45网口,HDM端口等
  • 虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的

端口就是锁定计算机上的程序,比如ip就是小区,程序就是住户,而端口就是门牌号

Liux系统是一个超大号小区,可以支持65535个端口,这6万多个端口分为3类进行使用:

  • 公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端口。非特殊需要,不要占用这个范围的端口
  • 注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序服务
  • 动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用。
查看端口占用

可以通过Liux命令去查看端口的占用情况

  1. 使用nmap命令,安装nmap: yum -y install nmap

    语法nmap被查看的IP地址

  2. 可以通过netstat命令,查看指定端口的占用情况

    语法:netstat -anp | grep 端口号 ,安装netstat:yum -y install net-tools

    其实就是查找所有端口,然后过滤出对应的端口还有进程

12.进程

程序运行在操作系统中,是被操作系统所管理的。

为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程

并会为每一个进程都分配一个独有的:进程ID(进程号)

查看进程

可以通过ps命令查看Linux系统中的进程信息

语法:ps -e-f

  • 选项:-e,显示出全部的进程
  • 选项:-f,以完全格式化的形式展示信息(展示全部信息)

一般来说,固定用法就是:ps -ef列出全部进程的全部信息

从左到右分别是:

  • UD:进程所属的用户D
  • PD:进程的进程号D
  • PPD:进程的父D(启动此进程的其它进程)
  • C:此进程的CPU占用率(百分比)
  • STIME:进程的启动时间
  • TTY:启动此进程的终端序号,如显示?,表示非终端启动
  • TIME:进程占用CPU的时间
  • CMD:进程对应的名称或启动路径或启动命令
搜索某个进程

配合管道符和grep命令可以实现查找某个进程

关闭进程

在Linux中,可以通过kill命令关闭进程。

语法:kill -9 进程ID

选项:-9,表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制。

13.主机状态监控

top命令(查看系统状态)

用法:top

详解

  • PID:进程id
  • USER:进程所属用户
  • PR:进程优先级,越小越高
  • NI:负值表示高优先级,正表示低优先级
  • VIRT:进程使用虚拟内存,单位KB
  • RES:进程使用物理内存,单位KB
  • SHR:进程使用共享内存,单位KB
  • S:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态)
  • %CPU:进程占用CPU率
  • %MEM:进程占用内存率
  • TIME+:进程使用CPU时间总计,单位1O毫秒
  • COMMAND:进程的命令或名称或程序文件骆径

选项:

top命令也支持选项:

选项 功能
-p 只显示某个进程的信息
-d 设置刷新时间,默认是5s
-c 显示产生进程的完整命令,默认是进程名
-n 指定刷新次数,比如top-n3,刷新输出3次后退出
-b 以非交互非全屏模式运行,以批次的方式执行top,一般配合-指定输出几次统计信息,将输出重定向到指定文件,比如top-b-n3>/tmp/top.tmp
-i 不显示任何闲置(idle)或无用(zombie)的进程
-u 查找特定用户启动的进程

当top以交互式运行(非-b选项启动),可以用以下交互式命令进行控制

按键 功能
h键 按下h键,会显示帮助画面
c键 按下C键,会显示产生进程的完整命令,等同于-c参数,再次按下c键,变为默认显示
f键 按下f键,可以选择需要展示的项目
M键 按下M键,根据驻留内存大小(RES)排序
P键 按下P键,根据CPU使用百分比大小进行排序
T键 按下T键,根据时间/累计时间进行排序
E键 按下E键,切换顶部内存显示单位
e键 按下e键,切换进程内存显示单位
l键 按下l键,切换显示平均负载和启动时间信息。
i键 按下i键,不显示闲置或无用的进程,等同于-1参数,再次按下,变为默认显示
t键 按下t键,切换显示CPU状态信息
m键 按下m键,切换显示内存信息
磁盘监控
  1. df命令

用法:df -h

选项:-h,以更人性化的单位显示

  1. iostat命令

可以使用iostat查看CPU、磁盘的相关信息

语法:iostat -x num1 num2

  • 选项:-X,显示更多信息
  • num1:数字,刷新间隔,num2:数字,刷新几次
网络监控

可以使用sar命令查看网络的相关统计(sar命令非常复杂,这里仅简单用于统计网络)

语法:sar -n DEV num1 num2

  • 选项:-n,查看网络,DEV表示查看网络接口
  • num1:刷新间隔(不填就查看一次结束),num2:查看次数(不填无限次数)

信息解读:

  • IFACE本地网卡接▣的名称
  • xpck/s每秒钟接受的数据包
  • txpck/s每秒钟发送的数据包
  • xKB/S每秒钟接受的数据包大小,单位为KB
  • tKB/S每秒钟发送的数据包大小,单位为KB
  • rxcmp/s每秒钟接受的压缩数据包
  • txcmp/s每秒钟发送的压缩包
  • xmcst/s每秒钟接收的多播数据包

14.环境变量

env命令可以查看系统中所有的环境变量,环境变量是一种keyValue的结构。

环境变量:PATH

我们说无论当前工作目录是什么,都能执行/usr/bin/cd这个程序,这个就是借助环境变量中:

PATH这个项目的值来做到的。

PATH记录了系统执行任何命令的搜索路径,如上图记录了(路径之间以:隔开):

  • /usr/local/bin
  • /usr/bin
  • /usr/local/sbin
  • /usr/sbin
  • /home/gunala/.local/bin
  • /home/gunala/bin

当执行任何命令,都会按照顺序,从上述路径中搜索要执行的程序的本体

${}符号(取到value值)

可以使用{}包裹

自定义环境变量

Liux环境变量可以用户自行设置,其中分为:

临时设置:语法:export 变量名=变量值

永久生效:

  • 针对当前用户生效,配置在当前用户的:~/.bashrc文件中
  • 针对所有用户生效,配置在系统的:/etc/profile文件中(必须要有root权限
  • 并通过语法source 配置文件,进行立刻生效,或重新登录FinalShell:生效

环境变量PATH这个项目里面记录了系统执行命令的搜索路径。

这些搜索路径我们也可以自行添加到PATH中去。

测试:

  • 在当前HOME目录内创建文件夹,myenv,在文件夹内创建文件mkhaha
  • 通过vim编辑器,在mkhaha文件内填入:echo 哈哈哈哈哈

完成上述操作后,随意切换工作目录,执行mkhaha命令尝试一下,会发现无法执行

这是因为刚创建的文件没有执行权限 ,所以要使用chmod 755 mkhaha修改一下权限

修改PATH的值:

  • 临时修改PATH:export PATH=$PATH:/home/gunala/myenv,再次执行mkhaha,无论在哪里都能执行了
  • 或将export PATH:=$PATH:/home/gunala/myenv,填入用户环境变量文件或系统环境变量文件中去

15.上传和下载

我们可以通过FinalShell工具,方便的和虚拟机进行数据交换。

在FinalShell软件的下方窗体中,提供了Linux的文件系统视图,可以方便的:

  • 浏览文件系统,找到合适的文件,右键点击下载,即可传输到本地电脑
  • 浏览文件系统,找到合适的目录,将本地电脑的文件拖拽进入,即可方便的上传数据到Linux中
rz、sz命令

当然,除了通过FinalShell的下方窗体进行文件的传输以外,也可以通过rz、sz命令进行文件传输。

rz、sz命令需要安装,可以通过:**yum -y install Irzsz,**即可安装。

  • rz命令,进行上传,语法:直接输入rz即可
  • sz命令进行下载,语法:sz 要下载的文件

文件会自动下载到桌面的:fsdownload文件夹中。

16.压缩和解压

tar命令

Linux和Mac系统常用有2种压缩格式,后缀名分别是:

  • .tar,称之为tarball,归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单
  • 的封装
  • .gz,也常见为.tar.gz,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的
  • 体积

针对这两种格式,使用tar命令均可以进行压缩和解压缩的操作

语法:tar -c-v-x-f-z-C 参数1 参数2...

参数N:

  • -c,创建压缩文件,用于压缩模式
  • -v,显示压缩、解压过程,用于查看进度
  • -x,解压模式
  • -f,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个
  • -z,gzip模式,不使用-z就是普通的tarball格式
  • -C,选择解压的目的地,用于解压模式

压缩

tar的常用组合为:

bash 复制代码
tar -cvf test.tar 1.txt 2.txt 3.txt

将1.txt2.tbt3.txt压缩到test.tar文件内

bash 复制代码
tar -zcvf test.tar.gz 1.txt 2.txt 3.txt

将1.txt 2.txt 3.txt压缩到test.tar.gz文件内,使用gzip模式

注意

  • -z选项如果使用的话,一般处于选项位第一个
  • -f选项,必须在选项位最后一个

解压

常用的tar解压组合有

bash 复制代码
tar -xvf test.tar

解压test.tar,将文件解压至当前目录

bash 复制代码
tar -xvf test.tar -C /home/gunala

解压test.tar,将文件解压至指定目录(/home/gunala)

bash 复制代码
tar -zxvf test.tar.gz -C /home/gunala

以gzip模式解压test.tar.gz,将文件解压至指定目录(/home/gunala)

注意:

  • -f选项,必须在选项组合体的最后一位
  • -z选项,建议在开头位置
  • -C选项单独使用,和解压所需的其它参数分开
zip命令解压

可以使用zip命令,压缩文件为zip压缩包

语法:zip -r 参数1 参数2··参数N

  • -r,被压缩的包含文件夹的时候,需要使用-r选项

压缩

示例:

bash 复制代码
zip test.zip a.txt b.txt c.txt

将a.txt b.txt c.txt压缩到test.zip文件内

bash 复制代码
zip -r test.zip test gunala a.txt

将test、gunala两个文件夹和a.txt文件,压缩到test.zip文件内

unzip命令解压

使用unzip命令,可以方便的解压zip压缩包

语法:unzip -d 参数

-d,指定要解压去的位置,同tar的-C选项

  • 参数,被解压的zip压缩包文件

示例:

bash 复制代码
unzip test.zip

,将test.zip解压到当前目录

bash 复制代码
unzip test..zip -d /home/gunala

将test.zip解压到指定文件夹内(/home/gunala)

z-C] 参数1 参数2...

参数N:

  • -c,创建压缩文件,用于压缩模式
  • -v,显示压缩、解压过程,用于查看进度
  • -x,解压模式
  • -f,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个
  • -z,gzip模式,不使用-z就是普通的tarball格式
  • -C,选择解压的目的地,用于解压模式

压缩

tar的常用组合为:

bash 复制代码
tar -cvf test.tar 1.txt 2.txt 3.txt

将1.txt2.tbt3.txt压缩到test.tar文件内

bash 复制代码
tar -zcvf test.tar.gz 1.txt 2.txt 3.txt

将1.txt 2.txt 3.txt压缩到test.tar.gz文件内,使用gzip模式

注意

  • -z选项如果使用的话,一般处于选项位第一个
  • -f选项,必须在选项位最后一个

解压

常用的tar解压组合有

bash 复制代码
tar -xvf test.tar

解压test.tar,将文件解压至当前目录

bash 复制代码
tar -xvf test.tar -C /home/gunala

解压test.tar,将文件解压至指定目录(/home/gunala)

bash 复制代码
tar -zxvf test.tar.gz -C /home/gunala

以gzip模式解压test.tar.gz,将文件解压至指定目录(/home/gunala)

注意:

  • -f选项,必须在选项组合体的最后一位
  • -z选项,建议在开头位置
  • -C选项单独使用,和解压所需的其它参数分开
zip命令解压

可以使用zip命令,压缩文件为zip压缩包

语法:zip -r 参数1 参数2··参数N

  • -r,被压缩的包含文件夹的时候,需要使用-r选项

压缩

示例:

bash 复制代码
zip test.zip a.txt b.txt c.txt

将a.txt b.txt c.txt压缩到test.zip文件内

bash 复制代码
zip -r test.zip test gunala a.txt

将test、gunala两个文件夹和a.txt文件,压缩到test.zip文件内

unzip命令解压

使用unzip命令,可以方便的解压zip压缩包

语法:unzip -d 参数

-d,指定要解压去的位置,同tar的-C选项

  • 参数,被解压的zip压缩包文件

示例:

bash 复制代码
unzip test.zip

,将test.zip解压到当前目录

bash 复制代码
unzip test..zip -d /home/gunala

将test.zip解压到指定文件夹内(/home/gunala)

相关推荐
大树886 分钟前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠9 分钟前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质33 分钟前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush436 分钟前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5201 小时前
Linux 11 动态监控指令top
linux
Inhand陈工2 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智2 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩2 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_2 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
闪闪发亮的小星星2 小时前
高斯光以及高斯光公式解释
笔记