Linux(CentOS7)
CentOS7 进入单用户修改root密码方法:
1.重启CentOS选择界面 按 e 进入 grub 编辑界面,找到Linux16这行 把 ro (只读readonly)修改成 rw init=sysroot/bin/sh
2.Ctrl+x 进入单用户界面
3.输入以下命令
- chroot /sysroot/ ——–切换到原系统
- LANG=en———-设置显示语言
- Passwd root ——-修改root用户密码
- touch /.autorelabel
- reroot重启
Centos7修改 运行级别:
1.runlevel ——查看上一个运行级别和当前运行级别
2.Init + 级别 ——修改运行级别
级别 | 说明 |
---|---|
0 | 关机 |
1 | 单用户 |
2 | 无网络的多用户 |
3 | 命令行模式 |
4 | 未用 |
5 | GUI(图形桌面 模式) |
6 | 重启 |
常用的运行级别是 3 和 5
打开22号端口
- setup 打开sshd服务
- ifconfig 查看当前ip地址
Linux根目录下各文件的作用
目 录 | 说明 | 备注 |
---|---|---|
bin | 存放普通用户可执行的指令 | 即使在单用户模式下也能够执行处理 |
boot | 开机引导目录 | 包括Linux内核文件与开机所需要的文件 |
dev | 设备目录 | 所有的硬件设备及周边均放置在这个设备目录中 |
etc | 各种配置文件目录 | 大部分配置属性均存放在这里 |
lib/lib64 | 开机时常用的动态链接库 | bin及sbin指令也会调用对应的lib库 |
media | 可移除设备挂载目录 | 类似软盘 U盘 光盘等临时挂放目录 |
mnt | 用户临时挂载其他的文件系统 | 额外的设备可挂载在这里,相对临时而言 |
opt | 第三方软件安装目录 | 现在习惯性的放置在/usr/local中 |
proc | 虚拟文件系统 | 通常是内存中的映射,特别注意在误删除数据文件后,比如DB,只要系统不重启,还是有很大几率能将数据找回来 |
root | 系统管理员主目录 | 除root之外,其他用户均放置在/home目录下 |
run | 系统运行是所需文件 | 以前防止在/var/run中,后来拆分成独立的/run目录。重启后重新生成对应的目录数据 |
sbin | 只有root才能运行的管理指令 | 跟bin类似,但只属于root管理员 |
snap | ubunut全新软件包管理方式 | snap软件包一般在/snap这个目录下 |
srv | 服务启动后需要访问的数据目录 | |
sys | 跟proc一样虚拟文件系统 | 记录核心系统硬件信息 |
tmp | 存放临时文件目录 | 所有用户对该目录均可读写 |
usr | 应用程序放置目录 | |
var | 存放系统执行过程经常改变的文件 | |
vmlinuz | 软连接到boot下的vmlinuz-4.4.0-87-generic |
用户管理
- useradd [选项] 用户名
- useradd -d 用户名 — 给新建的用户指定家目录
- userdel 用户名 — 删除用户
- passwd 用户名 — 更改密码
- id 用户名 — 查询用户信息
- su – 切换用户名 — 切换用户
- groupadd 组名 — 新建组
- groupdel 组名 — 删除组
- useradd -g 组名 用户名 — 给新建用户指定组
- usermod -g 组名 用户名 — 修改用户所在组
1、文档操作类
-
pwd—显示当前工作位置 即当前所处文件
-
mkdir —– 新建文件夹 mkdir dog mkdir /home/dog(最多创建两级)
mkdir -p /home/animal/dog/xiaoming ——-创建多级目录下文件 -
rmdir —- 删除空文件 rmdir dog
rm -r(递归删除整个文件) -f(强制删除不提醒)
常用rm -rf — 强制删除文件或目录 -
touch — 新建文件
案例:touch a.txt -
ls —– 显示当前目录下文件 ls-l—-竖排列表显示 ls-a —- 显示隐藏文件
-
cp—– 复制文件 cp /mojiao/zwj /mingjiao —–复制魔教下的张无忌到明教下边
cp -r ——复制文件夹 cp /mojiao /mingjiao ——复制魔教到明教下(如果明教下存在魔教 便会提醒是否覆盖
若要强制复制 用\cp -r 在cp -r 前加上\即可强制复制 -
yy — 用于文档内复制,拷贝当前行 yy ,并粘贴 p
拷贝当前行向下5行—操作: yy5 p粘贴 -
dd — 删除当前行 删除向下5行 — dd5
-
mv—–移动、重命名文件
重命名:mv dog.txt cat.txt
移动: mv dog.txt /home/mojiao/—–移动dog.txt移动到mojiao下 -
cat —- 以只读的方式打开浏览文件
-n 显示行数 -
more ——显示文本文件内容 more /etc/profile 打开显示 这个文本
打开文本后快捷键: -
空格键 --- 向下翻一页 回车键 --- 向下翻一行 q --- 立刻离开当前文本 = --- 输出当前行号 :f --- 输出文件名及行号 Ctrl+f/b --- 向下/向上滚动一屏
-
">"">>"
“>” 覆盖—将文本写入并覆盖到文件中 echo hello,World! > a.txt
">>"追加—将文本写入到文件文本的末尾 echo HHHH >> a.txt
应用: -
将某一指令内容写入到另一文件 ls -l > a.txt 将某一文件内容写到 另一文件中 cat /etc/profile > b.txt 将文本直接写入到文件 echo "hello world" > c.txt
-
cal—当前日历信息
-
***echo***输出内容到控制台
echo PATH−−−输出PATH — 输出PATH−−−输出PATH环境变量 -
head — 显示文件开头部分(默认查看文件前10行)
-n 例如-5 — 显示文件前5行 -
tail — 输出文件尾部内容 (默认后10行)
-n — 显示文件后 n 行
-f — 实时追踪文件的所有更新 工作常用-
tail -f a.txt --- 实时监控a.txt文件内容的变化
-
-
ln — 软链接 也叫符号链接 类似Windows的快捷方式
ln -s [文件]【链接名称】 ln -s /root linktoroot — 创建一个软连接指向root目录 -
history — 查看历史执行过的命令 也可执行历史命令
直接输入 history 即可查看
输入 !5 例如 !5 即为执行历史命令的第五个
2、时间日期类
- date — 查询当前日期
date +%y(m/n) — 查询当前年份(月份/日) 加号不能少
date -s —设置系统当前时间 date -s 2011-11-11 - cal — 显示当前月份日历
cal 2022 —显示2022全年日历
3、搜索查找类
- find — 从指定目录向下递归的遍历其各个子目录,将满足条件的目录显示在终端
- find 【搜索范围】【选项】
-
选项:-name --- find /root -name wx.jpg --- 查询root目录下名字为wx.jpg的文件,如果有通配符 * 必须用“” -user --- find /home -user Styx --- 按用户查询文件 -size --- find / -size +(-)20M --- 查找根目录下 大于(小于)20M的文件 注意: CTRL+c 终止查询 M必须大写 k小写 -type f --- 普通文件 d --- 查找目录
-
- find 【搜索范围】【选项】-exec commend {} \ ; — 将查询到的文件执行commend操作,{}代表查询到的集合,{} \ 之间有空格
- find 【搜索范围】【选项】
- locate —快速定位文件路径,原理是:利用系统实现建立的所有文件的名称及路径的数据库查询
- locate【查询文件】 例如:locate wx.jpg
- |(竖杠) — 管道符 :表示将前一个命令的处理结果输出传递给后面的命令处理
- grep — 查找内容
cat wei.txt | grep halou — 查询halou-
grep -n --- 显示所查询内容所在行grep -i --- 所查询的内容不区分大小写
-
4、压缩和解压类
- gzip/gunzip — 压缩/解压文件
- gzip 【文件名】 —压缩文件 (不会保留原文件)
gunzip 【文件名】 — 解压文件
- gzip 【文件名】 —压缩文件 (不会保留原文件)
- zip/unzip —压缩/解压文件
- zip 【选项】xxx.zip 要压缩的内容 — zip z.zip wei.txt(将wei.txt压缩z.zip)
-
-r 递归压缩 即压缩整个目录 zip -r home.zip /home (压缩home整个目录)
- unzip xxx.zip — unzip home.zip(解压home)
-
-d 解压到指定的文件夹 --- unzip -d /home/aaa home.zip (将home.zip解压到home下的aaa文件夹)
- tar — 打包指令 文件格式为 .tar.gz
- tar 【选项】xxx.tar.gz 打包的内容
-
选项: -c 产生打包文件 -v 显示详细信息 -f 指定压缩后的文件名 -z 打包同时压缩 -x 解包tar文件
- 案例:
-
压缩/打包:-zcvf tar -zcvf c.tar.gz a.txt b.txt --- 压缩多个文件 tar -zcvf home.tar.gz /home/ --- 压缩/home目录 解压:-zxvf tar -zxvf c.tar.gz --- 解压到当前目录 tar -zxvf c.tar.gz -C /home/ --- 解压到home目录下(-C后边为要解压到的目录,目录必须存在)
二、实操篇
1、组管理和权限管理
- 组管理
-
创建一个police组 在police组中创建 tom 用户groupadd police -- 创建组user -g police tom --- 创建用户id tom --查询 tom 用户的信息
- 修改文件所有者
chown 用户名 文件名 —chown Styx ok.txt(必须有root权限) - 修改文件所在组
chgrp 组名 文件名 —- chgrp police wei.txt - 改变用户所在组
usermod -g 组名 用户名 — usermod -g police Styx
- 修改文件所有者
- 权限管理
- 权限的基本介绍
-
例如 :
-rwxrw-r- 1 root root 1213 Feb 2 09 12:00 ok.txt
0~9位说明:- 第0位确定文件类型(d:目录 –:普通文件 l:软链接 c:字符设备【键盘鼠标】 b:块文件【硬盘】)
- 第1-3 位确定所有者(该文件的所有者)拥有该文件的权限。— User
- 第 4-6 位确定所属组(同用户组的)拥有的该文件的权限。 — Group
- 第 7-9 位确定其他用户拥有该文件的权限。— Other
- 第一个数字 — 如果是文件表示硬链接数,如果是目录表示该目录的子目录个数
- 用户 组
- 第二个数字 — 文件大小 如果是目录则为4096
- 最后修改的时间
-
rwx权限详解
- rwx作用到文件
r — 可读
w — 可写,可修改但不可删除,删除必须是所在目录具有该权限
x — 可执行 - rwx作用到目录
r — 可读,可以查看目录内容
w — 可写,目录内创建+删除+重命名
x — 可以进入该目录
- rwx作用到文件
-
- 权限的基本介绍
- 修改权限-chmod — 通过 chmod 指令可修改文件或目录的权限
- 第一种通过“+”“-”“=”变更权限
u:所有者 g:所在组 o:其他用户 a:所有人
1)chmod u=rwx,g=rw,o=r 文件目录名
2)chmod g+x 文件目录名
3)chmod a-r 文件目录名 - 第二种通过数字变更权限
规则:r=4,w=2,x=1;rwx=7
chmod u=rwx,g=rw,o=r 文件目录名 等同于 chmod 751 文件目录名
- 第一种通过“+”“-”“=”变更权限
- 修改文件所有者-chown
- chown newowner file — 改变文件所有者
chown newowner:newgroup file — 改变文件所有者所在组
-R 如果是目录,则使其下所有子文件或目录递归生效
- chown newowner file — 改变文件所有者
- 修改文件所在组-chgrp
- 语法:chgrp newgroup file 改变文件所在组
2、crond任务调度
-
基本语法 :crontab 【选项】
选 项 说 明 -e 编辑crontab定时任务 -l 查询crontab任务 -r 删除当前用户所有的crontab任务 service crond restart 重启任务调度 案例说明:
- crontab -e
- */1 * * * * ls -l /etc/ > /tmp/to.txt — 星号之间必须有空格
- 保存退出,便会立即执行
- 每一分钟 便会将etc下面的目录覆盖到tmp下的to.txt
-
任务调度的应用案例
-
每隔一分钟,就将当前的日期信息追加到/tmp/mydate文件中
1)先编写一个文件 shell脚本 /home/mytask1.sh 写入 date >>/tmp/mydate
2)给 mytask1.sh一个可执行权限 – chmod 744 mytask1.sh
3)crontab -e
4)编写crontab定时任务 — */1 * * * * date >> /tmp/mydate
5)完成 -
总结: 创建一个可执行的脚本文件,在其中写入要执行的指令,再通过crontab 任务调度设置时间以并执行脚本
-
3、Linux磁盘分区、挂载
- 使用 lsblk 指令查看当前系统分区情况
指令:lsblk -f — 记忆:老师不离开 - 如何增加一块硬盘
- 虚拟机添加硬盘
- 分区命令 :fdisk /dev/sdb
开始对 /sdb 进行分区
m — 获取帮助列表
p — 显示磁盘分区
n — 新增分区
d — 删除分区
w — 写入并退出
具体操作:开始分区后输入 n ,新增分区 , 然后选择 p ,选择主分区,按回车自动为默认值,输入 w 保存退出。 - 格式化磁盘格式
命令:mkfs -t ext4 /dev/sdb1 — 分区类型位 ext4 ,命名为sdb1 - 挂载
- 临时挂载:mount 设备名称 挂载目录
mount /dev/sdb1 /home/newdisk - 永久挂载:通过修改 /etc/fstab 实现挂载
vim /etc/fstab — 在fstab中写入 挂载文件
mount -a 即刻生效
- 临时挂载:mount 设备名称 挂载目录
- umount — 解除挂载
umount 设备名称 或 挂载目录
umount /dev/sdb1 或 umount /newdisk
- 磁盘查询情况
-
查询系统整体磁盘使用基本情况
语法 :df -h -
查询指定目录的磁盘使用情况
语法 : du -h 目录 — 默认为当前目录-s 指定目录占用大小汇总 -h 带计量单位 -a 含文件 –max-depth=1 子目录深度 -c 列出明细的同时,增加汇总值 -
磁盘情况 – 实用指令
- 统计 /home 文件夹下文件的个数
ls -l /home | grep “^-” |wc -l - 统计 /home 文件夹下目录的个数
ls -l /home | grep “^d” |wc -l - 统计 /home 文件夹下文件的个数,包括子文件夹下的
ls -lR /home | grep “^-” |wc -l - 以树状显示目录
yum install tree — 安装tree指令 ,若已安装不用执行此步骤
tree — 以树状图显示当前文件夹
- 统计 /home 文件夹下文件的个数
-
4、网络配置
- 查看网络配置
- Windows下:ipconfig
- Linux下: ifconfig
- 测试主机之间连通性
- ping 目的主机
例如:ping www.baidu.comm
- ping 目的主机
- Linux下网络环境配置
- 自动获取:通过界面完成
- 指定固定ip
- 直接修改配置文件
a. vim /etc/sysconfig/network-scripts/ifcfg-ens33 — ens33为网卡文件
b. 启用 boot 配置成yes — ONBOOT=yes
c. 以静态方式获取IP — BOOTPORTO=static
d. 指定IP — IPADDR=192.168.81.130
f. 指定网关和域名解析器,(网关和DNS一样)与Windows一致 — 网关/DNS:GATEWAY= DNS= - 修改完毕后,重启服务
- service network restart — 重启网络服务
或 - reboot — 重启
- service network restart — 重启网络服务
- 直接修改配置文件
5、进程管理
-
查看进程使用的指令: ps ,一般使用 ps -aux
ps显示的信息选项字段 说明 PID 进程识别号 TTY 终端机号 TIME 此进程所消耗的CPU时间 CMD 正在执行的命令或进程名 ps -a : 显示当前终端的所有进程信息
ps -u : 以用户格式显示进程信息
ps -x : 显示后台进程运行的参数 -
ps 指令详解
字 段 说明 USER 用户名称 PID 进程号 %CPU 进程占用cpu的百分比 %MEM 进程占用物理内存的百分比 VSZ 进程占用虚拟内存大小 (KB) RSS 进程占用物理内存的的大小 (KB) TT 终端名称,缩写 STAT 进程状态,其中S-睡眠,s-该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或被停止 STARTED 进程启动的时间 TIME cpu时间,即进程使用cpu的时间 COMMAND 启动进程所用的命令和参数,如果过长会被截断显示 -
应用实例
- ps -ef — 以全格式显示当前所有进程
-e 显示所有进程,-f 全格式显示
- ps -ef — 以全格式显示当前所有进程
-
终止进程kill和killall
- kill [选项] 进程号 — 通过进程号来杀死进程
- killall 进程名称 — 通过进程名称杀死进程,支持通配符,可解决系统因负载过大而运行缓慢的问题
- -9 — 常用选项,强制进程立即停止
- 实例
- 踢掉某个非法用户
ps -aux | grep sshd — 查找用户对应的进程
kill 进程号 — 杀死该用户进程 - 终止远程登陆sshd
步骤同上 - 终止多个gedit编辑器
killall gedit
- 踢掉某个非法用户
- 查看进程树pstree
- pstree [选项]
- 常用选项
- -p — 显示进程PID
- -u — 显示进程所属用户
-
服务管理(Service/systematl)
- service/systemctl 服务名 [start | stop|restart | reload | status]
- service iptables status — 查看当前防火墙状态
- systemctl status iptables — 同上
- 查看服务名
- setup
- ls -l /etc/init.d/
- chkconfig指令 — 给每个服务的各个运行级别设置自启动/关闭
- 查看服务 — chkconfig –list
- 查看特定 — chkconfig –list|grep sshd