一、linux用户

1、什么是用户

用户是用来运行某一些进程、拥有某一些文件或目录。

在Linux里面,用户分成三大类:root用户、系统用户、普通用户。

用户是用UID来唯一标识身份的,且root用户UID为0,系统用户UID范围为1-999,普通用户UID从1000开始默认依次往后累加。

什么是系统用户?

一般运行的进程属于系统内核进程,那么运行这些进程的用户都是系统用户,通常不会到系统前台,也就是命令解释器shell里面去登录。

2、用户有关的命令

useradd命令——创建用户,通常创建完用户后要设置一个密码

[root@localhost ~]# useradd wzg
[root@localhost ~]# passwd wzg

usermod命令——修改用户属性

-g -> 为用户指定主要组
-G -> 为用户指定从属组
-c -> 为用户添加一个注释字段
-u -> 为用户指定一个UID
-L -> 锁定用户,使用户密码不可用,例如连续输错密码
-U -> 解锁用户,使用户密码恢复可用

userdel命令——删除用户

userdel  用户名 -> 非彻底删除,宿主目录被保留
userdel -r 用户名 -> 彻底删除,宿主目录被删除

附:

sudo 命令 -> 以root身份运行命令(root用户具有系统全部权限的用户,如果要执行安装或删除软件以及管理系统文件等任务,必须将特权升级到root用户)

id命令 -> 查看当前已登录用户的信息,也可以查看其他用户的基本信息。

ps -au -> 查看当前终端下运行的所有进程并显示与之相关联的用户。

ls -l -> 查看某一文件或目录的用户所有权。或查看三类用户对某个文件的访问权限

[root@localhost /]# ls -l
total 28
lrwxrwxrwx. 1 root root 7 Sep 21 12:53 bin -> usr/bin
dr-xr-xr-x. 3 root root 4096 Sep 21 12:58 boot
drwxr-xr-x. 20 root root 3260 Nov 16 19:51 dev
drwxr-xr-x. 141 root root 8192 Nov 16 19:53 etc
drwxr-xr-x. 6 root root 62 Oct 31 11:09 home
...

第一列第1位:

  • l -> link 代表:链接文件
  • d -> directory 代表:文件夹
  • 横杠 - 代表:普通文件

第一列后9位:(r可读,w可写,x可执行)

  • 第一组代表所属用户对文件的访问权限
  • 第二组代表所属组对文件的访问权限
  • 第三组代表其他用户对文件的访问权限(除了所属用户和组以外的其他用户)

第三列root代表:文件所属用户是root

第四列root代表:文件所属组是root组

3、本地用户的信息

路径:/etc/passwd

格式 -> 用户名:密码:UID:GID:注释:宿主目录:命令环境

  • 密码:用X代替保存在影子文件中
  • GID:新建用户后系统默认一个同名组
  • 注释:可空
  • 宿主目录:/root或者/home/dir
  • 命令环境:/bin/bash或者/sbin/nologin

/bin/bash -> 解锁账户,用户可以使用shell登陆系统

/sbin/nologin -> 锁定账户,用户不能登陆系统,但可以运行某个程序,如果哪个用户属于不安全用户,就可以将该用户设置为nologin

# 练习
# 创建一个名为luna的用户,在系统中没有可登陆的shell
[root@localhost ~]# useradd luna
[root@localhost ~]# passwd luna
[root@localhost ~]# vim /etc/passwd
找到luna用户,把/bin/bash 改为:/sbin/nologin

4、用户密码的信息

/etc/shadow -> 存放本地用户的密码

格式 -> 用户名:密码:最后更改密码日期:密码最短使用期限:密码最多使用期限:密码到期警告期:密码到期后还可使用时间:密码到期日:预留空白字段

  • 密码: * -> 代表没有密码,是空的,!-> 代表该用户被禁用
  • 密码最短使用期限:0 -> 表示无限期使用
chage -用户名 命令——设置账户到期时间
-d -> 设置最后一次修改用户密码的时间,以距离1970年1月1日开始算起
-E -> 设置账户到期日期
-I -> 设置账户到期后能继续登陆系统的时间
-m -> 设置账户可以修改密码的最少天数
-M -> 设置账户必须更改密码前的最多天数
-W -> 设置密码即将到期的警告天数

二、Linux组

1、什么是组

主要组的概念:

当系统创建一个用户的时候,会单独给这个用户分配一个组。

在/etc/passwd文件中的第四个字段GID定义。

  • 特点:默认情况下,组名与用户名同名,GID与UID同号,该组里面只有该成员本身一人
  • 特点:每个用户有且仅有一个主要组,是1:1的数量关系。

从属组(附加组)的概念:

某个用户被人为添加到某个额外的组,获取了这个组的权限,那么这个组就叫做从属组,或者附加组,它是非主要组。

在/etc/group文件中的最后一个字段定义。

  • 特点:每个用户的从属组可以有多个,是1:n的数量关系。
  • 特点:反过来,一个组可以有多个用户成员,即可以是多个用户的从属组。

2、组有关的命令

groupadd命令——创建组

-g  ->  给新建的组分配一个GID

groupmod命令——修改现有的组 -modify

-g  ->  指定新的GID(主组)
-G -> 指定附加组
-n -> 指定新的groupname

groupdel命令——删除组 (不能删除属于其他用户的主组)

# 练习
# 创建一个名为groupone的组
# 创建一个名为harry的用户,设置用户ID为2021,其属于staff组,且这个组是该用户的附加组
[root@localhost ~]# groupadd groupone
[root@localhost ~]# useradd -u 2021 -G groupone harry

3、本地组信息

/etc/group -> 存放本地组信息

格式 -> 组名称:组密码:GID:从属组用户

  • 组密码:用X代替,密码存放在/etc/gshadow文件中
  • 从属组用户:即有哪些用户从属于这个组

三、Linux软件包管理器

1、什么是rpm包和yum源

红帽有两款软件包管理器,分别是rpm和yum。

1、什么是rpm包?

rpm包,类似于Windows里面的exe文件,只不过在Linux里面,一个软件通常需要由多个rpm才能安装好,而rpm包之间存在着安装顺序,这种安装顺序就叫做依赖性关系。

2、什么是yum源?

自动化解析rpm包之间的依赖性关系,实现了安装包的批量安装。在Linux里面,要使用yum,就需要提前配置一个yum源,用来解决rpm包之间的依赖性关系。

2、如何配置本地yum源:

要使用yum软件包管理器,首先得需要一个yum仓库,也就是一个yum源,这个是需要我们自己来配置的。

而这个yum仓库可以使用本地仓库(file),也可以使用远程链接仓库(http或ftp)。

具体操作步骤:

(1)先在VMware里面把系统镜像文件连接到虚拟机的光驱上;

(2)挂载光驱里的镜像:

[root@localhost ~]# mount /dev/cdrom /media

(3)修改yum源配置文件local.repo(注意,文件后缀为.repo,文件名可以自定义):

[root@localhost ~]# vim /etc/yum.repos.d/local.repo
[rhel]
name=rhel
baseurl=file:///media
enabled=1 #代表开启此yum仓库,0为关闭此仓库
gpgcheck=0 #代表验证仓库软件包的完整性(安全性),0为不验证

(4)清空yum源缓存信息:

[root@localhost ~]# yum clean all

(5)检索当前yum源信息:

[root@localhost ~]# yum repolist

3、软件包管理器命令

rpm命令用法:

-i  ->  install  ->  安装某个package   dependencies (依赖包)
-e -> erase -> 卸载(删除)某个package
-v -> 显示整个安装过程中的详细信息
-h -> 以#号显示安装进度
-q -> query -> 查询
-f -> filename -> 文件名
-l -> list -> 罗列文件

常见用法:

[root@localhost ~]# rpm -ivh yum-utils-1.1.31-40.el7.noarch.rpm	#安装某个软件包并显示详细安装过程,以#号显示安装进度
[root@localhost ~]# rpm –qf /etc/chrony.conf #查询某文件(chrony.conf)是由哪个软件包安装的
[root@localhost ~]# rpm -aq httpd #查询对应的服务所要用到的rpm包
[root@localhost ~]# rpm -ql httpd #查询对应的服务所涉及到的所有文件,包括数据文件和配置文件

yum命令用法:

[root@localhost ~]# yum clean all	#清空yum 缓存
[root@localhost ~]# yum repolist #列表查看本操作系统所有的yum源
[root@localhost ~]# yum list #显示已安装和可用的软件包
[root@localhost ~]# yum provides + 路径 #查询某个文件安装的rpm包
[root@localhost ~]# yum -y install + 软件名 #安装某个软件
[root@localhost ~]# yum -y remove + 软件名 #卸载某个软件
[root@localhost ~]# yum -y update + 软件名 #更新某个软件
[root@localhost ~]# yum info #提供与软件包相关的详细信息,包括安装所需的磁盘空间
[root@localhost ~]# yum history #查询yum软件管理记录
[root@localhost ~]# yum -y upgrade #升级系统内核

四、Linux的网络配置与管理

1、网络基础命令

1、ifconfig 命令 <=> ip addr show 命令——查看本地所有网卡配置信息

其中,ens32:代表本地以太网网卡,lo:代表本地回环网卡,virbr0:代表虚拟网卡

2、ping 命令——测试网络连通性(使用ctrl+c来结束测试)

3、ip route 命令——查看本地路由

4、tracepath 命令——查看到目标ip地址所经的路由器地址

5、netstat 命令——查看网络连接状态

netstat -pant -> 查看带有PID进程信息的tcp协议网络端口连接状态

6、ss 命令——获取系统套接字(sockets)统计信息

ss -lt -> 与netstat -pant 功能类似,也可用来查看网络连接状态

2、编辑网络配置文件

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet #网卡类型是以太网
BOOTPROTO=none #ip地址获取方式有三种:dhcp动态获取ip,none或static手动设置固定ip地址
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32 #网卡连接名
UUID=2c22b930-96b9-4ef4-abfb-ff9fbc85ff23 #网卡的系统设备ID号
DEVICE=ens32 #设备名
ONBOOT=yes #是否开机自启
IPADDR=192.168.100.20 #IPv4地址
PREFIX=24 #子网掩码,相当于NETMASK=255.255.255.0
GATEWAY=192.168.100.1 #网关
DNS1=192.168.100.254 #DNS地址,一张网卡可以绑定多个DNS
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

3、通过nmcli命令来配置

# 查看所有网卡连接信息
[root@localhost ~]# nmcli connection show # 删除已有的网卡连接名ens32
[root@localhost ~]# nmcli connection delete ens32 # 给网卡ens32添加一个新的网卡连接eth0,设置为:以太网类型、开机自启
[root@localhost ~]# nmcli connection add con-name eth0 ifname ens32 type ethernet autoconnect yes # 将网卡连接eth0修改为:手动添加IPv4地址,IP地址是:192.168.100.20/24,网关地址:192.168.100.2,对应的dns服务器地址是:119.29.29.29
[root@localhost ~]# nmcli connection modify eth0 ipv4.method man ipv4.addresses 192.168.100.20/24 ipv4.gateway 192.168.100.2 ipv4.dns 119.29.29.29 # 开启网卡连接eth0
[root@localhost ~]# nmcli connection up eth0 #如果网卡连接起不来,可以先关闭该连接,然后再开启
[root@localhost ~]#nmcli connection down eth0 # 重新加载所有的网卡连接配置
[root@localhost ~]# nmcli connection reload # 因为修改了网卡配置,所以需要再重启一下系统的网络服务
[root@localhost ~]# systemctl restart network # 检查网络是否配好
[root@localhost ~]# ifconfig # 或者查看配置文件是否正确
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 # 测试新配置好的本地网络是否ping得通
[root@localhost ~]# ping 192.168.100.20

Linux——基础命令用法(下)的更多相关文章

  1. Linux——基础命令用法(上)

    一.Linux基础命令 1.Linux命令行的格式 命令行的格式为:用户名+主机名+当前工作目录 输入内容的命令格式为:命令 [-短选项/--长选项] [参数] [root@localhost ~]# ...

  2. linux基础命令用法

    目录管理 ls.cd.pwd.mkdir.rmdir.tree ls(list) 列出,列表 用法: ls -l:长格式 文件类型: -:普通文件 (f) d: 目录文件 b: 块设备文件 (bloc ...

  3. 第四节,Linux基础命令

    第四节,Linux基础命令 命令是系统操作员对系统传入的指令,传入指令后回车,系统接收到指令做出相应的行为 1.查看用户位于系统什么位置 [pmd]检查操作用户位于系统的什么位置 命令         ...

  4. 【Python之路】第一篇--Linux基础命令

    pwd 命令 查看”当前工作目录“的完整路径 pwd -P # 显示出实际路径,而非使用连接(link)路径:pwd显示的是连接路径 .   表示当前目录 ..  表示上级目录 /  表示根目录 ls ...

  5. 常用的linux基础命令

    常用的linux基础命令 1.ls 显示目录属性 -l:(也可以简写成ll),列表显示权限等属性 -a:显示所有文件包括隐藏文件等 -d:只列出目录本身 2.chgrp 改变档案所属群组 eg:chg ...

  6. [转帖]linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习)

    linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习) https://www.cnblogs.com/caozy/p/9261224.html 总结的挺好的 ...

  7. linux mail命令用法

    在Linux系统下mail命令的测试 1. 最简单的一个例子: mail -s test admin@aispider.com 这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有mta并 ...

  8. linux基础命令学习笔记(二)

    linux基础命令学习笔记(二) 1.kill :终止进程  kill pid (唯一标示一个进程) kill -9  强制终止  kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...

  9. 2.Linux基础命令

    linux内一切皆文件,没有文件夹只有目录,目录也是一种文件 1.一些常用按键: 将鼠标的光标从虚拟机里切换回来:Ctrl+Alt 拖动Ubuntu内的对话框:Alt键+鼠标左键拖动 清屏:Ctrl+ ...

随机推荐

  1. 关于QGIS的插件开发(C++)

    关于C++插件的开发材料较少,根据网上的指导,我采用了早期版本的插件模板生成的方法来创建QGIS的插件,其方法是从以前版本(2.18.25)里面拷贝插件模板的方法进行,具体的执行步骤为 1.拷贝文件 ...

  2. 《基于SIR的路边违停行为传播模型研究》

    My Focus: 路边违停 行为的传播模型; 学习基于SIR XXX模型的可行性分析.建立和结论分析 Author: 左忠义,王英英,包蕴 Mind Map:

  3. Python网络爬虫实战入门

    一.网络爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序. 爬虫的基本流程: 发起请求: 通过HTTP库向目标站点发起请求,也就是发送一个Request ...

  4. mdev 响应热插拔事件

    热插拔事件是从内核空间发送到用户空间的通知,一般这时候系统配置出现了变化,比如插入/移除耳机,插入/移除SD卡或者USB存储设备等. 热插拔事件默认会调用/sbin/hotplug来加载驱动程序,创建 ...

  5. 第06课 OpenGL 纹理映射

    纹理映射: 在这一课里,我将教会你如何把纹理映射到立方体的六个面. 学习 texture map 纹理映射(贴图)有很多好处.比方说您想让一颗导弹飞过屏幕.根据前几课的知识,我们最可行的办法可能是很多 ...

  6. vue中element-ui table列名lable换行问题 ---亲测

    1.lable操作 :label = "'xxxxx \n xxxxx'" // 注意 lable 的: 注:双引号内有单引号,这样才可以解析文本.需要换行的文本处添加 \n 2. ...

  7. USB3.0 转USB3.0

    前段时间因为项目需求需要将相机的USB3.0口转接出来,心想那还不想简单,结果第一次就碰壁了:先说一下usb3.0的引脚定义如图: 九个脚,2个地:注意USB3.0转3.0时数据线全交叉,DM-和DP ...

  8. kubernetes笔记

    如果pod包含多个container, 这些container不会跨机器分布 每个container只运行一个进程,而不是在一个container运行多个进程,这样更容易处理进程异常重启,进程日志等问 ...

  9. 为什么不直接去Arraylist list = new Arraylist();而是直接通过List list = new ArrayList();使用接口的好处

    ArrayList不是继承List接口,是实现了List接口. 你写成ArrayList arrayList = new ArrayList();这样不会有任何问题.和List list = new ...

  10. C#简单配置类及数据绑定

    目录 简介 配置基类 派生配置类 数据绑定 Winform中的数据绑定 WPF下的数据绑定 附件 简介 本文实现一个简单的配置类,原理比较简单,适用于一些小型项目.主要实现以下功能: 保存配置到jso ...