• linux基本知识总结和shell的使用


    1.2 Linux 用户和用户组管理

    1.2.1 Linux账号管理

    从当前章节开始,我们正式进入CentOS的学习,我们先从简单的命令开始,比如操作账号、用户组、系统管理等。
    在实际使用场景中,用户账号的管理主要涉及到用户账号的添加、修改和删除操作。
    现在,我们就通过命令的方式添加用户账号(账号名字可以自定义,但是是要符合书写规范)
    在操作前,确保我们的SecureCRT成功连接到了虚拟机.
    下面的章节不在赘述SecureCRT,默认已经成功连接。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1) 添加用户
    我们在Windows创建账号主要是是控制面板--用户账户--创建一个新账户,这是在Windows创建账户的流程,而在Linux中,我们可以通过命令的方式进行创建账户
    
    • 1

    使用者权限:管理员用户

    useradd 选项 用户名
    
    • 1

    参数说明:

    • 选项:

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

      指定新账号的用户名(后续我们可以使用这个用户名进行系统登录)。

    添加用户czbk(传智播客的首拼)执行

    useradd  czbk
    
    • 1

    我们使用useradd命令创建了一个用户czbk

    useradd 可用来建立用户帐号。帐号建好之后,再用 passwd 设定帐号的密码。

    执行如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LsXmaFqs-1661607928221)(en-resource://database/608:1)]

    由上图我们发现,我们在使用useradd新增用户的时候,出现了权限不足,也就是说我们使用用户itcast没有创建用户的权限。

    我们通过管理员账号root进行创建,首先我们从控制台中切换到root

    su root
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AaDbJKCy-1661607928222)(en-resource://database/609:1)]

    在 密码的地方输入我们的root密码【root】即可进入到root用户下。

    我们在root下继续创建czbk用户

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lnZr5Osk-1661607928223)(en-resource://database/610:1)]

    以下是useradd常用选项

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bVH3RcGh-1661607928223)(en-resource://database/611:1)]

    2) 用户口令
    引子:
    相当于我们在Windows系统中给个用户更改密码,只是我们在CentOS中是更改密码是通过命令完成的。
    
    • 1
    • 2

    用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用

    使用者权限:管理员用户

    指定和修改用户口令的Shell命令passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:

    passwd 选项 用户名
    
    • 1

    可使用的选项:

    • -l 锁定口令,即禁用账号。
    • -u 口令解锁。
    • -d 使账号无口令。
    • -f 强迫用户下次登录时修改口令。

    设置当前用户的口令

    passwd czbk
    
    • 1

    此处我们设置密码和itcast账号密码一致,为【Itheima888】

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VquGQTXh-1661607928223)(en-resource://database/612:1)]

    3) 修改用户
    相当于我们在Windows系统中修改一个用户,只是我们在CentOS中是修改用户是通过命令完成的。
    
    • 1

    usermod 命令通过修改系统帐户文件来修改用户账户信息

    修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。

    使用者权限:管理员用户

    修改已有用户的信息使用usermod命令,其格式如下:

    usermod 选项 用户名
    
    • 1

    下面命令将用户czbk用户名修改成czbk2019

    usermod -l czbk2019  czbk
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eg8e1yDW-1661607928224)(en-resource://database/613:1)]

    以下是usermod常用选项

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HslYvNx4-1661607928224)(en-resource://database/614:1)]

    4) 删除用户
    相当于我们在Windows系统中删除一个用户,只是我们在CentOS中是删除用户是通过命令完成的。
    
    • 1

    假如我们其中一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。

    使用者权限:管理员用户

    删除一个已有的用户账号使用userdel命令,其格式如下:

    userdel 选项 用户名
    
    • 1

    -f:强制删除用户,即使用户当前已登录;

    -r:删除用户的同时,删除与用户相关的所有文件

    此命令删除用户czbk2019

    userdel czbk2019
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jSvoVhJQ-1661607928224)(en-resource://database/615:1)]

    成功删除用户czbk2019

    以下是userdel常用选项

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-haMGJUng-1661607928225)(en-resource://database/616:1)]

    1.2.2 Linux用户组

    引子:

    为了方便用户管理, 提出了 组 的概念, 如下图所示

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8hbCE9G3-1661607928225)(en-resource://database/617:1)]

    新增一个账户,它默认属于自己(账户)的组

    比如新建账户【张三】,那么它默认对应的组就是张三

    一个用户可以有一个或者多个组

    假如说(如上图),我们在企业级开发过程中,我们有多个组,其中一个开发组对应三个账户,张三、李四、王五、如果就像上面提到的,一个用户默认对应一个组,那么三个账户张三、李四、王五就有了三个不同的组,如果大家都操做一个文件,在进行权限分配的时候,就要对不同的三个组进行授权,显然这样是不合理的,因为太过繁琐。

    所以,才有了组(新建组)的概念,我们把张三、李四、王五统一放到【开发组】,在对文件授权的时候,我们只对【开发组】进行授权由此,这样的话【张三、李四、王五】都有相等的权利操作了。

    1) 增加用户组

    新增一个用户组(组名可见名知意,符合规范即可),然后将用户添加到组中

    使用者权限:管理员用户

    groupadd 选项 用户组
    
    • 1

    使用的选项有:

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

    新增用户组czbk-it

    groupadd czbk-it
    
    • 1

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

    以下是groupadd常用选项

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MxBMou4f-1661607928226)(en-resource://database/618:1)]

    2) 修改用户组

    使用者权限:管理员用户

    groupmod 选项 用户组
    
    • 1

    常用的选项有:

    • -g GID 为用户组指定新的组标识号。
    • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
    • -n新用户组 将用户组的名字改为新名字
    groupmod  -n czbk-it-2019  czbk-it
    
    • 1

    上面的命令将组czbk-it的组名修改为czbk-it-2019。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ml9dgsyA-1661607928226)(en-resource://database/619:1)]

    以下是groupmod常用选项

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7JYAk8Qg-1661607928226)(en-resource://database/620:1)]

    3) 查询用户所属组

    在查询用户所属的用户组前,我们先增加一个用户ituser-groups

    useradd ituser-groups
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BecHN4FS-1661607928227)(en-resource://database/621:1)]

    要查询一个用户属于哪个用户组,使用groups命令,其格式如下

    groups 用户名
    
    • 1

    查询用户ituser-groups属于某个用户组,执行groups命令

    groups ituser-groups
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8EnuUckP-1661607928227)(en-resource://database/622:2)]

    由此可见,ituser-groups用户属于用户组ituser-groups(用户组默认与用户名一样)

    4) 删除用户组

    使用者权限:管理员用户

    要删除一个已有的用户组,使用groupdel命令,其格式如下

    groupdel 用户组
    
    • 1

    删除czbk-it-2019用户组

    groupdel czbk-it-2019
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GFOjSfHM-1661607928227)(en-resource://database/622:2)]

    删除成功

    以下是groupdel常用选项

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uBKp43T2-1661607928228)(en-resource://database/623:1)]

    1.2.3 将用户添加到组

    引子:
    在上面我们学习如何新增用户,也学习了如何新增用户组,在当前的小节中,我们新建一个用户、新建一个用户组、然后把新建的用户添加到新的组中
    在实际开发过程中,我们通常把多个用户按照业务需求归并到统一的一个组中,进行有序管理
    
    • 1
    • 2
    • 3

    1、创建一个新的组,并添加组ID(需要切换到root用户)

    groupadd -g 8888 itbj2020group
    
    • 1

    执行效果如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qW3P1ggk-1661607928228)(en-resource://database/624:1)]

    2、创建3个用户(需要切换到root用户)

     useradd  itbeijinguser1
     useradd  itbeijinguser2
     useradd  itbeijinguser3
    
    • 1
    • 2
    • 3

    3、将上面三个用户添加到组itbj2020group

    我们通过passwd命令将三个用户添加到组

    什么是gpasswd:

    gpasswd 是 Linux 下工作组文件 /etc/group 和 /etc/gshadow 管理工具,用于将一个用户添加到组或者从组中删除。

    语法

    gpasswd [可选项] 组名
    
    • 1

    将上面的三个用户使用gpasswd添加到组(需要切换到root用户)

    gpasswd -a itbeijinguser1 itbj2020group
    gpasswd -a itbeijinguser2 itbj2020group
    gpasswd -a itbeijinguser3 itbj2020group
    
    • 1
    • 2
    • 3

    执行如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R4s9M3Rv-1661607928228)(en-resource://database/625:1)]

    查看用户组下所有用户(所有用户)

    注意

    此处的grep命令我们将在文件管理章节详细讲解,这里先使用它查看下效果

    grep 'itbj2020group' /etc/group
    
    • 1

    执行效果如下(或者直接打开/etc/group文件都可以)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g05j9eoO-1661607928229)(en-resource://database/626:1)]

    由上图可知:三个用户全部都加入到了itbj2020group组。

    2.3 系统管理

    系统管理,说的就是我们的CentOS系统,它不同于Windwos,CentOS是字符界面,我们需要通过命令进行操作,在当前章节,我们先从基本命令学起,比如创建用户、设置密码、修改用户以及用户组的相关操作。也为我们后面的章节打下基础
    
    • 1

    2.3.1 日期管理

    当前日期如果通过date进行设置,在系统重启后不会保存date的设置,常用的只是通过date命令查看日期
    
    • 1

    date 可以用来显示或设定系统的日期与时间

    使用者权限:所有用户

    语法如下:

    date [参数选项]
    
    • 1

    参数

    -d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
    -s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
    -u:显示GMT;
    –help:在线帮助;
    –version:显示版本信息

    1、设置时间

    用 -s选项可以设置系统时间,如下:

    date -s "2019-12-11 16:15:00"
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L1yS2iO7-1661607928229)(en-resource://database/627:1)]

    2、显示时间

    date
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CPi5mpbd-1661607928229)(en-resource://database/628:1)]

    (1)UTC

    协调世界时,又称世界统一时间、世界标准时间、国际协调时间。由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC。。

    (2)GMT

    格林尼治 平太阳时间,是指格林尼治所在地的标准时间,也是表示地球自转速率的一种形式

    **外文名:**Universal Time

    其他外文名G.M.T.(Greenwich Mean Time)

    (3)CST

    北京时间 (中国国家标准时间)
    北京时间是中国采用国际时区东八时区的区时作为标准时间
    北京时间并不是北京(东经116.4°)的地方时间,而是东经120°的地方时间,故东经120度地方时比北京的地方时早约14分半钟。因为北京处于国际时区划分中的东八区,同格林尼治时间(世界时)整整相差8小时(即北京时间=世界时+8小时),故命名为“北京时间”。东八区包括的范围从东经112.5°到东经127.5°,以东经120°为中心线,东西各延伸7.5°,总宽度为15°的区域。
    而中国幅员辽阔,东西相跨5个时区(即东五区、东六区、东七区、东八区、东九区5个时区)授时台必须建在地理中心地带,从而也就产生了长短波授。“北京时间”与“北京当地时间”是两个概念, “北京时间”的发播不在北京,而在陕西蒲城(处于东七区)

    (4)东八区

    东八区(UTC/GMT+08:00)是比世界协调时间(UTC)/格林尼治时间(GMT)快8小时的时区,理论上的位置是位于东经112.5度至127.5度之间,是东盟标准的其中一个候选时区。当格林尼治标准时间为0:00时,东八区的标准时间为08:00

    总结:
    上面提到了很多知识:即UTC/GMT/CST/东八区
    总结一下就是,北京时间(中国国家标准时间CST)采用东八区区时,即:
    协调世界时(UTC)+8  /   格林尼治时间(GMT)+8
    也就是说+8后的时间才是北京时间
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.3.2 显示用户

    logname命令用于显示用户名称。

    执行logname指令,它会显示目前用户的名称

    语法为如下:

    logname [--help][--version]
    
    • 1

    参数

    • –help  在线帮助。
    • –vesion  显示版本信息。

    显示登录账号的信息

    logname
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eQeJWzIE-1661607928230)(en-resource://database/629:1)]

    2.3.3 su切换账户

    引子:
    比如我们在新增用户、修改用户或者操作用户组的时候常常需要切换到管理员账户,这个时候,我们就可以使用su进行快速切换
    
    • 1
    • 2

    su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。

    使用权限:所有使用者。

    语法如下:

    su 
    
    • 1

    变更帐号为 root 并在执行 ls 指令后退出返回原使用者

     su -c ls root
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-anXRD6Rp-1661607928230)(en-resource://database/630:1)]

    切换到root

    su root
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2zsZgEvs-1661607928230)(en-resource://database/631:1)]

    这样的话,我们就进入到了root用户下。

    2.3.4 id命令

    我们如果需要查看当前账号详细信息的时候,比如查看它的用户id、群组id以及所属组的时候,我们就可以使用id命令进行查看
    
    • 1

    id命令用于显示用户的ID,以及所属群组的ID。

    id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。

    使用者权限:所有用户

    语法

    id [-gGnru][--help][--version][用户名称]
    
    • 1

    参数说明:

    • -g或–group  显示用户所属群组的ID。
    • -G或–groups  显示用户所属附加群组的ID。
    • -n或–name  显示用户,所属群组或附加群组的名称。
    • -r或–real  显示实际ID。
    • -u或–user  显示用户ID。
    • -help  显示帮助。
    • -version  显示版本信息。

    显示当前用户信息

    id
    
    • 1

    执行效果如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-id6DRkO6-1661607928231)(en-resource://database/632:1)]

    总结

    id命令参数虽然很多

    但是常用的也就是id命令,不带参数的

    主要看他的uid和组信息

    2.3.5 sudo执行

    比如我们使用普通用户操作用户或者操作用户组、以及修改网卡配置文件的时候,需要切换到root用户才操作,此时我们可以使用sudo命令提高普通用户的操作权限,以达到操作目的
    
    • 1

    sudo:控制用户对系统命令的使用权限,root允许的操作。

    通过sudo可以提高普通用户的操作权限

    使用者权限:普通用户

    语法如下:

    sudo -V
    sudo -h
    sudo -l
    sudo -v
    sudo -k
    sudo -s
    sudo -H
    sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s
    sudo command

    参数说明

    • -V 显示版本编号
    • -h 会显示版本编号及指令的使用方式说明
    • -l 显示出自己(执行 sudo 的使用者)的权限
    • -v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
    • -k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
    • -b 将要执行的指令放在背景执行
    • -p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
    • -u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
    • -s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
    • -H 将环境变数中的 HOME 指定为要变更身份的使用者HOME目录(如不加 -u 参数就是系统管理者 root )
    • command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令

    sudo命令使用

    sudo ls
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rXE16O4a-1661607928231)(en-resource://database/633:1)]

    指定root用户执行指令

    sudo -u root ls -l
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-44QFn60z-1661607928231)(en-resource://database/634:1)]

    修改网卡配置文件

    比如,在下面的例子中,我们使用普通用户修改网卡的配置文件,在进行保存的时候,提示我们【无法打开并写入文件】,那么此时,我们可以通过sudo命令来提升自己的写入权限

    执行:

     vi /etc/sysconfig/network-scripts/ifcfg-ens33 
    
    • 1

    执行效果如下(保存)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fGnB9DCq-1661607928232)(en-resource://database/635:1)]

    然后点击回车

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V4MaO67t-1661607928232)(en-resource://database/636:1)]

    那么我们在修改上面的 命令,使用sudo进行修改

    sudo   vi /etc/sysconfig/network-scripts/ifcfg-ens33 
    
    • 1

    执行效果如下(键入itcast密码)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wgMUI0GH-1661607928232)(en-resource://database/637:1)]

    执行保存

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JkVR16RT-1661607928232)(en-resource://database/638:1)]

    我们发现此时就不在报错了

    2.3.6 top命令

    在企业级开发中,开发人员(运维人员也会经常使用)常常为了查看服务器上运行的程序占用的CPU情况以及占用内存情况,目的就是检测我们的程序是否在正常范围内运行
    
    • 1

    top命令用于实时显示 process 的动态。

    使用权限:所有使用者。

    显示进程信息

    top
    
    • 1

    执行效果如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UPVGAVES-1661607928233)(en-resource://database/639:1)]

    各进程(任务)的状态监控属性解释说明:
    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 — 进程名称(命令名/命令行)

    显示完整命令,与top命令不同的就是command属性像是进行了命令补全

    top -c
    
    • 1

    执行效果如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vjtru6RW-1661607928233)(en-resource://database/640:1)]

    显示指定的进程信息,以下显示进程号为6972的进程信息,CPU、内存占用率等

     top -p 6972
    
    • 1

    执行效果如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MZcwLilT-1661607928233)(en-resource://database/641:1)]

    top命令的用法很多

    但是常用的就是top(不带参数),有的时候,在进程比较多的时候,我们常常记住进程的pid,然后通过top -p pid进行查看

    也就是说,top+ top -p是经常被用到的

    2.3.7 ps命令

    ps命令类似于我们在Windows中通过任务管理器查看进程信息
    
    • 1

    Linux ps命令用于显示当前进程 (process) 的状态信息

    使用者权限:所有用户

    语法如下:

    ps 
    
    • 1

    显示进程信息

    ps -A 
    
    • 1

    显示指定用户信息

     ps -u itcast
    
    • 1

    显示所有进程信息

    ps -ef 
    
    • 1

    2.3.8 kill命令

    引子:
    前面,我们刚刚学习完了Windows上开发,比如,我们经常遇到的要给问题就是,我们需要经常的启动或者重启tomcat,有的时候会报端口冲突,这个时候,我们可能就去Windows的任务管理器中去结束这个进程
    那么在Linux中我们可以通过kill命令来实现Windwos上手工结束进程的操作
    
    • 1
    • 2
    • 3

    Linux kill命令用于删除执行中的程序或工作(可强制中断)

    使用者权限:所有用户

    语法如下:

    kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
    
    • 1

    参数说明

    • -l <信息编号>  若不加<信息编号>选项,则-l参数会列出全部的信息名称。
    • -s <信息名称或编号>  指定要送出的信息。
    • [程序]  [程序]可以是程序的PID或是PGID,也可以是工作编号。

    杀死一个进程

     kill 15642
    
    • 1

    强制杀死进程

    kill -KILL 15642
    
    • 1

    彻底杀死进程

    kill -9 15642
    
    • 1

    杀死指定用户所有进程

    1.方法一 过滤出itcast用户进程

    kill -9 $(ps -ef | grep itcast) 
    
    • 1

    2.方法二,直接杀死

    kill -u itcast
    
    • 1

    注意

    上面列举了很多kill进程的命令

    但是我们我们常用的就是kill -9命令,我们常常找到进程的pid

    然后通过kill -9进行杀死进程

    2.3.9 关机命令

    shutdown命令可以用来进行关闭系统,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机

    使用者权限:管理员用户

    语法如下:

    shutdown [-t seconds] [-rkhncfF] time [message]
    
    • 1

    参数说明

    • -t seconds : 设定在几秒钟之后进行关机程序。
    • -k : 并不会真的关机,只是将警告讯息传送给所有使用者。
    • -r : 关机后重新开机。
    • -h : 关机后停机。
    • -n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
    • -c : 取消目前已经进行中的关机动作。
    • -f : 关机时,不做 fcsk 动作(检查 Linux 档系统)。
    • -F : 关机时,强迫进行 fsck 动作。
    • time : 设定关机的时间。
    • message : 传送给所有使用者的警告讯息。

    立即关机

    shutdown -h now
    或者
    shudown
    
    • 1
    • 2
    • 3

    指定1分钟后关机,1分钟关机并显示警告信息

    shutdown +1 “System will shutdown after 1 minutes” 
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LwKvMeuq-1661607928234)(en-resource://database/642:1)]

    指定1分钟后重启,并发出警告信息

    shutdown –r +1 “1分钟后关机重启”
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rNECCmnO-1661607928234)(en-resource://database/643:1)]

    2.3.10 重启命令

    reboot命令用于用来重新启动计算机

    使用者权限:管理员、普通(需要验证)用户

    语法如下:

    reboot [-n] [-w] [-d] [-f] [-i]
    
    • 1

    参数

    • -n : 在重开机前不做将记忆体资料写回硬盘的动作
    • -w : 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
    • -d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)
    • -f : 强迫重开机,不呼叫 shutdown 这个指令
    • -i : 在重开机之前先把所有网络相关的装置先停止

    开始重新启动

    reboot
    
    • 1

    重启效果如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BXC9y7o0-1661607928234)(en-resource://database/644:1)]

    此时我们的虚拟机正在重启**(别忘记使用root用户执行)**

    2.3.11 who命令

    在企业级开发过程中,我们使用who命令的时候常常需要快速重启服务器,在重启之前需要检测下有没有终端在连接(处理程序),如果有,可能就不会重启(会私下询问何时弄完,弄完后在重启),如果没有其他人连接,将执行快速重启
    
    • 1

    who命令用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等

    使用者权限:所有使用者都可使用。

    语法如下:

    who - [husfV] [user]
    
    • 1

    参数说明

    • -H 或 --heading:显示各栏位的标题信息列;
    • -i 或 -u 或 --idle:显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串;
    • -m:此参数的效果和指定"am i"字符串相同;
    • -q 或–count:只显示登入系统的帐号名称和总人数;
    • -s:此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题;
    • -w 或-T或–mesg或–message或–writable:显示用户的信息状态栏;
    • –help:在线帮助;
    • –version:显示版本信息

    显示当前登录系统的用户

    who
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pb9J7a8O-1661607928235)(en-resource://database/645:1)]

    显示明细(标题)信息

    who -H
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M3iDS17w-1661607928235)(en-resource://database/646:1)]

    由上图可知,截止到现在只有itcast在线。

    2.3.12 timedatectl命令

    引子:
    timedatectl是用于控制系统时间和日期。可以用来查询和更改系统时钟于设定,同时可以设定和修改时区信息。
    
    在实际开发过程中,系统时间的显示会和实际出现不同步;我们一般为了校正服务器时间、时区的时候会使用timedatectl命令
    
    • 1
    • 2
    • 3
    • 4

    使用者权限:所有使用者都可使用,设置时间需要管理员,下面会标注。

    几个常见的概念,进行总结如下:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-abesuiQA-1661607928235)(en-resource://database/647:1)]

    显示系统的当前时间和日期,使用命令行中的timedatectl命令

    timedatectl status
    
    • 1

    执行效果如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ro1GnPsk-1661607928236)(en-resource://database/648:1)]

    在上面的示例中,分别显示时区、CST时间和UTC时间,其中,RTC time就是硬件时钟的时间,硬件时间默认为UTC。

    查看当前时区

    timedatectl | grep Time
    或者
    timedatectl 
    
    • 1
    • 2
    • 3

    执行效果如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-otIn35UL-1661607928236)(en-resource://database/649:1)]

    上图显示中国时区

    查看所有可用的时区

    timedatectl list-timezones
    
    • 1

    执行效果如下(下面数据没有截全)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5bNWdohP-1661607928236)(en-resource://database/650:1)]

    设置本地时区

    timedatectl set-timezone "Asia/Shanghai"
    
    • 1

    执行效果如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ykYXPvto-1661607928237)(en-resource://database/651:1)]

    禁用时间同步(使用管理员账户)

    timedatectl set-ntp false
    在执行
    timedatectl set-time "2019-03-11 20:45:00"
    
    • 1
    • 2
    • 3

    执行效果如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZF4rtSPI-1661607928237)(en-resource://database/652:1)]

    注意: 如果ntp时间同步为true时无法修改时间设定,下面马上介绍

    打开ntp

    timedatectl set-ntp true
    在执行
    timedatectl set-time "2019-03-11 20:45:00"
    
    • 1
    • 2
    • 3

    执行效果如下(ntp时间同步为true时无法修改时间设定)

    报错信息 如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-92xtGs4Q-1661607928237)(en-resource://database/653:1)]

    启用时间同步

    NTP即Network Time Protocol(网络时间协议),是一个互联网协议,用于同步计算机之间的系统时钟。timedatectl实用程序可以自动同步你的Linux系统时钟到使用NTP的远程服务器。

    要开始自动时间同步到远程NTP服务器,在终端键入以下命令。

    timedatectl set-ntp true
    
    • 1

    比如,在上面我们使用timedatectl set-time “2019-03-11 20:45:00”,如下图

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dW6UrsjX-1661607928238)(en-resource://database/654:1)]

    此时我们执行timedatectl set-ntp true,发现时间正常同步过来了如下图

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fKnHd07B-1661607928238)(en-resource://database/655:1)]

    要禁用NTP时间同步,在终端键入以下命令

    timedatectl set-ntp false
    
    • 1

    执行上面的 命令即可关闭ntp

    总结

    在实际使用过程中

    我们经常使用timedatectl进行时区、CST、UTC的设置

    2.3.13 clear命令

    clear命令用于清除屏幕

    使用者权限:所有使用者都可使用。

    语法

    clear
    
    • 1

    执行clear前

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KOSrPBx2-1661607928238)(en-resource://database/656:1)]

    执行clear后

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uOBNtMd1-1661607928239)(en-resource://database/657:1)]

    通过执行clear命令,就可以把缓冲区的命令全部清理干净了

    2.3.14 exit命令

    exit命令用于退出目前的shell。

    执行exit可使shell以指定的状态值退出。若不设置状态值参数,则shell以预设值退出。状态值0代表执行成功,其他值代表执行失败。exit也可用在script,离开正在执行的script,回到shell。

    退出码(exit status,或exit code)的约定:
    
    0表示成功(Zero - Success)
    
    非0表示失败(Non-Zero  - Failure)
    
    2表示用法不当(Incorrect Usage)
    
    127表示命令没有找到(Command Not Found)
    
    126表示不是可执行的(Not an executable)
    
    >=128 信号产生
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    语法如下

    exit [状态值]
    
    • 1

    退出终端

    # exit
    
    • 1

    exit会被经常在shell中使用

    我们在明天的课程【综合案例】中会使用到exit

    2.4 总结

    用户账号管理和用户组是我们在实际使用过程中常用的命令,学习完创建账号、创建组后,需要通过gpasswd命令将用户添加到组,这也是我们学习的最终目的

    系统管理的常用命令都是在开发过程中经常使用到的

    3 Linux目录管理

    注意:
    在下面的讲解中,每个命令都有很多的参数说明(选项),我们只讲其中的几个,关键是让学生掌握命令的语法;学生学习完语法后,就可以自己按照参数书写各种命令,这也是我们最终的目的。常用命令,我们在企业级开发过程中,经常书写的命令。会非常被容易记住,不常用的命令,只要我们学习完了语法之后,在去查找参数手册,会非常容易的解决我们的问题,所以,每个命令不是建立在死记硬背的基础上的,要理解语法+查找参数=解决问题
    
    • 1
    • 2

    3.1 Linux 文件与目录管理

    在Linux系统中,所有的的目录结构为树状结构,最顶级的目录为根目录 /。
    在实际开发过程中,文件的操作是非常频繁也是非常重要的
    下面的章节我们将学习下Linux系统所有的系统目录和文件通过命令是如何进行管理的 
    
    • 1
    • 2
    • 3

    3.1.1 目录常用命令

    • ls: 列出目录
    • cd: 切换目录
    • pwd: 显示目前的目录
    • mkdir:创建一个新的目录
    • rmdir:删除一个空的目录
    • cp: 复制文件或目录
    • rm: 移除文件或目录
    • mv: 移动文件与目录或修改文件与目录的名称

    自动补全

    • 在敲出 文件/ 目录 / 命令 的前几个字母之后, 按下 tab
    • 如果还存在其他 文件 / 目录 / 命令, 再按一下tab键, 系统会提示可能存在的命令
    1) ls (列出目录)
    ls命令相当于我们在Windows系统中打开磁盘、或者打开文件夹看到的目录以及文件的明细,如下图
    
    • 1

    【查看磁盘下的目录与文件】

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3fo9P18b-1661607928239)(en-resource://database/658:1)]

    【查看文件夹下的目录与文件】

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6I5F4TH1-1661607928239)(en-resource://database/659:1)]

    注意:在Linux系统当中, ls 命令算是比较常用的命令

    使用者权限:所有使用者都可使用。

    语法如下:

    ls [选项]  目录名称
    
    • 1

    选项与参数:

    • -a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
    • -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
    • -l :长数据串列出,包含文件的属性与权限等等数据;(常用)

    将根目录下的所有文件列出来(含属性与隐藏档)

     ls -al ~
    
    • 1

    执行效果如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7nL1gq8e-1661607928240)(en-resource://database/660:1)]

     ls -l
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IdQkDsY7-1661607928240)(en-resource://database/661:1)]

    ls -l 可以查看文件夹下文件的详细信息, 从左到右 依次是:

    • 权限(A区域), 第一个字符如果是 d 表示目录
    • 硬链接数(B区域), 通俗的讲就是有多少种方式, 可以访问当前目录和文件
    • 属主(C区域), 文件是所有者、或是叫做属主
    • 属组(D区域), 文件属于哪个组
    • 大小(E区域):文件大小
    • 时间(F区域):最后一次访问时间
    • 名称(G区域):文件的名称
    ls
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W6GSMo7C-1661607928240)(en-resource://database/662:1)]

    总结
    以上三种是经常被使用到的命令
    它们之间的区别是
    ls  显示不隐藏的文件与文件夹
    ls -l 显示不隐藏的文件与文件夹的详细信息
    ls -al   显示所有文件与文件夹的详细信息
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    2) pwd显示当前目录
    执行pwd命令相当于我们在Windows系统路径导航栏中查看到的当前浏览位置信息
    
    • 1

    如下图

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UUwwuMzW-1661607928241)(en-resource://database/663:1)]

    pwd 是 Print Working Directory 的缩写,也就是显示目前所在当前目录的命令。

    使用者权限:所有使用者都可使用。

    查看当前所在目录

    pwd -P
    
    • 1

    执行效果如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8wtOUJf3-1661607928241)(en-resource://database/664:1)]

    3) cd (切换目录)
    Linux的cd切换目录,相当于我们在Windows中通过鼠标或者快捷键点开不同的目录
    
    • 1

    注意:在Linux系统当中, cd 命令算是比较常用的命令

    cd是Change Directory的缩写,这是用来变换工作目录的命令

    使用者权限:所有使用者都可使用。

    语法如下:

     cd [相对路径或绝对路径]
    
    • 1

    在正式学习cd命令前面,我们通过下面一个座位图的形式讲解下相对路径和绝对路径是怎么表现的。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EoAd3g6C-1661607928241)(en-resource://database/665:1)]

    • 绝对路径:
      路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。
    • 相对路径:
      路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd …/man 这就是相对路径的写法啦!

    1、使用相对路径定位目标

    • 特征: 相对路径 输入路径时, 最前面不是以 “/” 开始的, 表示相对 当前目录 所在的位置
    • 缺点: 参照工作目录 发生变化 相对路径也要发生变化
    需求1: 当前工作目录是 /usr, 使用相对路径 切换到 /usr/tmp 目录下 
    
    需求2: 当前工作目录是 /root, 使用相对路径 切换到 /usr/tmp 目录下 
    
    • 1
    • 2
    • 3

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dxwyNcM5-1661607928242)(en-resource://database/666:1)]

    执行效果如下

    注意:
    cd ~ 表示回到根目录
    
    • 1
    • 2

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qioHipnc-1661607928242)(en-resource://database/667:1)]

    2、使用绝对路径定位目标

    • 特征: 绝对路径 在输入路径时, 最前面是以 / 开始的, 表示 从 根目录 开始的具体目录位置
    • 优点: 定位准确, 不会因为 工作目录变化 而变化
    需求1: 当前工作目录是 /usr, 使用绝对路径 切换到 /usr/tmp 目录下 
    
    需求2: 当前工作目录是 /root, 使用绝对路径 切换到 /usr/tmp 目录下 
    
    • 1
    • 2
    • 3

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LqHfaoXU-1661607928242)(en-resource://database/668:1)]

    执行效果如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iori3TuZ-1661607928243)(en-resource://database/669:1)]

    总结

    • 相对路径 在输入路径时, 最前面不是以 / 开始的 , 表示相对 当前目录 所在的目录位置
    • 绝对路径 在输入路径时, 最前面是以 / 开始的, 表示 从 根目录 开始的具体目录位置
  • 相关阅读:
    C++ 数字记忆小游戏
    “萌系小家电”顶流的小熊电器,如何创造全域增长?
    自定义拖拽操作
    Vue3全局共享数据
    第四代智能井盖传感器,万宾科技助力城市安全
    [Python]多态、类方法、类属性
    AI技术产业热点分析
    SALOME源码分析:GUI模块
    差分数组|AcWing 797. 差分| AcWing 798. 差分矩阵
    Java 之 CAS 原理及实现是怎样的?
  • 原文地址:https://blog.csdn.net/qq331570870/article/details/126562981