目录
前言
安装CentOS Linux系统并熟悉基本操作之后,需掌握系统的基本配置与管理。包括用户与组管理、文件与目录管理、文件权限管理、网络连接配置。
一、用户与组管理
在Linux中,可通过命令来创建、管理用户与组。
1、用户账户可分为以下3类:
- 根账户(root):超级用户root可以执行所有任务,不受限制地执行任何操作。
- 系统账户:系统本身或应用程序使用的专门账户。其中提供服务的又称为服务账户。
- 普通账户:供实际用户登录使用的普通用户账户。
根账户与系统账户统称为标准用户。
2、用户与组配置文件
(1) 用户账户配置文件 /etc/passwd
文件中每一行定义一个用户账户,均由7个字段构成,用冒号分隔。
基本格式:账户名:密码:UID:GID:注释:主目录:Shell
- 账户名是用户名,又称登录名,可使用下划线和连字符。
- 密码使用 x 表示,因为 password文件不保存密码信息。
- UID 是用户账号的编号。
- GID 用于标识用户所属的主要组。
- 注释可以是用户全名或其他说明信息。
- 主目录是用户登录后首次进入的目录,必须使用绝对路径。
- Shell 是用户登录后所使用的的一个命令行界面。在CentOS中,如果该字段的值为空,则默认使用/bin/bash。如果要禁止用户账户登录 Linux,将该字段设置为 /shin/nologin即可。
(2) 用户密码配置文件 /etc/shadow
(3) 组账户配置文件 /etc/group
(4) 组账户密码配置文件 /etc/gshadow
3、超级用户权限
- sudo 命令:切换用户身份并执行相应的命令,格式为:sudo[选项] 命令
- sudo配置文件为 /etc/sudoers
普通户用要使用sudo 命令,要么加入wheel组,要么在 sudo 配置文件中加入许可。
-
## Allow root to run any commands anywhere root ALL=(ALL) ALL ## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL
- su 命令:可临时切换用户身份,切换时需输入目标用户的密码,超级管理员切换为普通用户时无需输入密码。命令格式为: su [选项][用户登录名]
4、创建和管理用户账户
创建用户需 root 权限。
(1) 添加用户:useradd,命令格式为: useradd [选项] <用户账户名>
例:useradd zhangsan
- -d:指定用户主目录
- -g:指定该用户所属主要组
(2)管理用户密码:
- 设置密码:passwd [选项] [用户名],如果不提供用户名,只能对当前登录的用户设置密码,普通用户只能通过这种方式修改自己的密码。root 用户有权修改指定用户密码。
- 锁定账户密码:passwd -l 用户名
- 解锁账户密码:passwd -u 用户名
- 查询密码状态:passwd -S 用户名
- 删除账户密码:passwd -d
(3)修改用户账户
- 修改用户名:usermod -l 新用户账户名 原用户账户名
- 锁定账户,临时禁止该用户登录: usermod -L 用户名
- 解锁用户:usermod -U 用户名
(4)删除用户:userdel 用户名(不允许删除正在使用的用户)
5、创建和管理组账户
(1)创建组:groupadd [选项] 组名
- -g:可自行制定组的 GID.
- -r:创建系统组,其 GID 值小于1000;不带此选项,则创建普通组。
(2)修改组账户:主要是修改组名和 GID 值。格式为: groupmod [-g GID][-n 新组名] 组名。
(3)删除组账户:groupdel 组名
6、管理组成员
- gpasswd -a 用户名 组名: 将用户添加到指定的组
- gpasswd -d 用户名 组名: 将某用户从组中删除
- usermod -G 组名 用户名 将一个用户添加到组中:
7、其他命令
- 查看用户信息
id:查看指定用户或当前用户的信息,格式为: id [选项][用户名]
如果不提供用户名,显示当前登录的用户的信息,指定用户名则显示该账户信息。
- 查看登录用户
who:查看当前系统上有哪些用户登录。
last:查看系统的历史登录情况。例:查看最近5次登录事件: last -5
last 用户名:查看某个用户的登录历史情况。
二、文件与目录管理
1、常见的系统目录
- /bin:存放用于系统管理维护的常用的实用命令文件。
- /boot:存放用于系统启动的内核文件和引导装载程序文件。
- /dev:存放设备文件。
- /etc:存放系统配置文件,如网络配置、设备配置文件、X Windows 系统配置文件等。
- /home:各个用户的主目录,其中的子目录名称即为各用户名。
- /lib:存放动态链接共享库(类似于Windows 里的 .dll 文件)。
- /media:为光盘、软盘等设备提供的默认挂载点。
- /mnt:为某些设备提供的默认挂载点。
- /root:root 账户为主目录。不要与根目录混淆。
- /proc:系统自动产生的映射。查看该目录中的文件可获取有关系统硬件运行的信息。
- /sbin:存放系统管理员或者 root 账户使用的命令文件。
- /usr:存放应用程序和文件。
- /var:保存经常变化的内容。
2、Linux 文件类型
- 普通文件
- 目录文件
- 设备文件:分为字符设备文件和块设备文件
- 链接文件:分为符号链接文件和硬链接文件
3、Linux 目录操作
- mkdir 命令:创建目录,命令格式为: mkdir [选项] 目录名
- cd 命令:改变工作目录,命令格式为: cd 目录名
例:切换到根目录下 : cd /
- pwd 命令:显示当前工作目录的绝对路径
- ls 命令:列出指定目录的内容,命令格式为: ls [ 选项] [目录或文件]
-a:显示所有文件
-c:按文件修改时间排序
-i:在输出的第一列显示文件的索引节点号
-l:以长格式显示文件的详细信息
-r:按逆序显示 ls 命令的输出结果
-R:递归地显示指定目录的各个子目录中的文件
4、Linux 文件操作
1、文件内容显示
- cat 命令:显示文件内容,命令格式为: cat[选项] 文件名
如果文件太长,cat 命令只能看到文件最后一页。
- more 命令:逐页显示文件内容,命令格式为:more [选项]文件名
该命令一次显示一屏文本,满屏后显示停下来,在屏幕底部给出提示信号,显示出已显示的 百分比。回车下一行,空格下一页,q 退出。
- less 命令:翻页查看,命令格式为:less [选项] 文件名
功能比more更灵活,PgUp,PgDn 可向前、向后翻页,上下光标可向前、向后移动一行。
- head 命令:显示指定文件开头若干行。命令格式为:head [参数] 文件名
行数由参数值来确定,例 显示 a.txt 的前15行: head -15 a.txt
- tail 命令:显示指定文件的末尾若干行。命令格式为:tail [参数] 文件名
2、查找与排序
- grep 命令:查找文本中的内容,命令格式为:grep [选项] 文件名
-c:只输出匹配行的计数
-i:不区分大小写
-l : 查询多文件时只输出包含匹配字符的文件名
-n : 显示匹配行及行号
-s : 不显示不存在或无匹配文本的错误信息
-v : 显示不包含匹配文本的所有行
-o : 只显示匹配字符串的部分
- find 命令:在目录中查找文件,命令格式为:find [路径] 匹配表达式
-name: 按文件名称查找
-user: 按文件拥有者查找
-group: 按文件拥有组查找
-type: 按文件类型查找
-size 按文件大小查找
- sort 命令:对文本各行进行排序,命令格式为:sort [选项] 文件列表
3、文件内容比较
- comm 命令:对已排好序的文件逐行比较,只显示共有的行。
- diff 命令:逐行比较两个文件,列出不同之处,如果一致,则不显示任何输出。
4、文件复制、删除和移动
- cp 命令:复制文件,命令格式为: cp [选项] 源文件或目录 目标文件或目录
-f 或 --force: 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive: 覆盖文件之前先询问用户
-r: 递归处理,将指定目录下的文件与子目录一并处理。
- rm 命令:删除文件或目录
- mv 命令:移动文件或目录
5、文件内容统计
- wc 命令:用于统计指定文件的字节数、字数、行数,并输出结果。命令格式为:
wc [选项] 文件列表
-c:统计字节数
-l:统计行数
-w:统计字数
wc 命令输出列的顺序和数目不受选项顺序和数目的影响,输出格式为:
行数 字数 字节数 文件名
6、链接文件创建
- 建立符号链接文件的命令格式为: ln -s 目标(原文件或目录)链接文件
- 例:
-
删除链接文件:rm -rf test2ln -s /home/myhome/test /home/myhome/test2
- 建立硬链接文件的命令格式为:ln 目标(原文件)
-
ln /root/a.txt /home
7、文件压缩与解压缩
- gzip 命令:对文件进行压缩和解压缩,命令格式为:gzip [选项] 压缩文件名/解压缩文件名
- unzip 命令:对 winzip 格式的压缩文件进行解压缩,命令格式为:uzip [选项] 压缩文件名
- tar 命令:对文件和目录进行打包或压缩,命令格式为
tar -zxvf 解压文件 tar -zcvf 压缩文件
c:打包文件
v:显示运行过程
f:指定文件名
三、文件权限管理
1、文件访问者身份
- 所有者:默认情况下,文件的创建者即为所有者,root 账户可以将文件的所有权转让给其他用户,使用 chown 命令变更文件所有者,命令格式为:chown [选项] [新所有者] 文件列表
-R:进行递归变更,即目录连同其子目录下的所有文件的所有者都变更。
- 所属组:使用 chgrp [选项] [新的所属组] 文件列表
-R:进行递归变更,即目录连同其子目录下的所有文件的所有者都变更。
chown 命令可以同时变更文件所有者和所属组。命令格式为:
chown [选项] [新所有者]:[新的所属组] 文件列表
2、文件访问权限与文件属性
- 读:读取文件内容或者查看目录
- 写:修改文件内容或者创建、删除文件
- 执行:执行文件或者允许使用 cd 命令进入目录
3、设置文件访问权限
1. 用字符表示权限
- +:表示增加某种权限
- -:表示撤销某种权限
- =:表示指定某种权限(同时会取消其他权限)
2. 用字符表示用户
- u:所有者
- g:所属组
- o:其他用户
- a:全部用户
3. 用字符表示权限类型
- r:读权限
- w:写权限
- x:执行权限
例:
## 给所属组用户增加写权限,给其他用户增加读权限
chmod g+w,o+r /home/ygr/test1
## 同时撤销所属组和其他用户对该文件的读写权限
chmod go-r /home/ygr/test2
## 对所有用户赋予读和执行权限
chmod a=rx /home/ygr/test3
4. 用数字表示文件权限
- 读(r)权限:4
- 写(w)权限:2
- 执行(x)权限:1
- 无任何权限:0
例:754 表示所有者权限:[4+2+1]、所属组权限:[4+0+1]、其他用户权限:[4+0+0]
转化为字符表示:rwxr-xr--
## 文件file的所有者拥有读写权限,所属组用户和其他用户只能读取,可以执行:
chmod 644 file
等同于:
chmod u=rw-,go=r-- file
四、网络连接配置
1、网络连接配置基本项目
- 网络接口配置:Linux支持多种网络接口设备类型,一般情况下,Linux均能自动检测和识别网络接口设备(如网卡)。在实际应用中主要是网卡配置,包括 IP地址、子网掩码、默认网关等。设置 IP地址 和 子网掩码后,主机就可以与同网段的其他主机进行通信,但要与不同网段的主机进行通信,还需设置默认网关地址。默认网关地址是一个本地路由器地址,用于与本网段之外的主机进行通信。
- 主机名配置:主机名是用于标识一台主机的名称,在网络中主机名称具有唯一性。
- DNS 服务器配置:主机作为 DNS 客户端,访问 DNS 服务器来进行域名解析,使用目标主机的域名与目标主机进行通信。
2、网络连接配置文件
- /etc/hosts:存储主机名和 IP 地址映射,用来解析无法用其他方法解析的主机名。
- /etc/resolv.conf:与域名解析有关的设置。
- /etc/sysconfig/network-scripts/ifcfg<接口名称>:对每个网络接口,都有一个相应的接口配置文件,提供该网络接口的特定信息。
- /etc/NetworkManager/system-connections/:保存 VPN、移动宽带、PPPoE连接配置信息。
网络的设备名、IP地址、子网掩码及默认网关等配置信息保存在网卡的配置文件中,一块网卡对应一个配置文件,文件位于:/etc/sysconfig/network-scripts/ifcfg目录中。例:一个网卡配置文件的主要内容如下:
TYPE=Ethernet 网络类型,一般都是以太网Ethernet
BOOTPROTO=DHCP 地址分配模式,即如何让虚拟主机获得IP地址 一般都设置为none或者static
NAME=网卡设备名称 虚拟机的网卡设备名称
UUID
ONBOOT=yes 计算机启动时是否启动(激活)该网卡
IPADDR 虚拟主机的IP地址
PREFIX 一个局域网中可以有多少主机
GATEWAY 网关
DNS1 域名解析 建立名称和IP地址的对应关系
3、软件安装
- rpm 工具安装:获得rpm安装包后,可直接使用命令rpm工具进行离线安装,无需联网。这种方法最大的困难是要自行处理软件依赖性问题。
- yum 工具安装:是一种软件源安装方式,可以自动获取、安装和更新升级软件包,是首选的安装方式
- 其他二进制软件包安装:有些软件直接采用二进制包方式发布,常见的格式有 .bin 和 .run,此类软件在命令行运行安装文件即可。或者在图形化界面文件管理器中双击该软件包执行,前提是有执行权限。
- 源代码安装:有时不得不采用最原始的源代码安装方式,下载软件源码进行编译之后再自行安装
4、使用 rpm 软件包管理
- 安装 rpm 软件包:rpm -ivh 软件包全路径名
-i:表示安装软件
-v:显示较详细的安装信息
-h:显示软件包的 hash 值
- 升级 rpm 软件包:rpm -Uvh 软件包全路径名
- 查询安装 rpm 软件包:rpm -q 软件包名
- 验证 rpm 软件包 :rpm -V rpm 软件包名 验证所有已安装的软件包: rpm -Va
- 卸载rpm 软件包: rpm -e 软件包名
5、yum 命令
- 使用 yum 安装软件包: yum install 包1[包2][...]
yum install php
- 卸载软件包: yum remove|erase 包1[包2][...]
- 重新安装相同版本的软件包:yum reinstall 包1[包2][...]
- 降级安装软件包:yum downgrade 包1[包2][...]
- 升级软件包: yum update 包1[包2][...]
- 升级之前先执行 check-update 命令检测已安装包的更新信息,再更新指定包:yum check-update yum update 包名
- 不指定更新的软件包(全部更新): yum update
- 查询软件包: yum info [参数]
参数使用包名:查询资源库中指定包的安装信息。
参数使用 update:查询资源库中所有可以 更新的 rpm 包的信息
参数使用 installed:查询已经安装的所有 rpm 包的信息
参数使用 extras:列出已经安装的但不包含在资源库中的 rpm 包信息
yum list 给出 rpm 包列表
yum search 用于搜索包名
yum provides 用于搜索有包含特定文件名的 rpm 包,命令格式为:yum provides 文件路径
总结
Linux命令熟能生巧。