Linux快速上手

1、关于环境搭建

通过安装虚拟机和安装WSL来实现Linux环境的搭建,不过目前主流的方式还是通过安装虚拟机,WSL只是起到一个辅助效果。
虚拟机的原理是虚拟硬件,相当于在计算机上虚拟出另一台计算机。
WSL的原理是在Windows系统上构建一个子系统,它可以直接调用计算机的硬件,等于一套硬件上有两个操作系统。

2、关于虚拟机快照功能

如果你喜欢玩游戏,那一定知道存档这个功能。快照就像存档一样,把当前的状态保存下来,需要时回到这个保存的状态下,可以用在反复测试或者程序出错时使用。虚拟机不论关机或开机都能制作快照,推荐关机制作快照,要快上很多。
快照制作:

3、目录结构

Windows的顶级目录是C盘D盘这种,而Linux的顶级目录是“ / ”

4、命令

  • Linux中命令有通用的格式

      command [-options][parameter]
    
  • [ ]中的内容表示是可选的,不一定要写

  • -options 命令的选项用来控制命令的细节

  • parameter 命令的参数用来指向命令的目标

  • 示例1

      ls -l /home/linuxym001
      ls是命令,-l是选项,/home/linuxym001是参数
      意思是以列表的形式显示/home/用户目录的内容
    
  • 示例2

      cp -r test1 test2
      cp是命令,-r是选项,test1、test2是参数
      意思是复制文件夹test1成为test2
    

4.1 ls命令使用

  • ls 以平铺的形式显示当前目录下的非隐藏文件

  • ls 命令语法

      ls [-a -l -h] [文件路径] 
    
  • ls -a 表示显示当前目录下所有的文件(包括隐藏文件,隐藏文件的前面都有“ . ”)

  • ls -l 表示以列表的形式显示目录下的内容

  • 除了以上用法外,选项其实是可以混合使用的,比如下面三种用法都是一样的效果

      ls -a -l
      ls -al
      ls -la
    
  • -h只能混合使用,用于列出文件大小

    如 ls -lh 文件路径
    

4.2 cd命令使用

  • 使用cd进入到指定的目录,因此我们使用cd来完成切换操作

  • cd命令语法

      cd [文件路径]	
    
  • 进入根目录

      cd /
    
  • cd 没有写入参数,则回到 home(用户的主目录)

4.3 pwd命令使用

  • pwd命令是用于查看当前工作目录

4.4 相对路径、绝对路径和特殊路径符

相对路径和绝对路径

  • 切换到home下的Desktop

      绝对路径实现:cd /home/linuxym001/Desktop
      
      相对路径实现:cd Desktop
    

特殊路径符

  • 符号“ . ”表示当前目录

      当前位置home,切换到Desktop,使用符号“ . ”,命令 cd ./Desktop ,运行结束工作目录为/home/linuxym001/Desktop
    
  • 符号“ ~ ”表示home

      当前位置/home/linuxy001/Desktop,使用符号“ ~ ”,命令 cd ~ ,运行结束工作目录为/home/linuxym001(也就是home)
    
  • 符号“ . . ”表示返回上一级

      当前位置home,使用符号“ .. ”,命令cd ..,运行结束工作目录为/home
    

4.5 mkdir命令使用

  • 作用:创建文件夹

  • 语法

      mkdir [-p] 文件路径
    
  • 使用mkdir在/home/linuxym001下,利用相对路径、绝对路径和特殊路径符创建test1、test2、test3

      相对路径:mkdir Desktop/test1
      绝对路径:mkdir /home/linuxym001/Desktop/test2
      符号“.”:mkdir ./test3
      符号“~”:mkdir ~/test4
    
  • -p的作用是用来创建一个层级的目录

      mkdir aa1/aa2/aa3,报错
      mkdir -p aa1/aa2/aa3,成功
    

4.6 touch命令使用

  • 作用:用于创建文件,相对、绝对、特殊路径符都可以使用

  • 语法

      touch 文件路径
    
  • 创建test.txt文件

      touch test.txt
    

4.7 cat命令使用

  • 作用:查看文件内容

  • 语法

      cat 文件路径
    
  • 示例

      查看test.txt中的内容:cat test.txt
    

4.8 more命令使用

  • 作用:查看文件内容,可以进行翻页操作,适用于看内容比较多的文件,相对、绝对、特殊路径符都可以使用,按空格翻页查看,退出按q

  • 语法

      more 文件路径
    
  • 示例

      查看test.txt中的内容:more test.txt
    

4.9 cp命令使用

  • 作用:复制文件/文件夹

  • 语法

    cp [-r] 参数1 参数2
    
  • -r 用于复制文件夹

  • 参数1 :文件路径,表示被复制的文件/文件夹

  • 参数2 :文件路径,表示复制去的地方

  • 示例

      复制test1粘贴为test2:cp -r test1 test2
    

4.10 mv命令使用

  • 作用:移动文件/文件夹

  • 语法

      mv 参数1 参数2
    
  • 参数1 :文件路径,表示被移动的文件/文件夹

  • 参数2 :文件路径,表示移动去的地方,如果没有,则重命名被移动文件/文件夹

  • 示例

      将文件夹test2移动到home下的Desktop文件夹中:mv test2 ~/Desktop
    

4.11 rm命令使用

  • 作用:删除文件/文件夹

  • 语法

      rm [-r -f] 参数1 参数2 .......参数N
    
  • -r 用于删除文件夹

  • -f 用于强制删除,root用户下使用(不会弹出确认删除提示信息)

      通过 su-root 并输入密码切换到root用户(超级管理员)
      输入 exit 退回普通用户
    
  • 参数表示要删除的文件或文件夹(用空格隔开删除多个文件/文件夹)

      一次性删除三个文件:rm -r test1 test2 test3
    
  • rm支持通配符,用于作模糊匹配

      删除test开头的文件/文件夹:rm -r test*
      删除test结尾的文件/文件夹:rm -r *test
      删除包含test的文件/文件夹:rm -r *test*
    

4.12 which命令使用

  • 作用:查看一系列所使用的命令程序文件存放在哪里

  • 语法

      which 要查找的命令
    
  • 示例

      which cd
      which ls
      which pwd
      which cat
      which ......
    

4.13 find命令使用

  • 作用:搜索指定的文件(可以根据文件名或文件大小搜索)

  • 语法

      根据文件名:find 起始路径 -name "被查找的文件名"
      根据文件大小:find 起始路径 -size +|-n[kMG]
       + - 表示大于和小于
       n 表示大小数字
       kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
    
  • find支持通配符,用作模糊匹配

      查找以test开头所有文件:find / -name "test*"  
      查找以test结尾所有文件:find / -name "*test"  
      查找包含test的所有文件:find / -name "*test*" 
    
  • 示例

      从根目录开始搜索大于1G的文件:find / -size +1G
    

4.14 grep命令使用

  • 作用:根据关键字匹配检查,打印匹配到的行

  • 语法

      grep [-n] 关键字 文件路径
    
  • -n 显示匹配到的行的行号

  • 关键字表示需要匹配的关键字,使用""包裹起来

  • 文件路径表示要作匹配的内容位置,可以作为内容输入端口

  • 示例

      不显示行号:grep "aaa" test.txt
      显示行号:grep -n "aaa" test.txt 
    

4.15 wc命令使用

  • 作用:统计文件的字节、字符、单词和行数

  • 语法

      wc [-c -m -w -l] 文件路径
    
  • -c 统计bytes(字节)数量

  • -m 统计字符的数量

  • -w 统计单词的数量

  • -l 统计行数

  • 文件路径表示被统计的文件,可作为内容输入端口

  • 示例

      统计字节数:wc -c test.txt
      统计字符数:wc -m test.txt
      统计单词数:wc -w test.txt
      统计行数:wc -l test.txt
    

4.16 管道符“ | ”

  • 作用:将左边执行的结果作为右边命令的输入

  • 示例1
    通过cat查看test中的内容,返回cat执行的结果,这个结果被输入到grep文件路径的位置

      匹配test.txt中字符串aaa所在行:cat test.txt | grep "aaa" 文件路径(实际使用不需要写文件路径,这里为了方便理解)
    
  • 示例2
    通过cat查看test中的内容,返回cat执行的结果,这个结果被输入到wc文件路径的位置

      统计test.txt内容的行数:cat test.txt | wc -l 文件路径(实际使用不需要写文件路径,这里为了方便理解)
    
  • 示例3
    除了使用cat还可以使用其他命令,通过ls -l以列表形式排列文件作为结果,将结果输入到wc文件路径的位置

      统计test1中的文件数:ls -l test1 | wc -l 文件路径(实际使用不需要写文件路径,这里为了方便理解)
    

4.17 echo命令使用

  • 作用:输出指定的内容

  • 语法

      echo "输出的内容"
    
  • 示例

      echo "Hello Linux"
    

4.18 反引号“ ` ”

  • 作用:被包裹的字符串作为命令去输出

  • 示例

      echo `Hello Linux`
    

4.19 重定向符“>”、“>>”

  • 作用:将符号左边执行的结果覆盖/追加到符号右边的指定文件中

  • 示例 “ > ”
    使用echo输出Hello Linux这个结果,将结果覆盖到test.txt文件

      覆盖前内容:cat test.txt    ------>   aaabbbccc 
      覆盖后结果:echo "Hello Linux" > test.txt    ------>    Hello Linux
    
  • 示例 “ >> ”
    使用echo输入Hello Linux这个结果,将结果追加到test.txt文件

      追加前内容:cat test.txt    ------>   aaabbbccc
      追加后内容:echo "Hello Linux" >> test.txt	------>    aaabbbcccHello Linux
    

4.19 tail命令使用

  • 作用:查看文件尾部内容,默认查看10行

  • 语法

      tail [-f -num] 文件路径
    
  • -f 表示持续更新,如果有新的内容追加进来,就会进行更新

      tail -f test.txt
    
  • -num表示查看的行数(不写默认10行),这里的num指的是具体的数字

      tail -num test.txt
    

5 vi/vim编辑器

  • vi/vim是visual interface的简称,是Linux最经典的文本编辑器

  • vi.vim就像Windows下的文本文档一样

  • vim是vi的增强版,兼容vi的所有指令,不仅能编辑文本,还具有shell程序编辑的功能,可以用不同颜色的字体来辨别语法正确性。

  • vi/vim的三种工作模式

      命令模式:命令模式下,键盘上输入的内容,以命令去执行,不能进行自由文本编辑
      输入模式:输入模式下,可以进行自由文本编辑
      底线模式:用于操作文件的保存和退出
    
  • 使用vi/vim编辑器创建和编辑文件(已有文件则编辑,没有则创建)

      vi 文件路径
      vim 文件路径
    
  • vi/vim打开默认进入命令模式,输入“ i ”进入输入模式,输入“ : ”进入底线模式, 在输入模式中按“ esc ”返回命令模式,在底线模式中按“ esc ”返回命令模式,按“ w ”保存,按“ q ”退出编辑器

  • 命令模式基础快捷键

      可以直接进入输入模式的快捷键:
      光标位置进行输入   - - - >	 i
      光标之后进行输入   - - - >	 a
      行开头进行输入	- - - >	 I
      行结尾进行输入	- - - >	 A
      光标下一行插入空白行进行输入   - - - >	 o
      光标上一行插入空白行进行输入   - - - >	 O
      回到命令模式	- - - >	 esc
    
      操作文档的快捷键:
      键盘上下左右控制光标的移动也可以使用
      光标向上  - - - > j
      光标向下  - - - > k
      光标向左  - - - > h
      光标向右  - - - > l
      移动光标至行开头  - - - > 0
      移动光标至行结尾  - - - > $
      向上翻页  - - - > pageup(PgUp)
      向下翻页  - - - > pagedown(PgDn)
      进入搜索模式  - - - > /
      向上搜索  - - - > n
      向下搜索  - - - > N
      删除光标所在行内容  - - - > dd
      n是数字,表示删除当前光标向下n行  - - - > 3dd
      复制当前行  - - - > yy
      n是数字,表示复制当前光标向下n行  - - - > 3yy
      粘贴复制内容  - - - > p
      撤销  - - - > u
      反向撤销  - - - > ctrl + r
      跳到首行  - - - > gg
      跳到行尾  - - - > G
      当前行开始向下全部删除  - - - > dG
      当前行开始向上全部删除  - - - > dgg
      光标开始,删除本行开头  - - - > d0
      光标开始,删除本行结尾  - - - > d$
    
  • 底线模式基础快捷键

      保存并退出  - - - > wq
      仅保存  - - - > w
      仅退出  - - - > q
      强制退出  - - - > q!
      设置行号  - - - > set nu
      设置粘贴模式	  - - - > set paste 
    

6 Linux的root用户

普通用户在许多地方权限是受限的,普通用户一般在其home目录是不受限制的,大多数地方普通用户只有只读和执行权限,并无修改权限,因此出了home目录要做修改,就要切换到root用户

  • 语法

      su [-] 用户名
    
  • “ - ”符号是可选的,表示切换后加载环境变量

  • 用户名表示要切换的用户,可以省略,省略默认进到root用户

  • 切换用户后,通过exit退回到上一个用户,也可以使用快捷键 ctrl + d

root功能很强大,长期使用,可能带来损坏,保险起见我们可以使用sudo命令,来为普通命令临时赋予root权限

  • 语法

      sudo 普通命令
    
  • 并不是所有用户都可以使用sudo,使用sudo需要为普通用户配置sudo认证

      首先切换到root用户,输入visudo,在打开的文件的最后一行添加 用户名 ALL=(ALL)	NOPASSWD:ALL
      保存退出。这样就为用户配置好了sudo认证。
    

6.1 用户、用户组

  • Linux系统中可以

      配置多个用户
      配置多个用户组
      用户可以加入多个用户组中
    
  • Linux中关于权限的管控级别有2个级别,分别是

      针对用户的权限控制
      针对用户组的权限控制
    

比如:一个文件,控制某个用户可以访问,也可以控制某个用户组可以访问

  • 关于用户组的命令都需要在root用户下进行

      创建用户组:groupadd 用户组名
      删除用户组:groupdel 用户组名
    
  • 关于用户的命令都需要在root用户下进行

  • 创建用户

      useradd [-g -d] 用户名
      -g 表示创建用户后指定加入的组,不指定-g则创建一个与用户名相同的组并加入
      -d 指定用户的路径,不指定-d则默认在home目录
    
      例:useradd test -g yhz1 -d /home/test1
    
  • 删除用户

      userdel [-r] 用户名
      -r 删除用户的同时,删除用户目录
    
  • 查看用户所属组

      id [用户名]
      如果不加用户名,则查看当前用户所属的组
    
  • 修改用户所属组

      usermod -aG 用户组 用户名
      指定用户加入用户组
    

6.2 getent命令

  • 作用:查看当前系统中有哪些用户和用户组

  • 语法1

      getent passwd
    

其中共有7份信息
用户名:密码(x):用户ID:组ID:描述信息:HOME目录:执行终端(默认bash)

  • 语法2

      getent group
    

其中有3份信息
组名称:组认证(显示为x):组ID

6.4 查看权限控制信息

通过查看可以知道文件具体信息,如下图
在这里插入图片描述

这里划分了三个区域1、2、3

1 表示所属用户的权限
2 表示所属用户组的权限
3 表示其他用户的权限
r 表示只读
w 表示修改
x 表示执行

6.4.1 chmod命令

  • 作用:修改文件/文件夹权限信息

  • 语法

      chmod [-R] 权限 文件/文件夹
    
  • -R表示对文件夹包括文件夹下全部内容进行同样操作

  • 示例

      将文件权限修改为rwxr-x--x:chmod u=rwx,g=rx,o=x test.txt
      其中u表示user所属用户权限,g表示group组权限,o表示other其他用户权限
      将文件夹以及文件夹内全部内容权限设置为rwxr-x--x:chmod -R u=rwx,g=rx,o=x test
    
  • 用这种方式更改权限显的有些麻烦,所有权限可以用数字代替

      r记为4,w记为2,x记为1
      0表示 ---
      1表示 x
      2表示 w
      3表示 2+1=-wx
      4表示 r
      5表示 4+1=r-x
      6表示 4+2=rw-
      7表示 4+2+1=rwx
    
  • 示例

      将文件的权限修改为rwxr--r-x:chmod 745 test
    

6.4.2chown命令

  • 作用:修改文件的用户/用户组(普通用户无法修改用户/用户组,所有要需要root用户执行)

  • 语法

      chow [-R] [用户] : [用户组] 文件/文件夹
    
  • -R表示对文件夹和文件夹的全部内容进行同样的操作

  • 用户表示修改的所属用户

  • 用户组表示修改所属的用户组

  • 示例

      修改文件的用户:chown root test.txt
      修改文件的用户组:chown : root test.txt
      修改文件的用户和用户组:chown root : root test.txt
      修改文件夹及文件夹下全部内容的用户和用户组:chown -R root : root test
    

7 Linux操作技巧

7.1 强制停止

  • 作用:程序运行时想停止它,命令输入错误时

      ctrl + c
    

7.2 退出或登出

  • 作用:退出账户的登录,提出程序的专属页面。不能用于退出vi/vim

      ctrl + d	
    

7.3 历史命令搜索

  • 作用:查看历史输入过的命令

      history
    
  • 可以通过 !命令前缀,自动匹配上一次前缀命令

  • 输入内容进行匹配搜索

      ctrl + r
    

7.4 光标移动快捷键

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

7.5 清屏

  • 快捷键

      ctrl + l
    
  • 也可以使用命令clear实现

8 安装软件

  • CentOS中使用的时yum管理器,而Ubuntu使用的是apt管理器

  • yum语法:

      yum [-y] [ install | remove | search ] 软件名称
    
  • apt语法:

      apt [-y] [install | remove | search ] 软件名称
    
  • -y 表示自动确认,无需手动确认安装和卸载过程

      intsall:安装
      remove:卸载
      search:搜索
    
  • yum/apt 都需要root权限和互联网

9 systemctl命令

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

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

  • 语法

      systemctl start  | stop | status | enable | disable 服务名
    
  •   start:启动
      stop:关闭
      status:查看状态
      enable:开启开机自启
      disable:关闭开机自启
    
  • 举例系统内置的服务:

      NetworkManager:主网络服务
      network:副网络服务
      firewalld:防火墙服务
      sshd,ssh服务(FinalShell远程登录Linux使用的就是这个服务)
    
  • 部分第三方软件安装后会集成到systmctl

      安装apt软件:yum -y install ntp
      安装httpd软件:yum -y intsall httpd
    

10 软链接

  • 类似于windows中的快捷方式

  • 语法

      ln -s 文件路径1 文件路径
    
  • -s 表示软链接

  • 文件路径1表示:被链接的文件/文件夹

  • 文件路径2表示:链接去的目的地

11 日期、时区

11.1 日期

  • 作用:查看系统的时间

  • 语法

      date [-d] [+格式化字符串]
    
  • 格式化字符串:通过特定的标记,显示日期的形式

      %Y   年
      %y   年份后两位数字(00.99)
      %m   月份
      %d   日
      %H   小时
      %M   分钟
      %S   秒
      %s   自 1970-01-01 00:00:00 到现在的秒数
    
  • -d按照给定的形式显示日期,还可用于日期计算

      date -d "+1 day":显示后一天日期
      date -d "-1 day":显示前一天日期
      date -d "+1 month":显示后一个月日期
      date -d "-1 month" :显示前一个月日期
      date -d "+1 year" :显示后一年日期
      date -d "-1 year" :显示前一年日期
    
  • 支持的时间标记

      年:year
      月:month 
      日:day
      时:hour
      分:minute
      秒:second
    

11.2 时区

  • 使用root权限,将时区修改为东八区

      rm -f /etc/localtime
      ln -s /usr/share/zoneinfo/Asia/SiChuan /etc/localtime
    

11.3 npt程序

  • 可以通过ntp程序自动校准时间

      安装ntp:yum -y install ntp
    
  • 启动开机自启

      systmctl enable nptd
    
  • ntp会定期校准时间,也可以手动校准时间(需要root权限)

      ntpdate -u 校准网站
      比如:ntpdate -u ntp.aliyun.com
    

12 IP地址、主机名

12.1IP、主机名

12.1.1 IP地址

每一台联网计算机都有一个IP地址,用于与其他计算机通讯
IP地址有两个版本v4版本和v6版本
v4版本的地址格式是:a: b: c: d,其中abcd表示0~255的数字,例如:192.168.1.1
可以通过命令:ifconfig查看本机ip地址,如果无法使用命令,则安装:yum -y install net-tools

12.1.2 主机名

每台电脑除了对外联网的IP以外,还有主机名
无论是Windows还是Linux,都可以设置主机名

查看主机名:hostname
修改主机名:hostnamectl set-hostname 主机名(需要root权限)

12.1.3 域名解析

  • 网站访问流程

      Windows:网址 --> C:\Windows\System32\drivers\etc\hosts文件(检查是否有记录)/ 联网询问公开DNS服务器是否有记录 --> 打开网站
      Linux:网站 --> /ect/hosts文件(检查是否有记录)/ 联网询问公开DNS服务器是否有记录 --> 打开网站
    

总结先访问本机记录,再联网去DNS服务器询问

12.2 虚拟机配置固定IP

  • 为什么需要固定IP

      当前虚拟机的Linux系统,IP地址是通过DHCP获取的
      DHCP:动态获取IP地址,每次重启设备都会获取一次,可能会导致IP地址频繁变更
      原因1:我们需要远程连接到Linux系统时,如果IP频繁变更,修改适配很麻烦
      原因2:配置了虚拟机IP地址和主机名映射,如果IP频繁更改,也需要频繁更新映射关系
    
  • 配置固定IP步骤

      在VMware Workstation中配置IP地址网关和网段(IP地址的范围)
      在Linux系统中手动修改配置文件,固定IP		
    
  •   在root权限下使用vim /etc/sysconfig/network-scripts/ifcfg-ens33
      进入文件将dhcp改为static
      添加
      IPADDR	IP地址
      NETMASK	子网掩码
      GATEWAY	网关
      DNS1		域名解析
    

在这里插入图片描述

	![在这里插入图片描述](https://img-blog.csdnimg.cn/f71a3655a98b4b09abe6b92b5bfa8a8f.png)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13 网络传输

13.1 下载和网络请求

13.1.1 ping命令

  • 作用:检查网络服务是否是可联通状态

  • 语法

      ping [-c num] ip或主机名
    
  • -c 表示检查的次数,不适应-c则一直检查

  • IP或主机名表示被检查的服务器的IP地址或主机名

  • 示例

      ping -c 3 www.baidu.com
    

13.1.2 wget命令

  • 作用:非交互式下载器,可以在命令行内下载网络文件

  • 语法

      wget [-b] url
    
  • -b表示后台下载,将日志写入工作目录wget-log

  • url表示下载链接

  • 后台下载时可以通过 tail -f wget-log查看下载进度

  • 示例

      下载文件:wget 文件链接
    

13.1.3 curl命令

  • 发生http网络请求,用于下载文件、获取信息等

  • 语法

      curl [-O] url
    
  • -O表示用于下载文件、当url是下载链接时,可用此选项保存文件

  • url表示要发起网络请求的地址

  • 示例

      发起请求:curl 网址
      下载请求:curl -O 下载链接
    

13.2 端口

  • 端口:是设备与外界交流的出入口,端口分为:物理端口和虚拟端口

      物理端口:又称之为接口,如USB、RJ45、HDML等
      虚拟端口:指计算机内部不可见的,用来操作系统和外部交互使用的
    
  • 计算机程序之间的通讯,通过IP只能锁定到计算机,不能锁定具体的程序,通过端口可以锁定计算机的程序,确保程序之间沟通

      假如IP地址是小区号,而端口是门牌号
    
  • Linux系统有多大65535个端口号,分为3类来使用

  •   公认端口:1 ~ 1023,用于一些系统内置和知名程序的预留使用
      如:SSH服务的22端口,HTTPS服务的443端口,非特殊需要,不要占用这个范围的端口
    
  •   注册端口:1024 ~ 49151,通常可以随意使用
      如:自己写了一个程序,它需要网络通讯,就可以使用这个范围的端口
    
  •   动态端口:49152 ~ 65535,通常不会固定绑定程序,只是程序对外进行网络链接时,临时使用
      如:两台计算机的软件进行通讯,A计算机是注册端口长期绑定端口号5661,B计算机向A计算机的程序
      发起访问,B计算机的程序随机绑定端口50001,下次B计算机再次访问A计算机程序,端口号还会发生改变
    

13.2.1 nmap命令

  • 作用:查看端口占用情况

  • 语法

      nmap IP地址
    
  • 使用nmap命令前,需要安装

      安装nmap:yum -y install nmap
    
  • 示例

      查看本机的端口占用情况:nmap 127.0.0.1
    

13.2.2 netstat命令

  • 作用:查看指定端口的占用情况

  • 语法

      netstat -anp | grep 端口号
    
  • 使用netstat命令前,需要安装

      安装net-tools:yum -y install net-tools
    
  • 示例

      查看端口号6000:netstat -anp | grep 6000
    

14 进程管理

  • 程序运行在操作系统中,是被操作系统所管理。为了管理运行的程序,在运行时会被操作系统注册为一个“进程”,并且给每个进程分配进程号(进程ID)

14.1 ps 命令

  • 作用:查看指定进程

  • 语法

      ps [-e -f]
    
  • -e表示显示全部进程

  • -f表示以完全格式展示信息

  •   UID - - - > 进程所属用户
      PID - - - > 进程号
      PPID - - - > 进程父ID
      C - - - > 进程占用百分比
      STIME - - - > 进程启动时间
      TTY - - - > 启动此进程终端序号,如过显示“?”,表示非终端启动
      TIME - - - > 进程占用cpu时间
      CMD - - - > 进程对应的名称或启动路径或启动命令
    

在这里插入图片描述

14.2 kill命令

  • 作用:关闭进程

  • 语法

      kill [-9] 进程ID
    
  • -9表示强制关闭,不使用此选项,会发送信号要求进程关闭,是否关闭就要看进程自身处理机制

15 主机状态监控

15.1 top命令

  • 作用:查看CPU、内存使用情况

  • 语法

      top
    
  • 选项

      -p 只显示某个进程信息
      -d 设置刷新时间,默认5s
      -c 显示COMMAN完整信息
      -n 指定刷新次数,比如top -n 3(刷新三次退出)
      -b 以非交互模式运行,以批次执行top,(一般配合-n输出几次信息,并将信息输入到指定的文件中,如:top -d -n 3 > 1.txt)
      -i 不显示任何闲置(idle)或无用(zombie)的进程(显示在使用的)
      -u 查找特定用户启动的进程
    

15.2 进程信息

在这里插入图片描述

  •   top:命令名称,08:10:24:当前系统时间,up 4:58:启动4分58秒,3 users:3个用户登录,load average:1、5、15分钟负载情况
    
  •   Tasks:202个进程,1 running:1个进程在运行,201 sleeping:201个在睡眠,0 stopped:0个停止,0 zombie:0个僵尸进程
    
  •   %Cpu(s):cpu使用率,us:用户cpu使用率,sy:系统cpu使用率,ni:高级优先进程占用cpu时间百分比, id:空闲cpu率, wa:IO等待占有率, hi:cpu硬件中断率, si:cpu软件中断率, st:强制等待占用cpu率
    
  •   KiB Mem:物理内存,total:总量,free:空闲,used:使用,buff/cache:buff和cache占用
    
  •   KiB Swap:虚拟内存(交换空间),total:总量,free:空闲,used:使用,avail Mem:可用空间
    

在这里插入图片描述

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

15.3 top交互下快捷键

  •   h - - - > 显示帮助画面
      c - - - > 显示COMMAN
      f - - - > 选择要展示的项目
      M - - - > 根据驻留内存大小排序
      P - - - > 根据CPU使用百分比排序
      T - - - > 根据时间排序
      E - - - > 切换顶部内存单位
      e - - - > 切换进程内存单位
      l - - - > 切换显示平均负载和启动时间信息
      i - - - > 不显示任何闲置(idle)或无用(zombie)的进程
      t - - - > 切换显示CPU状态信息
      m - - - > 切换显示内存信息
    

15.4 磁盘信息监控

  • 作用:查看硬盘使用情况

  • 语法

      df [-h]
    
  • -h 表示更人性化的单位显示

  • 还可以使用iostat查看cpu、磁盘的信息

  • 语法

      iostat [-x][num1][num2]
    
  • -x表示显示更多信息

  • num1表示刷新间隔,num2表示刷新次数

在这里插入图片描述

	rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取的数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求,读取的是相同Block的数据,FS会将这个请求合并Merge,提供IO利用率,避免重复调用)
	wrqm/s:每秒这个设备相关的写入请求有多少没Merge了
	rsec/s:每秒读取的扇区数
	wsec/:每秒写入的扇区数
	rKB/s:每秒发送到设备的读取请求数
	wKB/s:每秒发送到设备的写入请求数
	avgrq-sz:平均请求扇区大小
	avgqu-sz:平均请求队列长度(毫无疑问,队列越短越好)
	await:每一个IO请求的处理平均时间(单位是微秒毫秒)
	svctm:表示平均每次设备I/O操作的服务时间(以毫秒为单位)
	%util:磁盘利用率

15.5 网络监控

  • 作用:查看网络相关统计(sar命令非常复杂,这里仅用于简单统计网络)

  • 语法

      sar -n DEV num1 num2
    
  • -n 表示查看网络

  • DEV表示查看网络接口

  • num1表示刷新间隔,num2表示刷新次数

在这里插入图片描述

	IFACE:本地网卡接口名称
	rxpck/s:每秒钟接收的数据包
	txpck/s:每秒钟发送的数据包
	rxKB/s:每秒钟接收数据包的大小,单位KB
	txKB/s:每秒钟发送数据包的大小,单位KB
	rxcmp/s:每秒钟接收的压缩数据包
	txcmp/s:每秒钟发送的压缩数据包
	rxmcst/s:每秒种接收的多播数据包

16 环境变量

16.1 理解环境变量的作用

  • 在说明which的时候,知道了一系列命令其本质上是一个个可执行的程序。比如,cd命令的本体是:/usr/bin/cd这个程序文件
    因此有个疑问,为什么我们不论在那个位置都能执行cd命令呢?
  • 环境变量是操作系统在运行的时候,记录一下关键性的信息,以辅助系统运行
  • 在Linux中执行 env 命令可以查看当前系统中记录的环境变量
  • 环境变量是一直key value型结构,即名称和值
  • 无论当前目录做什么,都能执行/usr/bin/cd这个程序,就是借助环境变量中的PATH这个项目:
    在这里插入图片描述

16.2 掌握符号$ 的作用

  • Linux中,符号$用于取“变量的值”

  • 语法

      $环境变量名 
    
  • 示例

      取的PATH的值,并通过echo输出出来:echo $PATH
      当与其它内容混在一起时,可以通过{}标注变量:echo ${PATH}ABC
    

16.3 掌握Linux中的环境变量

  • 作用:自己设置环境变量

  • 语法

      export 变量名=变量值
    
  • 永久生效

      针对当前用户生效,配置在当前用户:	~/.bashrc文件中
      针对所有用户生效,配置在系统:	/etc/profile文件中
      并通过语法:source配置文件,进行立刻生效,或重新登录FinalShell生效
    
  • 示例1

      针对当前用户
      进入文件:vi ~/.bashrc
      添加:export name=linuxym001
      执行:	source ~/.bashrc	
    
  • 示例2

      针对所有用户
      进入文件:vim /etc/profile
      添加:export name=linuxum001
      执行:soure /etc/profile
    

自定义PATH环境变量:

  • 创建一个文件夹test在文件中创建文件1.txt:mkdir test - - - > cd test - - - > touch 1.txt - - - > 随意输入字符串
    
  •  在root权限下配置系统环境变量:vim /etc/profile - - - > 最下面输入 export PATH=$PATH:test文件地址 - - - > 保存退出
    
  •  配置成功后在任意用户下执行:1.txt都会出入里面的字符串
    

17 上传、下载

17.1 rz命令

  • 使用前需要安装 yum -y install lrzsz

  • 作用:上传

      直接输入rz使用
    

17.2 sz命令

  • 使用前需要安装 yum -y install lrzsz

  • 作用:下载

      sz 下载文件名
    

18 压缩和解压

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模式,不适应就是普通的tarball格式
      -C 解压目的地,用于解压模式
    
  • tar 命令压缩:常用组合

      将1.txt,2.txt,3.txt压缩到test.tar文件内:tar -cvf test.tar 1.txt 2.txt 3.txt
      将1.txt,2.txt,3.txt压缩到test.tar.gz文件内:tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
      z一般在最前面,f必须在最后面
    
  • tar 命令解压:常用组合

      将test文件解压到test2:tar -xvf test -C /home/linuxym001/test2
      将test文件以Gzip格式解压到test2:tar -zxvf test -C /home/linuxym001/test2 
      z一般在最前面,f必须在最后面
    
  • zip命令压缩文件

  • 语法

      zip [-r] 参数1,参数...参数N
    
  • -r 被压缩的内容包含文件夹时使用

  • 示例

      将1.txt,2.txt,3.txt压缩到test.zip文件内:zip test.zip 1.txt 2.txt 3.txt 
      将test1,test2两个文件夹和1.txt,2.txt,3.txt三个文件压缩到test2.zip文件内:zip -r test2.zip test1 test2 1.txt 2.txt 3.txt 
    
  • 解压zip文件

  • 语法

      unzip [-d] 参数
    
  • -d表示指定解压位置

  • 示例

      将test1.zip解压:unzip test1.zip
      将test1.zip解压到t1:unzip test.zip -d t1
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
快速上手Linux内核,您可以按照以下步骤进行: 1. 了解Linux内核的基本概念:学习Linux内核的基础知识,如进程管理、内存管理、文件系统、设备驱动等。可以阅读相关的书籍、在线教程或参考官方文档。 2. 设置开发环境:在您的计算机上设置Linux开发环境。可以选择一个流行的Linux发行版(如Ubuntu、Fedora等),安装开发工具链和必要的软件包,以便进行内核编译和调试。 3. 下载并编译内核源代码:从Linux官方网站(https://www.kernel.org/)下载最新版本的内核源代码。按照官方提供的说明进行编译,生成可执行的内核映像文件。 4. 阅读和理解内核代码:开始阅读内核源代码,了解其结构和组织方式。可以从一些简单的模块或驱动程序开始,逐渐深入理解内核的不同部分。 5. 参与开发社区:加入Linux内核开发社区,参与讨论和交流,在邮件列表、论坛或IRC频道上与其他开发者互动。这将帮助您获得更多实践经验和指导。 6. 进行实际编程和调试:尝试编写简单的内核模块、驱动程序或补丁,并进行调试和测试。通过实际编程和解决实际问题,加深对内核的理解和掌握。 7. 学习内核调试技术:了解内核调试工具和技术,如GDB、Kprobes、Ftrace等。这些工具可以帮助您分析和调试内核代码,定位和修复问题。 8. 深入研究特定领域:根据自己的兴趣和需求,选择一个特定的领域进行深入研究,如网络协议栈、虚拟化、安全性等。探索Linux内核的各个子系统,并尝试在特定领域做出贡献。 请注意,学习Linux内核需要耐心和持续的努力。这只是一个快速上手的指南,真正的深入学习和掌握需要更多的时间和经验。建议在学习过程中保持对官方文档、书籍和其他资源的持续学习和参考。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值