linux的入门到精通【三】

liunx

前言

上篇有关linux命令的文章中有提到用户的切换,那么,当你新创建一个虚拟机的时候,系统会提示你创建一个用户以便登录系统,而该用户就在home目录下。而该用户的权限是不受限的
而在linux中就有一个超级管理员:root;拥有着系统的最大权限。

root用户

root用户的切换:su - root
密码默认为123456
通过输入exit退回到普通用户

提示鉴定故障时 输入 sudo passwd root来初始化root密码

su命令

切换用户
语法:su [-] [用户]
其中 - 建议带上,表示切换时加载环境变量
用户也可以省略,默认切换到root用户

exit命令

退回到上一个用户
语法:exit
也可以用快捷键Ctrl+d来达到相同效果

不建议长期使用root用户来操作系统,以免发生不可挽回的事件。可以使用sudo命令来短暂获得root权限

sudo命令

为普通命令授权,临时以root身份执行命令
语法:sudo 其他命令
使用sudo前,需要为普通用户配置sudo认证:
以root用户执行visudo命令进入文件编辑模式,该文件就是/etc/sudoers
在文件的最后添加:
用户名 ALL=(ALL) NOPASSWD: ALL
最后wq保存即可

用户

linux可以有多个用户以及多个用户组,用户也可存在于多个用户组中
所以linux对用户的权限有两个级别:

  • 对用户的控制
  • 对用户组的控制

关于用户组的命令:

  • groupadd 用户组名 创建用户组
  • groupdel 用户组名 删除用户组
    关于用户的命令:
  • useradd [-g -d] 用户名 创建用户
  • -g 指定用户的组并加入,不指定则创建同名组并加入
  • -d 指定用户的HOME路径,默认HOME目录:/home/用户名
  • userdel [-r] 用户名 删除用户
  • -r 同时删除用户的home目录
  • id [用户名] 查看用户所属组
  • usermod -aG 用户组 用户名 将指定的用户加入到用户组中
getent命令

getent可以用来查看系统中有哪些用户
getent passwd 查看系统中有哪些用户
在这里插入图片描述
列出的结果中有7份信息:
用户名:密码(X):用户id:用户组id:描述信息(无用):HOME目录:执行终端(默认bash)
getent group 查看系统中有哪些用户组
在这里插入图片描述
包含3份信息
组名称:组认证(X):组id

权限

在这里插入图片描述

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

权限控制信息:1+3+3+3 = 10位
drwxr-xr-x
在这里插入图片描述

RWX:读 写 执行

修改权限控制信息命令chmod

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

  • -R 对文件夹内部内容应用同样操作
  • 权限参数为u g o(User Group Other) 例如:u=rwx,g=rx,o=x
    实例
    chmod u=rwx,g=rx,o=x test.txt 将test.txt文件权限修改为rwxr-x–x
    可以用数字来简写权限。如 chmod 751 test.txt
    其中:r记为4,w记为2,o记为1 (类似二进制)
    751:421–7,41–5,1–1:rwxr-x–x
修改权限用户和用户组命令chown

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

只能用root权限来执行

  • 选项,-R,同chmod,对文件夹内全部内容应用相同规则
  • 选项,用户,修改所属用户
  • 选项,用户组,修改所属用户组
  • : 用于分隔用户和用户组
    实例
  • chawn root hello.txt,将hello.txt所属用户修改为root
  • chawn :root hello.txt,将hello.txt所属用户组修改为root

linux的各类小技巧

  • ctrl+c 强制停止
  • ctrl+d 退出或登出(不能退出vi/vim)
  • history命令,查看历史输入过的命令
  • !命令前缀 会从新到旧找到前缀的命令并执行
  • ctrl+r输入内容去匹配历史命令并执行,回车直接执行,左右键得到此命令不执行
  • ctrl+lclear命令 清屏

linux软件安装

CentOS用yum
Ubuntu用apt
Linux命令行内的“应用商店”
yum : RPM包软件管理器(.rpm文件),用于自动化安装配置Linux软件,并可以自动解决依赖问题。
语法: yum [-y] [install | remove | search] 软件名称

  • 选项:-y,自动确认,无需手动确认安装或卸载过程
  • install :安装
  • remove :卸载
  • search :搜索
    例如:yum -y install wget

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

systemctl命令

Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制︰启动、停止、开机自启
能够被systemctl管理的软件,一般也称之为︰服务
语法:systemctl start l stop l status l enable l disable 服务名

  • start启动
  • stop关闭
  • status查看状态
  • enable开启开机自启
  • disable关闭开机自启
    系统内置的服务比较多,比如∶
  • NetworkManager,主网络服务
  • network,副网络服务
  • firewalld,防火墙服务
  • sshd , ssh服务(FinalShell远程登录Linux使用的就是这个服务)

部分软件安装后没有自动集成到systemctl中,也就是不支持systemctl命令控制。此时我们可以手动添加。

软连接

ln命令创建软连接
在系统中创建软链接,可以将文件、文件夹链接到其它位置。类似Windows系统中的《快捷方式》
语法:ln -s 参数1参数2

  • -s选项,创建软连接
  • 参数1:被链接的文件或文件夹。参数2∶要链接去的目的地实例:
    例如
    ln -s /etc/yum.conf ~/yum.conf
    ln -s /etc/yum ~/yum

时间,时区

通过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-0100:00:00 UTC到现在的秒数
    例如:date “+%Y-%m-%d %H:%M:%S”

-d选项,可以按照给定的字符串显示日期,一般用于日期计算
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时区
    系统默认时区非中国的东八区。
    使用root权限,执行如下命令,修改时区为东八区时区
    rm -f /etc/localtime
    sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    将系统自带的localtime文件删除,并将/usr/share/zoneinfo/Asia/Shanghai文件链接为localtime文件即可

可以下载安装ntp程序来自动校准时间 yum -y install ntp
ntp也是服务,需要systemctl来启动
ntp手动校准:ntpdate -u ntp.aliyun.com

linux ip主机

ifconfig
可以通过命令: ifconfig,查看本机的ip地址,如无法使用ifconfig命令,可以安装:yum -y install net-tools
ens33:主网卡。
在这里插入图片描述
主机名:
hostname 得到linux系统主机名
可以使用命令: hostnamectl set-hostname 主机名,修改主机名(需root )

linux系统的本地ip地址记录:/etc/hosts
Windows系统:C:\Windows\System32\drivers\etc\hosts文件

虚拟机配置固定IP

当前我们虚拟机的Linux操作系统,其IP地址是通过DHCP服务获取的。
DHCP:动态获取IP地址,即每次重启设备后都会获取一次(因为有缓存的存在,普通的电脑重启并不会更改ip),可能导致IP地址频繁变更
配置固定IP需要2个大步骤:
1.在VMware Workstation (或Fusion )中配置IP地址网关和网段(IP地址的范围)
2.在Linux系统中手动修改配置文件,固定IP
在这里插入图片描述
选择VMnet8
在这里插入图片描述
在这里插入图片描述
现在进行第二步,在Linux系统中修改固定IP

  • 使用vim编辑/etc/sysconfig/network-scripts/ifcfg-ens33文件,填入如下内容
    在这里插入图片描述
  • 执行 : systemctl restart network重启网卡,执行ifconfig即可看到ip地址固定为192.168.88.130了

ping命令

可以通过ping命令,检查指定的网络服务器是否是可联通状态
语法: ping [-c num] ip或主机名

  • 选项:-c,检查的次数,不使用-c选项,将无限次数持续检查
  • 参数: ip或主机名,被检查的服务器的ip地址或主机名地址

wget命令

wget是非交互式的文件下载器,可以在命令行内下载网络文件
语法:wget [-b] url

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

curl命令

curl可以发送http网络请求,可用于∶下载文件、获取信息等
语法: curl [-o] url

  • 选项:-O,用于下载文件,当url是下载链接时,可以使用此选项保存文件。
  • 参数:url,要发起请求的网络地址

端口

计算机程序之间的通讯,通过IP只能锁定计算机,但是无法锁定具体的程序。
通过端口可以锁定计算机上具体的程序,确保程序之间进行沟通
Linux系统可以支持65535个端口,这6万多个端口分为3类进行使用:

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

可以通过Linux命令去查看某IP地址端口的占用情况
使用nmap命令,安装nmap : yum -y install nmap
语法:nmap 被查看的IP地址
在这里插入图片描述
还可以通过netstat命令,查看指定端口的占用情况
语法 : netstat -anp | grep 端口号,安装netstat : yum -y install net-tools

linux进程管理

可以通过ps命令查看Linux系统中的进程信息
语法: ps [-e -f ]

  • 选项: -e,显示出全部的进程
  • 选项:-f,以完全格式化的形式展示信息(展示全部信息)一般来说,
  • 固定用法就是: ps -ef 列出全部进程的全部信息
    在这里插入图片描述
    从左到右分别是︰
  • UID:进程所属的用户ID
  • PID:进程的进程号ID
  • PPID:进程的父ID(启动此进程的其它进程)
  • C:此进程的CPU占用率(百分比)
  • STIME:进程的启动时间
  • TTY︰启动此进程的终端序号,如显示?,表示非终端启动
  • TIME:进程占用CPU的时间
  • CMD∶进程对应的名称或启动路径或启动命令

一般可以使用管道符配合grep来进行过滤,
如:ps -ef | grep tail,即可准确的找到tail命令的信息

关闭进程
在Windows系统中,可以通过任务管理器选择进程后,点击结束进程从而关闭它。
同样,在Linux中,可以通过kill命令关闭进程。
语法:kill [ -9] 进程ID
选项:-9,表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的
处理机制。

linux主机状态

可以通过top命令查看CPU、内存使用情况,类似Windows的任务管理器
默认每5秒刷新一次,
语法∶直接输入top即可,按q或ctrl + c退出
在这里插入图片描述

  • 第一行🔝命令名称,14:50:14:当前系统时间,up 41 min:启动了41分钟,4 users : 4个用户登录,load : 1、5、15分钟的平均负载
  • 第二行:Tasks进程信息 : 148个进程,5 running : 5个进程子在运行,143 sleeping : 143个进程睡眠,0个停止进程,0个僵尸进程
  • 第三行 :%Cpus : CPU使用率, us : 用户CPU使用率, sy :系统CPU使用率,ni:高优先级进程占用CPU时间百分比, id :空闲CPU率,wa : lO等待CPU占用率, hi :CPU硬件中断率,si :CPU软件中断率,st:强制等待占用CPU率
  • 第四、五行 :
    Kib Mem :物理内存,total :总.量,free :空闲,used :使用,buff/cache : buff和cache占用
    KibSwap:虚拟内存(交换空间) , total :总量,free:空闲,used :使用, buff/cache : buff和cache占用

进程信息

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

top命令也支持选项:

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

当top以交互式运行(非-b选项启动),可以用以下交互式命令进行控制
在这里插入图片描述
磁盘信息监控
使用df命令,可以查看硬盘的使用情况
语法:df [-h]
选项:-h,以更加人性化的单位显示

可以使用iostat查看CPU、磁盘的相关信息
语法: iostat [-x] [num1] [num2]

  • 选项:-x,显示更多信息
  • num1: 数字,刷新间隔,
  • num2: 数字,刷新几次
    在这里插入图片描述
    rKB/s :每秒发送到设备的读取请求数
    wKB/s :每秒发送到设备的写入请求数
    %util :磁盘利用率

网络状态监控
可以使用sar命令查看网络的相关统计( sar命令非常复杂,这里仅简单用于统计网络)
语法: sar -n DEV num1 num2

  • 选项:-n,查看网络,
  • DEV表示查看网络接口
  • num1:刷新间隔(不填就查看一次结束)
  • num2:查看次数(不填无限次数)
    在这里插入图片描述
    信息解读中主要看这俩个∶
  • IFACE本地网卡接口的名称
  • rxKB/S每秒钟接受的数据包大小,单位为KB
  • txKB/S每秒钟发送的数据包大小,单位为KB

环境变量

环境变量是操作系统( Windows、Linux、Mac )在运行的时候,记录的一些关键性信息,用以辅助系统运行。
在Linux系统中执行:env命令即可查看当前系统中记录的环境变量
环境变量是一种KeyValue型结构,即名称和值,如下图:
在这里插入图片描述
环境变量:PATH
使用cd命令时,无论当前工作目录是什么,都能执行/usr/bin/cd这个程序,这个就是借助环境变量中:PATH这个项目的值来做到的。
env | grep PATH
在这里插入图片描述
路径之间用==:==隔开
当执行任何命令,都会按照顺序,从上述路径中搜索要执行的程序的本体
比如执行cd命令,就从第二个目录/usx/bin中搜索到了cd命令,并执行

** 符号 ∗ ∗ 在 L i n u x 系统中, 符号** 在Linux系统中, 符号Linux系统中,符号被用于取"变量"的值。
环境变量记录的信息,除了给操作系统自己使用外,如果我们想要取用,也可以使用。取得环境变量的值就可以通过语法:$环境变量名来取得
比如: echo $PATH
就可以取得PATH这个环境变量的值,并通过echo语句输出出来。
同时也可以用{}包裹起变量名来用在表达式中,如:
在这里插入图片描述
自行设置环境变量
Linux环境变量可以用户自行设置,其中分为∶

  • 临时设置,语法: export 变量名=变量值
  • 永久生效:(配置内容就是临时设置的语法)
  • 针对当前用户生效,配置在当前用户的:~/.bashrc文件中
  • 针对所有用户生效,配置在系统的:/etc/profile文件中
    并通过语法:source配置文件,进行立刻生效,或重新登录FinalShell生效
    在这里插入图片描述
    自定义环境变量PATH
    环境变量PATH这个项目里面记录了系统执行命令的搜索路径。这些搜索路径我们也可以自行添加到PATH中去。
    测试:
    。在当前HOME目录内创建文件夹,mxenv,在文件夹内创建文件mkhaha。通过vim编辑器,在mkhaha文件内填入: echo哈哈哈
    完成上述操作后,随意切换工作目录,执行mkhaha命令尝试一下,会发现无法执行
    。修改PATH的值
    临时修改PATH : export PATH= P A T H : / r o o t / m y e n v ,再次执行 m k h a h a ,无论在哪里都能执行了或将 e x p o r t P A T H = PATH:/root/myenv,再次执行mkhaha,无论在哪里都能执行了 或将export PATH= PATH:/root/myenv,再次执行mkhaha,无论在哪里都能执行了或将exportPATH=PATH:/root/myenv,填入用户环境变量文件或系统环境变量文件中去
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    语法:export PATH=**$PATH:**自定义路径
    执行:source 配置文件

上传与下载:rz与sz命令

finshell可以直接在文件栏右键上传和下载
命令就有:rz上传,sz下载
首先需要安装:yum -y install lrzsz
sz 文件 下载到默认目录
rz 可直接打开操作框进行上传
但是用命令上传会很慢,通常用finshell工具来上传下载

压缩与解压

市面上有非常多的压缩格式

  • zip格式:Linux、Windows、MacOS,常用
  • 7zip : Windows系统常用
  • rar : Windows系统常用
  • tar : Linux、MacOS常用
  • gzip : Linux、MacOS常用
    现在要学习,如何在Linux系统中操作 : tar、gzip、zip这三种压缩格式
    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的常用压缩组合有:
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选项单独使用,和解压所需的其它参数分开

zip命令压缩文件
可以使用zip命令,压缩文件为zip压缩包
语法:zip [-r] 参数1 参数2 ... 参数N
选项: -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 gzd a.txt
将test、gzd两个文件夹和a.txt文件,压缩到test.zip文件内

unzip命令解压文件
使用unzip命令,可以方便的解压zip压缩包
语法: unzip [-d] 参数
选项: -d,指定要解压去的位置,同tar的-C选项。
参数,被解压的zip压缩包文件
示例:

  • unzip test.zip,将test.zip解压到当前目录
  • unzip test.zip -d /home/gzd,将test.zip解压到指定文件夹内(/home/gzd)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值