❤️新版Linux零基础快速入门到精通——第三部分❤️
- 非科班的我!Ta!还是来了~~~
- 3. Linux权限管控
- 4. Linux系统管理
- 5. Linux小技巧

 
非科班的我!Ta!还是来了~~~
Linux一开始就不是为桌面用户准备的,林纳斯自己本身就是一个Unix极客,他设计Linux就参考了Unix的设计哲学,也就是说Linux从一开始就是为专业用户设计的。 不管是Unix操作系统也好,还是Linux操作系统也好,本质上都是为了提高生产效率。Linux的设计者林纳斯,自己就是一个Unix极客,他是不满意Unix当时的版权问题,于是他吸收了很多Unix的优点,在这个基础上设计了Linux操作系统。Linux的设计哲学,让Linux很多场景下都需要命令行操作,并且Linux设计者并不是很鼓励大家使用桌面,或者更合理的说法是,Linux的设计初衷是即使你要用一个桌面,也希望你能掌握好各种命令行操作,Vim/Emacs、GCC等各种软件,都更加鼓励大家用命令行操作
Linux诞生的时机吧,运气也确实不太好,我们且不说苹果的Mac OS X,Linux在1991年的时候由林纳斯开发,内核开发出来之后,1991年10月5日,林纳斯将Linux V0.01版内核源代码释放出来供众多的开发者进行完善,一直到93年才有10万用户,这些用户也基本都是程序员,96年的时候也才350万用户。这个发展其实是有点太慢了,跟Windows、MacOS动辄几千万、上亿的用户没办法比。言归正传,Linux只是一门基本计算机技能,它对学习者的背景、知识结构、年龄都没啥要求,只要坚持不懈的进步,Linux没啥学不会的。当然在学习中总会遇到瓶颈,这个时候就需要自我调节、坚持下去。学习Linux有大量的东西需要记忆,如果你懒得背、懒得学习、懒得去搞清 ,那当然会觉得难学了。还是那句话,脚踏实地,总会有所收获。
❤️积极的学习心态意味着好的开始❤️

3. Linux权限管控
3.1 认知root用户
root用户拥有最大的操作权限,普通用户权限受限
- 普通用户的权限在home是不受限的

3.1.1 Switch User——su
 
切换用户:
su [-] [用户名]
- -符号是可选的,表示是否在切换用户后加载环境变量(后续讲解),建议带上
- 参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到- root
- 切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl+ d
- 使用普通用户,切换到其它用户需要输入密码,如切换到root用户
- 使用root用户切换到其它用户,无需密码,可以直接切换
3.1.2 sudo命令
 
- 在我们得知root密码的时候,可以通过su命令切换到root得到最大权限。但是我们不建议长期使用root用户,避免带来系统损坏。
- 我们可以使用sudo命令,为普通的命令授权,临时以root身份执行。
语法:
sudo 其它命令
-  在其它命令之前,带上 sudo,即可为这一条命令临时赋予root授权
-  但是并不是所有的用户,都有权利使用 sudo,我们需要为普通用户配置sudo认证
3.1.3 为普通用户配置sudo认证
 
- 切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers
- 在文件的最后添加:
itheima ALL=(ALL)
NOPASSWD: ALL

- 其中最后的NOPASSWD:ALL表示使用sudo命令,无需输入密码
- 最后通过wq保存
切换回普通用户
[itheimadlocalhost ~]$ sudo ls /root
anaconda-ks.cfg original-ks.cfg
[itheimadlocalhost ~]$ sudo mkdir /test
[itheimadlocalhost ~]$
执行的命令,均以root运行

3.2 用户和用户组
3.2.1 用户、用户组
Linux系统中可以:
- 配置多个用户
- 配置多个用户组
- 用户可以加入多个用户组中

 Linux中关于权限的管控级别有2个级别,分别是:
- 针对用户的权限控制
- 针对用户组的权限控制
比如,针对某文件,可以控制用户的权限,也可以控制用户组的权限。
所以,我们需要学习在Linux中进行用户、用户组管理的基础命令,为后面学习权限控制打下基础。

3.2.2 用户组管理
以下命令需root用户执行
- 创建用户组 
  - groupadd 用户组名
 
- 删除用户组 
  - groupdel 用户组名
 
为后续演示,我们创建一个itcast用户组: groupadd itcast

3.2.3 用户管理
以下命令需root用户执行
-  创建用户 - useradd [-g -d] 用户名
- 选项: -g指定用户的组,不指定-g,会创建同名组并自动加入,指定一g需要组已经存在,如已存在同名组,必须使用-g
- 选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
 
-  删除用户 - userdel [-r] 用户名
- 选项: -r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
 
-  查看用户所属组 - id [用户名]
- 参数:用户名,被查看的用户,如果不提供则查看自身
 
 
-  修改用户所属组 - usermod -aG 用户组 用户名 ,将指定用户加入指定用户组
 
getent命令:
-  可以查看当前系统中有哪些用户 - getent passwd
 
 
-  查看当前系统有哪些组 - getent group
 
 

3.3 显示inode的内容:stat
stat [文件或目录]
查看 testfile 文件的inode内容内容,可以用以下命令:


3.4 文件访问权限
用户能够控制一个给定的文件或目录的访问程度,一个文件或目录可能有读、写及执行权限:
- 读权限(r) :对于文件,具有读取文件内容的权限;对于目录,具有浏览目录的权限。
- 写权限(w) :对于文件,具有修改文件内容的权限;对于目录,具有删除、移动目录内文件的权限。
- 可执行权限(x): 对于文件,具有执行文件的权限;对于目录,该用户具有进入目录的权限。
示例:
 

 
第1个字母代表文件的类型:
- “d” 代表文件夹
- “-” 代表普通文件
- “c” 代表硬件字符设备
- “b” 代表硬件块设备
- “s”表示管道文件
- “l” 代表软链接文件。
后9个字母分别代表三组权限:文件所有者、用户组、其他用户拥有的权限。

3.5 修改文件权限:chmod
chmod 修改文件权限有两种使用格式:字母法与数字法。
3.5.1 字母法:chmod u/g/o/a +/-/= rwx 文件
 
| [ u/g/o/a ] | 含义 | 
|---|---|
| u | user 表示该文件的所有者 | 
| g | group 表示与该文件的所有者属于同一组( group )者,即用户组 | 
| o | other 表示其他以外的人 | 
| a | all 表示这三者皆是 | 
| [ ±= ] | 含义 | 
|---|---|
| + | 增加权限 | 
| - | 撤销权限 | 
| = | 设定权限 | 
| rwx | 含义 | 
|---|---|
| r | read 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。 | 
| w | write 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。 | 
| x | excute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。 | 

 除此之外,还有快捷写法:chmod 751 hello.txt

3.5.2 数字法:“rwx” 这些权限也可以用数字来代替
| 字母 | 说明 | 
|---|---|
| r | 读取权限,数字代号为 “4” | 
| w | 写入权限,数字代号为 “2” | 
| x | 执行权限,数字代号为 “1” | 
- 不具任何权限,数字代号为 “0”
如执行:chmod u=rwx,g=rx,o=r filename 就等同于:chmod u=7,g=5,o=4 filename
chmod 751 file:
- 文件所有者:读、写、执行权限
- 同组用户:读、执行的权限
- 其它用户:执行的权限
chmod 777 file:所有用户拥有读、写、执行权限
数字的细节如下: r记为4、w记为2、 x记为1、可以有:
| 数字 | 解释 | 转化 | 
|---|---|---|
| 0 | 无任何权限 | --- | 
| 1 | 仅有x权限 | --x | 
| 2 | 仅有w权限 | -W- | 
| 3 | 有w和x权限 | -WX | 
| 4 | 仅有r权限 | r-- | 
| 5 | 有r和x权限 | r-X | 
| 6 | 有r和w权限 | rW- | 
| 7 | 有全部权限 | rwx | 


3.6 修改文件所有者:chown
使用chown命令,可以修改文件、文件夹的所属用户和用户组
 普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行
语法:
 chown [-R] [用户][:] [用户组] 文件或文件夹
-  选项, -R,同chmod,对文件夹内全部内容应用相同规则
-  选项,用户,修改所属用户 
-  选项,用户组,修改所属用户组 
-  :用于 分隔用户和用户组
python@ubuntu:~/test$ ll h.txt 
-rw------- 1 python python 4 11月 22 22:35 h.txt
python@ubuntu:~/test$ chown mike h.txt 
chown: 正在更改'h.txt' 的所有者: 不允许的操作
python@ubuntu:~/test$ sudo chown mike h.txt 
python@ubuntu:~/test$ ll h.txt              
-rw------- 1 mike python 4 11月 22 22:35 h.txt

3.7 修改文件所属组:chgrp
python@ubuntu:~/test$ ll h.txt              
-rw------- 1 mike python 4 11月 22 22:35 h.txt
python@ubuntu:~/test$ sudo chgrp mike h.txt 
python@ubuntu:~/test$ ll h.txt              
-rw------- 1 mike mike 4 11月 22 22:35 h.txt

3.8 查看当前用户:whoami
查看当前系统当前账号的用户名。可通过cat /etc/passwd查看系统用户信息。

 
3.9 查看登录用户:who
who命令用于查看当前所有登录系统的用户信息。
常用选项:
| 选项 | 含义 | 
|---|---|
| -m或am I | 只显示运行who命令的用户名、登录终端和登录时间 | 
| -q或–count | 只显示用户的登录账号和登录用户的数量 | 
| -u | 在登录时间后显示该用户最后一次操作到当前的时间间隔 | 
| -u或–heading | 显示列标题 | 

 
3.10 退出登录账户: exit
如果是图形界面,退出当前终端;
如果是使用ssh远程登录,退出登陆账户;
如果是切换后的登陆用户,退出则返回上一个登陆账号。

4. Linux系统管理
4.1 查看当前日历:cal
cal命令用于查看当前日历,-y显示整年日历:

 

4.2 显示或设置时间:date

设置时间格式(需要管理员权限):
date [MMDDhhmm[[CC]YY][.ss]] +format
MM为月,DD为天,hh为小时,mm为分钟;CC为年前两位,YY为年的后两位,ss为秒。
如: date 010203042016.55。
 
显示时间格式(date ‘+%y,%m,%d,%H,%M,%S’):
| format格式 | 含义 | 
|---|---|
| %Y,%y | 年 | 
| %m | 月 | 
| %d | 日 | 
| %H | 时 | 
| %M | 分 | 
| %S | 秒 | 
自动校准时间的软件ntp
 

4.3 查看网络状态:netstat
netstat命令用于显示网络状态。

利用netstat指令可让你得知整个Linux系统的网络情况。
语法:
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
参数说明:
- -a或- -all显示所有连线中的Socket。
- -A<网络类型>或- -<网络类型>列出该网络类型连线中的相关地址。
- -c或- -continuous持续列出网络状态。
- -C或- -cache显示路由器配置的快取信息。
- -e或- -extend显示网络其他相关信息。
- -F或- -fib显示FIB。
- -g或- -groups显示多重广播功能群组组员名单。
- -h或- -help在线帮助。
- -i或- -interfaces显示网络界面信息表单。
- -l或- -listening显示监控中的服务器的Socket。
- -M或- -masquerade显示伪装的网络连线。
- -n或- -numeric直接使用IP地址,而不通过域名服务器。
- -N或- -netlink或- –symbolic显示网络硬件外围设备的符号连接名称。
- -o或- -timers显示计时器。
- -p或- -programs显示正在使用Socket的程序识别码和程序名称。
- -r或- -route显示Routing Table。
- -s或- -statistice显示网络工作信息统计表。
- -t或- -tcp显示TCP传输协议的连线状况。
- -u或- -udp显示UDP传输协议的连线状况。
- -v或- -verbose显示指令执行过程。
- -V或- -version显示版本信息。
- -w或- -raw显示RAW传输协议的连线状况。
- -x或- -unix此参数的效果和指定"-A unix"参数相同。
- -ip或- -inet此参数的效果和指定"-A inet"参数相同。
常用:


4.4 查看进程信息:ps
进程是一个具有一定独立功能的程序,它是操作系统动态执行的基本单元。
ps命令选项:
- ps a显示现行终端机下的所有程序,包括其他用户的程序。
- ps -A显示所有程序。
- ps c列出程序时,显示每个程序真正的指令名称,而不包含路 径,参数或常驻服务的标示。
- ps -e此参数的效果和指定"A"参数相同。
- ps e列出程序时,显示每个程序所使用的环境变量。
- ps f用ASCII字符显示树状结构,表达程序间的相互关系。
- ps -H显示树状结构,表示程序间的相互关系。
- ps -N显示所有的程序,除了执行ps指令终端机下的程序之外。
- ps s采用程序信号的格式显示程序状况。
- ps u以用户为主的格式来显示程序状况。
- ps x显示所有程序,不以终端机来区分。
| 选项 | 含义 | 
|---|---|
| -a | 显示终端上的所有进程,包括其他用户的进程 | 
| -u | 显示进程的详细状态 | 
| -x | 显示没有控制终端的进程 | 
| -w | 显示加宽,以便显示更多的信息 | 
| -r | 只显示正在运行的进程 | 
常见用法:
ps -e 查看所有进程信息(瞬时的)
 ps -u root -N 查看所有不是root运行的进程
 ps ax 显示所有进程状态状态
 ps -ef |grep xxx 显示含有xxx的进程
 实例:

显示指定用户信息:

显示所有进程信息,连同命令行


4.5 以树状图显示进程关系:pstree
显示进程的关系

特别表明在运行的进程:
# pstree -apnh //显示进程间的关系
同时显示用户名称:
# pstree -u //显示用户名称

4.6 动态显示进程:top
top命令用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新显示信息。-d参数可以指定显示信息更新的时间间隔。
在top命令执行后,可以按下按键得到对显示的结果进行排序:
| 按键 | 含义 | 
|---|---|
| M | 根据内存使用量来排序 | 
| P | 根据CPU占有率来排序 | 
| T | 根据进程运行时间的长短来排序 | 
| U | 可以根据后面输入的用户名来筛选进程 | 
| K | 可以根据后面输入的PID来杀死进程。 | 
| q | 退出 | 
| h | 获得帮助 | 

一、top前五条信息解释
top - 14:49:28 up 1:33, 1 user, load average: 0.00, 0.00, 0.00
| 内容 | 含义 | 
|---|---|
| 14:49:28 | 表示当前时间 | 
| up 1:33 | 系统远行时间,格式为时:分 | 
| 1 user | 当前登陆用户数 | 
| load average: 0.00, 0.00, 0.00 | 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值 | 
Tasks: 80 total, 2 running, 78 sleeping, 0 stopped, 0 zombie
| 内容 | 含义 | 
|---|---|
| Tasks: 80 total | 进程总数 | 
| 2 running | 正在运行的进程数 | 
| 78 sleeping | 睡眠的进程数 | 
| 0 stopped | 停止的进程数 | 
| 0 zombie | 僵尸进程数 | 
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
| 内容 | 含义 | 
|---|---|
| 0.0%us | 用户空间占用CPU百分比 | 
| 0.0%sy | 内核空间占用CPU百分比 | 
| 0.0%ni | 用户进程空间内改变过优先级的进程占用CPU百分比 | 
| 100.0%id | 空闲CPU百分比 | 
| 0.0%wa | 等待输入输出的CPU时间百分比 | 
| 0.0%hi | 硬中断(Hardware IRQ)占用CPU的百分比 | 
| 0.0%si | 软中断(Software Interrupts)占用CPU的百分比 | 
| 0.0 st | 用于有虚拟cpu的情况,用来指示被虚拟机偷掉的cpu时间 | 
Mem: 1922488k total, 406936k used, 1515552k free, 11940k buffers
| 内容 | 含义 | 
|---|---|
| 1922488k total | 物理内存总量 | 
| 406936k used | 使用的物理内存总量 | 
| 1515552k free | 空闲内存总量 | 
| 11940k buffers | 用作内核缓存的内存量 | 
Swap: 835576k total, 0k used, 835576k free, 111596k cached
| 内容 | 含义 | 
|---|---|
| 835576k total | 交换区总量 | 
| 0k used | 使用的交换区总量 | 
| 835576k free | 空闲交换区总量 | 
| 111596k cached | 缓冲的交换区总量 | 
二、进程信息
| 列名 | 含义 | 
|---|---|
| PID | 进程id | 
| USER | 进程所有者的用户名 | 
| PR | 优先级 | 
| NI | nice值。负值表示高优先级,正值表示低优先级 | 
| VIRT | 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES | 
| RES | 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA | 
| SHR | 共享内存大小,单位kb | 
| S | 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 | 
| %CPU | 上次更新到现在的CPU时间占用百分比 | 
| %MEM | 进程使用的物理内存百分比 | 
| TIME+ | 进程使用的CPU时间总计,单位1/100秒 | 
| COMMAND | 命令名/命令行 | 
更高级的命令是htop,但需要安装:
[root@VM_0_9_centos ~]# htop
  CPU[||                                                              1.3%]   Tasks: 55, 29 thr; 1 running
  Mem[||||||||||||||||||||||||||||||||||||||||||||||||||||||||||184M/1.80G]   Load average: 0.00 0.01 0.05 
  Swp[                                                               0K/0K]   Uptime: 42 days, 03:29:48
  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
 2609 root       20   0  156M  9132  1784 S  0.7  0.5 39:01.13 barad_agent
 2610 root       20   0  660M 14168  1976 S  0.7  0.8  3h35:20 barad_agent
 1158 root       20   0  120M  2576  1492 R  0.0  0.1  0:00.01 htop

4.7 终止进程:kill
kill命令指定进程号的进程,需要配合 ps 使用。
使用格式:
kill [-signal] pid
信号值从0到15,其中9为绝对终止,可以处理一般信号无法终止的进程。
关机重启:reboot、shutdown、init
| 命令 | 含义 | 
|---|---|
| reboot | 重新启动操作系统 | 
| shutdown –r now | 重新启动操作系统,shutdown会给别的用户提示 | 
| shutdown -h now | 立刻关机,其中now相当于时间为0的状态 | 
| shutdown -h 20:25 | 系统在今天的20:25 会关机 | 
| shutdown -h +10 | 系统再过十分钟后自动关机 | 
| init 0 | 关机 | 
| init 6 | 重启 | 

4.8 检测磁盘空间:df
df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。
| 选项 | 含义 | 
|---|---|
| -a | 显示所有文件系统的磁盘使用情况 | 
| -m | 以1024字节为单位显示 | 
| -t | 显示各指定文件系统的磁盘空间使用情况 | 
| -T | 显示文件系统 | 


4.9 检测目录所占磁盘空间:du
du命令用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于磁盘的使用状况。
du命令的使用格式如下: du [选项] 目录或文件名
| 选项 | 含义 | 
|---|---|
| -a | 递归显示指定目录中各文件和子目录中文件占用的数据块 | 
| -s | 显示指定文件或目录占用的数据块 | 
| -b | 以字节为单位显示磁盘占用情况 | 
| -l | 计算所有文件大小,对硬链接文件计算多次 | 


4.10 查看或配置网卡信息:ifconfig
ifconfig显示所有网卡的信息:
python@ubuntu:~$ ifconfig 
ens33     Link encap:以太网  硬件地址 00:0c:29:59:65:f2  
          inet 地址:192.168.40.11  广播:192.168.40.255  掩码:255.255.255.0
          inet6 地址: fe80::432f:6c4a:f47d:5f6b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:422794 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:208666 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:603741383 (603.7 MB)  发送字节:12819550 (12.8 MB)
lo        Link encap:本地环回  
          inet 地址:127.0.0.1  掩码:255.0.0.0
          inet6 地址: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  跃点数:1
          接收数据包:2248 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:2248 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1 
          接收字节:497588 (497.5 KB)  发送字节:497588 (497.5 KB)
修改ip:
python@ubuntu:~$ sudo ifconfig ens33 192.168.40.10
python@ubuntu:~$ ifconfig ens33
ens33     Link encap:以太网  硬件地址 00:0c:29:59:65:f2  
          inet 地址:192.168.40.10  广播:192.168.40.255  掩码:255.255.255.0
          inet6 地址: fe80::432f:6c4a:f47d:5f6b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:422818 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:208692 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:603745130 (603.7 MB)  发送字节:12822615 (12.8 MB)

4.11 测试远程主机连通性:ping
python@ubuntu:~$ ping 192.168.40.1
PING 192.168.40.1 (192.168.40.1) 56(84) bytes of data.
64 bytes from 192.168.40.1: icmp_seq=1 ttl=64 time=0.699 ms
64 bytes from 192.168.40.1: icmp_seq=2 ttl=64 time=0.372 ms
^C
--- 192.168.40.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.372/0.535/0.699/0.165 ms
python@ubuntu:~$ ping 192.168.40.1 -c 3
PING 192.168.40.1 (192.168.40.1) 56(84) bytes of data.
64 bytes from 192.168.40.1: icmp_seq=1 ttl=64 time=0.409 ms
64 bytes from 192.168.40.1: icmp_seq=2 ttl=64 time=0.367 ms
64 bytes from 192.168.40.1: icmp_seq=3 ttl=64 time=0.373 ms
--- 192.168.40.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.367/0.383/0.409/0.018 ms
python@ubuntu:~$ 

5. Linux小技巧
- ctrl + c强制停止
- ctrl + d退出或登出
- history显示历史命令
- !命令前缀,自动执行上一次匹配的命令
- ctrl + r历史命令搜索
光标移动快捷键
- ctrl+a,跳到命令开头
- ctrl+ e,跳到命令结尾
- ctrl+键盘左键,向左跳一个单词
- ctrl+键盘右键,向右跳一个单词
清屏
- 快捷键ctrl +l,可以清空终端内容
- clear得到同样效果

5.1 软件安装
5.1.1 Linux系统的应用商店
操作系统安装软件有许多种方式,一般分为:
- 下载安装包自行安装 
  - 如win系统 使用exe文件、Msi文件等
- 如mac系统使用dmg文件、pkg文件等
 
- 如win系统 使用
- 系统的应用商店内安装 
  - 如win系 统有Microsoft Store商店
- 如mac系统有AppStore商店
 
- 如win系 统有
Linux系统同样支持这两种方式,我们首先,先来学习使用: Linux命令行内的"应用商店" , yum命令安装软件
5.1.2 yum命令
yum: RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。
 语法: yum [-y] [install | remove | search] 软件名称
- 选项:-y,自动确认,无需手动确认安装或卸载过程
- install: 安装
- remove: 卸载
- search: 搜索
yum命令需要root权限,可以su切换到root,或使用sudo提权。
yum命令需要联网
案例:
- yum [-y] install wget通过yum命令安装wget
- yum [-y] remove wget通过yum命令卸载wget
5.1.3 apt命令
- CentOS: .rpm——yum
- Ubuntu:.deb——apt
小结:
- 在CentOS系统中,使用yum命令联网管理软件安装。 
  - yum语法: yum [-y] [install | remove | search] 软件名称
 
- yum语法: 
- 在Ubuntu系统中,使用apt命令联网管理软件安装。 
  - apt语法: apt [-y] [install | remove | search] 软件名称
 
- apt语法: 

5.2 systemctl控制软件启动关闭
语法:
systemctl start | stop | status | enable| disable 服务名
- start——启动
- stop——关闭
- status——查看状态
- enable——开启开机自启
- disable——关闭开机自启
系统内置的服务比较多,比如:
-  NetworkManager——主网络服务 
-  network——副网络服务 
-  firewalld——防火墙服务 
-  sshd,ssh服务——(FinalShell远程登录Linux使用的就是这个服务)  
除了内置的服务以外,部分第三方软件安装后也可以以systemctl进行控制。
- yum install -y ntp——安装ntp软件- 可以通过ntpd服务名,配合systemctl进行控制
 
- 可以通过
- yum install -y httpd——安装apache服务器软件- 可以通过httpd服务名,配合systemctl进行控制
 
- 可以通过

5.3 软连接
在系统中创建软链接,可以将文件、文件夹链接到其它位置。
语法:
ln -s 参数1 参数2
- -s选项, 创建软连接:
- 参数1: 被链接的文件或文件夹
- 参数2: 要链接去的目的地
实例:
- ln -s /etc/yum.conf ~/yum.conf
- ln -s /etc/yum ~/yum

5.4 ip地址和主机名
5.4.1 ip地址
- 每一台联网的电脑都会有一个地址,用于和其它计算机进行通讯
- IP地址主要有2个版本,V4版本和V6版本(V6很少用,课程暂不涉及)
- IPv4版本的地址格式是: a.b.c.d, 其中abcd表示0~255的数字,如192.168.88.101就是一个标准的IP地址

 
5.4.2 特殊ip地址
-  127.0.0.1 本机地址 
-  0.0.0.0 特殊IP地址 - 可以用于指代本机
- 可以在端口绑定中用来确定绑定关系
- 在一些IP地址限制中, 表示所有IP的意思,如放行规则设置为0.0.0.0,表示允许任意IP访问
 

5.4.3 主机名
- 每一台电脑除了对外联络地址(IP地址)以外,也可以有一个名字,称之为主机名
- 无论是Windows或Linux系统,都可以给系统设置主机名


 修改主机名
- hostnamectl set-hostname主机名,修改主机名(需root)
域名解析:

即:
- 先查看本机的记录(私人地址本) 
  - Windows看: C:\Windows\System32\drivers\etclhosts
- Linux看: /etc/hosts
 
- Windows看: 
- 再联网去DNS服务器询问

5.5 配置Linux固定ip
为什么需要固定IP
DHCP:动态获取IP地址,即每次重启设备后都会获取一次,可能导致IP地址频繁变更
- 原因1:办公电脑IP地址变化无所谓,但是我们要远程连接到Linux系统,如果IP地址经常变化我们就要频繁修改适配很麻烦
- 原因2:在刚刚我们配置了虚拟机IP地址和主机名的映射,如果IP频繁更改,我们也需要频繁更新映射关系
【linux】linux系统配置静态IP地址(超详细,手把手教会)

5.6 网络传输
5.6.1 网络请求和下载
5.6.1.1 ping命令




5.6.1.2 wget命令


5.6.1.3 curl命令


5.6.2 端口
端口,是设备与外界通讯交流的出入口。端口可以分为:物理端口和虚拟端口两类
- 物理端口:又可称之为接口,是可见的端口,如USB接口,RJ45网口, HDMI端口等
- 虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的

 
5.6.2.1 端口的作用
端口号的主要作用是表示一台计算机中的特定进程所提供的服务。网络中的计算机是通过IP地址来代表其身份的,它只能表示某台特定的计算机,但是一台计算机上可以同时提供很多个服务,如数据库服务、FTP服务、Web服务等,我们就通过端口号来区别相同计算机所提供的这些不同的服务,如常见的端口号21表示的是FTP服务,端口号23表示的是Telnet服务,端口号25指的是SMTP服务等。
5.6.2.2 端口的分类
TCP与UDP段结构中端口地址都是16比特,可以有在0—65535范围内的端口号。
按照端口号分类:
- 公认端口:0~1023。它们紧密绑定于一些服务,通常这些端口的通讯明确表明了某种服务的协议,如:80端口对应与HTTP通信,21端口绑定与FTP服务,25端口绑定于SMTP服务,135端口绑定与RPC(远程过程调用)服务。
- 注册端口:1024~49151。它们松散的绑定于一些服务,也就是说有许多服务绑定于这些端口,这些端口同样用于其他许多目的,如:许多系统处理端口从1024开始
- 动态或私有端口:49152~65535。理论上,不应为服务分配这些端口,通常机器从1024开始分配动态端口。例外:SUN的RPC端口从32768开始。
按照协议类型分类:按协议类型划分可分为TCP端口、UDP端口、IP端口、ICMP。
- TCP端口:即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括FTP的21端口,Telnet的23端口,SMTP的25端口,HTTP的80端口。
- UDP端口:即用户数据报协议端口,无需在客户端和服务器端建立连接,安全性得不到保障。常见的DNS的53端口,SNMP(简单网络管理协议)的161端口,QQ使用的8000和4000端口。
- 保留端口:UNIX有保留端口号的概念,只有超级用户特权的进程才允许给它自己分配一个保留端口号。这些端口号介于1~1023之间,一些应用程序将它作为客户与服务器认证的一部分。
5.6.2.3 端口使用的注意事项
- 不要使用端口号小于1024的端口。
- 端口号一般习惯为4位整数,在同一台计算机上端口号不能重复,否则,会产生端口号冲突。
- 客户端端口号因存在时间很短暂又称临时端口号,大多数TCP/IP实现给临时端口号分配1024—5000之间的端口号。大于5000的端口号是为其他服务器预留的 。
5.6.2.4 查看端口占用

1. 使用 netstat 命令
netstat 是一个用于显示网络状态信息的命令。要查看特定端口是否被占用,可以使用以下命令:
netstat -tuln | grep 端口号
- -t: 显示 TCP 连接信息
- -u: 显示 UDP 连接信息
- -l: 仅显示监听状态的端口
- -n: 使用数字格式显示端口号,而不是服务名
- grep 端口号: 使用 grep 命令过滤出指定的端口号信息
例如,要查看端口号 80 是否被占用,可以执行:
netstat -tuln | grep 80

2. 使用 ss 命令
ss 是一个更现代化的工具,用于显示套接字统计信息。它比 netstat 更快速和高效。要查看端口占用情况,可以使用以下命令:
ss -tuln | grep 端口号
-t: 显示 TCP 连接信息
 -u: 显示 UDP 连接信息
 -l: 仅显示监听状态的端口
 -n: 使用数字格式显示端口号,而不是服务名
 grep 端口号: 使用 grep 命令过滤出指定的端口号信息
 例如,要查看端口号 80 是否被占用,可以执行:
ss -tuln | grep 80
3. 查看所有端口占用情况
如果你想查看系统上所有端口的占用情况,只需省略 grep 命令即可:
使用 netstat:
netstat -tuln
或者使用 ss:
ss -tuln
这将显示所有 TCP 和 UDP 端口的监听情况。

5.7 环境变量

是key-value的结构
用来记录一些关键信息
输入env查看


自行设置环境变量:


5.8 上传、下载




5.9 压缩 、解压
5.9.1 压缩格式
市面上有非常多的压缩格式
- zip格式: Linux、Windows、MacOS,常用
 -7zip: Windows系统常用
- rar: Windows系统常用
- tar: Linux、MacOS常用
- gzip: Linux、MacOS常用
在Windows系统中常用的软件如: winrar bandizip等软件,都支持各类常见的压缩格式,这里不多做讨论。
Linux和Mac系统常用有2种压缩格式,后缀名分别是:
-  .tar,称之为tarball,归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装
-  .gz,也常见为.tar.gz, gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一一个文件内,可以极大的减少压缩后的体积
语法:
tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数n
下表列出了tar命令的一些常用参数及其功能:
| 参数 | 功能 | 
|---|---|
| -c | 创建新的归档文件(打包) | 
| -x | 从归档文件中提取文件(解包) | 
| -f <文件名> | 指定归档文件名 | 
| -v | 显示操作的详细信息 | 
| -z | 通过gzip压缩归档文件 | 
| -j | 通过bzip2压缩归档文件 | 
| -C <目录> | 切换到指定目录 | 
| –exclude=<模式> | 排除匹配模式的文件 | 
| –list | 列出归档文件的内容 | 
| –help | 显示帮助信息 | 
5.9.2 tar命令压缩

5.9.3 tar命令解压

5.9.4 zip命令压缩

5.9.5 unzip命令解压













