• 一起来部署项目-Linux基本命令


    前言

    大家好,上一篇我们学习了如何《购买一台云服务器》,本篇文章在上一篇文章的基础上我们来学习Linux,主要是要熟练掌握Linux基础命令

    认识Linux

    windows操作系统类似,Linux是一套开源性能稳定的多用户网络操作系统,是一种免费使用和自由传播的[类UNIX]操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。

    在企业中我们通常在Window系统中使用IDEA开发项目,然后使用Linux部署项目。Linux相对于Windows更可靠,安全性、稳定性能其安全性相比其他系统也要安全很多

    Linux的发行版本

    由于Linux开源所以很多组织基于开源的Linux衍生出很多的分支版本

    Rpm系

    (使用Red Hat(红帽子)的软件库管理系统):

    • Redhat 红帽,收费,技术支持强大,资料完善,系统稳定安全;
    • Fedora 被红帽赞助,适合个人使用,免费;
    • Centos 被红帽收购,免费,系统稳定安全,很多公司在用;
    Dpkg系

    (package manager for Debian):

    • Debian 很多公司在用,基于ubuntu(乌班图);

    • Ubuntu 基于debian的发行版,比较最受欢迎的免费操作系统,界面强大。比较适合个人用户;

    • Pear os 基于Ubuntu,仿macos;

    国产linux系统

    红旗Linux,真正的国产linux系统,2014年公司解散后被收购
    在这里插入图片描述

    我们上一章节采购的云服务器的操作系统就是选择的centos7系列。后续也会使用centos给大家讲解项目的部署。

    linux系统目录

    linux的目录跟window有所区别,windows中有盘符的概念,c盘,d盘等,而在linux中是以目录存储文件而且只有一个根目录

    • 在Linux有个基本思想:一切都是文件。就是系统中的所有都可以归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。而这些文件是以一定的结构组织的;

    • linux系统的目录结构是一个以/(根目录)为根节点的树形结构:

    这里我百度了一张centos目录结构图(偷个懒~)
    在这里插入图片描述
    大家可以挑几个比较重要的目录去记一下,下面这几个常用

    • 比如 “/”:代表根目录 ;
    • “/usr” : 程序安装目录 ,
    • “/root” : root用户目录,类似于windows的c盘中的用户目录
    • /home :普通用户目录,比如 zs用户就会有一个 /home/zs的目录
    • /etc 配置文件目录
    • sbin / bin : 二进制文件目录

    执行命令 : cd / , 然后执行 ls 查看根目录内容:
    在这里插入图片描述

    linux常用命令

    基础命令

    pwd:查看当前命令所在目录

    在这里插入图片描述

    cd : 切换目录(需要到特定的目录执行命令),用法 :

    cd 目录名 :进入指定目录

    cd .. :退回上一级

    cd ~ : 切到用户 home目录

    在这里插入图片描述

    tab :补全文件名或者命令
    ls :查看目录文件信息

    ls –a :列出所有文件和文件夹,包含隐藏文件

    ls -al :以详细信息方式列出所有文件信息,包含隐藏文件

    ls -l :以详细信息方式列出文件信息 , 可以简写成: ll , 如下:

    在这里插入图片描述

    第一个字母表示文件类型

    第一个字母所代表的权限字母
    ”-”普通文件
    ”d”目录,字母”d”,是dirtectory(目录)的缩写
    “l”符号链接。请注意,一个目录或者说一个文件夹是一个特殊文件,这个特殊文件存放的是其他文件和文件夹的相关信息
    “b”块设备文件
    “c”字符设备文件

    第一个栏位,表示文件的属性。Linux的文件基本上分为三个属性:

    字母文件属性
    r可读
    w可写
    x可执行

    紧接着的3*3个字符分3组,各指示此文件的读、写、执行权限,对于owner、group、others而言。

    find : 查找文件 : find / --name "文件名"

    在这里插入图片描述

    whereis :查找命令 ,如: whereis java

    在这里插入图片描述

    文件系统

    相对路径和绝对路径

    / 代表根目录,凡是最左边是一个 /代表绝对路径,即从根目录开始
    ./ 代表当前目录
    ../ 表示上一级目录

    mkdir -p : 递归创建目录 mkdir -p /a/b/c

    在这里插入图片描述

    rm -rf :删除文件/目录

    强制删除文件或者目录 ,该命令慎用,切记乱删除东西。
    在这里插入图片描述

    mv :移动
    • 移动a.txt到根目录 : mv a.txt /
    • 移动文件夹 m1到根目录: mv m1 /
    • 重命名把1.txt 重命名为2.txt:mv 1.txt 2.txt ,

    在这里插入图片描述

    cp -rf: 复制
    • 将dir1复制一份到dir2目录(包含目录内容一起复制) : cp -rf dir1 dir2

    • 直接复制内容(非常重要) : cp -rf dir1/* dir2

    在这里插入图片描述

    tar :打包压缩
    • 打包 : tar -czvf tom.tar.gz tom - 把 tom 打包成tom.tar.gz

    在这里插入图片描述

    • 解包: tar -xzvf tom.tar.gz -C /usr/local - 把tom.tar.gz解压到/usr/local

    在这里插入图片描述

    参数

    -c	创建一个新的tar文件           
    -t	参看压缩文件内容
    -v	显示运行过程信息	
    -j	调用bzip2压缩命令执行压缩
    -f	指定文件名称	      
    -C 指定需要解压到的目录
    -z	调用gzip压缩命令执行压缩   	
    -x	解开tar文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    文件操作

    touch : 创建文件

    在这里插入图片描述

    cat : 查看文件内容

    在这里插入图片描述

    tail -f : 查看文件尾部
    • tail -n 10 a.txt : 查看末尾10行 ,通过 -n指定行数

    在这里插入图片描述

    vi :文本编辑器

    编辑一个文本:vi a.txt -> 按 i 进入insert模式 -> 编辑内容 -> esc 退出编辑 -> :wq -> 保存退出/ :q! 强制退出。

    在这里插入图片描述

    • :w //保存文件

    • :w vpser.net //保存至vpser.net文件

    • :q //退出编辑器,如果文件已修改请使用下面的命令 ,q(quit)

    • :q! //退出编辑器,且不保存

    • :wq //退出编辑器,且保存文件

    注意:按i(insert)进入编辑,按Ctrl + C 强制退出编辑,退出编辑并保存输入按 :wq

    用户和组

    Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

    用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

    用户管理

    添加新的用户账号使用useradd命令,其语法 : useradd 选项 用户名 ,参数说明

    -c comment 指定一段注释性描述。
    -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
    -g 用户组 指定用户所属的用户组。
    -G 用户组,用户组 指定用户所属的附加组。
    -s Shell文件 指定用户的登录Shell。
    -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

    添加用户

     useradd –d  /home/sam -m sam
    
    • 1

    此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录 /home/sam(/home为默认的用户主目录所在的父目录)。

    删除帐号 : userdel 选项 用户名 , 常用的选项是 -r,它的作用是把用户的主目录一起删除。例如:

    # userdel -r sam
    
    • 1

    此命令删除用户sam在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。

    用户组的管理

    每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

    用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

    增加一个新的用户组使用groupadd命令。其格式如下 : groupadd 选项 用户组 ,可以使用的选项有:

    • g GID 指定新用户组的组标识号(GID)。
    • o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
    groupadd group1
    
    • 1

    此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。

    如果要删除一个已有的用户组,使用groupdel命令 : groupdel 用户组

    groupdel group1
    
    • 1

    此命令从系统中删除组group1。

    权限管理

    权限认识

    Linux系统中的每个文件和目录都有访问许可权限,用他来确定谁能通过何种方式对文件和目录进行访问和操作。 我们通过 ll 命令可以查看目录下的文件权限,如下
    在这里插入图片描述
    从上面图中可以看到,权限部分有10位,可以分为4段来解读

    • 第一段(第1位)表示是目录还是文件,-表示是文件,d表示是目录;
    • 第二段(第2-4位,共3个字符串)表示文件所属用户对它的权限 - 属主权限(User);
    • 第三段(第5-7位,共3个字符串)表示文件所属用户组用户对它的权限 - 属组权限(Group);
    • 第四段(第8-10位,共3个字符串)表示其他用户对它的权限 - 其他权限(other);

    注:u表示所有者(user);g表示所属组(group);o表示其他人(other);a便是所有人(all)
    在这里插入图片描述

    修改权限可以使用 字母和数字的方式,通过 chmod 来修改, 格式:chmod u/g/o/a +/-/= rwx 文件

    [ u/g/o/a ]含义
    uuser 表示该文件的所有者
    ggroup 表示与该文件的所有者属于同一组( group )者,即用户组
    oother 表示其他以外的人
    aall 表示这三者皆是
    [ ±= ]含义
    +增加权限
    -撤销权限
    =设定权限
    rwx含义
    rread 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。
    wwrite 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。
    xexcute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。

    数字法:“rwx” 这些权限也可以用数字来代替

    字母说明
    r读取权限,数字代号为 “4”
    w写入权限,数字代号为 “2”
    x执行权限,数字代号为 “1”
    -不具任何权限,数字代号为 “0”
    7读 + 写 + 执行rwx111
    6读 + 写rw-110
    5读 + 执行r-x101
    4只读r–100
    3写 + 执行-wx011
    2只写-w-010
    1只执行–x001
    0000

    例如, 765 将这样解释:

    • 所有者的权限用数字表达:属主的那三个权限位的数字加起来的总和。如 rwx ,也就是 4+2+1 ,应该是 7。
    • 用户组的权限用数字表达:属组的那个权限位数字的相加的总和。如 rw- ,也就是 4+2+0 ,应该是 6。
    • 其它用户的权限数字表达:其它用户权限位的数字相加的总和。如 r-x ,也就是 4+0+1 ,应该是 5。

    如执行:chmod u=rwx,g=rx,o=r filename 就等同于:chmod u=7,g=5,o=4 filename

    权限操作案例

    案例:修改/test下的aaa.txt的权限为 属主 有全部权限,属主所在的 组 有读写权限,

    chmod u=rwx,g=rw,o=r aaa.txt
    
    • 1

    案例:将文件 file1.txt 设为所有人皆可读取 :

    chmod ugo+r file1.txt
    
    • 1

    案例:将文件 file1.txt 设为所有人皆可读取 :

    chmod a+r file1.txt
    
    • 1

    案例:将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :

    chmod ug+w,o-w file1.txt file2.txt
    
    • 1

    案例:为 ex1.py 文件拥有者增加可执行权限:

    chmod u+x ex1.py
    
    • 1

    案例:将目前目录下的所有文件与子目录皆设为任何人可读取 :

    chmod -R a+r *
    
    • 1

    案例:此外chmod也可以用数字来表示权限如 :

    chmod 777 file
    
    • 1

    防火墙

    防火墙具备一些有效的隔离功能,能够对经过防火墙的网络包按照一定的规则进行检查,从而控制网络包的进入进出,以达到限制网络访问的一些目的。

    当centos中安装了有端口的软件,如果外网需要访问该端就需要做防火墙的端口放行。

    关闭防火墙
    systemctl stop firewalld.service
    
    • 1
    开放指定端口
    firewall-cmd --zone=public --add-port=1935/tcp --permanent
    
    • 1
    关闭指定端口
    firewall-cmd --zone=public --remove-port=5672/tcp --permanent
    
    • 1

    软件的安装

    源码安装

    这种方式拿到的是软件的源码包,需要自行 make 进行编译,然后 install 安装。同时make命令需要有gcc的环境。

    先安装环境,以Redis为例:https://my.oschina.net/liuyuantao/blog/915785

    RPM包安装

    特点:这种安装方式,软件包会自动配置jdk的环境变量,不用手动配置。也是最方便快捷的一种方式

    命令:

    • rpm -qa 软件名称 :查询软件是否被安装

    • rpm -ivh 软件包路径 需要安装的包文件 : rpm –ivh xxx.rpm

    • rpm -e --nodeps 需要卸载的软件包 : 卸载软件(–nodeps 忽略依赖关系并继续操作)

    • rpm -qa | grep 查询名称 :利用管道模糊查询软件安装情况:

    例如: rpm -qa | grep java 检测系统自带的jdk安装包

    参数说明:rpm [选项] [参数]

        -a:查询所有软件包
    ​    -e:删除指定的软件包
    ​    -f<文件>:查询拥有指定文件的套件; 
    ​    -h或-–hash:显示进度信息 ,以#显示进度
    ​    -i:显示包的详细信息
    ​    -i<软件包>或-–install<软件包>:安装指定的软件包 
    ​    -l:显示包的文件列表
    ​    -p:查询指定的RPM包 
    ​    -q:使用询问模式
    ​    -U<软件包>或-–upgrade<软件包>:升级指定的程序包
    ​    -v:显示指令执行详细过程
    -vv:详细显示指令执行过程,便于排错
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    以Java为例,第一步下载Java :https://www.oracle.com/java/technologies/downloads/

    在这里插入图片描述
    然后通过ftp工具上传下载号的安装包到linux

    在这里插入图片描述

    最后使用rpm 安装java

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bw3tHAG8-1666709883023)(课件图片/1635998829923.png)]

    yum在线安装

    这种方式是在线安装,自动下载需要安装的软件,同时自动安装软件所依赖的其他软件,如果yum仓库中没有要安装的软件需要更换或者添加 “yum仓库" 。

    特点:将所有软件包放到官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题;

    缺点:安装过程中,rpm包依赖性太强;

    比如要安装Git,只需要执行 yum install git

    yum命令:

    • yum list --查询所有可用软件包列表

    • yum search 关键字 --搜索服务器上所有和关键字相关的包

    • yum -y install 包名 (-y 自动回答yes)

    • yum安装只写包名即可! eg:yum -y install gcc --c语言编译器

    • 升级:yum -y update 包名 : -y自动回答yes

    • 卸载:yum -y remove 包名


    文章就写到这里把,如果对你有帮助请给个好评~~~

  • 相关阅读:
    批量插入【对新数据进行插入操作,已存在的记录进行更新操作】
    业务前端界面报错504排查思路和解决办法
    【软件测试】毕业失眠的夜晚,望着天花板呆住了 到底该何去何从......
    运动品牌推荐:2022年最值得入手的一些运动装备
    linux下的文本处理工具awk学习
    【组原课设团队任务】FlyBird+FPGA+RISCV
    【云原生 | 从零开始学Kubernetes】二十一、kubernetes持久化存储
    发布nuget包的正确姿势---cicd自动打包发布nuget包
    Spring Cloud【什么是ZipKin、Docker搭建Zipkin服务、Zipkin客户端搭建 、SkyWalking核心概念】(十三)
    新风口:周星驰招聘要求的Web3.0技术到底是什么?
  • 原文地址:https://blog.csdn.net/u014494148/article/details/127524182