sudo
Linux简介
1.Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
2.Linux 是一款操作系统,免费,开源, 安全,高效,稳定, 处理高并发非常强悍,现在很多的企业级的项目都部署到 Linux/unix 服务器运行。
3.目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
ps : 学习使用的版本为Centos7
Linux目录结构
/bin : bin 目录存放着最经常使用的命令。
/boot : boot 是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev : dev 目录存放Linux 的外部设备
/etc : etc 目录用来存放所有的系统管理所需要的配置文件和子目录。
/home : 用户的主目录
/lib : lib 目录里存放着系统最基本的动态连接共享库
/media : linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
/mnt : mnt 是临时挂载目录
/opt : opt 是安装文件目录
/tmp : tmp 是临时存放文件目录
/var : var 是日志文件存储目录
Linux常用指令
关机重启与登录注销
shutdown -h now | 立刻关机 |
---|---|
shutdown -h 1 | 一分钟后关机 |
shutdown -r now | 立刻重启 |
halt | 关机 |
reboot | 重启 |
sync | 将内存数据保存到磁盘 |
su user | 切换用户 |
---|---|
logout | 注销用户 |
用户与用户组管理
useradd 用户名 | 增加用户 |
---|---|
useradd -d 用户名 | 指定目录增加用户 |
passwd 用户名 | 修改密码 (ps:不带用户名就修改当前登录密码) |
userdel 用户名 | 删除用户 |
userdel -r 用户名 | 删除用户与用户数据 |
pwd | 显示当前目录 |
id 用户名 | 查询用户信息 |
who am i | 详细用户信息 |
groupadd | 添加组 |
groupdel | 删除组 |
useradd -g 组名 用户名 | 创建用户到指定组 |
usermod -g祖名 用户名 | 修改用户到指定组 |
文件目录管理
绝对路径:从根目录开始
相对路径:从当前目录开始
pwd | 显示绝对路径目录 |
---|---|
ls -al | 显示详细信息 |
mkdir | 创建文件目录 |
mkdir -p | 创建多级文件目录 |
rmdir | 删除空文件目录 |
rm -rf / | 删除带数据文件目录 |
touch | 创建一个空文件 |
cp | 拷贝到指定目录 |
cp -r | 递归整个目录到指定目录 |
\cp | 强制拷贝不提醒 |
mv oldname newname | 重命名 |
mv /home/sudo /opt | 移动文件 |
cat [选项] 要查看的目录 | 查看文件 |
cat -n | 查看时显示行号 |
more | 查看文件 |
less | 查看文件(比more更加强大,支持各种显示终端) |
echo [] 输出内容 | 输入到控制端 |
head | 查看文件头部10行内容 |
head -n num | 查看文件头部前n行内容 |
> | 重定向覆盖 |
>> | 重定向追加 |
tail | 输出尾十行内容 |
tail -n num | 输出尾num行内容 |
tail -f 文件 | 实时追踪文件的所有更新 |
ln -s [源文件目录] [软链接名] | 给原文件创造一个软连接 |
history | 查看历史命令 |
!num | 使用行号num的命令 |
文件查找
ps:由于locate指令基于数据库查询,所以第一次运行前,需要输入updatedb创建locate数据库
选项 | 功能 |
---|---|
find -name <查询方式> | 按照指定文件名字查询 |
find -user <用户名> | 查找属于指定用户的文件 |
find -size <文件大小> | 查找指定大小的文件 |
locate | 快速定位文件位置 |
选项 | 功能 |
---|---|
which | 查找指令在哪个目录 |
选项 | 功能 |
---|---|
grep | 过滤查找 |
grep -n | 显示匹配行及号 |
grep -i | 忽略大小写 |
压缩解压缩
选项 | 功能 |
---|---|
zip [ 选项] | 压缩 |
unzip [ 选项] | 解压缩 |
zip基本语法:
zip -r xxx.zip 递归压缩,级压缩目录
unzip -d xxx.zip 指定解压文件的存放目录
选项 | 功能 |
---|---|
tar | 打包 |
-z | 打包同时压缩 |
-x | 解包.tar文件 |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-c | 产生.tar打包文件 |
-C | 指定文件的存放目录 |
tar基本语法
打包:tar -zcvf xxx.tar.gz /home/xxx.txt
解包:tar -axvf xxx.tar.gz
指定目录:tar -zxvf xxx.tar.gz -C /xxx/xxx
vim编辑器
yy | 复制 |
---|---|
p | 粘贴 |
dd | 删除 |
esc | 一般模式 |
i | 编辑模式 |
:wq | 保存并退出 |
q! | 强制退出 |
/** | 查找 |
n | 查找下一个 |
:set nu | 打开行号 |
:set nonu | 关闭行号 |
G | 末行 |
gg | 首行 |
u | 撤回 |
‘num’shlft+g | 定位到某行 |
ctrl+f | 下翻一屏 |
ctrl+b | 上翻一屏 |
ctrl+d | 下翻半屏 |
ctrl+ u | 上翻半屏 |
ctrl+e | 下滚一轮 |
ctrl+y | 上滚一轮 |
用户组权限
1.Linux中所有内容都是以文件的形式保存和管理,即:一切皆文件。
2.Linux下有两种用户:超级用户(root),普通用户。
3.Linux文件对不同用户可以分别设置权限,管理员(root)有所有权限。
linux用户相关文件
/etc/passwd 用户帐号信息保存在passwd文件中(重要)
/etc/shadow 用户的加密口令保存在shadow文件中(重要)
/home/test 用户的宿主目录是home目录中与用户名称相同的目录
/etc/skel 用户的初始配置文件来在skel目录(配置模版)
/etc/group 存放关于组的信息(重要)
组的查看和修改
代码 | 功能 |
---|---|
ls -ahl | 查看文件所有者 |
chown 用户名 文件名 | 修改文件所有者 |
chown -R | 递归整个目录 |
chgrp 组名 文件名 | 修改文件的用户组 |
usermod -g 新组名 用户名 | 改变用户所在组 |
usermod -d 目录名 用户名 | 改变用户初始登录的用户组 |
组的创建
代码 | 功能 |
---|---|
groupadd 组名 | 创建一个普通组 |
-r | 创建一个系统组 |
-g GID | 指定新组的GID,默认值是已有的最大的GID加1 |
权限的基本介绍
ls -l 中显示的基本内容:
lrwxrwxrwx
. 1 root root 7 3月 11 19:55
0-9位说明
第0位确定的是文件类型(d,-,l,c,b)
选项 | 功能 |
---|---|
d | 目录 |
l | 链接 |
c | 字符设备目录,鼠标,键盘 |
d | 块设备,硬盘 |
- | 普通文件 |
第1到3位是所有者的权限 -user
第4到6位是所属组的权限 -group
第7到9位是其他组的权限 -other
rxw作用到文件
[r]:可读(reder):可以读取查看
[x]:可写(write):可以修改,但不一定能删除,删除一个文件的要求是要这目录的权限
[w]:可执行(execute):可以被执行
rxw作用到目录
[r]:可读(reder):可以读取,ls查看
[x]:可写(write):可以修改,对目录内创建,删除,重命名
[w]:可执行(execute):可以进入该目录
修改权限
基本说明:
通过chmod指令,可以修改文件或者目录的权限
第一种方式:+,-,=变更权限
| u |所有者 |
| g |所属组 |
| o |其他组 |
示例:
chmod u=rwx,g=rw,o=r 文件/目录名
chmod u+x,g+w,o+r
chmod u-x,g-x,o-x
第二种方式:通过数字变更权限
r=4.w=2,x=1 r+W+X=7
chmod u=rwx,g=rw,o=r 文件名目录名
相当于 chomd 764 文件名目录名
磁盘挂载
1.Linux硬盘分为IDE硬盘和scsi硬盘,目前市面上大多数是scsi硬盘。
2.IDE硬盘驱动器识别符:hdx
3.SCSI硬盘驱动器识别符:sdx
4.其中hd和sd代表分区所在设备的类型
x盘号 | 代表 |
---|---|
a | 基本盘 |
b | 基本从属盘 |
c | 辅助主盘 |
d | 辅助从属盘 |
Linux磁盘挂载
顺序为:
1.增加一块新硬盘
2.新硬盘分区
fdisk /dev/sdb
开始对/sdb分区
m:显示命令列表
p:显示磁盘分区
n:新增分区
d:删除分区
w:写入并退出
3.硬盘格式化
mkfs -t ext4 /dev/sdc1 其中ext4是分区类型
4.挂载
创建一个新目录并挂载
mkdir newdisk //创建新目录
mount 设备目录 /挂载目录
mount /dev/sdc1 /newdisk //挂载新目录
umount /dev/sdc1 /newdisk //解除挂载
ps:用命令行挂载设备重启后会失效
5.设置自动挂载
永久挂载通过修改/etc/fstab实现
添加完成后重启或执行mount -a生效
Linux磁盘查询
查看所有设备挂载情况
lsblk 或 lsblk -f
查询系统整体磁盘使用情况
df -h
df 参数 | 功能 |
---|---|
-h | 目录 |
-s | 指定目录占用大小汇总 |
-a | 含文件 |
c | 列出汇总值 |
以树根装查询磁盘使用
tree 目录名
rpm,yum使用
rpm查询:
基本语法:rpm [-参数] 包名
-q :查询软件包是否安装
-qa:查询所安装的所有rpm软件包
-qi:查询软件包信息
-qf:文件全路径名 :查询文件所属的软件包
rpm卸载
基本语法:rpm -e 包名
强制卸载:rpm -e --nodeps 包名
rpm安装
基本语法:rpm -ivh RPM包全路径名称
参数说明: -i=install安装
-v=verbose提示
-h=hash进度条
**yum指令**
yum安装:yum install 包名
yum查询:yum list |grep
yum本地源
1.查询系统光盘sr0挂载信息
lsblk
2.挂载系统光盘
mount /dev/sr0 /mnt/
3.进入yum 配置文件目录修改
cd /etc/yum.repos.d/
rm -rf *
4.添加本地 yum 源
vim Centos7.repo
[CentOS7] //yum的ID,本地唯一,用于区分不同yum源
name=CentOS-server //描述信息
baseurl=file:///mnt //前面的file://是协议,后面的/mnt是光盘挂载点
enabled=1 //1启用yum源,0禁用yum源
gpgcheck=0 //1使用公钥验证rpm包的正确性,0不验证
5.清空yum 源并重新缓存
yum clean all
yum makecache
yum 网络源
1.备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2.下载新的yum 源
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
3.缓存yum 源
yum makecache
任务调度
1.进行定时任务的设置
2.有些重要的工作需要周而复始的进行,如病毒扫描等
3.某些个别用户工作,如对mysql数据库的备份
基本语法
crontab 【选项】
常用选项
| -e |编辑crontab定时任务 |
| -l |查询crontab任务 |
| -r |删除当前所有的crontab任务 |
时间参数说明
选项 | 功能 |
---|---|
* * * * * | 分 时 日 月 星期 |
第一个* | 一小时当中的第几分钟 |
第二个* | 一天当中的几个小时 |
第三个* | 一月当中的第几天 |
第四个* | 一年当中的地几个月 |
第五个* | 一周当中的星期几(0和7都算星期天) |
示例:
./*1 * * * * * ls -l /etc/ > /temp/pc.txt
每隔一分钟将etc整个目录的数据打印至temp下的pc.txt
at定时任务
1.at命令是一次性定时计划任务,at的守护进程atd会一后台的形式运行,检查作业队列来运行
2.默认情况下atd没隔六十秒检查作业队列,有作业时,会检查时间是否匹配,匹配则会执行此作业
3.at是一次性记时任务,运行过一次便不会在运行
4.在使用at时一定要确保atd的进程启动
ps -ef | grep atd
可以检测到atd是否在运行
at命令格式
at [选项] [时间]
ctrl + D结束at的输入,输出两次
选项 | 功能 |
---|---|
-m | 任务完成默认给用户发邮箱 |
-i | atq的别名 |
-d | atrm的别民 |
-v | 显示任务到执行的时间 |
-c | 打印任务内容到标准输出 |
-V | 显示版本信息 |
at时间定义
1.使用当天的hh:mm(小时:分钟)
2.使用midnight(深夜),noon(中午)等模糊单词
3.采用十二小时制am:上午;pm:下午
4.指定具体日期,如1:00 2022-3-16,日期必须在时间后面
5.使用today,tomorrow来指定命令的日期
备份恢复
基本介绍
实体机无法做快照,如果出现异常或者数据损害,后果严重,要重做系统,还会造成数据丢失,所以我们可以使用备份和恢复技术。
dump备份
基本介绍:dump支持分卷和增量备份(所谓增量备份是指备份上次备份后 修改/增加的文件,也称差异备份)
dump语法说明
dump [ -0123456789cju ] [-f<备份后文件名>] [-T<日期>] [目录或文件系统]
dump参数
dump参数 | 说明 |
---|---|
-c | 创建新的归档文件,并将由一个或多个文件参数所指定的内容写入归档文件的开头 |
-j | 调用bzlib库压缩备份文件,bz2格式体积更小 |
-u | 备份完毕后,在etc/dumpdares中记录备份的文件系统,层次,日期与时间等 |
-t | 指定文件名,若该文件已存在备份文件中,则列出名称 |
0123456789 | 备份的层级,0为完整备份会备份所有文件,若指定0以上的层级,则备份上一次备份后修改的文件或新增的文件,到9后可以再次轮替 |
-f <备份后文件名> | 指定备份后文件名 |
-T <日期> | 指定开始备份的时间和日期 |
-W | 显示需要备份的文件及最后一次备份的层级,时间,日期 |
-w | 与W类似,但仅显示需要备份的文件 |
ps:
1.可以使用cron定时任务实现无人备份
2.如果是重要的备份文件建议上传到其他的服务器中
retore恢复
基本介绍:restore命令用来恢复已备份的文件,可以从dump生成的备份文件中恢复文件
restore基本语法
restore [ 模式选项 ] [ 选项 ]
说明下面四个模式,不能混用,在一次命令中,只能指定一种。
-C:使用对比模式,将备份的文件和以存在的文件相互比较
-i:使用交互模式,在进行还原操作时,restore指令将依序询问用户
-r:进行还原模式
-t:查看模式,看备份文件有哪些文件
选项
-f<备份设备>:从指定的文件中读取备份数据,进行还原操作
参考代码
备份
dump -0uj /opt/rootdmp/bootbak0.bz2 /boot:将boot分区已完全备份方式备份到/opt/rootdmp/目录中
恢复
restore -r -f /opt/rootdmp/bootbak0.bz2:在当前目录中将备份文件恢复
网卡修改
网卡查看配置:ifconfig /ip addr
网卡配置文件目录:vim /etc/sysconfig/network-scripts/ifcfg-ens33
网卡配置工具:nmtui
配置文件内容:
DEVICE="ens33" //设备名称
NAME="ens33" //网卡名称
BOOTPROTO="none" //链接方式
ONBOOT="yes" //是否开机加载
IPADDR=192.168.1.10 //IP地址
NETMASK=255.255.255.0 //子网掩码
GATEWAY=192.168.1.2 //网关地址
DNS1=114.114.114.114 //域名解析器
注意:`网卡配置文件内,选项要大写,小写不报错但不生效,参数可小写`
修改需重启网卡或虚拟机:`systemctl restart network &reboot`
修改主机名
命令行修改:hostnamectl set-hostname sudos
配置文件修改:vim /etc/hostname