用户和组管理
1. 配置文件
- passwd文件
位置:/etc/passwd;对任何用户可读。
作用:用于保存各用户的账户信息。 - shadow文件
位置:/etc/shadow;只对root用户可读。
作用:保存各用户账户的密码等信息。 - group文件
位置:/etc/group
作用:保存各用户账户的分组信息。 - gshadow文件
位置:/etc/gshadow
作用:用于定义用户组口令、组管理员等信息。
2. 管理命令
账户管理命令
- useradd:添加新用户
示例:# useradd zhang
# useradd -u 510 -g li -d /home/li -s /bin/bsh -e 2014/12/31 zhang - usermod:修改已有用户账户的属性
usermod -l newname oldname
usermod -L zhang
usermod -U zhang - passwd:设置口令
passwd zhang - userdel:删除指定的用户账户
userdel -r zhang #参数-r删除用户同时删除用户所有相关文件
组账户管理命令
组账户管理命令和账户管理命令类似,只是user变成了group。
groupadd
groupdel
gpasswd
示例:
gpasswd -a username groupname
gpasswd -d username groupname
gpasswd -A username groupname //设指定用户为指定组的管理员
软件包管理
rpm包——RedHat红帽系列的系统
deb包——Debian
tar——打包
bz2 / gz——压缩
sh结尾的文件
src源码文件
RPM软件包
RPM,RedHat Package Manager,即软件包管理器,是RedHat公司提出的软件包管理标准,适于各种Linux系统,现已成为Linux中公认的软件包管理标准。
RPM的功能:安装、卸载、升级、查询、验证
RPM包的名称格式:name-version.type.rpm
示例:httpd-2.0.40-21.i386.rpm
获得RPM包的途径:发行套件的光盘中查找;从RPM官方站点上查找下载。
RPM包命令
- 安装:rpm -ivh <RPM包名>
- 删除:rpm -e <RPM包名>
- 查询:
rpm -qa:查询系统中安装的所有RPM软件包
rpm -q <RPM包名>:查询指定的软件包是否已安装
rpm -qp <RPM包文件名>:查询包中文件的信息
rpm -qi <RPM包名>:查询系统中已安装包的描述信息
rpm -ql <RPM包名>:查询系统中已安装包里所包含的文件
rpm -qf <文件名>:查询系统中指定文件所属的软件包 - 升级:rpm -Uvh <RPM包名>
- 验证:检查包中文件是否和安装的一致,包括校验码文件大小,存取权限,属主属性都将进行校验。rpm -V [参数]
示例:验证已安装的httpd软件包rpm -V httpd
YUM软件包
YUM(Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,所有软件包由集中的yum软件仓库提供。
yum最大的优势是可以去互联网上下载所需要的rpm包,然后自动安装。
yum软件仓库的提供方式有本地目录和网络FTP或HTTP服务方式。
yum的配置文件
基本配置文件:/etc/yum.conf
软件仓库配置文件:/etc/yum.repos.d/*.repo
日志文件:/var/log/yum.log
yum本地源的配置
- yum的本地安装源的获得
- yum配置本地安装源
- 测试yum命令
常用命令
(1)查询:
查看所有软件仓库:yum repolist all
查看可用的软件仓库:yum repolist enabled
查询指定的软件包安装情况:yum list <软件包名>
查询指定的软件包详细信息:yum info <软件包名>
(2)安装:yum install <软件包名或程序组名>
(3)更新:yum update <软件包名>
(4)删除:
删除指定的软件包:yum remove <软件包名>
清除缓存目录下的软件包:yum clean <软件包名>
使用rpm命令有时删除不掉相关软件包,而采用yum命令删除软件成功率要高。
TAR的软件包
Tar是“tape archive”(磁带存档)的简称,tar命令是一个将很多文件进行存档的工具,现已成为Unix下标准的文件打包格式。
TAR包的名称格式:
“*.tar”——表示普通的,非压缩的包;
“*.tar.gz”——表示压缩的文件包。
TAR包的作用:TAR包在Linux中主要用来安装第三方的程序,几乎所有的软件都有TAR包的发布。
获得TAR软件包:
获得TAR软件包可以通过Google,Baidu等搜索引擎查找‘tar’或“tar.gz”软件包。
TAR包的命令
(1)建立tar包
一种是建立普通的TAR包,只打包,不压缩。
tar cvf <包名> <文件或目录名>
参数:c(create)指建立,v(verify)表示执行命令时有更多提示信息,f(file)指定tar包的文件名。
另一种是打包并压缩,选项是“zcvf”,其中z代表使用gzip程序进行文件的压缩。
tar zcvf <TAR包名> <文件或目录名>
打包的文件一定要加上扩展名。
(2)查询tar包
tar ztf <TAR包名>
参数:z指查询压缩的TAR包,若无z是普通的TAR包,t(test)指查询TAR包,f指定TAR包的文件名。
(3)释放tar包
tar zxvf <TAR包名>
参数:x(eXtract)指释放,分为解非压缩和压缩包两种方式,若释放TAR包为非压缩的TAR包,则不需用参数z。
释放到指定路径中:tar zxvf 包名 -C 目录名
SRC源代码包的编译和安装
src源代码包:tar软件包释放后,需要查看包中是否包含了src,源代码包里的文件往往会含有源代码文件,头文件*.h,C代码源文件*.c
安装步骤:
(1)释放TAR包
(2)查看并阅读内附带的软件安装说明
(3)进行编译准备:./configure
(4)进行编译:make
(5)进行软件安装:make install
(6)清除临时文件
网络通信管理
网络的基本配置
1. Linux下的网络配置文件
CentOS 7下的网络配置文件:
系统启动时用来初始化网络的信息:
/etc/sysconfig/network-scripts/ifcfg-ens33
2. 配置IP地址
- 字符终端下配置方法:
BOOTPROTO=static #使用静态IP地址,默认为dhcp
DEVICE=ens33 #接口设备名
ONBOOT=yes #是否开机启用,默认为no
IPADDR=192.168.1.200 #网络设备的IP地址
GATEWAY=192.168.1.1 #网关地址
NETMASK=255.255.255.0 #子网掩码 - 重新启动网络服务
常用网络管理命令
- hostname 显示和设置主机名
- ifconfig 显示当前活动的(或指定的)网卡设置。
重新设置网卡的IP地址,一般由root用户进行设置,ifconfig 网卡设备名 IP地址
。
把指定的一块网卡设为多个虚拟IP地址:ifconfig 网卡设备名:n IP(n指定网卡的编号)
启动和停止指定的网卡格式:ifconfig 网卡设备名 up|down - ping,通过向被测试的目的主机地址发送ICMP报文并收取回应报文,来测试当前主机到目的主机的网络连接状态。ping命令默认会不间断地发送ICMP报文直到用户Ctrl+C可以中途终止该命令。使用-c选项可以控制ping命令发送报文的数量。
- 查看红帽5下的网络配置文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201207145034698.png)
- 重新启动网络服务 service network restart
- write用来实时给某用户发送消息。write username [tty]。例如,系统中同时有多个a用户在线,b用户要向其中一个指定的a用户单独发送消息。
- wall 以广播形式向所有用户发送消息。wall message。
- mesg:设置消息的禁止和允许。mesg [y|n]。条件:一般对于root及同名用户禁止消息无效。
- talk:以全双工的方式实时和某用户交流。
talk username [tty] //请求方
talk username //应答方 - mail
(1)撰写和发送邮件
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201207115541477.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0lUbWluY2hlcnJ5,size_16,color_FFFFFF,t_70)
(2)接收和阅读邮件
直接输入mail命令后会看到所有的邮件,最后一行会有“&”符号,它为邮件命令提示符,在其后可输入各种邮件命令。如想看哪一封邮件,则输入:
& n
其中n为mail的编号
(3)mail常用命令
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201207115950316.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0lUbWluY2hlcnJ5,size_16,color_FFFFFF,t_70)
进程管理
进程概述
进程:进程实体的运行过程,是系统进行资源分配和调度的独立单位。或者说是一个程序在处理机上的一次执行活动。
进程属性:
系统启动后第一个运行的进程是systemd,它的进程号为1,systemd是唯一一个由系统内核直接运行的进程。
进程的类型:
- 系统进程:是操作系统启动后,系统环境平台运行所加载的进程,它不与终端或用户关联。
- 用户进程:与终端相关联,使用一个用户ID,是由用户所执行的进程。
- 守护进程:没有屏幕提示,只是在后台等待请求,网络多用户系统工作绝大多数是通过守护进程实现的。
守护进程的管理
守护进程的作用:
- 它在后台定期运行,使用户察觉不到,可以使我们的日常繁琐工作变得轻松简单,同样守护进程也是黑客攻击对象。
- 守护进程配合shell编程,设计出适合用户自己的新功能,大大提高了工作效率。
- 守护进程是在后台执行,所以系统在执行守护进程后,都会给创建该守护进程的用户发送一个邮件,来说明该守护进程的执行情况。
at作业
指定系统在将来的某个时间执行作业。
1、创建at作业:
at sometime
command list #list列表
……
<Ctrl>+d #组合键,保存并结束
例子:
①在第二天该时刻执行
at now +1 day
②在5月1日凌晨1点执行
at 1:00am May 1
③在3天后下午2:10执行
at 2:10pm +3 day
④让系统在第二天早上8:20,删除临时文件并给a用户发送一个问候邮件
at 8:20am +1 day
rm -rf /temp/*
mail -s “my friend:happy birthday” a
2、显示at作业
at -l
3、删除at作业
at -d ID
cron作业
要想实现以固定的间隔时间执行作业,并且能统一管理所有作业,at命令就不能胜任了,我们可以利用强大的crontab命令来实现cron作业。
使用cron作业服务必须安装vixie-cron RPM软件包,而且必须运行crond服务,要启动crond服务使用:service crond restart
配置文件:/etc/crontab
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201207143121673.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0lUbWluY2hlcnJ5,size_16,color_FFFFFF,t_70)
作业列表含义:
表头含义 | Min | Hour | Day of Mon | Mon | Day of Week | Command |
---|
取值范围 | 0-59 | 0-23 | 1-31 | 1-12 | 0-6 | |
创建cron作业
- 利用vi创建cron作业列表文件,文件命名为cronfile1
- 按规定格式创建好任务文件
- 用crontab命令去执行一个已经创建好的cron作业列表文件名,crontab [-u user] filename
- 把cronfile1 写入“/var/spool/cron/username”文件中。
修改编辑
- 用“crontab -e”就会自动进入vi编辑器中的cron作业列表文件
- 按规定格式编辑好任务:wq退出就保存为“/var/spool/cron/username”文件
表头含义 | Min | Hour | Day of Mon | Mon | Day of Week | Command |
---|
取值范围 | 0-59 | 0-23 | 1-31 | 1-12 | 0-6 | |
cron作业示例:
某系统管理员每月的日常工作内容如下:
①每天上午9点和下午5点把当前在线人数存到num文件中;②周一至周五每2小时进行一次备份pub数据到data文件中;③每周五下午5:30删除临时文件;④每月10号晚上11点到第二天早7点之间每小时给用户wdg发送一个时间消息。
要求利用crontab命令创建cron作业列表形式自动完成以上工作。
首先用vi编辑一个新的cronfile1,写入以下内容
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201207144717675.png)
然后执行crontab cronfile1
进程的控制命令
1. ps进程查看命令
参数如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201207145454985.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0lUbWluY2hlcnJ5,size_16,color_FFFFFF,t_70)
2. free命令
显示系统内存的使用情况,包括内存总量、已经使用内存数量、空闲内存数量等信息。
3. top命令
- 实时监控系统进程
- 环境中常用的功能:
排序:P(CPU使用多少)、M(内存)、T(进程执行时间)
监视指定用户:“u”键→“用户名”
指定刷新时间:“#top -d 1”
删除指定的进程:“k”
查阅帮助:“?”或“h”
退出top环境:“q键”或“Ctrl +C”
4. sleep命令
用于使进程延迟一段时间再执行。
sleep time(时间单位为s)
5. kill命令
杀死程序产生的进程来结束程序的运行。
- kill PID;安全结束
- kill -9 PID;“-9”为SIGKILL信号,属于强制结束。
进程的前台与后台控制
- 前台与后台运行含义
前台:当命令在前台执行时,它就控制了键盘和显示器。
后台:当命令执行后,立即返回到shell提示符,从而可以做其他工作。 - 前台与后台运行相关命令
command // 前台
command & //后台 - jobs命令:可以查看挂起到后台的进程
- fg命令:将后台挂起的进程恢复到前台来运行。fg 进程编号
- bg命令:将后台挂起的进程恢复到后台来运行
- Ctrl + z快捷键:暂时将当前程序挂起到后台,挂起后的进程将不进行任何操作。
系统的服务管理
INIT进程
作用:INIT进程是由Linux内核引导运行的,是系统运行的第一个进程。新版本CentOS 7系统中systemd进程取代init进程。
配置文件:/etc/inittab
系统服务常用管理命令
init命令
转换服务的运行级别。
格式:init [n]
chkconfig服务启动状态
- 查看系统服务启动状态
chkconfig – list [服务名] - 设置系统服务的启动状态:chkconfig [–level <levels>] [服务名] <on|off>
chkconfig --level 2345 httpd on
service服务状态控制
service 服务名 {status|start|stop|restart}
例如:service httpd start
systemctl系统服务管理
在CentOS 7系统中,系统服务管理使用systemcl命令代替了原来的service命令和chkconfig命令,service命令和chkconfig命令依然可以使用。
1、查看系统服务启动状态
systemctl list-unit-files --type service
2、列出所有处于激活状态的服务
systemctl list-units --type service --all
3、服务状态控制
systemctl [status/start/stop/restart/reload] name.service
4、服务开机自启控制
systemctl [enable/disable] name.service
setup系统自启动服务控制
setup命令是Linux字符终端下面用来配置网络、防火墙、系统服务等设置的图形小工具,使用起来非常方便。进入界面后,用上下箭头移动到需启动的服务上,单击空格选中此服务,这样下次启动时就可以自动启动了。
注意:选择的前提是必须要先安装完需要的软件包,否则看不到此服务。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201207153354273.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0lUbWluY2hlcnJ5,size_16,color_FFFFFF,t_70)
磁盘操作管理
Linux文件系统类型
常用类型:ex3/ex4、xfs、swap、vfat、NFS
虚拟文件系统
虚拟文件系统(VFS)是一种用于网络环境的分布式文件系统,是允许和操作系统使用不同的文件系统实现的接口。虚拟文件系统(VFS)是物理文件系统与服务之间的一个接口层,它对Linux的每个文件系统的所有细节进行抽象,使得不同的文件系统在Linux核心以及系统中运行的其他进程看来,都是相同的。
存储设备
Linux系统下的磁盘设备有其命名规范,它们对应的目录名(挂载点)在“/mnt”下,Linux常用存储设备的名称:
- 光盘设备:设备名“/dev/cdrom”,默认对应的目录名可以命名为/mnt/cdrom
- IDE硬盘:设备名“/dev/hda”
- USB移动存储设备:设备名“/dev/sda”
- 查看系统磁盘分区情况:fdisk -l
磁盘文件系统的挂载与卸载
(1)使用命令手工挂载:mount [-t fs-type] [-o option] device mountpoint
实例:mount -t vfat /dev/sda1 /mnt/disk1
mount -t vfat -o iocharset=cp936 /dev/sda1 /mnt/disk1 //若乱码
NTFS-3G是Linux系统下最新的支持NTFS格式的工具。
(2)系统启动时自动挂载
在/etc/fstab配置文件中添加加载信息
(3)卸载
umount [device] [dir]
常用的磁盘操作命令
- fdisk磁盘分区:fdisk [-l] [device]
- du 磁盘统计:du [-a] dirname
- 可以在新的磁盘上用fdisk创建新的磁盘分区,然后用mkfs命令创建新的文件系统,然后手工命令挂载,以此体会Linux文件系统的使用特点。
练习:
(1)系统信息类命令
- 利用date命令显示系统当前时间,并修改系统的当前时间。
date -s "2001-01-07 12:00:00"
- 显示当前登录到系统的用户状态。
w
注:
(1)w命令可以显示当前登入系统的用户信息。详细输出信息为:用户名称,用户机器名或tty号,远程主机地址,登录到系统的时间,空闲时间(作用不大),附加到tty(终端)的进程所用的时间(JCPU时间),当前进程所用时间(PCPU时间),用户当前正在使用的命令。
w命令还有以下参数:
-f 开启或关闭显示用户从何处登入系统;
-h 不显示各栏位的标题信息栏;
-l 详细显示信息;
-s 不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间,简洁显示;
-u 忽略执行程序的名称,以及该程序耗费CPU时间的信息;
-V 显示版本信息。
(2)who命令用于列举当前已登录系统的用户名称,其输出为:用户名、tty号、时间日期、主机地址。
(3)whoami查看所使用的登录名称。
id -un和whoami显示结果一样。
(4)last查看用户登录系统的历史记录,显示的信息来源于/var/log/wtmp文件。输出为:用户名称,tty设备号,历史登录时间日期,登出时间日期,总工作时间。 - 利用free命令显示内存的使用情况。
free
参数:-b以字节为单位显示内存,-k以kb为单位显示内存,-m表示以mb为单位显示,-g以gb为单位显示,-s 时间表示每几秒显示一次,-t显示使用总和。 - 利用df命令显示系统的硬盘分区及使用状况。
df
- 显示当前目录下的各级子目录的硬盘占用情况。
du -lh --max-depth=1 -h
du -sh
: 查看当前目录总共占的容量,而不单独列出各子项占用的容量。
(2)进程管理类命令
- 使用ps命令查看和控制进程:
①显示本用户的进程。ps
②显示所有用户的进程。ps -au
③在后台运行cat命令。cat &
④查看进程cat。ps aux | grep cat
⑤杀死进程cat。kill -KILL [PID]
或kill -9 cat
⑥再次查看进程cat,看其是否已被杀死。 - 使用top命令查看和控制进程:
①用top命令动态显示当前的进程。top
②只显示用户user01的进程(利用u键)。top -u user01
③利用k键,杀死指定进程号的进程。top -k [PID]
- 挂起和恢复进程:
①执行命令cat。
②按Ctrl+z组合键,挂起进程cat。
③输入jobs命令,查看作业。
④输入bg,把cat切换到后台执行。
⑤输入fg,把cat切换到前台执行。
⑥按Ctrl+c组合键,结束进程cat。 - find命令的使用:
①在/var/lib目录下查找其所有者是games用户的所有文件。find /var/lib -user games
②在/var目录下查找其所有者是root用户的所有文件。find /var/lib -user root
③查找其所有者不是root、bin和student用户的所有文件并用长格式显示。find / ! -user root -and ! -user bin -and ! -user student - exec ls -l {} \; 2> /dev/null
其中{}
代表find找到的文件,\
禁止转意 ;
表示本行指令结束2> /dev/null
意味着所有错误不显示。
④查找/usr/bin目录下所有大小超过1 000 000 B的文件并用长格式显示。find /usr/bin -size +1000000c -exec ls -l {} \;
⑤查找/tmp目录下属于student的所有普通文件,这些文件的修改时间为120 min以前,查询结果用长格式显示。 find /tmp -user student -and -mtime +5 -and -type f -exec ls{} \; 2> /dev/null
⑥对/etc/mail目录下所有文件使用file命令。find /etc/mail -exec file {} \; 2 > /dev/null
⑦对于查到的上述文件,用-ok选项删除。find /tmp -user student -and -mmin +5 -and -type f -ok rm {} \;
(3)rpm软件包的管理
- 查询系统是否安装了软件包squid。
rpm -q squid
或 rpm -qa | grep squid
- 如果没有安装,则挂载Linux安装光盘,安装squid软件包。
- 卸载刚刚安装的软件包。
rpm -e 包名
- 软件包的升级。
rpm -Uvh
- 软件包的更新。
rpm -UF
(4)tar命令的使用
系统上的主硬盘在使用的时候有可怕的噪声,但是它上面有有价值的数据。该系统在两年半以前备份过,现在决定手动备份少数几个最紧要的文件。/tmp目录可以存储不同磁盘分区的数据,可以将文件临时备份到这个目录。
- 在/home目录里,用find命令定位文件所有者是student的文件。然后将其压缩。
find /home -user student -exec tar czvf /tmp/backup.tar {} \;
- 保存/etc目录下的文件到/tmp目录下。
tar cvf /tmp/confbackup.tar /etc/
- 列出两个文件的大小。
- 使用gzip压缩文档。
gzip /tmp/backup.tar
gzip -c /tmp/backup.tar > /tmp/backup.tar.gz
gzip -d /tmp/backup.tar.gz
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)