生产环境部署与协同开发 Linux(一)

简介: 生产环境部署与协同开发 Linux(一)

一、Linux概述

Linux内核最初只是由芬兰人林纳斯·托瓦兹1991年在赫尔辛基大学上学时出于个人爱好而编写的。

1.1 Linux特点

首先Linux作为自由软件有两个特点:

一是它免费提供源代码

,二是爱好者可以根据自己的需要自由修改、复制和发布源码

1.2 Linux的各个发行版本

Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。

  1. Red Hat Linux (小红帽)
  2. Ubuntu Linux 界面 桌面系统
  3. SuSE Linux
  4. Gentoo Linux
  5. 其他 Linux 发行版

1.3 Linux应用领域

  1. IT服务器
  2. 嵌入式
  3. 个人桌面

1.4 Linux和Windows区别

目前国内 Linux 更多的是应用于服务器上,而桌面操作系统更多使用的是 Windows。

主要区别如下


二、下载安装(暂略)

三、Linux系统目录结构

在xshell中使用ll可以查看Linux的目录结构:

假设我们想要进入bin目录下查看bin目录下有哪些文件可以使用 cd  bin进入bin目录下,在bin目录下使用ll命令查看当前目录下的文件。

想要退出到根目录下,也就是返回上一级目录,使用cd .. 命令即可对于其他目录的访问也是如此。

  • /bin

是Binary的缩写,这个目录存放着经常使用的命令。

  • /boot

存放的启动Linux时使用的一些核心文件,包括一些链接文件和镜像文件

  • /dev

类似于 windows的设备管理器,把所有的硬件用文件的形式存储

  • /etc

所有系统管理所需要的配置文件和子目录,操作系统的核心配置文件。

  • /home

存放普通用户的主目录,在Linux中的每个用户都有一个自己的目录,一般该目录用用户的账号名命名。

  • /lib(/lib64)

系统开机所需要最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

  • /media

Linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

  • /mnt

系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。

  • /opt

这是给主机额外安装软件所摆放的目录。如安装 ORACLE数据库就可放到该目录下。默认为空。

  • /proc

虚拟目录,是系统内存的映射,访问这个目录来获取系统信息。

  • /root

该目录为系统管理员,超级权限者的用户目录

  • /sbin (usr/sbin、/usr/local/sbin)

sbin就是super user的意思,这里存放的是系统管理员使用的系统管理程序

  • /srv

service 的缩写,该目录是存放一些服务启动之后需要提取的数据

  • /sys

Linux2.6内核的一个很大变化,该目录安装了2.6内核中新出现的一个文件系统,存储进程的文件系统。

  • /tmp

存放临时文件

  • /usr

用户的很多应用程序和文件都放在这个目录下。

  • /var

这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件。

在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

  • /etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
  • /bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给 root 使用的指令。
  • /var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

3.1 Linux用户和用户组

用户管理概述

Linux是一个多用户、多任务的操作系统.

用户账号和用户组

用户概念

通过前面对Linux 多用户的理解,我们明白Linux 是真正意义上的多用户操作系统,所以我们能在Linux系统中建若干用户(user)

用户组概念

用户组(group)就是具有相同特征的用户(user)的集合体;比如有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是我们通过定义组和修改文件的权限来实现的;

Linux用户和组的关系

用户和用户组的对应关系有以下 4 种:

  1. 一对一:一个用户可以存在一个组中,是组中的唯一成员;
  2. 一对多:一个用户可以存在多个用户组中,此用户具有这多个组的共同权限;
  3. 多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限;
  4. 多对多:多个用户可以存在多个组中,也就是以上 3 种关系的扩展。

3.2 Linux用户管理

Linux 系统的管理员之所以是 root,是因为该用户的身 份号码即 UID的数值为 0,UID 就相当于我们的身份证号码一样具有唯一性,因此可通过用户的 UID 值来判断用户身份。

  • 管理员 UID 为 0:系统的管理员用户。
  • 系统用户 UID 为 1~999: Linux 系统为了避免因某个服务程序出现漏洞而被黑客提 权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏 范围。
  • 普通用户 UID 从 1000 开始:是由管理员创建的用于日常工作的用户。 需要注意的是,UID 是不能冲突的,而且管理员创建的普通用户的 UID 默认是从 1000 开始的(即使前面有闲置的号码)。

添加用户 useradd

useradd (选项)(参数)

选项

-d 指定创建的用户的家目录(默认为/home/username)

-e 账户的到期时间,格式为 YYYY-MM-DD.

-u 指定该用户的默认 UID

-g 指定一个初始的用户基本组(必须已存在)

-G 指定一个或多个扩展用户组

-N 不创建与用户同名的基本用户组

-s 指定该用户的默认 Shell 解释器

参数 :要创建的用户名。

示例

下面我们创建一个普通用户并指定家目录的路径、用户的 UID和用户的名称 。

[root@localhost /]# useradd -u 501 zj

通过以下命令查看创建的用户的信息

[root@localhost home]# id zj
uid=501(zj) gid=1000(zj) groups=1000(zj)

修改用户 usermod

有些时候不小心在useradd的时候加入了错误的设定数据,此时我们当然可以直接到/etc/passwd或/etc/shadow中去修改相对应字段的数据。

usermod (选项) (参数)

选项:

-c   <备注>:修改用户帐号的备注文字;

-d   <登入目录>:修改用户登入时的目录;

-e    <有效期限>:修改帐号的有效期限;

-f     <缓冲天数>:修改在密码过期后多少天即关闭该帐号;

-g    <群组>:修改用户所属的群组;

-G    <群组>;修改用户所属的附加群组;

-l    <帐号名称>:修改用户帐号名称;

-L:锁定用户密码,使密码无效;

-s:修改用户登入后所使用的shell;

-u:修改用户ID;

-U:解除密码锁定。

示例

再来试试用-u 参数修改 zhangjin用户的 UID 号码值。除此之外,我们还可以用-g 参数 修改用户的基本组 ID,用-G 参数修改用户扩展组 ID。

[root@localhost home]# usermod -u 520 zj
[root@localhost home]# id zj
uid=520(zj) gid=1000(zj) groups=1000(zj)

用户账号口令管理

passwd 命令用于修改用户密码、过期时间、认证信息等。

passwd (选项) (参数)

选项:

-d:删除密码,仅有系统管理者才能使用;

-f:强制执行;

-k:设置只有在密码过期失效后,方能更新;

-l:锁住密码;

-s:列出密码的相关信息,仅有系统管理者才能使用;

-u:解开已上锁的帐号。

示例1

用root帮zj设置密码为123,密码是不显示的。

[root@localhost home]# passwd zj
Changing password for user zj.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

示例2

假设zhangjin正在度假,而且假期很长,那么可以使用 passwd 命令禁止该用户登录系统,等假期结束回归工作岗位时,再使用该命令允许用户登录系统,而不是将其删除。 这样既保证了这段时间内系统的安全,也避免了频繁添加、删除用户带来的麻烦。

[root@localhost ~]# passwd -l  zj
Locking password for user zj.
passwd: Success
[root@localhost ~]# passwd -u zj
Unlocking password for user zj.
passwd: Success

删除用户 userdel

userdel [选项] 用户名

选项:

-f 强制删除用户

-r 同时删除用户及用户家目录

这个命令的目的删除用户,与它相关的文件有:

  1. /etc/passwd
  2. /etc/shadow
  3. /home/username

示例

下面使用 userdel 命令将 zj 用户删除,其操作如下:

[root@localhost ~]# userdel -rf zj
[root@localhost ~]# id zj
id: zj: no such user

3.3 Linux用户组管理

添加新组groupadd

groupadd (选项) (参数)

选项

-g:指定新建工作组的id;

-r:创建系统工作组,系统工作组的组ID小于500;

-K:覆盖配置文件“/ect/login.defs”;

-o:允许添加组ID号不唯一的工作组。

示例

建立一个新组j java,并设置组ID为 666 加入系统:

[root@localhost ~]# groupadd -g 666 java

查看组

查看root用户属于哪些组

[root@localhost ~]# groups
root

查看全部组

[root@localhost ~]# getent group

修改群组groupmod

groupmod(选项)(参数)

选项

-g<群组识别码>:设置欲使用的群组识别码;

-o:重复使用群组识别码;

-n<新群组名称>:设置欲使用的群组名称。

示例

把建立java组改为web并设置GID改为888

[root@localhost ~]# groupmod -g 888 -n  web java

删除群组groupdel

groupdel groupname

示例

删除web组

[root@localhost ~]# groupdel web


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
1月前
|
Ubuntu Linux 测试技术
Linux系统之部署轻量级Markdown文本编辑器
【10月更文挑战第6天】Linux系统之部署轻量级Markdown文本编辑器
81 1
Linux系统之部署轻量级Markdown文本编辑器
|
30天前
|
搜索推荐 Linux 测试技术
Linux系统之部署homer静态主页
【10月更文挑战第11天】Linux系统之部署homer静态主页
75 41
Linux系统之部署homer静态主页
|
20天前
|
运维 监控 Linux
Linux系统之部署Linux管理面板1Panel
【10月更文挑战第20天】Linux系统之部署Linux管理面板1Panel
66 3
Linux系统之部署Linux管理面板1Panel
|
18天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
45 2
|
19天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
28 3
|
20天前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
36 2
|
21天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
177 2
|
9天前
|
缓存 监控 Linux
|
2天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
11 3
|
2天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
10 3