学习视频:黑马程序员新版Linux零基础快速入门到精通,全涵盖linux系统知识、常用软件环境部署、Shell脚本、云平台实践、大数据集群项目实战等

ls命令

​ 可以指定要查看的文件夹(目录)的内容,如果不给定参数,就查看当前工作目录的内容

ls [-a -l -h]

    -a 选项,可选,可以展示出隐藏的内容
        以.开头的文件或文件夹默认被隐藏,需要-a才能显示出来
    -l 选项,可选,以列表的形式展示内容,并展示更多细节
    -h 选项,可选,需要和-l选项搭配使用,以更加人性化的方式显示文件的大小单位

命令的选项是可以组合使用的,比如:ls -lah,等同于ls -l -a -h

cd命令

(Change Directory)

​ 可以用来切换当前工作目录

cd Linux路径
  • 进入用户目录

    用户目录在/home/用户名中,用户目录也可以用~表示(Esc键下方)

    cd /home/用户名	等同于	cd ~
    

pwd命令

(Print Work Directory)

​ 输出当前所在工作目录

touch命令

用于创建一个新的文件

touch Linux路径

参数必填,表示要创建的文件的路径,相对,绝对,特殊路径都可以使用

更多用法:https://blog.csdn.net/qq_74137843/article/details/136820705

cat命令

用于查看文件内容

cat Linux路径

参数必填,表示要查看的文件的路径,相对,绝对,特殊路径都可以使用

more命令

用于查看文件内容,可翻页查看

more linux路径

参数必填,表示要查看的文件的路径,相对,绝对,特殊路径都可以使用

使用空格进行翻页,使用q退出查看

cp命令

用于复制文件或文件夹

cp -r 参数1 参数2

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

mv命令

用于移动或重命名文件或文件夹

mv 参数1 参数2

    参数1,Linux路径,表示被移动的文件或文件夹
    参数2,Linux路径,表示要去的地方,如果目标不存在,则进行改名

虚拟机快照

​ 拍摄快照前建议将虚拟机关机,在虚拟机主页选项栏中选择虚拟机-拍摄快照

​ 拍摄虚拟机快照是在当前虚拟机状态下创建一个还原点,当遇到虚拟机损坏打不开等情况下,选择恢复快照就会回到拍摄虚拟机快照时的虚拟机状态

rm命令

用于删除文件或文件夹

rm [-r -f] 参数1 参数2 ...... 参数N

    -r 选项,可选,文件夹删除
    -f 选项,可选,用于强制删除(不提示,一般用于root用户)
    参数,表示被删除的文件或文件夹路径,支持多个,空格隔开
    参数也支持通配符*,用作模糊匹配
  • 删库跑路命令

需要root,作用是删除根目录下所有文件,不可恢复,虚拟机将完全损坏,执行前建议创建虚拟机快照

rm -rf /*

which命令

查找命令的程序文件

which 要查找的命令

无需选项,只要参数表示查找那个命令

find命令

用于查找指定文件

按文件名查找
    find 起始路径 -name "被查找文件名"
        支持通配符
按文件大小查找
    find 起始路径 -size +|-n[k/M/G]
        +、-表示大于和小于
        n表示大小数字
        k/M/G表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB

grep命令

从文件中通过关键词过滤文件行

grep -n 关键字 文件路径

    -n 选项,可选,表示在结果中显示匹配的行的行号
    参数,关键字,必填,表示过滤的关键字,建议使用""将关键字包围起来
    参数,文件路径,必填,表示要过滤内容的文件路径,可作为管道符"|"的输入

wc命令

命令统计文件的行数、单词数量、字节数、字符数等

wc [-c -m -l -w] 文件路径

    不带选项默认统计:行数、单词数、字节数
    -c 字节数、-m 字符数、-l 行数、-w 单词数
    参数,被统计的文件路径,可作为管道符的输入

管道符 |

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

https://blog.csdn.net/qq_43768851/article/details/124380356

echo命令

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

echo 输出的内容

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

反引号符 `

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

例如:

echo pwd

输出的是pwd三个字符

echo `pwd`

输出的是执行pwd命令输出的内容

重定向符 >

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

例如:

ls > test.txt

tail命令

查看文件尾部内容,并可以持续跟踪

tail [-f -num] Linux路径

    -f 持续跟踪
    -num 启动的时候查看尾部多少行,默认10
        例如:tail -20 test.txt
    Linux路径,表示被查看的文件

vi编辑器

vi\vim编辑器,就是命令模式下的文本编辑器,用来编辑文件

vim是vi的升级版,一般用于vim即可,包含全部vi功能

vi 文件路径
vim 文件路径
  • 运行模式

​ 命令模式,默认的模式,可以通过键盘快捷键控制文件内容

​ 输入模式,通过命令模式进入,可以输入内容进行编辑,按esc退回命令模式

​ 底线命令模式,通过命令模式进入,可以对文件进行保存、关闭等操作

  • 命令模式快捷键

模式 命令 描述
命令模式 i 在当前光标位置进入输入模式
命令模式 a 在当前光标位置 之后 进入输入模式
命令模式 I(大写i 在当前行的开头,进入输入模式
命令模式 A 在当前行的结尾,进入输入模式
命令模式 o 在当前光标的下一行进入输入模式
命令模式 O(大写o 在当前光标的上一行进入输入模式
输入模式 Esc 任何情况下按Esc键都能回到命令模式
命令模式 键盘上、键盘k 向上移动光标
命令模式 键盘下、键盘j 向下移动光标
命令模式 键盘左、键盘h 向左移动光标
命令模式 键盘右、键盘l 向右移动光标
命令模式 数字0 移动光标到当前行的开头
命令模式 $ 移动光标到当前行的结尾
命令模式 pageup(PgUp) 向上翻页
命令模式 pangdown(PgDn) 向下翻页
命令模式 / 进入搜索模式
命令模式 n 向上继续搜索
命令模式 N 向上继续搜索
命令模式 dd 删除光标所在行的内容
命令模式 ndd n是数字,表示删除当前光标向下n行
命令模式 yy 复制当前行
命令模式 nyy n是数字,复制当前行和下面的行
命令模式 p 粘贴复制的内容
命令模式 u 撤销修改
命令模式 ctrl + r 反向撤销修改
命令模式 gg 跳到首行
命令模式 G 跳到行尾
命令模式 dG 从当前行开始,向下全部删除
命令模式 dgg 从当前行开始,向上全部删除
命令模式 d$ 从当前光标开始,删除到本行的结尾
命令模式 d0 从当前光标开始,删除到本行的开头
  • 底线命令模式

在命令模式内,输入英文:,即可进入底线命令模式,支持如下命令:

模式 命令 描述
底线命令模式 :wq 保存并退出
底线命令模式 :q 仅退出
底线命令模式 :q! 强制退出
底线命令模式 :w 仅保存
底线命令模式 :set nu 显示行号
底线命令模式 :set paste 设置粘贴模式

su命令

可以切换用户

su - 用户名

- 表示切换后加载环境变量,建议带上
用户名可以省略,省略默认切换到root

exit命令

退出当前登录的用户

sudo命令

可以让一条普通命令带有root权限

sudo 其他命令

执行sudo命令之前需要以root用户执行visudo命令,会自动通过vi编辑器打开/etc/sudoers,在文件的末尾添加你的用户名 ALL=(ALL) NOPASSWD:ALL后方可让普通用户有sudo命令的权限,NOPASSWD表示执行sudo命令时不需要输入密码,若需要输密码就将NOPASSWD:删除

用户、用户组相关管理命令

groupadd添加组、groupdel删除组

groupadd 用户组名
groupdel 用户组名

useradd添加用户、userdel删除用户

useradd [-g -d] 用户名
    -g 选项,可选,指定用户的组,如果不指定,会创建同名组并自动加入,指定-g需要组已经存在,如以存在同名组,必须使用-g
    -d 选项,可选,指定用户HOME路径,如果不指定,HOME目录默认在:/home/用户名
    例如:
        useradd test1 -g group1 -d /home/test

userdel -r 用户名
    -r 选项,可选,删除用户的HOME路径,如果不指定,HOME目录不会删除(HOME目录默认在:/home/用户名)

usermod修改用户组、id命令查看用户信息

usermod -aG 用户组 用户名
    将指定用户加入指定用户组
    
id 用户名
    参数,用户名,被查看的用户,如果不指定用户名则查看当前登录用户

getent passwd查看系统全部用户信息

共有7份信息,分别是:
    用户名:密码(显示为x):用户ID:组ID:描述信息(空):HOME目录:执行终端(默认bash)

getent group查看系统全部组信息

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

查看权限控制信息

ls -l列出权限信息

1 表示文件、文件夹的权限控制信息

2 表示文件、文件夹所属用户

3 表示文件、文件夹所属用户组

  • 权限细节

文件类型 所属用户权限 所属用户组权限 其他用户权限
-dl r- w- x- r- w- x- r- w- x-
文件类型:
    - 表示文件
    d 表示文件夹
    l 表示软连接
权限:
    r 表示读权限
    w 表示写权限
    x 表示执行权限
    - 表示无权限

chmod命令

功能:修改文件、文件夹的权限细节

限制:只能是文件、文件夹的所属用户或root用户可以修改

语法:

chmod -R 权限 文件或文件夹

-R 选项,可选,对文件夹内的全部内容应用同样规则
  • 权限的数字序号

权限 数字
r 4
w 2
x 1
chmod 640 text.txt 
  
# 分析
- 6 = 4 + 2 + 0 表示所有者具有 rw 权限 
- 4 = 4 + 0 + 0 表示群组用户具有 r 权限  
- 0 = 0 + 0 + 0 表示其它用户没有权限

对应文字权限为:-rw-r-----  

chown命令

功能:修改文件、文件夹的所属用户

限制:只可root用户执行

语法:

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

-R 选项,可选,同chmod,对文件夹内的全部内容应用同样规则
: 用于分割用户和用户组

各类小技巧快捷键

快捷键 作用
Tab 输入命令时按Tab键自动补全代码
ctrl + c 强制停止
ctrl + d 退出当前用户登录
history 查看历史命令
! 命令前缀,输入命令关键词,自下而上匹配history命令中的命令,或输入history命令中历史命令的序号
ctrl + r 搜索历史命令
ctrl + a/e 光标移动到开始或结束
ctrl + / 光标左右跳单词
ctrl + lclear命令 清屏

yum软件安装

在CentOS系统中,使用yum命令联网管理软件安装,需要root权限

yum语法:

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

-y 选项,可选,表示安装过程中自动同意
install 参数,表示安装软件
remove 参数,表示卸载软件
search 参数,表示查找软件

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

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

与yum命令相同

systemctl命令

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

  • 系统内置服务均可被systemctl控制
  • 第三方软件,如果自动注册了也可以被systemctl控制
  • 第三方软件,如果没有自动注册,可以手动注册(后续学习)

语法:

systemctl [start | stop | restart | status | enable | disable] 服务名

    start 开启服务
    stop 停止服务
    restart 重启服务
    status 查看服务状态
    enable 将服务设置为开机自启动
    disable 关闭服务开机自启动

软连接

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

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

语法:

ln -s 参数1 参数2
    -s 选项,创建软连接
    参数1:被链接的文件或文件夹
    参数2:要链接去的目的地

Windows使用软连接:Windows创建软链接

date命令

功能:date命令可以查看日期和时间,并可以格式化显示形式以及做日期计算

语法:

date -d "+格式化字符串"
    
    -d 可选,选项,按照给定的字符串显示日期,一般用于日期计算
        date -d "+1 year" "+%Y%m%d"	显示后一年的日期
        date -d "-2 day" "+%Y%m%d"	显示前两天的日期
            支持的时间标记:
                year	年
                month 	月
                day	天
                hour	小时
                minute	分钟
                second	秒
                
    格式化字符串:
        %Y	年
        %y	年份后两位数字(2024年取24)(范围00-99)
        %m	月份(范围01-12)
        %d	日(范围01-31)
        %H	小时(范围01-23)
        %M	分钟(范围00-59)
        %S	秒(范围00-59)
        %s	自1970-01-01 00:00:00 UTC 到现在的秒数

例:

  • 修改时区

使用root权限,执行如下命令,修改时区为东八时区

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

    说明:将自带的localtime文件删除,并将/usr/share/zoneinfo/Asia/Shanghai文件链接为localtime文件即可
  • 自动校准时间

安装chrony:

yum -y install chrony

启动并设置开机自启:

systemctl start chronyd
systemctl enable chronyd

也可以手动同步时间:

chronyc makestep

更多说明:Linux服务器时间同步chrony详解+案例-CSDN博客

IP地址和主机名

  • IP地址:

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

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

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

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

  • 查看本机IP

命令:

ifconfig

Windows使用ipconfig命令查看

  • 主机名:

主机名就是主机的名称,用于表示一个计算机

  • 查看/修改主机名

查看主机名:

hostname

修改主机名(需root,修改后重新登录即可查看):

hostnamectl set-hostname 主机名
  • 域名映射:

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

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

​ 为了方便记忆,可以修改Windows的hosts文件来设置本地域名解析

​ 方法:以管理员身份打开计算机中C:\Windows\System32\drivers\etc目录下的hosts文件,在文件末尾添加IP和对应的自定义主机名

​ 这样在连接Linux的时候可以用主机名来代替IP

虚拟机配置Linux固定IP

连接ssh的IP在电脑重启后可能会改变,可以设置成固定IP

  1. 首先将虚拟机关机,虚拟机主页选项栏中点击编辑-虚拟网络编辑器

  2. 在弹出的窗口中点击右下角的更改设置

  3. 然后编辑子网IP192.168.88.0(其中的88可自定义,范围0-255,后续步骤都会使用88),子网掩码255.255.255.0,点击应用

  4. 选择NAT设置,在弹出的窗口中设置网关IP192.168.88.2,点击确定确定

  5. 将虚拟机开机,打开虚拟机的终端,切换到root用户,执行

    nmcli connection show
    

    查看DEVICE选项下前缀为ens的名称,后面的数字可能不一样,记住这个名称

  6. 执行

    vim /etc/sysconfig/network-scripts/ifcfg-上一步记住的名称
        例:
            vim /etc/sysconfig/network-scripts/ifcfg-ens160
    
  7. 复制下面内容到上一步打开的文件里面

    NAME="随意名称"
    DEVICE="第5步记住的名称"
    BOOTPROTO="static"
    ONBOOT="yes"
    IPADDR="192.168.88.130(其中的88与第3步一样,130可自定义,范围0-255)"
    NETMASK="255.255.255.0"
    GATEWAY="192.168.88.2(其中的88与第3步一样)"
    DNS1="192.168.88.2(其中的88与第3步一样)"
    
  8. 重启虚拟机

    reboot
    
  9. 查看是否生效

    nmcli connection show
    

​ 看绿色的一行,NAME与第7步中的NAME相同就表示生效了,后续使用ssh连接IP都不会改变

​ 也可以输入ifconfig命令查看IP地址是否是自定义的IP地址

网络请求和下载

  • ping命令

语法:

ping -c num IP或主机名
    
    -c num	测试次数,可选,num:测试的次数数字
    例:ping -c 10 127.0.0.1
  • wget命令

语法:

wget -b url
    
    -b 选项,可选,表示后台下载
    url是下载文件的链接
  • curl命令

可以发送http网络请求,可用于下载文件、获取信息等

curl -O url
    
    -O 可选,大写字母o,用于下载文件,当url是链接时,可使用此选项保存文件
    url表示要发起请求的网络地址

端口

  • 什么是端口

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

  • 物理端口:USB、HDMI、DP、VGA、RG45等
  • 虚拟端口:操作系统和外部交互的出入口

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

  • 端口的划分(建议)

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

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

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

  • 查看端口占用

安装nmap

yum -y install nmap

查看指定IP对外暴露端口

nmap IP地址

安装netstat

yum -y install net-tools

查看本机指定端口号的占用情况

netstat -anp|grep 端口号

关闭指定PID(进程号)的进程

kill -9 PID

    -9 选项,可选,表示强制停止

进程管理

  • 什么是进程

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

  • 管理进程的命令

查看进程信息

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

过滤指定关键词进程信息

ps -ef|grep 关键字

关闭指定PID(进程号)的进程

kill -9 PID

    -9 选项,可选,表示强制停止

主机状态监控

  • top命令

类似Windows任务管理器

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

  • df命令

df -h

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

查看磁盘使用率

  • iostat命令

查看磁盘速率

  • sar -n DEV

查看网络情况

环境变量

  1. 什么是环境变量?

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

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

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

  3. 什么是PATH,作用是?

    环境变量PATH会记录一组目录,目录之间用:隔开。这里记录的是命令的搜索路径,

    当执行命令会从记录中记录的目录挨个搜索要执行的命令并执行。

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

    如:export PATH=$PATH:自定义路径

  4. 如何修改环境变量?

     临时生效:export 名称=值
     永久生效:
         针对用户:~/.bashrc 文件中添加配置:export 名称=值
         针对全部用户:/etc/profile 文件中添加配置:同上
         配置完成后,可以通过 source 配置文件 命令立即生效
    

!注意

​ 修改PATH变量添加export 名称=值中的值时需要在=后面加上$PATH:表示追加命令,否则将覆盖PATH变量

Linux文件的上传和下载

  1. 使用WindowsFinalShell软件对Linux系统进行上传和下载操作

    上传:将文件拖进软件下方文件窗口或右击下方文件窗口内点击上传

    下载:右击下方文件窗口内的文件点击下载

  2. rzsz命令

    通过yum -y install lrzsz可以安装此命令

    rz进行文件上传

    sz进行文件下载

压缩和解压

  1. Linux系统常用的压缩格式有:

    tar格式,归档文件,简单的将文件整合到一个文件内,无压缩效果

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

  2. tar命令

    tar [-z -x -v -c -f -C] 参数1 参数2 ... 参数N
        
        -c	可选,创建压缩文件
        -v	可选,查看压缩\解压过程
        -x	可选,解压模式
        -f	可选,指定压缩\解压的文件,在选项组内必须在尾部
        -z	可选,gzip模式,在选项组内建议在开头
        -C	可选,指定解压的路径,单独使用
    例如:
        压缩:tar -zcvf test.tar.gz test1.txt test2.txt -C /home/test
        解压:tar -xvf test.tar.gz
    
  3. zip命令

    zip -r 参数1 参数2 ... 参数N
        
        -r	可选,压缩文件夹使用,和rm、cp等命令的-r效果一致
    例:
        zip -r test.zip test test3.txt test4.txt
    
  4. unzip命令

    unzip -d 参数
        
        -d	可选,指定解压去的目录,不指定默认当前目录
    例:
        unzip -d /home/centos test.zip 或 unzip test.zip -d /home/centos