Linux教程

Linux 基础

本文主要是介绍Linux 基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!


su - root //登入账号
su - mk //切换到普通用户
exit //退出
q+!=不保存退出;wq=保存退出

===============================================================

init 0关机
临时修改网卡的ip地址,重启失效
ens33 overruns
#ifconfig ens33+网卡名。

 

重启服务
#systemctl restart network //centos7的网卡重启方法
#service network restart //centos6的网卡重启方法
添加多个ip
#ifconfig ens33:0 +网卡名
#ifconfig ens33:1 +网卡名
临时删除ip
#ifconfig ens33:0 del+网卡名
永久修改网卡的ip地址,
方法1:使用nmtui文本框方式修改ip
然后再重启服务 systemctl restart network
2.2 关闭防火墙并设置开机不启动
#systemctl status firewalld.service //查看防火墙的状态
#systemctl stop firewalld //关闭防火墙
#systemctl start firewalld //开启
#systemctl disable firewalld //开机自动关闭 RHLE7
#systemctl --list|grep firewalld //查看开机是否启动 RHLE6
#systemctl enable firewalld //开机自动启动
2.3 临时和永久关闭Selinux
#getenforce //查看Selinux是否启动
#setenforce 0 //临时关闭
#vim /etc/selinux/config //永久关闭 把SELINUX=enforcing改为disabled 设置后启动输入reboot
2.4 设置系统光盘开机自动挂载
#vim /etc/fstab //打开后在文档中,添加以下内容:/dev/cdrom /mnt iso9660 defaults 0 0
#umount /mnt/ //卸载
验证是否成功:mount - a //后面有内容输出就说明挂载成功了
2.5配置YUM源 配置一个Centos7YUM源
yum的一切配置信息都储存在一个yum.repos.d目录下的配置文件中
删除原有的文件
#rm-rf /etc/yum.repo.d/*
创建一个新的yum源文件,yum源配置文件的结尾必须是.repo
#vim Centos7.repo //再添加以下内容
[Centos7]
name=Centos-server
baseurl=file:///mnt //在这个目录下挂载
enabled=1 //是否可用
gpgcheck=0 //是否验证
cat Centos7.repo //查看文件内容

清空并生成缓存列表
#yum clean all //清空yun缓存
#yum list //生成缓存列表

=============================================================================

3.1Linux终端介绍、Shell提示符、Bash基本语法
通过 #tty 命令看到当前所属的虚拟机终端
#tty
注:shift+ctrl+n 快速打开一个终端。终端字体放大:shift+ctrl+加号。终端字体缩小:ctrl+减号
#echo xuegod >虚拟终端 //echo 输出的意思
#shutdown+10 //执行此命令,告诉所有的终端10秒后系统关机
#shutdown - c //结束上面的命令
#wall "哈哈哈哈哈哈哈" //向所有的终端发消息
3.1.2通过shell,我么可以对linux实现那些操作或管理
1、对用户的管理(添加、删除)
2、相关权限的管理(授权用户对相关文件的管理,比如增删改查)
3、对磁盘的管理(分区、raid、lvm)
4、对软件的管理
5、对网络的管理
3.2基本命令操作
#ls //查看当前目录下有哪些文件
#ls -l和#ll这两个命令是等价的

-l //列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等,长列表
-a //可以列出目录下所有的文件,包括以"."开头的隐藏文件(linux下隐藏文件是以 . 开头的,如果存在2个点代表存在着父目录,1个点表示当前目录)
-d //查看目录(不查看里面的内容)
-S(大写的S) //以文件的大小进行排序


第一个字符文件类型中:
d:目录文件
l:链接文件
b:块设备文件
c:字符设备文件
p:管道文件
-:表实普通文件

===》当前用户有效
定义一个别名:
#alias vimens33="vim /etc/sysconfig/network-scripts/ifcfg-ens33"
#vimens33 //别名
#unalias +别名 //删除别名
设置别名永久有效:
#vim /root/.bashrc //进去把你想要设置的别名保存好
#source /root/.bashrc //保存好,在执行此命令就ok了
===》全局使用
#vim /etc/.bashrc //在最后面添加定义的别名
3.2.3 基本命令之--cd
作用:切换目录(change directory)
语法:cd目录
说明:直接输入cd表示回到当前用户的宿主(家)目录
#cd .. //表示返回到上级目录位置,也就是父目录
#cd . //表示进入到当前目录
#cd - //表示返回切换前的目录
3.2.4 基本命令之--history
命令:history
3个快速查找linux历史命令的技巧:
方法1:光标上下键
方法2:CTRL+r //搜索历史命令(输入一段某条命令的关键字:必须是连续的)
方法3:!168 //执行历史命令中的168条命令
方法4:!字符串 //搜索历史命令中的最近一个以****字开头的命令,例如!syst
3.3系统时间管理
#hwclock //查看硬件时间
#date //查看系统时间
时区
UTC(Universal Time Coordinated) //世界标准时间
GMT(Greenwich Mean Time) //格林时间
CST(China standard Time) //中国标准时间
3.3.2修改时间
#date -s "2018-11-2 22:30"
#date "+%F" //显示出来的是2018-10-10
#date "+%Y%m%d" //显示出来的是20181010,也可以在中间自己定义 例:#date "+%Y-%m-%d" 最后显示出的是 2017-10-10
#date "+%Y-%m-%d %H:%M:%S" //显示的时间为:2018-10-10 20:22:02

# date -d "+1 months //显示的时间为当前的月份加一月2018年 11月 10日 星期六 20:25:26 CST
# date -d "+1 months" +%F //显示的时间为:2018-11-10
3.3.3使用time命令测试一个命令运行的时间
time 作用:一般用来测量一个命令的运行时间
使用方法:time在后面直接跟上命令和参数
#time ls -l /etc/
real 0m0.014s
user 0m0.002s
sys 0m0.010s
说明:
real 实际使用时间
user 用户状态使用的时间
sys 0m0.010s内核状态使用的时间
3.4帮助命令使用
3.4.1 man 命令 :查看手册或命令描述
# man find //man命令查看帮助时,支持它上翻下翻
3.4.2 使用-h 或 --help 查看命令选项
#find -h //不可执行
#find --help //可执行
3.5 开关机命令及7个启动级别
常用的几个关机,重启命令

  1. shutdown
  2. init
  3. reboot
  4. poweroff

3.5.1关机命令之 --shutdown
作用:关机,重启,定时开机
语法:shutdown
参数:
- r =》重新启动计算机
-h =》关机
-h 时间 =》定时关机 shutdown -c 取消指令
3.5.2 7个启动级别
作用:切换系统运行级别
语法:init 0-6
Linux系统有7个运行级别(runlevel)

  1. 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
  2. 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
  3. 运行级别2:多用户状态(没有NFS)
  4. 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式 进入字符界面
  5. 运行级别4:系统未使用,保留
  6. 运行级别5:X11控制台,登陆后进入图形GUI模式 进入图形界面
  7. 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

3.5.3 设置默认的运行界面级别
centos7 不再使用/etc/inittab 文件进行默认的启动级别配置,而使用比sysvinit 的运行级更为自由的target替代
第 3 运行级用 multi-user.tager替代
第 5 运行级用 graphical.tager替代
设置默认第三启动级别
#systemctl set-default multi-user.target
设置默认第五启动级别
#systemctl set-default graphical.target

# runlevel //3 5 表示从3级别切换到5级别
# systemctl get-default //查看当前默认的启动级别
3.6 设置服务器来电后自动开机

===============================================================
4.1相对路径和绝对路径
路径:在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件位置的就表示文件的路径
绝对路径:在Linux中,绝对路径是从“/”开始的,比如/usr、/etc/passwd。如果一个路径一个路径是从根(/)开始的,它一定是绝对路径
相对路径:相对于当前路径或者是以 . 或 ..开始

4.2文件的管理
文件管理的方式有多种:
改变目录:cd //切换目录
创建/修改/移动/删除:touch mkdir mv vi rm cp

4.2.1 创建文件和文件夹
命令之:touch
作用:常用来创建空文件,如果文件存在,则修改这个文件的时间
补充:文件的三种时间
# ll /etc/passwd //查看文件的修改时间
-rw-r--r--. 1 root root 2053 10月 7 16:27 /etc/passwd
# cd /etc
# stat /etc/passwd //查看文件的属性(其中包括文件的时间属性)
文件:"/etc/passwd"
大小:2053 块:8 IO 块:4096 普通文件
设备:803h/2051d Inode:10092637 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:system_u:object_r:passwd_file_t:s0
最近访问:2018-10-12 17:31:41.099999945 +0800 //atime 查看内容 cat a.txt
最近更改:2018-10-07 16:27:35.350055349 +0800 //mtime 修改内容 vim a.txt
最近改动:2018-10-07 16:27:35.360055349 +0800 //ctime 文件属性,比如权限 change time chmod +x a.sh
创建时间:-
语法:touch 文件名
[root@xuegod63 ~]# cd /opt/ //切换到opt目录下
[root@xuegod63 opt]# touch a.txt //创建a.txt文件
[root@xuegod63 opt]# ls //查看文件是否存在
a.txt rh
[root@xuegod63 opt]# touch file{6..20} //创建文件从file6~file20文件
[root@xuegod63 opt]# ls //查看opt下的文件
a.txt file10 file11 file12 file13 file14 file15 file16 file17 file18 file19 file20 file6 file7 file8 file9 rh

#touch -d "20181003 21:20" xuegod.txt //创建指定时间文件

4.2.2 使用 vim 和重定向创建一个新文件

  • 用 vim 命令创建一个新文件
  • #vim xuegod-1.txt
  • 用重定向创建一个新文件
  • #echo aaa>xuegod.txt

4.2.2 命令之:mkdir

  • 作用:创建目录
  • 语法:mkdir (选项)文件名
  • 实例:
  • [root@xuegod63 opt]# mkdir dir2 dir3 /home/dir4
  • [root@xuegod63 opt]# ls /home/

dir4 mk

  • [root@xuegod63 opt]# mkdir /tmp/a/b/c //mkdir: 无法创建目录"/tmp/a/b/c": 没有那个文件或目录
  • [root@xuegod63 opt]# mkdir -p /tmp/a/b/c
  • [root@xuegod63 opt]# ls /tmp/a/b //执行的结果为:c

4.2.2 删除文件和目录

  • 用到的命令:rm
  • 作用:可以删除一个目录的一个或多个文件或目录,对于链接文件,只是删除整个链接文件,而原文件保持不变的
  • 语法:rm(选项)处理对象
  • 选项:
  • -f 强制删除,没有提示
  • -r 删除目录
  • #rm -rf file* //删除以file文件是所有文件

4.2.3复制文件

  • 命令:cp 源文件/目录 目录文件/目录
  • 选项:-R/r :递归处理,将指定目录下的所有文件与子文件一并处理。复制目录时用
  • #cp /etc/passwd /opt/ //复制文件
  • #cp -r /boot/grub /opt/ //复制目录

4.2.4移动文件

  • [root@xuegod63 opt]# mv passwd dir1 //把passwd文件移动到dir1文件中
  • [root@xuegod63 opt]# mv xuegod.txt dir1/a.txt //把文件xuegod文件移动到dir1文件下并改名为a.txt

4.3查看文件
4.3.1命令之:cat

  • 语法:cat 文件名
  • 作用:查看文件内容,一次显示整个文件的内容
  • 例子:#cat /etc/passwd

4.3.2 命令之 more

  • 作用:以分页的形式显示文件内容
  • 语法:more+文件名
  • 说明:按下回车刷新一行,按下空格刷新一屏,输入q键退出

4.3.3 命令之less

  • 作用:和more功能一样
  • 语法:less+文件名
  • 说明:支持前后翻转,既可以向上翻页(pageup按键),也可以向下翻页(pagedown按键),空格键是向下翻页,enter键是向下翻一行,输入q键退出

4.3.4 命令 head

  • 作用:用于显示文件的开头内容,在默认情况下,head命令显示文件的头10行内容
  • 语法:head(选项)+文件名
  • 参数:-n显示文件开始的行数
  • 作用:用于显示文件的尾部内容,在默认情况下,tail命令显示文件的尾部10行内容
  • 语法:tail(选项)+文件名
  • 参数:-n显示文件尾部的行数
  • -f 动态显示数据(不关闭),常用来查看日志,也可以写成 tailf 。它是根据文件的索引号来查看日志

4.4 实战:xfs文件系统的备份和恢复

  • xfs提供 xfsdump 和xfsrestore 工具协助备份 xfs文件系统中的数据。xfsdump 按incode顺序备份一个xfs文件系统
  • 首先了解下xfsdump的备份级别有以下两种,默认为 0(即完全备份)
  • 0级别代表 完全备份
  • 1 到 9级别代表 增量备份
  • 扩展:
  • 完全备份:每次都把指定的备份目录完整的复制一遍,不管目录下的文件有没有变化;‘
  • 增量备份:每次将之前(第一次,第二次,直到前一次)做过之后有变化的文件有文件进行备份
  • 差异备份:每次都将第一次完整备份以来有变化的文件进行备份

4.4.1 环境准备
实验环境:
系统centos7.2添加一块虚拟硬盘(准备一个测试分区)
正常使用一块磁盘过程如下:
添加磁盘—>分区—>格式化—>挂载

对新添加的硬盘格式化:
#fidisk /dev/sdb //指定分区的设备

[root@xuegod63 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x5471fb85 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):《n》 //创建一个新的分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): 《p》 //创建一个主分区
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):《+1G》 //指定分区大小
分区 1 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):《p》 //打印分区表

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x5471fb85

设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux

命令(输入 m 获取帮助):《w》 //保存
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@xuegod63 ~]# ls /dev/sdb* //查看是否成功
/dev/sdb /dev/sdb1

格式化分区,并进行挂载
#mkfs.fs /dev/sdb1
#mkdir /sdb1 //创建挂载点
#mount /dev/sdb1 /sdb1 //挂载
准备测试文件
[root@xuegod63 ~]# cd /sdb1/
[root@xuegod63 sdb1]# ls
[root@xuegod63 sdb1]# cp /etc/passwd ./
[root@xuegod63 sdb1]# mkdir test
[root@xuegod63 sdb1]# touch test/a
[root@xuegod63 sdb1]# tree /sdb1/
/sdb1/
├── passwd
└── test
└── a

1 directory, 2 files
[root@xuegod63 sdb1]# ls
passwd test

4.4.2备份
1、备份整个分区。(这个功能就像虚拟机的快照,服务器被黑后,进行快速恢复)
xfsdump -f //备份存放位置 要备份路径或设备文件 必须精确到根
[root@xuegod63 sdb1]# xfsdump -f /opt/dump_sdb1 /dev/sdb1

2、指定备份时免交互操作,方便后期做定时备份
[root@xuegod63 sdb1]# xfsdump -f /opt/dump_passwd /sdb1 -L dump_passwd -M sdb1
-L :xfsdump 会每次记录备份的 session 标头,这里可以填写针对此文件系统的简易说明
-M :xfsdump 可以记录储存媒体的标头,这里可以填写此媒体的简易说明

3、指定只备份分区中的某个目录
参数:-s 文件路径 只对指定的文件进行备份,-s 指定时,路径写上是相对路径(-s可以是文件或目录)
[root@xuegod63 sdb1]# xfsdump -f /opt/dump_grub2 -s grub2/grub.cfg /boot -L dump_grub2 -M boot-sda1

4、查看备份信息与内容
备份成功后,我们就可以在/var/lib/xfsdump/inventory/
[root@xuegod63 sdb1]# ls /var/lib/xfsdump/inventory/
0e728219-cae9-4750-8145-c99ad12613a6.InvIndex
8514640b-d9b3-4402-9c66-2128654b3bae.StObj
230f73ca-74a0-4de0-a216-8b7c9a3f9974.StObj
e46220de-0d09-4b99-b38a-30a9f1c00b31.InvIndex
fstab
[root@xuegod63 sdb1]# xfsdump -I(大写的i)//查看备份信息

4.4.3文件系统恢复
语法:xfsrestore -f 指定恢复文件的位置,指定存放恢复后的文件的路径
[root@xuegod63 ~]#xfsrestore -f /opt/dump_sdb1 /sdb1

4.4.4增量备份
增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增量或者被修改的文件。这就意味着,第一次增量备份的对象是进行
全备份后所产生的增加和修改的文件;第二次增量备份的对象是进行第一次增量备份后所产生的增加和修改的文件,以此类推
优缺点
有点:没有重复的备份数据,因此备份的数据量不大,备份所需要的时间很短。
缺点:数据恢复是相对比较麻烦,它需要上一次全备份和所有增量备份的内容才能够完全恢复成功,并且它们必须沿着从全备份到依次增量备份的时间顺序逐个
反推恢复,因此可能会延长的恢复时间
实战:增量备份文件系统

这篇关于Linux 基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!