云计算系统管理
- 一、inux简介
- 三、Linux预备知识
- 四、Linux基本操作
- 五、Linux命令行基础
- 六、mount挂载操作:让目录成为设备的访问点
- 七、目录与文件管理
- 八、归档及压缩
- tar 集成备份工具
- 九、管道(操作符号 | )
- 十、grep高级使用
- 十一、find精确查找
- 十二、find高级使用
- 十三、vim编辑技巧
- 十四、Yum的使用
- 十五、命令补充
- 十六、历史命令
- 十七、date,查看/调整系统日期时间
- 十八、制作链接文件(制作快捷方式)
- 十九、zip归档工具,跨平台(Windows与Linux)
- 二十、构建本的Yum仓库
- 二十一、用户管理简介
- 用户账户
- 组账户
- 组账户的分类:
- 本地账户的数据文件
- 命令useradd
- `-d`:指定宿主目录(家目录),缺省为 /home/用户名
- `-G`:指定所属的附加组
- `-s`:指定用户的登录解释器
- usermod命令
- `-d`:家目录路径(不会自动创建家目录)
- `-G`:修改用户的附加组 #重置附加组
- 设置密码passwd命令
- /etc/shadow,保存密码字串/有效期等信息
- ~/.bashrc:每次进入新的Bash环境时执行(开启新的终端)
- 删除用户userdel命令
- 总结:Linux系统执行useradd命令,会完成那些操作?
- 总结:Linux系统执行userdel -r命令,会完成那些操作?
- 组账户管理
- gpasswd命令
- `-A`:定义组管理员列表
- 总结:用户与组重要的配置文件
- 删除组账号:删除组的时候,不可以删除基本组
- 二十二、计划任务
- 二十三、重定向(重新定向命令的输出)
- 二十四、du,统计文件的占用空间
一、inux简介
Linux是一种操作系统!!
操作系统:一堆软件的集合,让计算机硬件正常的工作
C/S结构:客户端(简单、方便)与服务端(稳定、高效、安全)
Unix/Linux发展史
● UNIX诞生,1970-1-1
● Ken Thompson、Dennis Ritchie
● 根据MULTICS项目的经验开发了一个多任务
操作系统 —— UNICS,后改为UNIX
● 1973年,用C语言重写了UNIX
● 1978年,有大约600台计算机运行UNIX
● Linux之父,Linus Torwalds
● 1991年10月,发布0.02版(第一个公开版)内核
● 1994年03月,发布1.0版内核
● 标准读音:“哩呐科斯”
内核:调配计算机硬件资源
用户---->内核---->硬件
内核版本号:主版本.次版本.修订号
Linux版本及应用
● 发行版的名称/版本由发行方决定
● Red Hat Enterprise Linux 5/6/7/8
● Suse Linux Enterprise 12
● Debian Linux 7.8
● Ubuntu Linux 14.10/15.04
● ……
Red Hat系列版本
● 红帽 Linux 企业版
● 简称RHEL(Red Hat Enterprise Linux)
● http://www.redhat.com/
● Fedora Core 社区版
● http://fedoraproject.org/
● CentOS,社区企业操作系统
● Community Enterprise Operating System
● http://www.centos.org/
光盘镜像文件:整个操作系统的数据
二、Linux系统的安装
三、Linux预备知识
Linux目录结构
根目录:/
:Linux系统的起点(所有的数据存放的目录)
路径:/abc/1.txt #在根目录下,有abc目录,在abc目录里有1.txt文件。在Linux中一个路径,只有开头的/ 才表示为根目录
Unix/Linux的基本哲学理念:一切皆文件
/dev:存放设备(键盘、鼠标、光驱、硬盘……)相关的数据
真机Wdindows,虚拟机为Linux平台:
/dev/sda:SCSI接口的硬盘,第一块
/dev/sdb:SCSI接口的硬盘,第二块
/dev/sdc:SCSI接口的硬盘,第三块
真机为Linux平台:
虚拟机硬盘的接口类型:独有的接口类型为vd
四、Linux基本操作
获取命令行
方式:获得命令行终端(tty)
右键“打开终端”
字体变大:ctrl shift +
字体变小:ctrl -
命令行提示符
[当前登录的用户@主机名 当前所在的目录]
[root@localhost ~]#
以#
结尾表示当前登录的身份为root
以$
结尾表示当前登录的身份为普通用户
pwd — Print Working Directory
用途:查看当前工作目录
cd — Change Directory
用途:切换工作目录
格式:cd [目标文件夹位置]
ls — List
格式:ls [目录或文件名]…
[root@localhost ~]# pwd #显示当前所在的位置
[root@localhost ~]# cd / #切换到根目录下
[root@localhost /]# ls #显示当前目录下内容
[root@localhost ~]# cd /etc
[root@localhost etc]# ls /root #查看指定目录内容
[root@localhost etc]# ls / #查看根目录内容
- 绝对路径:以根开始的路径
- 相对路径:以当前为参照的路径
]# cd /opt #绝对路径,与当前所在位置无关
]# pwd
]# cd rh #相对路径,与当前所在位置有关
]# pwd
]# cd /etc/pki #绝对路径,与当前所在位置无关
]# pwd
]# cd CA #相对路径,与当前所在位置有关
]# pwd
# .. 表示上一层目录
[root@localhost CA]# cd /etc/pki/CA
[root@localhost CA]# pwd
[root@localhost CA]# cd .. #后退
[root@localhost pki]# pwd
/etc/pki
[root@localhost pki]# cd ..
[root@localhost etc]# pwd
/etc
[root@localhost etc]# cd ..
[root@localhost /]# pwd
/
- 目录:蓝色
- 文本文件:黑色
cat
查看文本文件内容,适合查看内容较少文件
]# ls /root/
]# ls /root/anaconda-ks.cfg
]# cat /root/anaconda-ks.cfg
]# cat /root/initial-setup-ks.cfg
]# cat /etc/passwd
]# cat /etc/fstab
]# cat /etc/group
]# cat /etc/redhat-release #查看系统版本
less
查看文本文件内容,适合查看内容较多文件
[root@localhost /]# less /etc/passwd
#按上、下键进行滚动
#按q键进行退出
hostname
查看与临时设限主机名
[root@localhost /]# hostname #查看主机名
localhost.localdomain
[root@localhost /]# hostname abc.haha.xixi #临时设置主机名
[root@localhost /]# hostname
abc.haha.xixi
#设置
[root@localhost /]# echo abc.haha.xixi > /etc/hostname #修改配置文件更改主机名
[root@localhost ~]# hostnamectl set-hostname mysql #使用命令设置主机名
新开一个全新的命令行终端,查看提示符变化
lscpu
列出CPU处理器信息
[root@A ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1 #核心数
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
......
列出内存信息
[root@A ~]# cat /proc/meminfo
MemTotal: 997956 kB #一共内存总和
查看网卡的IP地址
]# ifconfig
lo: 本机回环接口 IP永远为127.0.0.1
127.0.0.1:永远代表本机
]# ifconfig eth0 192.168.1.1 #临时设置IP
]# ifconfig
]# ping 192.168.1.1
Ctrl+c:结束正在运行命令
mkdir创建目录
[root@A ~]# mkdir /opt/test
[root@A ~]# ls /opt/
[root@A ~]# mkdir /root/nsd01
[root@A ~]# ls /root/
touch创建文本文件
[root@A opt]# touch /opt/1.txt
[root@A opt]# ls /opt/
[root@A opt]# touch /opt/2.txt
[root@A opt]# ls /opt/
head、tail 命令(查看部分文件内容)
格式:head -n 数字 文件名(文本开头)
tail -n 数字 文件名(文本结尾)
[root@A /]# head -1 /etc/passwd
[root@A /]# head -2 /etc/passwd
[root@A /]# head -3 /etc/passwd
[root@A /]# tail -1 /etc/passwd
[root@A /]# tail -2 /etc/passwd
[root@A /]# tail -3 /etc/passwd
grep命令过滤文本文件内容
作用:输出包含指定字符串的行
[root@A /]# grep root /etc/passwd
[root@A /]# grep bash /etc/passwd
[root@A /]# grep lisi /etc/passwd
[root@A /]# grep zhangsan /etc/passwd
[root@A /]# grep haha /etc/passwd
vim修改文本文件内容(文本编辑器)
三个模式:命令模式
、插入模式(输入模式)
、末行模式
vim当文件不存在时,会自动创建此文件
vim不能创建目录
[root@A /]# vim /opt/haxi.txt
命— i 键(接着写) 或者 o 键(另起一行) —》插入模式(Esc回到命令模式)
命令模式— 英文的冒号:—》末行模式(Esc回到命令模式)
末行模式 :wq #保存并退出
末行模式 :q! #强制不保存并退出
关机poweroff与重启reboot
[root@A /]# poweroff #关机
[root@A /]# shutdown #Linux 将在一分钟内关闭。“-h”选项明确表示关闭或关闭系统。
[root@A /]# shutdown -r #重启 Linux 的标准命令
[root@A /]# init 0 # 关机
[root@A /]# init 6 # 重启
五、Linux命令行基础
Linux命令
用来实现某一类功能的指令或程序
在Linux中执行大多数命令时,都要找到命令所对应的程序
]# hostname
]# which hostname #查询命令对应的程序
]# ls /usr/bin/hostname
]# which ifconfig #查询命令对应的程序
命令的执行依赖于解释器(默认解释器/bin/bash)
用户—>解释器—>内核—>硬件
绿色
:可以执行的程序
命令行完整格式:
命令字 [选项]… [参数1] [参数2]…
]# cat --help #查看命令帮助信息
]# cat -n /etc/shells #显示行号
]# cat -n /etc/passwd
]# cat -n /etc/redhat-release
]# cat -n /etc/fstab
]# ls -l /etc/passwd #长格式显示
]# ls -l /etc/fstab #显示详细属性
]# ls -l /etc/shells
]# ls -l /root/ #默认显示目录内容的详细属性
Tab键自动补全
可补齐命令字
、选项
、参数
、文件路径
、软件名
、服务名
]# if(tab) (tab) #列出以if开头的命令
]# ifco(tab)
]# cat /etc/re(tab) (tab)
]# cat /etc/red(tab)
]# ls /etc/sysconfig/network-scripts/
]# ls /et(tab)/sysco(tab)/netw(tab)- (tab)
快捷键
- Ctrl + c:结束正在运行的命令
- Esc+.或Alt+.:粘贴上一个命令的参数
[root@localhost ~]# ls /etc/hosts
[root@localhost ~]# ls -l Alt + .
[root@localhost ~]# cat Alt + .
[root@localhost ~]# cat -n Alt + .
- Ctrl + l:清空整个屏幕
- Ctrl + u:从光标处清空至行首
- Ctrl + w:往回删除一个单词(以空格界定)
光盘镜像文件中软件包
首先将光盘镜像文件,放入虚拟机的光驱设备
光盘镜像文件—》光驱设备—》访问点(目录)
[root@svr1 /]# ls /dev/sr0
/dev/sr0
[root@svr1 /]# ls /dev/cdrom
/dev/cdrom
[root@svr1 /]# ls -l /dev/cdrom
lrwxrwxrwx. 1 root root 3 5月 5 09:03 /dev/cdrom -> sr0
Windows显示光盘内容:
光盘---->光驱设备---->DVD驱动器(图标)
Linux显示光盘内容:
光盘---->光驱设备---->访问点(目录)
/dev/cdrom
六、mount挂载操作:让目录成为设备的访问点
命令行显示光盘内容
Windows:
光盘—>光驱设备—>CD驱动器(图标)
Linux:
光盘—>光驱设备—>访问点(目录)
真机Windows:将光盘镜像文件放入虚拟光驱设备中
真机Linux:将光盘镜像文件放入虚拟光驱设备中
查看Linux光驱设备
[root@localhost ~]# ls -l /dev/cdrom
[root@localhost ~]# ls /dev/sr0
挂载操作
- 使用mount命令
- 格式:mount 路径 挂载点目录
]# mkdir /dvd
]# ls /dvd
]# mount /dev/cdrom /dvd
mount: /dev/sr0 写保护,将以只读方式挂载
]# ls /dvd/
]# ls /dvd/P(tab)
卸载操作
]# umount /dvd
]# ls /dvd/
]# mkdir /mydvd
]# mount /dev/cdrom /mydvd
mount: /dev/sr0 写保护,将以只读方式挂载
]# ls /mydvd
注意事项:
1.卸载:当前所在的路径是挂载点目录
[root@localhost mydvd]# umount /mydvd
umount: /mydvd:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以
找到有关使用该设备的进程的有用信息)
2.挂载允许一个设备,挂载到不同的挂载点目录
3.挂载不允许一个挂载点目录,挂载多个设备
4.建议挂载点目录,最好自行创建
七、目录与文件管理
cd的命令使用
.
:当前目录
..
:父目录(上一层)
~
: 表示家目录
家目录
:专门存放用户个性化信息的目录
~user
:用户user的家目录
/root
:是Linux管理员的家目录
/home
:存放所有普通用户的家目录
]# cd ~root #去往root用户的家目录
]# pwd
]# cd ~lisi #去往lisi用户的家目录
]# pwd
]# useradd dc #创建用户dc
]# cd ~dc #去往dc用户的家目录
]# pwd
]# useradd tom #创建用户tom
]# cd ~tom #去往tom用户的家目录
]# pwd
ls — List
- 格式:ls [选项]… [目录或文件名]
- 常用命令选项
-l
:以长格式显示,显示详细信息
-h
:提供易读的容量单位(K、M等)
-d
:显示目录本身(而不是内容)的属性
[root@localhost /]# ls -ld /home
[root@localhost /]# ls -ld /root
[root@localhost /]# ls -ld /
[root@localhost /]# ls -l /etc/passwd
[root@localhost /]# ls -lh /etc/passwd
-A
:显示所有内容包含隐藏数据
-R
:递归显示内容
[root@localhost /]# ls -A /root
[root@localhost /]# touch /opt/.nsd.txt
[root@localhost /]# ls /opt/
[root@localhost /]# ls -A /opt/
[root@localhost /]# ls -R /opt/
使用通配符
- 针对不确定的文档名称,以特殊字符表示
*
:任意多个任意字符
[root@localhost /]# ls /root/a*
[root@localhost /]# ls /boot/vm*
[root@localhost /]# ls /etc/tab
[root@localhost /]# ls /etc/.conf
[root@localhost /]# ls /dev/tty*?
:单个字符
[root@localhost /]# ls /etc/??tab
[root@localhost /]# ls /dev/tty?
[root@localhost /]# ls /dev/tty??[a-z]
:多个字符或连续范围中的一个,若无则忽略{a,min,xy}
:多组不同的字符串,全匹配
]# ls /dev/tty[3-9]
]# ls /dev/tty[1-7]
]# ls /dev/tty{1,17,20}
]# ls /dev/tty{10,18,22,33}
]# ls /dev/tty{26,19,21,30,40}
别名的定义:简化复杂的命令
- 查看已设置的别名
- alias [别名名称]
- 定义新的别名
- alias 别名名称= ‘实际执行的命令行’
- 取消已设置的别名
- unalias [别名名称]
]# hostname
]# alias hn='hostname' #临时定义别名
]# hn
]# alias #查看系统中有哪些别名
]# unalias hn #删除hn别名
]# hn
bash: hn: 未找到命令...
]# alias myls='ls -l'
]# myls /etc/passwd
mkdir — Make Directory
格式:mkdir [/路径/]目录名…
-p
:连同父目录一并创建
[root@localhost /]# mkdir -p /opt/aa/bb/cc/dd
[root@localhost /]# ls -R /opt/aa
[root@localhost /]# mkdir -p /nsd04/test04
[root@localhost /]# ls -R /nsd04
rm 删除
- rm — Remove
- 格式:rm [选项]… 文件或目录…
- 常用命令选项
-r
、-f
:递归删除(含目录)、强制删除
]# ls /opt
]# rm -rf /opt/1.txt
]# ls /opt
]# rm -rf /opt/aa
]# ls /opt
mv — Move移动:源数据会消失
- 格式:mv 原文件… 目标路径
]# mkdir /opt/nsd01
]# touch /opt/1.txt
]# ls /opt/
]# mv /opt/1.txt /opt/nsd01
]# ls /opt/
]# ls /opt/nsd01/
重命名:路径不变的移动
]# ls /opt/
]# mv /opt/nsd01 /opt/abc
]# ls /opt/
]# mv /opt/abc/ /opt/student
]# ls /opt/
]# mv /opt/student /mnt/stu01
]# ls /mnt/
cp — Copy:源数据不会消失
- 格式:cp [选项]… 原文件… 目标路径
- 常用命令选项
- -r:递归,复制目录时必须有此选项
]# cp /etc/passwd /opt/
]# ls /opt/
]# cp -r /boot/ /opt/
]# ls /opt/
]# cp -r /home/ /opt/
]# ls /opt/
重名进行强制覆盖
]# \cp -r /boot/ /opt/ #本次操作临时取消别名
]# \cp -r /boot/ /opt/ #本次操作临时取消别名
\
: 临时取消别名
- 复制可以支持
重新命名
,目标路径下数据的名称
]# cp -r /home/ /opt/myhome
]# ls /opt/
]# cp /etc/redhat-release /opt/r.txt
]# ls /opt/
]# ls /opt/
]# cp -r /root/ /opt/myroot
]# ls /opt/
]# cp -r /root/ /opt/myroot
]# ls /opt/myroot/
- 复制可以支持两个以上的参数,永远把最后一个参数作为目标,其他的所有的参数都作为源数据
]# mkdir /nsd05
]# cp -r /home/ /etc/passwd /boot/ /etc/shells /nsd05
]# ls /nsd05
- 复制与一个点进行连用,将数据复制到当前路径下
]# cd /etc/sysconfig/network-scripts/
]# pwd
]# cp /etc/passwd .
]# ls
在文本文件中过滤,包含指定字符串的行
格式:grep [选项] ‘字符串’ 文本文件…
[root@svr1 /]# grep root /etc/passwd
[root@svr1 /]# grep bash /etc/passwd
[root@svr1 /]# grep lisi /etc/passwd
[root@svr1 /]# grep zhangsan /etc/passwd
- 常用命令选项
·-v·:取反匹配(不包含)
-i
:忽略大小写
]# grep root /etc/passwd
]# grep -v root /etc/passwd
]# grep ROOT /etc/passwd
]# grep -i ROOT /etc/passwd
^word
:以字符串word开头
word$
:以字符串word结尾
]# grep ^root /etc/passwd
]# grep ^bin /etc/passwd
]# grep root$ /etc/passwd
]# grep bash$ /etc/passwd
^$
表示空行
]# cat /etc/default/useradd
]# grep ^$ /etc/default/useradd #过滤空行
]# grep -v ^$ /etc/default/useradd #过滤不要空行的内容
八、归档及压缩
作用:1.减小占用空间大小 2.整合分散的数据
归档的含义
将许多零散的文件整理为一个文件
文件总的大小基本不变
压缩的含义
按某种算法减小文件所占用空间的大小
恢复时按对应的逆向算法解压
常见的压缩格式及命令工具:
.gz 🡪 gzip
.bz2 🡪 bzip2
.xz 🡪 xz
tar 集成备份工具
-c
:创建归档
-x
:释放归档
-f
:指定归档文件名称,必须在所有选项的最后
-z
、-j
、-J
:调用 .gz
、.bz2
、.xz
格式工具进行处理
-t
:显示归档中的文件清单
-C
:指定释放路径
tar 制作压缩包(tar打包)
格式:tar 选项 /路径/压缩包名字 /源数据…
]# tar -zcf /root/xixi.tar.gz /etc/passwd /home
]# ls /root/
]# tar -jcf /root/haha.tar.bz2 /etc/passwd /home
]# ls /root/
]#tar -Jcf /root/hehe.tar.xz /etc/passwd /home
]# ls /root/
tar 释放压缩包(tar解包)
tar 选项 /路径/压缩包名字 选项 /释放的位置
-x
:释放归档
-f
:指定归档文件名称,必须在所有选项的最后
-C
:指定释放路径
]# mkdir /nsd01
]# tar -xf /root/haha.tar.bz2 -C /nsd01
]# ls /nsd01
]# ls /nsd01/etc
]# ls /nsd01/home
创建一个备份包
使用 tar 工具完成以下备份任务:
创建一个名为 /root/backup.tar.bz2 的归档文件
其中包含 /usr/local 目录中的内容
tar 归档必须使用 bzip2 进行压缩
]# tar -jcf /root/backup.tar.bz2 /usr/local/
]# ls /root/
]# tar -tf /root/backup.tar.bz2 #查看tar包内容
九、管道(操作符号 | )
作用:将前面命令的输出,传递给后面命令,作为后面命令的参数
]# head -4 /etc/passwd | tail -1
]# head -8 /etc/passwd | tail -1
]# cat -n /etc/passwd | head -8 | tail -1
]# ifconfig | head -2
# 显示8~12行内容
]# head -12 /etc/passwd | tail -5
]# head -12 /etc/passwd | tail -5 | cat -n
]# cat -n /etc/passwd | head -12
]# cat -n /etc/passwd | head -12 | tail -5
]# cat -n /etc/passwd | head -12 | tail -5 > /opt/pa.txt
]# cat /opt/pa.txt
十、grep高级使用
作用:从文本文件内容中,过滤关键字符串
]# grep root /etc/passwd
]# grep -v root /etc/passwd #-v 取反匹配
]# grep ^root /etc/passwd #以root开头
]# grep bash$ /etc/passwd #以bash结尾
# ^$:表示空行
]# cat /etc/default/useradd
]# grep -v ^$ /etc/default/useradd
# Linux中大多数配置文件内容,以#开头的行为注释行显示配置文件有效信息(去除以#开头的注释行和去除空行)
]# grep -v ^# /etc/login.defs
]# grep -v ^# /etc/login.defs | grep -v ^$
]# grep -v ^# /etc/login.defs | grep -v ^$ > /opt/log.txt
]# cat /opt/log.txt
[root@svr1 ~]# ifconfig | grep inet # 过滤命令的输出
十一、find精确查找
格式:find [目录] [条件1]
常用条件表示:
-type
: 类型(f文本文件、d文件夹、l 链接)
-name
: “文档名称”
-size +|-
文件大小(k、M、G)
-user
用户名
-mtime
修改时间
-type
类型(f文本文件、d目录、l快捷方式)
[root@A /]# find /boot -type d
[root@A /]# find /opt -type d
[root@A /]# find /etc -type l
[root@A /]# find /boot -type f
-name “文档名称”
]# find /etc/ -name "passwd"
]# find /etc/ -name "*tab"
]# find /etc/ -name "*.conf"
]# find /etc/ -name "*tab" | wc -l
]# find /etc/ -name "*.conf" | wc -l
]# find /etc/ -name "*.conf" | cat -n
]# mkdir /mnt/nsd01
]# mkdir /mnt/nsd02
]# touch /mnt/nsd03.txt
]# find /mnt/ -name "nsd*"
]# find /mnt/ -name "nsd*" -type d
]# find /mnt/ -name "nsd*" -type f
-size +或- 文件大小(k、M、G)
]# find /boot/ -size +300k
]# find /boot/ -size +10M
]# find /boot/ -size +1M
]# find /boot/ -size +10M -size -50M
-user 用户名 (按照数据的所有者)
[root@A /]# useradd natasha #创建用户
[root@A /]# find /home/ -user natasha
[root@A /]# find / -user natasha
/proc:内存的数据,不占用硬盘空间
-mtime 修改时间 (所有的时间都是过去时间)
-mtime +90 #90天之前的数据
-mtime -90 #最近90天之内的数据
三个月之前的数据:
[root@A /]# find /root -mtime +90
[root@A /]# find /root -mtime -10
十二、find高级使用
处理find找到的数据,每查找的一个就传递一次
find [范围] [条件] -exec 处理命令 {} ;
-exec
:额外操作的开始
{}
:永远表示前面find查找的结果
\;
: 额外操作的结束
]# find /boot -size +10M
]# find /boot -size +10M -exec cp {} /mnt \;
]# ls /mnt/
]# mkdir /root/mytab
]# find /etc -name "*tab"
]# find /etc -name "*tab" -exec cp -r {} /root/mytab \;
]# ls /root/mytab/
查找并处理文件
利用find查找数据的所有者为 student并且必须是文件,把它们拷贝到 /root/findfiles/ 文件夹中
]# useradd student
]# mkdir /root/findfiles
]# find / -user student -type f
]# find / -user student -type f -exec cp {} /root/findfiles \;
]# ls -A /root/findfiles/
十三、vim编辑技巧
当文件不存在,则自动新建,vim不能新建目录
三个模式:命令模式 插入模式(输入模式) 末行模式
[root@localhost ~]# vim /opt/nsd.txt
命-------i键 或 o键---------》插入模式(按Esc键回到命令模式)
令模式------输入英文的冒号 “:”-----》末行模式(按Esc键回到命令模式)
末行模式 输入 :wq #保存并退出
末行模式 输入 :q! #强制不保存退出
命令模式操作
光标跳转
]# cp /etc/passwd /opt/pass.txt
]# vim /opt/pass.txt
复制/粘贴/删除/撤销
查找/撤销/保存
末行模式操作
:r /etc/filesystems 读入其他文件内容
]# echo 123456 > /opt/aa.txt
]# echo hahaxixi > /opt/cc.txt
]# vim /opt/cc.txt
末行模式下 :r /opt/aa.txt
末行模式下 :r /etc/passwd
末行模式下 :r /etc/shells
字符串替换
开关参数的控制
vim常见故障:删除交换文件
[root@svr1 ~]# echo hahaxixi > /opt/dd.txt
[root@svr1 ~]# vim /opt/dd.txt
[root@svr1 ~]# rm -rf /opt/.dd.txt.swp
[root@svr1 ~]# vim /opt/dd.txt
十四、Yum的使用
安装软件
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# rpm -q httpd
[root@localhost ~]# yum -y install bind-chroot
[root@localhost ~]# rpm -q bind-chroot
[root@localhost ~]# yum -y install sssd
[root@localhost ~]# rpm -q sssd
[root@localhost ~]# yum -y install gcc
[root@localhost ~]# rpm -q gcc
[root@localhost ~]# yum -y install xorg-x11-apps
[root@localhost ~]# rpm -q xorg-x11-apps
[root@localhost ~]# rpm -ql xorg-x11-apps | grep bin
[root@localhost ~]# xeyes
卸载软件
[root@localhost ~]# yum remove gcc
[root@localhost ~]# yum remove httpd
查询
[root@localhost ~]# yum list ftp #查询仓库是否有ftp软件
可安装的软件包 #表示当前系统没有安装该软件
ftp.x86_64 0.17-67.el7 nsd20
[root@localhost ~]# yum list httpd
[root@localhost ~]# yum search ftp #包含ftp就匹配
]# yum provides /usr/bin/hostname
]# yum provides /etc/passwd #仓库中那个软件包产生该文件
清空缓存
执行流程: yum命令--->/etc/yum.repos.d/*.repo--->baseurl=file:///mnt
[root@localhost ~]# yum clean all
[root@localhost ~]# yum repolist
[root@localhost ~]# yum repolist
删除/usr/bin/zip程序,然后通过yum工具进行恢复
[root@svr1 ~]# rm -rf /usr/bin/zip
[root@svr1 ~]# ls /usr/bin/zip
ls: 无法访问/usr/bin/zip: 没有那个文件或目录
[root@svr1 ~]#
[root@svr1 ~]# yum provides /usr/bin/zip #查询仓库中那个软件产生了此程序
[root@svr1 ~]# yum -y reinstall zip #覆盖安装
[root@svr1 ~]# ls /usr/bin/zip
/usr/bin/zip
十五、命令补充
方式一:命令 --help
[root@localhost ~]# cat --help
方式二:man 命令
[root@localhost ~]# man cat #按q退出
[root@localhost ~]# man passwd #显示passwd命令帮助
[root@localhost ~]# man 5 passwd # 数字5表示帮助的类型,表示配置文件类型
十六、历史命令
管理/调用曾经执行过的命令
history:查看历史命令列表
history -c:清空历史命令
!n
:执行命令历史中的第n条命令
!str
:执行最近一次以str开头的历史命令
[root@svr7 ~]# vim /etc/profile
HISTSIZE=1000 #默认记录1000条
[root@localhost ~]# history #显示历史命令列表
[root@localhost ~]# history -c #清空历史命令
[root@localhost ~]# history
[root@localhost ~]# cat /etc/redhat-release
[root@localhost ~]# ls /root
[root@localhost ~]# history
[root@localhost ~]# !cat #指定最近一条以cat开头的历史命令
[root@localhost ~]# !ls #指定最近一条以ls开头的历史命令
十七、date,查看/调整系统日期时间
date +%F、date +%R
date +"%Y-%m-%d %H:%M:%S"
date -s "yyyy-mm-dd HH:MM:SS"
]# date
]# date -s "2008-9-6 11:17:11" #修改系统时间
]# date
]# date -s "2022-5-7 16:15:11"
]# date
[root@localhost ~]# date +%Y #显示年
[root@localhost ~]# date +%m #显示月
[root@localhost ~]# date +%d #显示日期
[root@localhost ~]# date +%H #显示时
[root@localhost ~]# date +%M #显示分
[root@localhost ~]# date +%S #显示秒
[root@localhost ~]# date +%F #显示年-月-日
[root@localhost ~]# date +%R #显示时:分
十八、制作链接文件(制作快捷方式)
格式:ln -s /路径/源数据 /路径/快捷方式的名称 #软链接
]# ls /etc/sysconfig/network-scripts/ifcfg-lo
]# ln -s /etc/sysconfig/network-scripts/ifcfg-lo /mylo
]# ls /
]# ls -l /mylo
lrwxrwxrwx. 1 root root 39 5月 7 16:25 /mylo -> /etc/sysconfig/network-scripts/ifcfg-lo
]# ln -s /etc/sysconfig/network-scripts/ /ns
]# ls /
]# ls -l /ns #查看快捷方式的信息
]# touch /ns/haha.txt
]# touch /ns/maohehaozi.txt
]# touch /ns/shukehebeita.txt
]# ls /etc/sysconfig/network-scripts
软链接优势:可以针对目录与文件制作快捷方式,支持跨分区
软链接缺点:源数据消失,快捷方式失效
[root@svr1 ~]# rm -rf /opt/*
[root@svr1 ~]# ls /opt/
[root@svr1 ~]# echo 123456 > /opt/A.txt
[root@svr1 ~]# ln -s /opt/A.txt /opt/B.txt
[root@svr1 ~]# ls /opt/
A.txt B.txt
[root@svr1 ~]# rm -rf /opt/A.txt
[root@svr1 ~]# ls /opt/
B.txt
[root@svr1 ~]#
格式:ln /路径/源数据 /路径/快捷方式的名称 #硬链接
硬链接优势:源数据消失,快捷方式仍然有效
硬链接缺点:只能针对文件制作快捷方式,不支持支持跨分区
[root@localhost ~]# rm -rf /opt/*
[root@localhost ~]# echo 123 > /opt/A.txt
[root@localhost ~]# ln -s /opt/A.txt /opt/B.txt #软链接
[root@localhost ~]# ls /opt/
[root@localhost ~]# ln /opt/A.txt /opt/C.txt #硬链接
[root@localhost ~]# ls /opt/
[root@localhost ~]# cat /opt/B.txt
[root@localhost ~]# cat /opt/C.txt
[root@localhost ~]# rm -rf /opt/A.txt
[root@localhost ~]# ls /opt/
[root@localhost ~]# cat /opt/B.txt #软链接失效
cat: /opt/B.txt: 没有那个文件或目录
[root@localhost ~]# cat /opt/C.txt #硬链接仍然有效
十九、zip归档工具,跨平台(Windows与Linux)
归档+压缩操作: zip [-r] 备份文件.zip 被归档的文档…
-r
:被归档的数据有目录,必须加上此选项
]# zip -r /opt/abc.zip /etc/passwd /home
]# ls /opt
/
-d
: 释放归档+解压操作
unzip 备份文件.zip [-d 目标文件夹]
]# unzip -l /root/abc.zip #查看压缩包的内容
]# mkdir /nsd20
]# unzip /opt/abc.zip -d /nsd20
]# ls /nsd20
]# ls /nsd20/etc/
]# ls /nsd20/home/
二十、构建本的Yum仓库
[root@localhost ~]# mkdir /nsd20
[root@localhost ~]# ls /nsd20
[root@localhost ~]# mount /dev/cdrom /nsd20
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# ls /nsd20
[root@localhost ~]# rm -rf /etc/yum.repos.d/*
[root@localhost ~]# vim /etc/yum.repos.d/my.repo
[centos]
name=CentOS # 名字随意起的,建议有标识作用
baseurl=file:///nsd20
enabled=1
gpgcheck=0
[root@localhost ~]# yum -y install xorg-x11-apps
[root@localhost ~]# xeyes
二十一、用户管理简介
用户账户
作用: 1.可以登陆操作系统 2.不同的用户具备不同的权限
唯一标识:UID(编号从0开始的编号,默认最大60000)
zhangsan(UID 1200)
管理员root的UID:永远为0
普通用户的UID:默认从1000开始
组账户
作用: 方便管理用户
唯一标识:GID(编号从0开始的编号,默认最大60000)
sg(1500)
原则:Linux一个用户必须至少属于一个组
组账户的分类:
基本组:系统创建与用户同名
附加组(从属组):由管理员创建,由管理员进行加入
]# useradd zhangsan
组: zhangsan
组:sg xs mn haha xixi student
本地账户的数据文件
/etc/passwd、/etc/shadow
/etc/group、/etc/gshadow
/etc/passwd:存放用户基本信息配置文件
[root@localhost ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器
用户账号创建
命令useradd
格式:useradd [选项]… 用户名
常用命令选项
-u
:指定 用户UID
-d
:指定宿主目录(家目录),缺省为 /home/用户名
-G
:指定所属的附加组
-s
:指定用户的登录解释器
-u
:指定 UID 编号
[root@localhost ~]# useradd nsd01
[root@localhost ~]# ls /home/ #查看家目录的产生
[root@localhost ~]# grep nsd01 /etc/passwd #查看nsd01信息
[root@localhost ~]# id nsd01 #查看nsd01用户基本信息
[root@localhost ~]# id gaga
id: gaga: no such user #无此用户
[root@localhost ~]# useradd -u 1500 nsd02 #指定UID创建用户
[root@localhost ~]# id nsd02 #查看nsd02用户基本信息
[root@localhost ~]# grep nsd /etc/passwd #查看用户信息
[root@localhost ~]# useradd nsd03
[root@localhost ~]# grep nsd /etc/passwd
[root@localhost ~]# id nsd03
-d
:指定宿主目录(家目录),缺省为 /home/用户名
[root@localhost ~]# useradd -d /opt/nsd04 nsd04
[root@localhost ~]# grep nsd04 /etc/passwd
[root@localhost ~]# ls /opt/
[root@localhost ~]# useradd -d /opt/haha05 nsd05
[root@localhost ~]# grep nsd05 /etc/passwd
[root@localhost ~]# ls /opt/
-G
:指定所属的附加组
[root@localhost ~]# groupadd stugrp #单独创建stugrp组
[root@localhost ~]# useradd -G stugrp nsd06
[root@localhost ~]# id nsd06
uid=1504(nsd06) gid=1505(nsd06) 组=1505(nsd06),1504(stugrp)
[root@localhost ~]# useradd -G stugrp nsd07
[root@localhost ~]# id nsd07
-s
:指定用户的登录解释器
shell:壳,解释器
用户---->解释器---->内核---->硬件
/sbin/nologin:禁止用户登录操作系统
[root@localhost ~]# useradd -s /sbin/nologin nsd10
[root@localhost ~]# grep nsd10 /etc/passwd
[root@localhost ~]# useradd -s /sbin/nologin nsd11
[root@localhost ~]# grep nsd11 /etc/passwd
usermod命令
格式:usermod [选项]… 用户名
常用命令选项
-l
:更改用户帐号的登录名称
-u
:用户id
-d
:家目录路径
-s
:登录解释器
-G
:附加组 //重置附加组
]# useradd nsd13
]# id nsd13
]# grep nsd13 /etc/passwd
]# usermod -l stu13 nsd13 #修改用户名字
]# id stu13
]# usermod -u 1600 stu13 #修改用户的UID
]# id stu13
]# usermod -s /sbin/nologin stu13#修改用户的解释器程序
]# grep stu13 /etc/passwd
-d
:家目录路径(不会自动创建家目录)
[root@localhost ~]# useradd nsd15
[root@localhost ~]# grep nsd15 /etc/passwd
nsd15:x:1601:1601::/home/nsd15:/bin/bash
[root@localhost ~]# ls /home/
[root@localhost ~]# usermod -d /etc/abc nsd15
[root@localhost ~]# grep nsd15 /etc/passwd
nsd15:x:1601:1601::/etc/abc:/bin/bash
[root@localhost ~]# ls /etc/abc
ls: 无法访问/etc/abc: 没有那个文件或目录
-G
:修改用户的附加组 #重置附加组
[root@localhost ~]# useradd nsd16
[root@localhost ~]# id nsd16
uid=1602(nsd16) gid=1602(nsd16) 组=1602(nsd16)
[root@localhost ~]# usermod -G stugrp nsd16
[root@localhost ~]# id nsd16
uid=1602(nsd16) gid=1602(nsd16) 组=1602(nsd16),1504(stugrp)
[root@localhost ~]# groupadd tmooc #创建组
[root@localhost ~]# usermod -G tmooc nsd16
[root@localhost ~]# id nsd16
uid=1602(nsd16) gid=1602(nsd16) 组=1602(nsd16),1603(tmooc)
设置密码passwd命令
格式:passwd [选项]… 用户名
[root@localhost ~]# passwd nsd01 #交互式设置
更改用户 nsd01 的密码 。
新的 密码: #输入新密码
无效的密码: 密码少于 8 个字符
重新输入新的 密码: #重新输入新密码
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# su - nsd01 #临时切换用户身份
[nsd01@localhost ~]$ passwd
更改用户 nsd01 的密码 。
为 nsd01 更改 STRESS 密码。
(当前)UNIX 密码: #输入旧密码
新的 密码: #输入新密码
重新输入新的 密码: #重新输入新密码
passwd:所有的身份验证令牌已经成功更新。
[nsd01@localhost ~]$ exit #退出。回到root用户身份
passwd命令,支持非交互式设置密码
--stdin:从标准输入(比如管道)取密码
]# echo 123 | passwd --stdin nsd01
]# echo 123456 | passwd --stdin nsd01
]# echo redhat | passwd --stdin nsd01
/etc/shadow,保存密码字串/有效期等信息
每个用户记录一行,以:分割为9个字段
[root@localhost ~]# grep nsd01 /etc/shadow
nsd01:$6$NVe937Nd$B0n94XrpQ.LipQHTpYh0iV/M4jCLdccfHxzRLprdxDzwk8WDDh/TzdTfh8lA9y9WKJ.8Ls/l5.w/1W.nV6CFX/:18481:0:99999:7:::
上一次修改密码的时间:自1970-1-1到达上一次修改密码的时间,所经历的天数
字段1:用户帐号的名称
字段2:加密后的密码字符串
字段3:上次修改密码的时间
字段4:密码的最短有效天数,默认0
字段5:密码的最长有效天数,默认99999
字段6:密码过期前的警告天数,默认7
字段7:密码过期后多少天禁用此用户账号
字段8:帐号失效时间,默认值为空
字段9:保留字段(未使用)
/etc/shadow,保存密码字串/有效期等信息
强制用户初次登录时修改密码
[root@svr1 ~]# useradd harry
[root@svr1 ~]# echo 123 | passwd --stdin harry
[root@localhost ~]# vim /etc/shadow
………
harry:$6$Y7P/HqvZ$roWXwACsX.pUY9GUKLQMRVHjygMWmiN8m45jYY3Tt.tPFDWVxJIdE7gyKHWo1/UKQC7ocEke5Uu8gKN8jydkp1:0:0:99999:7:::
上一次修改密码的时间:自1970-1-1到达上一次修改密码的时间,所经历的天数,修改成0
强制保存并退出
用户初始配置文件
主要的初始配置文件
~/.bashrc:每次进入新的Bash环境时执行(开启新的终端)
[root@localhost ~]# vim /root/.bashrc #定义永久别名
……
alias hn='hostname'
……
开启新的终端进行测试:
[root@localhost ~]# hn
/etc/bashrc:全局配置文件,影响全体用户 (开启新的终端)
[root@localhost ~]# vim /etc/bashrc
…….
alias xixi='echo xixihaha'
…….
[root@localhost ~]# useradd nsd20
[root@localhost ~]# su - nsd20 #相当于开启新的终端
[nsd20@localhost ~]$ xixi
xixihaha
[nsd20@localhost ~]$ exit
登出
[root@localhost ~]#
删除用户userdel命令
格式:userdel [-r] 用户名
添加 -r 选项,宿主目录/用户邮件也一并删除
[root@localhost ~]# userdel -r nsd01 #连同家目录一并删除
[root@localhost ~]# userdel nsd02 #不删除家目录,只删除用户信息
总结:Linux系统执行useradd命令,会完成那些操作?
1.会在/etc/passwd增加一行信息
2.会在/etc/shadow增加一行信息
3.会在/home新增用户家目录
4.会在/var/spool/mail增加用户邮件文件
5.会在/etc/group增加一行组信息
6.会在/etc/gshadow增加一行组的管理信息
总结:Linux系统执行userdel -r命令,会完成那些操作?
1.会在/etc/passwd删除一行信息
2.会在/etc/shadow删除一行信息
3.会在/home删除用户家目录
4.会在/var/spool/mail删除用户邮件文件
5.会在/etc/group删除一行组信息
6.会在/etc/gshadow删除一行组的管理信息
组账户管理
/etc/group,保存组帐号的基本信息
每个组记录一行,以:分割为4个字段
[root@localhost ~]# grep stugrp /etc/group
stugrp:x:1504:nsd06
组名:组密码占位符:组的GID:组成员列表
[root@localhost ~]# groupadd tarena #新建一个组
[root@localhost ~]# grep tarena /etc/group #查看组信息
tarena:x:1607:
[root@localhost ~]# useradd kaka
[root@localhost ~]# useradd nb
[root@localhost ~]# useradd jack
[root@localhost ~]# useradd kenji
gpasswd命令
格式:gpasswd [选项]… 组名
常用命令选项
-a
:添加组成员,每次只能加一个
-d
: 删除组成员,每次只能删一个
-M
:定义组成员用户列表,可设置多个
]# gpasswd -a kaka tarena #添加用户kaka到tarena组
]# grep tarena /etc/group #查看组信息
]# id kaka
]# gpasswd -a nb tarena #添加用户nb到tarena组
]# grep tarena /etc/group
]# gpasswd -M ‘jack,kenji’ tarena #定义组成员列表
]# grep tarena /etc/group
]# gpasswd -a nb tarena
]# grep tarena /etc/group
]# gpasswd -d nb tarena #将nb用户从tarena组中删除
]# grep tarena /etc/group
]# gpasswd -M ‘’ tarena #删除组中所有成员
]# grep tarena /etc/group
-A
:定义组管理员列表
[root@localhost ~]# su - nb
[nb@localhost ~]$ gpasswd -a kaka tarena
gpasswd:没有权限。
[nb@localhost ~]$ exit
[root@localhost ~]# gpasswd -A nb tarena #设置组管理员
[root@localhost ~]# su - nb
[nb@localhost ~]$ gpasswd -a kaka tarena
正在将用户“kaka”加入到“tarena”组中
[nb@localhost ~]$ exit
[root@localhost ~]#
/etc/gshadow:组的管理信息配置文件
[root@localhost ~]# grep tarena /etc/gshadow
tarena:!:nb:
组名:密码加密字符串:组的管理员列表:组成员列表
[root@localhost ~]# gpasswd -A 'nb,kenji' tarena #设置多个组管理员
[root@localhost ~]# gpasswd -A '' tarena #删除所有的组管理员
总结:用户与组重要的配置文件
/etc/passwd
:用户基本信息配置文件
/etc/shadow
:用户密码信息配置文件
/etc/group
:组基本信息配置文件
/etc/gshadow
:组管理信息配置文件
删除组账号:删除组的时候,不可以删除基本组
[root@localhost ~]# groupdel tarena
[root@localhost ~]# groupdel tmooc
[root@localhost ~]# grep tmooc /etc/group
[root@localhost ~]# grep tarena /etc/group
二十二、计划任务
用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务
软件包:cronie、crontabs
系统服务:crond
日志文件:/var/log/cron
使用 crontab 命令
编辑:crontab -e
[-u 用户名]
查看:crontab -l
[-u 用户名]
清除:crontab -r
[-u 用户名]
计划任务书写格式
分 时 日 月 周 任务命令行(绝对路径)
30 8 * * * #每天早上8:30 执行一次
30 23 * * * #每天晚上23:30 执行一次
30 23 * * 5 #每周的周五23:30 执行一次
30 23 * * 1-5 #每周的周一至周五23:30 执行一次
30 23 * * 1,3,6 #每周的周一周三周六23:30 执行一次
30 23 1 * 1 #每月的1号或每周一晚上23:30 执行一次
-
* * * * #每分钟运行一次
*/5 * * * * #每隔5分钟运行一次
3 */2 * * * #每隔2小时运行一次
*
:匹配范围内任意时间
,
:分隔多个不连续的时间点
-
:指定连续时间范围
/n
:指定时间频率,每n …
案例:
每分钟记录当前的系统时间,写入/opt/time.txt
[root@localhost ~]# date
[root@localhost ~]# date >> /opt/time.txt
[root@localhost ~]# cat /opt/time.txt
[root@localhost ~]# which date #查看date命令对应的程序
[root@localhost ~]# crontab -e #编写计划任务
* * * * * /usr/bin/date >> /opt/time.txt
[root@localhost ~]# crontab -l #查看计划任务内容
* * * * * /usr/bin/date >> /opt/time.txt
[root@localhost ~]# cat /opt/time.txt
[root@svr1 ~]# ls /var/spool/cron/
root
[root@svr1 ~]# cat /var/spool/cron/root #记录root用户计划任务
* * * * * /usr/bin/date >> /opt/time.txt
二十三、重定向(重新定向命令的输出)
将前面命令的输出,作为内容,写入到后面的文件
>
: 覆盖重定向
>>
:追加重定向
[root@A /]# head -5 /etc/passwd > /opt/p.txt
[root@A /]# cat /opt/p.txt
[root@A /]# hostname
[root@A /]# hostname >> /opt/p.txt
[root@A /]# cat /opt/p.txt
]# echo 123456
]# echo 123456 > /opt/p.txt
]# cat /opt/p.txt
]# cat /etc/hostname
]# echo nb.tedu.cn > /etc/hostname
]# cat /etc/hostname
]# > /opt/p3.txt #清空文件内容
]# cat /opt/p3.txt
二十四、du,统计文件的占用空间
-s
:只统计每个参数所占用的总空间大小
-h
:提供易读容量单位(K、M等)
[root@localhost ~]# du -sh /root
[root@localhost ~]# du -sh /etc
[root@localhost ~]# du -sh /boot
[root@localhost ~]# du -sh /