一.linux系统概述
二.Vim
Linux内置vi文本编辑器
1.模式
-
正常模式
- 默认的一般模式,使用[上下左右]移动光标,[删除字符]或[删除整行],[复制/粘贴]
-
插入模式
- 按下
i,I,o,O,a,A,r,R进入编辑模式
- 按下
-
命令行模式
- 输入
esc+:进入,提供读取、存盘、替换、离开等操作
- 输入
2.快捷键
| 功能 | 快捷键 | 扩展 |
|---|---|---|
| 赋值 | yy | 拷贝当前行向下5行:5yy |
| 粘贴 | p | |
| 删除 | dd | 删除当前行向下5行:5dd |
| 查找 | /关键字 | 回车查找,n移动到下一个 |
| 设置行号 | :set nu / :set nonu | |
| 定位 | [G]末行 [gg]首行 | |
| 撤销 | u | 一般模式下 |
| 移动光标 | 行号 shift + g 或 :行号 | 一般模式下 |
-
命令行下
wq保存退出q退出!q强制退出,不保存
三.系统操作
1.关机/重启
shutdown -h now 立刻进行关机
shutdown -h 1 1分钟你后关机
shutdown -r now 立刻重启
halt 关机
reboot 重启
sync 内存数据同步到磁盘
- 关机重启前先执行sync命令
2.用户登录/注销
su -用户名 : 切换身份
logout : 注销用户 -只能在运行级别3运行
四.用户管理
1.用户
-
添加用户
useradd 用户名- 会在/home下创建该用户家目录
useradd -d指定目录 新的用户名 :创建指定目录下的新用户
-
修改密码
passwd 用户名(不指定是给当前用户修改密码)
-
删除用户
userdel 用户名:仅删除用户userdel -r 用户名:删除用户及其家目录
-
查询用户信息
id 用户名who am i查询当前用户信息(登录的用户)
-
修改
usermod -d 目录名 用户名改变该用户登陆的初始目录 (用户需要有进入新目录的权限)
-
查看系统所包含的用户
cat etc/passwd
2.组
查看系统所包含的用户
cat etc/group
2.1 组管理
类似于角色,系统对有共性/权限的多个用户进行统一的管理
-
新增/删除组
groupadd 组名:新增groupdel 组名:删除
-
增加用户上组
useradd -g 用户组 用户名usermod -g 用户组 用户名
相关文件
-
/etc/passwd 文件
用户的配置文件,记录用户的各种信息:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell -
/etc/shadow文件
口令的配置文件
登录名:加密口令:最后一次修改时间:最小时间间隔:最大的同间隔:警告时间:不活动时间:失效时间:标志 -
/etc/group文件
组配置文件,记录组信息
组名:口令:组标识号:组内用户列表
linux每个用户必须属于一个组。每个文件都有所有者、所在组、其他组的概念
2.2 文件所有者
查看
ls -ahl
修改
chown [角色] [文件]
2.3 文件所在组
查看
ls -ahl
修改
chgrp [组名] [文件名]
2.4 文件其他组
除文件所有者和所在组的用户外,系统的其他用户都是文件的其他组
3.权限
3.1 格式说明
-rw-r--r-- 1 root root 0 May 9 20:58 hello.txt
权限 文件数 所有者 所在组 大小 修改日期 文件名
0-9位说明:
-
0位表示文件类型:
d - l c b- d :目录
- l :链接
- c :字符设备文件、鼠标、键盘
- b :块设备(硬盘)
- —:普通文件
-
1-3位表示文件所有者对文件的权限(User)
-
4-6位表示所属组对文件的权限(Group)
-
6-9位表示其他用户对文件的权限(Other)
3.2 RWX权限
作用到文件:
[ r ] 表示可读(read):可以读取查看
[ w ] 表示可写(write):可以修改,但不代表可以删除,只有对文件所在目录有写权限才能删除该文件
[ x ] 表示可执行(execute):可以被执行
作用到目录:
[ r ] 表示可读(read):可以读取查看
[ w ] 表示可写(write):可以修改,对目录内创建+删除+重命名目录
[ x ] 表示可执行(execute):可以进入该目录
3.3 权限修改
chmod 指令
可以修改文件或目录权限
变更权限
使用 + - = 变更权限 。u所有者,g所有组,o其他组,a所有人
chmod u=rwx,g=rx,o=x 文件/目录名 定义权限
chmod o+w 文件/目录名 给o添加w权限
chmod a-x 文件/目录名 给所有人取消x权限
也可以采用数字变更权限
rwx = 111
chmod 751 文件目录名 对文件赋值权限
修改文件所有者
chown [角色] [文件]
chown [角色:组] [文件]
chown -R [角色:组] [文件] 递归生效
五.实用指令
1.运行级别
0:关机
1:单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未用保留给用户
5:图形界面
6∶系统重启
通过 init [0123456] 切换不同的运行级别
-
查看当前运行级别
systemctl get-default -
设置默认运行级别
systemctl set-default TARGRT.target
multi-user.target : 3
graphical.target : 5
找回root密码:(centos7)
1.开机按e
2.找到linux16行,后面跟上 init=/bin/sh 输入ctrl+X 进入单用户模式
3.输入mount -o remount,rw / 回车
4.输入passwd 回车
5.输入两次密码
6.输入 touch /.autorelabel 回车
7.输入 exec /sbin/init 回车,等待,系统重启修改生效
2.帮助指令
-
man获取帮助信息
man [命令或配置文件] -
help指令
help 命令获取shell内置命令帮助信息
3.文件目录类
-
pwd指令
pwd显示当前工作目录的绝对路径 -
ls 指令
ls [选项] [目录或是文件]-a:显示当前目录所有的文件和目录,包括隐藏的
-l:以列表的方式显示信息
-h : 人性化查看
-
cd 指令
cd [参数] 切换到指定目录
cd ~ 或 cd :切换到家目录
cd .. 回到上一级目录
-
mkdir 指令
mkdir [选项] 要创建的目录用于创建目录-p : 创建多级目录
mkdir dog
mkdir -p animal/tiger
-
rmdir指令
rmdir [选项] 要删除的空目录用于删除目录默认目录下有内容是无法删除的
当删除非空目录采用
rm -rf 删除目录 -
touch指令
touch [文件名称] 创建空文件
-
cp 指令
cp [选项] source dest用于拷贝文件到指定目录-r : 递归复制整个文件夹
cp hello.txt bbb/
强制覆盖不提示的方法:
\cp -
rm 指令
rm [选项] 要删除的文件或目录移除文件或目录-r :递归删除
-f :强制删除不提示
-
mv 指令
mv oldNameFile newNameFile文件重命名mv /dir/file /targetDir移动文件 -
cat 指令
cat [选项] 文件查看文件内容-n :显示行号
cat [选项] 文件 | more
-
more 指令
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键,详见操作说明
more 文件查看文件
-
less 指令
功能类似more,更强大,显示大文件效率更高(动态加载)
less 文件查看文件
-
echo 指令
echo [选项] [输出内容]输出内容到控制台echo $PATH
-
head 指令
head 文件查看文件头10行内容head -n 5文件查看文件头5行内容 -
tail 指令
tail 文件查看文件尾10行内容tail -n 5文件查看文件尾5行内容tail -f 文件实时跟踪文档的所有更新 -
> 和 >> 指令
输出重定向 和 追加
ls -l > 文件列表的内容写入到文件中(覆盖写)ls -al >> 文件列表的内容写入到文件中(追加写)cat 文件1 > 文件2文件1内容覆盖到文件2echo ‘内容’ >> 文件追加内容 -
ln 指令
ln -s [原文件或目录] [软连接名]给源文件创建一个软链接 -
history 指令
history查看执行过的历史命令history 10查看最近执行过的10条历史命令!5执行曾经执行过的第5条指令
4.时间日期类
-
date 指令
-
显示
date显示当前时间date + %Y显示当前年份date + %m显示当前月份date + %d显示当前天数date "+%Y-%m-%d %H:%M:%S"显示年月日时分秒 -
设置
date -s 字符串时间设置系统当前时间
-
-
cal 指令
cal [选项]显示日历信息2020 :显示2020年的所有日历
5.搜索查找类
-
find 指令
find [搜索范围][选项]从指定目录向下递归遍历其各个子目录,将满足条件的文件或目录显示在终端
> find /home -name *.txt
>
> find / -size 200M (+n大于 -n小于 n等于,单位k,M,G)
-
locate 指令
locate 搜索文件快速定位文件路径locate可以快速定位文件路径,无需遍历整个文件系统,但需要提前创建数据库
第一次执行
updatedb创建locate数据库 -
which 指令
which 指令查看某个指令在某个路径下 -
grep 指令 和 管道符号 |
grep [选项] 查找内容 源文件将前一个命令的结果输出传递给后面的命令处理,常常和管道符号一起用-n : 显示匹配行及行号
-i :忽略大小写
6.压缩解压类
-
gzip/gunzip 指令
gzip 文件压缩文件,只能将文件压缩为.gz文件gunzip 文件.gz解压文件 -
zip/unzip 指令
zip [选项] 文件(夹)压缩文件和目录-r : 递归压缩
unzip [选项] 文件.gz解压文件-d<目录> 解压到指定目录存放
-
tar 指令
tar [选项] xxx.tar.gz 打包的内容打包目录
> tar -zcvf target.tar.gz /a.txt /b.tx
六.任务调度 crond
1.crond 任务调度
系统在某个时间执行特定的命令或程序(反复执行)
crontab [选项]
-e : 编辑crontab定时任务
-I : 查询crontab任务
-r : 删除当前用户所有的crontab任务
service crond restart [重启任务调度]
*/1 **** [命令]
2.at 定时任务
只执行一次的定时任务
at的守护进程atd是以后台模式运行,不断检查作业队列。默认状态下每60秒检查一次,当有作业时检查作业运行时间,如果时间匹配则执行此作业,执行结束后将不再执行该作业。
注:保证atd进程运行 ps -ef | grep atd
at 指令
at [选项] [时间] 增加at作业
ctrl + D 两次结束at命令的输入
atq 查询作业
atrm n 删除编号为n的作业
at 5pm + 2 days
七.空间管理
1.目录结构
2.磁盘分区,挂载
1.硬盘:linux硬盘分为IDE硬盘和SCSI硬盘
lsblk [-f] 查看设备挂载情况
hd x :ide硬盘
sd x:scsi硬盘
vd x:云上普大赛固态硬盘
2.硬盘分区:
1.数据安全:
主要方面:只用一个分区,若遇到系统需要重装或者分区需要进行格式化等,原有的重要文件无法在本硬盘保留,而若提前进行了合理分区,则用户数据不会收到影响
次要方面,我们知道,同等外部条件下,读取越频繁,磁盘越容易受损,我们把读写频繁的目录挂载到一个单独的分区,可以把磁盘的损伤控制在一个集中的区域。
2.效率(针对目前常用的机械硬盘,固态硬盘方面还不太了解):
主要方面:分区将数据集中在某个磁柱的区段,当有数据要读取自该分区时, 硬盘只会搜寻相应区段,有助于数据读取的速度与效能的提升!
fdisk /dev/sda 分区命令
m 显示命令列表
p显示磁盘分区
n新增分区
d删除分区
q退出不生效
w写入并退出
3.格式化磁盘:
mkfs -t ext4 /dev/sdb1 格式化分区为ext4类型
4.挂载(mount) :将硬盘以文件形式映射到文件系统中
mount /dev/sdb1 dir 挂载(用命令行挂载 重启会失效)
卸载重新挂载:修改
umount /dev/sdb1 或 dir 卸载
/etc/fstab 挂载点配置文件
永久挂载
修改/etc/fstab 文件 mount -a 生效
5.磁盘情况查询
df -h 查询整体磁盘使用情况
使用率到80%以上需要注意
du -h /目录 查询指定目录磁盘占有情况
-s 指定目录占用大小汇总
-a 含文件
-h 带单位
--max-depth=1 子目录深度
-c 列出明细,增加汇总值
统计文件数目
ls -l /dir | grep "^-" | wc -l 统计dir文件夹下的文件个数
ls -l /dir | grep "^d" | wc -l 统计dir文件夹下的目录个数
ls -lR /dir | grep "^-" | wc -l 递归统计dir文件夹下的文件个数
ls -lR /dir | grep "^d" | wc -l 递归统计dir文件夹下的目录个数
tree /dir 树状显示目录个数
八.网络配置
ifconfig 查看网络配置
ping 目的主机 测试网络连接是否通畅
cat /etc/sysconfig/network-scripts/ifcfg-eth0 查看网络配置
service network restart 重启网络服务
设置主机名
hostname 查看主机名
/etc/hostname 配置主机名,重启成效
在windows下:C:\Windows\System32\drivers\etc\hosts 下指定 192.168.1.xxx 主机名
在linux下:/etc/hosts 下指定192.168.1.xxx 主机名
windows下dns相关
ipconfig /displaydnsdns域名解析缓存
ipconfig /flushdns手动清理dns缓存
九.进程管理
1.进程管理指令
进程分为前台和后台,每个进程拥有一个PID
ps 指令
ps -a 显示当前终端所有进程信息
ps -u 以用户的格式显示进程信息
ps -x 显示后台进程运行的参数
ps -e 显示所有进程
ps -f 显示全格式
kill 指令
kill [选项] 进程号 杀死进程
-9 :强迫进程立即停止
killall 进程名称 通过进程名终止进程,子进程也会杀死
pstree 指令
pstree [选项] 查看进程树
-p 显示进程pid
-u 显示所属用户
2.动态监控进程
top指令
top类似于ps,用来显示正在执行的进程,但可以执行一段时间可以更新正在运行的进程(任务管理器)
top [选项]
-d 秒数 : 指定每隔几秒刷新。默认是3
-i :不显示闲置或者僵死进程
-p : 通过指定监控进程Id来监控某个进程
交互操作:
P :以CPU使用率排序
M:以内存使用率排序
N:以PID排序
u 用户:监控特定用户
k pid:杀死进程
q:退出
3.监控网络状态
netstat 指令
netstat [选项] 查看系统网络情况
-an 按一定顺序排列输出
-p 显示哪个进程在调用
ping指令
ping address
十.服务管理
服务本质就是进程,是运行在后台的,通常监听某个端口,等待其他程序的请求,又称为守护进程
1.service 相关指令
service 服务名 [start| stop |restart |reload | status]
systemctl centos7.0后很多服务采用该指令管理
/etc/init.d service管理的服务文件
2.服务运行级别
0:关机
1:单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未用保留给用户
5:图形界面
6∶系统重启
开机流程:
系统运行级别
通过 init [0123456] 切换不同的运行级别
-
查看当前运行级别
systemctl get-default -
设置默认运行级别
systemctl set-default TARGRT.target
multi-user.
target : 3
graphical.target : 5
chkconfig指令
给服务各个运行级别设置自 启动/关闭
chkconfig --list [|grep xxx] 查看服务
chkconfig 服务名 --list
chkconfig --level 5 服务名 on/off
服务设置reboot后生效
3.systemctl指令
systemctl指令
systemctl [start| stop |restart |reload | status] 服务名
/usr/lib/systemd/system文件查看相关配置
systemctl list-unit-files [| grep xxxx] 查看服务开机启动状态
systemctl enable 服务名 设置开启自启
systemctl disable 服务名 关闭开机自启
systemctl is-enabled 服务名 查询是否自启
4.端口管理
firewall指令
firewall-cmd --permanent --add-port=端口号/协议 打开端口
firewall-cmd --permanent --remove-port=端口号/协议 关闭端口
firewall-cmd --reload 重新载入配置生效
firewall-cmd --query-port=端口号/协议 查看端口是否开放
可以使用netstat -anp查看网络连接和端口协议
十一.安装包管理
1.rpm
rpm用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager (RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。
本地包安装
1.查看
rpm -qa | grep xx 查看已安装rpm列表
python-gobject-base-3.22.0-1.el7_4.1.x86_64
名称 python-gobject-base
版本号 3.22.0-1
适用操作系统 el7_4.1.x86_64 (i686/i386表示32位系统,noarch表示通用)
rpm -q 软件包名 查询软件包是否已安装
rpm -qi 软件包名 查询软件包信息
rpm -ql 软件包名 查询软件包中的文件
rpm -qf 文件全路径名 查询文件所属软件包
2.包管理
删除
rpm -e [--nodeps] 包名 卸载rpm包 [强制删除,但可能存在依赖,不建议]
安装
rpm -ivh 包全路径名称
i:install安装
v:verbose提示
h:hash进度条
2.yum
Yum是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
应用商店
yum list | grep xx软件列表 查询yum服务器是否有需要安装的软件
yum install xxx 下载安装
附录A 虚拟机三种网络连接模式
1.桥接模式
虚拟系统可以和外部系统通讯,但容易造成ip冲突
即:虚拟机系统的ip需要分配与主机同网段的ip,但如果在外部同一网段存在与虚拟机分配ip相同的ip地址,就会产生冲突。相当于一台独立主机,外部网络也可以ping通虚拟机。
2.NAT模式
网络地址转换模式,虚拟系统可以和外部系统通讯,不造成ip冲突
即:在虚拟机系统分配一个与主机ip不同网段的ip地址,主机存在一个该网段地址与虚拟机系统形成连接,当虚拟机系统进行外部通信时,采用将本机实际ip作为代理的方式访问外部网络。外部网络无法访问该虚拟机。
3.仅主机模式
独立的系统,不与外界产生联系
附录B 虚拟机相关操作
1.虚拟机克隆
- 直接拷贝虚拟机文件
- 使用vm克隆操作
2.虚拟机快照
在使用虚拟机系统的时候(比如linux),你想回到原先的某一个状态,也就是说你担心可能有些误操作造成系统异常,需要回到原先某个正常运行的状态,vmware也提供了这样的功能,就叫快照管理。
3.虚拟机迁移删除
拷贝或删除文件夹即可
4.VMTools
在windows下更好的管理vm虚拟机
- 可以设置系统间的共享文件夹