Linux2

SHell

Shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。

认知root用户

  1. Linux系统的超级管理员用户是:root用户
su命令
  • 可以切换用户,语法:su [-] [用户名]

  • -表示切换后加载环境变量,建议带上

  • 用户可以省略,省略默认切换到root

sudo命令
  • 可以让一条普通命令带有root权限,语法:sudo 其他命令
  • 需要以root用户执行visudo命令,增加配置方可让普通用户有sudo命令的执行权限

用户、用户组管理

  1. Linux用户管理模式

    • Linux可以支持多用户、多用户组、用户加入多个组
    • Linux权限管控的单元是用户级别和用户组级别
  2. 用户、用户组相关管理命令

以下命令需root用户执行

  • 创建用户组

    • groupadd 用户组名
  • 删除用户组

    • groupdel 用户组名
  • 创建用户

    useradd [-g -d] 用户名

    • 选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
    • 选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
  • 删除用户

    userdel [-r] 用户名

    • 选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
  • 查看用户所属组

    id [用户名]

    • 参数:用户名,被查看的用户,如果不提供则查看自身
    • 修改用户所属组
  • 修改用户组

    • usermod -aG 用户组 用户名
    • 将指定用户加入指定用户组
  • getent passwd

    共有7份信息,分别是:

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

  • getent group

    包含3份信息,组名称:组认证(显示为x):组ID

查看权限控制

  1. ls -l 列出的权限信息如何解读

image-20231001171329597

  • 序号1,表示文件、文件夹的权限控制信息
  • 序号2,表示文件、文件夹所属用户
  • 序号3,表示文件、文件夹所属用户组
  • -:文件 d:文件夹 l:软连接
  1. 权限细节如何解读

image-20231001171419614

  1. rwx分别代表什么
  • r,针对文件可以查看文件内容

    针对文件夹,可以查看文件夹内容,如ls命令

  • w,针对文件表示可以修改此文件

    针对文件夹,可以在文件夹内:创建、删除、改名等操作

  • x,针对文件表示可以将文件作为程序执行(excecute)

    针对文件夹,表示可以更改工作目录到此文件夹,即cd进入

chmod命令
  • 功能,修改文件、文件夹的权限细节

  • 限制,只能是文件、文件夹的所属用户或root有权修改

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

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

权限的数字序号

  • r代表4,w代表2,x代表1

  • rwx的相互组合可以得到从0到7的8种权限组合

  • 如7代表:rwx,5代表:r-x,1代表:–x

chown

普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行

  • 功能,修改文件、文件夹的所属用户、组

  • 限制,只可root执行

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

  • 选项,-R,同chmod,对文件夹内全部内容应用相同规则

  • 选项,用户,修改所属用户

  • 选项,用户组,修改所属用户组

  • :用于分隔用户和用户组

各类小技巧(快捷键)

  1. ctrl + c 强制停止

  2. ctrl + d 退出登出

  3. history 查看历史命令

  4. !命令前缀,自动匹配上一个命令

  5. ctrl + r,搜索历史命令

  6. ctrl + a | e,光标移动到命令开始或结束

  7. ctrl + ← | →,左右跳单词

  8. ctrl + l 或 clear命令 清屏

软件安装

  1. 在CentOS系统中,使用yum命令联网管理软件安装

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

  1. 在Ubuntu系统中,使用apt命令联网管理软件安装

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

CentOS: .rpm ,yum

Ubuntu: .deb ,apt

Win: exe、msi

Mac: dmg, pkg

systemctl

  1. systemctl命令的作用是?

可以控制软件(服务)的启动、关闭、开机自启动

  • 系统内置服务均可被systemctl控制

  • 第三方软件,如果自动注册了可以被systemctl控制

  • 第三方软件,如果没有自动注册,可以手动注册(后续学习)

  1. 语法

    systemctl start | stop | status | enable | disable 服务名

  • start 启动

  • stop 关闭

  • status 查看状态

  • enable 开启开机自启

  • disable 关闭开机自启

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

  • NetworkManager,主网络服务

  • network,副网络服务

  • firewalld,防火墙服务

  • sshd,ssh服务(FinalShell远程登录Linux使用的就是这个服务)

软连接

  1. 什么是软连接?

可以将文件、文件夹链接到其它位置

链接只是一个指向,并不是物理移动,类似Windows系统的快捷方式

  1. 软连接的使用语法

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

  • -s选项,创建软连接
  • 参数1:被链接的文件或文件夹

  • 参数2:要链接去的目的地

日期和时区

  1. date命令的作用和用法

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

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

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

  • %Y 年

  • %y 年份后两位数字 (00…99)

  • %m 月份 (01…12)

  • %d 日 (01…31)

  • %H 小时 (00…23)

  • %M 分钟 (00…59)

  • %S 秒 (00…60)

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

  1. 如何修改Linux时区

rm -f /etc/localtime

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

  1. ntp的作用

可以自动联网同步时间,也可以通过ntpdate -u ntp.aliyun.com手动校准时间

IP地址和主机名

  1. 什么是IP地址,有什么作用?

IP地址是联网计算机的网络地址,用于在网络中进行定位

格式是:a.b.c.d,其中abcd是0~255的数字

特殊IP有:127.0.0.1,本地回环IP,表示本机。

0.0.0.0:也可表示本机,也可以在一些白名单中表示任意IP

  1. 什么是主机名?

主机名就是主机的名称,用于标识一个计算机

  1. 什么是域名解析(主机名映射)

可以通过主机名找到对应计算机的IP地址,这就是主机名映射(域名解析)

先通过系统本地的记录去查找,如果找不到就联网去公开DNS服务器去查找

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

image-20231003153232732

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

    image-20231003153303964

  • 重新登录FinalShell即可看到主机名已经正确显示

image-20231003153316921

配置Linux固定IP地址

当前我们虚拟机的Linux操作系统,其IP地址是通过DHCP服务获取的。

DHCP:动态获取IP地址,即每次重启设备后都会获取一次,可能导致IP地址频繁变更

  1. 在VMware Workstation(或Fusion)中配置IP地址网关和网段(IP地址的范围)

  2. 在Linux系统中手动修改配置文件,固定IP

image-20231008140321206

image-20231008140328945

  1. 使用vim编辑/etc/sysconfig/network-scripts/ifcfg-ens33文件,填入如下内容

image-20231008140340858

  1. 执行:systemctl restart network 重启网卡,执行ifconfig即可看到ip地址固定为192.168.88.130了

网络传输:下载和网络请求

  1. 使用ping命令可以测试到某服务器是否可联通

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

选项:-c,测试的次数

  1. 使用wget命令可以进行网络文件下载

语法:wget [-b] url

选项:-b,后台下载

  1. 使用curl命令可以发起网络请求

语法:curl [-O] url

选项:-O,用于下载使用

网络传输:端口

本机:127.0.0.1

0.0.0.0

  1. 什么是端口?

端口是指计算机和外部交互的出入口,可以分为物理端口和虚拟端口

  • 物理端口:USB、HDMI、DP、VGA、RJ45等

  • 虚拟端口:操作系统和外部交互的出入口

IP只能确定计算机,通过端口才能锁定要交互的程序

  1. 端口的划分
  • 公认端口:1~1023,用于系统内置或常用知名软件绑定使用

  • 注册端口:1024~49151,用于松散绑定使用(用户自定义)

  • 动态端口:49152~65535,用于临时使用(多用于出口)

    • 22端口,一般是SSH服务使用,即FinalShell远程连接Linux所使用的端口
  1. 查看端口占用
  • nmap IP地址,查看指定IP的对外暴露端口

  • netstat -anp | grep 端口号,查看本机指定端口号的占用情况

进程管理

image-20231008144159184

从左到右分别是:

  • UID:进程所属的用户ID

  • PID:进程的进程号ID

  • PPID:进程的父ID(启动此进程的其它进程)

  • C:此进程的CPU占用率(百分比)

  • STIME:进程的启动时间

  • TTY:启动此进程的终端序号,如显示?,表示非终端启动

  • TIME:进程占用CPU的时间

  • CMD:进程对应的名称或启动路径或启动命令

  1. 什么是进程?

进程是指程序在操作系统内运行后被注册为系统内的一个进程,并拥有独立的进程ID(进程号)

  1. 管理进程的命令
  • ps [-e -f] 查看进程信息

    • 选项:-e,显示出全部的进程

      选项:-f,以完全格式化的形式展示信息(展示全部信息)

  • ps -ef | grep 关键字 过滤指定关键字进程信息

  • kill [-9] 进程号ID 关闭指定进程号的进程

    • 选项:-9,表示强制关闭进程。

主机状态

yum install sysstat iostat

  1. 使用top命令可以:

    • 第一行:

      image-20231008180723392

    top:命令名称,14:39:58:当前系统时间,up 6 min:启动了6分钟,2 users:2个用户登录,load:1、5、15分钟负载

    • 第二行:

      image-20231008180712386

    Tasks:175个进程,1 running:1个进程子在运行,174 sleeping:174个进程睡眠,0个停止进程,0个僵尸进程

    • 第三行:

      image-20231008180735217

    %Cpu(s):CPU使用率,us:用户CPU使用率,sy:系统CPU使用率,ni:高优先级进程占用CPU时间百分比,id:空闲CPU率,wa:IO等待CPU占用率,hi:CPU硬件中断率,si:CPU软件中断率,st:强制等待占用CPU率

    • 第四、五行:

      image-20231008180741453

    Kib Mem:物理内存,total:总量,free:空闲,used:使用,buff/cache:buff和cache占用

    KibSwap:虚拟内存(交换空间),total:总量,free:空闲,used:使用,buff/cache:buff和cache占用

    image-20231008180755944

  • PID:进程id

  • USER:进程所属用户

  • PR:进程优先级,越小越高

  • NI:负值表示高优先级,正表示低优先级

  • VIRT:进程使用虚拟内存,单位KB

  • RES:进程使用物理内存,单位KB

  • SHR:进程使用共享内存,单位KB

  • S:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态)

  • %CPU:进程占用CPU率

  • %MEM:进程占用内存率

  • TIME+:进程使用CPU时间总计,单位10毫秒

  • COMMAND:进程的命令或名称或程序文件路径

    image-20231008180844874

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

    image-20231008180905438

  • 类似Windows任务管理器

  • 查看CPU、内存、进程的信息

  1. 使用df命令可以:

    语法:df [-h]

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

•查看磁盘使用率

  1. 使用iostat可以:
  • 查看磁盘速率等信息

语法:iostat [-x] [num1] [num2]

  • 选项:-x,显示更多信息

  • num1:数字,刷新间隔,num2:数字,刷新几次

    image-20231008181042622

    使用iostat的-x选项,可以显示更多信息

    image-20231008181106837

    rrqm/s: 每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge, 提高IO利用率, 避免重复调用);

    wrqm/s: 每秒这个设备相关的写入请求有多少被Merge了。

    rsec/s: 每秒读取的扇区数;sectors

    wsec/: 每秒写入的扇区数。

    rKB/s: 每秒发送到设备的读取请求数

    wKB/s: 每秒发送到设备的写入请求数

    avgrq-sz 平均请求扇区的大小

    avgqu-sz 平均请求队列的长度。毫无疑问,队列长度越短越好。

    await: 每一个IO请求的处理的平均时间(单位是微秒毫秒)。

    svctm 表示平均每次设备I/O操作的服务时间(以毫秒为单位)

    %util: 磁盘利用率

  1. 使用sar -n DEV命令可以:

•查看网络情况

语法:sar -n DEV num1 num2

选项:-n,查看网络,DEV表示查看网络接口

num1:刷新间隔(不填就查看一次结束),num2:查看次数(不填无限次数)

image-20231008181144020

信息解读:

  • IFACE 本地网卡接口的名称

  • rxpck/s 每秒钟接受的数据包

  • txpck/s 每秒钟发送的数据包

  • rxKB/S 每秒钟接受的数据包大小,单位为KB

  • txKB/S 每秒钟发送的数据包大小,单位为KB

  • rxcmp/s 每秒钟接受的压缩数据包

  • txcmp/s 每秒钟发送的压缩包

  • rxmcst/s 每秒钟接收的多播数据包

环境变量

  1. 什么是环境变量?

环境变量是一组信息记录,类型是KeyValue型(名称=值),用于操作系统运行的时候记录关键信息

  1. 通过env命令可以查看当前系统配置的环境变量信息

  2. 通过$符号,可以取出环境变量的值

  3. 什么是PATH,作用是?

环境变量PATH会记录一组目录,目录之间用:隔开。这里记录的是命令的搜索路径,当执行命令会从记录中记录的目录中挨个搜索要执行的命令并执行。

可以通过修改这个项目的值,加入自定义的命令搜索路径

export PATH=$PATH:自定义路径

  1. 如何修改环境变量?
  • 临时生效:export 名称=值

  • 永久生效:

  • 针对用户:~/.bashrc文件中配置

  • 针对全部用户:/etc/profile文件中配置

  • 配置完成,可以通过source命令立刻生效

echo $PATH

echo ${PATH}ABC

上传、下载

注意,rz、sz命令需要终端软件支持才可正常运行

FinalShell、SecureCRT、XShell等常用终端软件均支持此操作

  1. rz、sz命令
  • 通过 yum -y install lrzsz可以安装此命令

  • rz进行文件上传

  • sz 文件,进行文件下载

压缩、解压

  1. Linux系统常用的压缩格式有:
  • tar格式,归档文件,简单的将文件整合到一个文件内,无压缩效果

  • gzip格式,gzip压缩文件,不仅能整合到一个文件,同时有体积压缩效果

  1. tar命令

tar [-c -v -x -f -z -C] 参数...

  • -c,创建压缩文件,用于压缩模式

  • -v,显示压缩、解压过程,用于查看进度

  • -x,解压模式

  • -f,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个

  • -z,gzip模式,不使用-z就是普通的tarball格式

  • -C,选择解压的目的地,用于解压模式

tar的常用组合为:

  • tar -cvf test.tar 1.txt 2.txt 3.txt

将1.txt 2.txt 3.txt 压缩到test.tar文件内

  • tar -zcvf test.tar.gz 1.txt 2.txt 3.txt

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

注意:

  • -z选项如果使用的话,一般处于选项位第一个

  • -f选项,必须在选项位最后一个

常用的tar解压组合有

  • tar -xvf test.tar

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

  • tar -xvf test.tar -C /home/itheima

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

  • tar -zxvf test.tar.gz -C /home/itheima

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

注意:

  • -f选项,必须在选项组合体的最后一位

  • -z选项,建议在开头位置

  • -C选项单独使用,和解压所需的其它参数分开

  1. zip命令

zip [-r] 参数...

  • -r,被压缩的包含文件夹的时候,需要使用-r选项,和rm、cp等命令的-r效果一致

示例:

  • zip test.zip a.txt b.txt c.txt

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

  • zip -r test.zip test itheima a.txt

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

  1. unzip命令

unzip [-d] 参数

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

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

示例:

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

  • unzip test.zip -d /home/itheima,将test.zip解压到指定文件夹内(/home/itheima)

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

  • tar -zxvf test.tar.gz -C /home/itheima

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

注意:

  • -f选项,必须在选项组合体的最后一位

  • -z选项,建议在开头位置

  • -C选项单独使用,和解压所需的其它参数分开

  1. zip命令

zip [-r] 参数...

  • -r,被压缩的包含文件夹的时候,需要使用-r选项,和rm、cp等命令的-r效果一致

示例:

  • zip test.zip a.txt b.txt c.txt

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

  • zip -r test.zip test itheima a.txt

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

  1. unzip命令

unzip [-d] 参数

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

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

示例:

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

  • unzip test.zip -d /home/itheima,将test.zip解压到指定文件夹内(/home/itheima)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值