centos基础

虚拟机三种网络模式:

Bridge桥接模式:
		默认使用VMnet0,不提供DHCP服务。虚拟机与主机需要在同一个网段上,与局域网的其他机器没有区别。可以与局域网内其他主机通信,可以与外部网络通信。容易引起ip地址冲突。
	Host-Only仅主机模式:
		默认使用VMnet1,提供DHCP服务。虚拟机可以和物理机互相访问,但虚拟机无法访问外部网络
	NAT模式:
		默认使用VMnet8,提供DHCP服务,虚拟机可以和物理机互相访问,可访问外部网络,局域网内其他机器访问不了

重启主机:reboot
重启网卡:systemctl restart network.service
查看ip地址:ip addr,
强制结束命令:ctrl + c

常用命令:

cd 切换目录:cd -;cd /;
ls 列出目录内容:ls –ltra(l列表形式列出,t按时间排序,r升序,a显示隐藏文件)
pwd 查询所在目录
cat 查看小文件内容 :cat –n 【文件名】;(n排序)
more 查看大文件内容:按空格翻页,按回车下一行,按q退出
head 默认查看文件前10行, head -20 【文件名】(查看20行内容)
tail 查看文件后面n行内容:类似head;tail –f(动态查看内容)
touch 创建一个空文件:touch 【文件名】
mkdir 创建一个目录:mkdir 【目录名】;mkdir –p 【多重目录名】(p创建多重目录)
rmdir 删除目录
cp 拷贝文件 cp –a 123.txt class/456.txt(将123.txt文件复制到同级目录的class目录中,并重命名为456.txt,a同时复制文件的属性)
mv 移动或改名字:mv 123.txt 123.php;mv 346.php /home/
rm 删除文件:rm –rf(rf强制删除,也可以删除目录)
diff 对比文件差异:diff 【文件名】【文件名】
ssh 远程登录其他主机 ssh 【ip地址】
exit 退出
id 查看用户
uname 查看系统信息 uname –a(a查看详细信息)
ping 查看网络是否畅通
echo 标准输出命令
man 查看Linux命令帮助文档 man ls
help 查看内置shell命令帮助 help ls
clear 清屏(或 Ctrl + l)
who 查看当前登录用户信息:whoami
uptime 查看服务器信息(包括运行了多长时间,负载情况等)
w 查询系统信息
free 查看服务器内存使用情况:free –m(m以M为单位,g以G为单位,h精准显示单位)
wc 统计有多少行 :wc –l 【文件名】类似cat –n 【文件名】
grep 查找文件里符合条件的字符串:grep ‘re’ 123.txt | wc –l(查看符合的字符串个数);grep –n ‘re’ 123.txt (n输出行数,w精确匹配,v不显示该字符串,i忽略大小写)
find 查找:find /home/admin -name 123.txt; find / -type f –name 123.txt (只查找文件,不查找目录)
uniq 对排序好的内容进行统计:uniqu –c 123.txt | sort –n(统计并排序)
sort 对内容排序 uniqu –c 123.txt | sort –n
df 查看磁盘的使用情况: df –h
netstat 查看网络端口的使用情况:netstat -tunlp(t显示tcp端口,u显示udp端口,n拒绝显示别名,l知名listen,p显示建立相关连接的程序名)
hostname 查看主机名
ps 显示所有进程信息:ps –ef;ps –aux
kill 杀死进程:kill -9 【pid】
top 监控Linux系统实时信息 按q退出
du 统计大小:du –sm *(以m为单位 *是通配符);du –sh *
firewall-cmd 查看防火墙状态:firewall-cmd –state
echo ‘field125’ > 123.txt 用字符串‘field125’覆盖123.txt中的内容
echo ‘field125’ >> 123.txt 向123.txt中追加‘field125’
echo $? 判断上一条命令执行是否正确,0代表正确,非0代表不正确
cal 查看日历
mount 挂载:mount /dev/cdrom media (挂载光盘到media目录下)
umount 卸载 umount /dev/cdrom

输入重定向;
把要输入的信息写入到指定的文件中
输出重定向
把要输出的信息写入到指定的文件中
错误重定向
把错误的信息写入到一个文件中
Linux中一切皆为文件

文件描述符:
	POSIX名称		文件描述符		用途
	/dev/stdin			0				标准输入
	/dev/stdout			1				标准输出
	/dev/stderr			2				标准错误输出
输入重定向: <   #wc –l < 123.txt
输出重定向: > #代表覆盖写入 >>#代表追加写入
ls –lrt 1> 123.txt(把列出的内容输出到123.txt,1可以省略不写)
错误重定向:
	llll 2> 123.txt(2必须写)
	llll 2> /dev/null(把错误日志输出到无底洞,不占用内存)
& #等同于
| #管道符 把前面的结果传输给后面
; #可以执行多条命令
&& #前面的命令执行成功的话,后面的才可以执行,前面的执行失败,后面的不可以执行
|| #前的执行成功后面的不可以执行,前面的执行失败,后面的才可以执行

Linux目录介绍

/ 根目录,只存放目录
/mnt 测试目录
/root root用户的家目录
/home 普通用户家目录
/tmp 临时目录
/var 存放经常修改的数据,比如程序的日记文件
/boot 存放的是启动Linux使用的内核文件,包括连接文件以及镜像文件
/etc 系统默认的配置文件
/bin 所有用户都可以执行的程序
/sbin 只有root用户才能执行的程序
/usr 用户自己的软件都可以放到这来
/dev 存放硬件设备的地方
/media 挂载光盘使用

fuser –mv /mnt 查看是谁在使用该目录中的文件
fuser –kv /mnt 杀死使用的进程

vi编辑器

三种模式:
		命令模式 按esc
		插入模式
			在命令模式按a或i或o进入
按一次esc进入命令模式
		底行模式
			在命令模式输入:进入
			按两次esc进入命令模式

命令模式操作:
	$: 由行首调到行尾
	gg:跳到行首
	G:跳到最后一行的行首
	x:删除一个字符
	dd:删除一行
	u:撤回上一步
	v: 选中范围按y即可复制,再按v退出
	p:粘贴

底行模式操作:
	n:#n为数字,光标移动到第n行
	/:#寻找内容
%s/word1/Word2/g #%s指明是字符串,将word1全部替换为Word2
n1,n2s/ word1/Word2/g #n1,n2为数字,在第n1和n2行之间寻找word1字符串并替换为Word2
	Set nu:#显示行号
	Set nonu:#取消行号
	q!: #强制离开且不baoc
	wq:#离开并保存 
wq!:#强制离开并保存
!ls:暂时离开

用户与用户组管理
关于用户的配置信息
账号信息:/etc/passwd
密码信息:/etc/shadow

admin(用户):x(密码占位符):1000(uid):1000(gid)	:admin(用户描述):/home/admin(家目录):/bin/bash(登录后使用的shell解释,/sbin/nologin表示不可登录)

添加用户:

-u #指定用户UID
-d #指定用户主目录
-g #指定用户所属组
-r #指定用户是系统用户
-s #用户登录shell解释器
-M #不创建主目录

创建一个用户xd,指定uid为1010 家目录为 /home/xd 所属组为root组,登录shell为/bin/bash
useradd –u 1010 –d /home/xd -g root –s /bin/bash xd

删除用户 :userdel –r xd (r同时删除家目录)
添加用户组: groupadd
删除用户组:groupdel
修改用户信息:usermod
-u #指定用户UID
-d #指定用户主目录
-g #指定用户所属组

设置(修改)用户密码 passwd 【用户名】

文件操作
文件属性:ls –lrti
文件的类型与属性:

-	#代表的是文件
d #代表的是目录
l #代表的是软连接
b #代表的是块设备
c #代表的是硬件设备(键盘等)
r:读权限 w: 写权限 x:执行权限
4:读权限 2:写权限 1:执行权限
rwx rwx rwx
第一组rwx代表文件所属者拥有的权限
第二组rwx代表文件所属组拥有的权限
第三组rwx代表其它人的权限
修改文件权限:chmod 
chomd u+x,g+w,o+w boot.log #u user; g group; o other
chomd u-x,g-w,o-w boot.log
chomd –R 777 /home/xd/* #将/home/xd/*下的所有文件全部赋予777权限(R 是递归的意思)

修改文件所属者和所属组:chown
chown admin:admin boot.log
文件归档与压缩
	文件归档:也称为打包,值一个文件或多个文件或目录的集合,这个集合存储在一个文件中。归档文件是没有进行压缩的,所以占用的空间是所有文件或者目录的总和。工作中经常与压缩结合在一起使用。
	解压缩:gzip;xz
	gzip:速度最快,压缩比例较低,不能压缩目录。扩展名:.gz
	不保留原文件压缩:gzip 123.txt
	保留原文件压缩:gzip –c 123.txt > 123.txt.gz
	不保留原文件解压:gunzip 123.txt.gz
保留原文件解压:gunzip –c 123.txt.gz > 123.txt

	xz: 压缩的速度较慢,压缩比例高,可以压缩目录。扩展名:.xz
	用法与gzip类似、
不保留原文件解压:unxz123.txt.xz
保留原文件解压:unxz –d –k 123.txt.xz

归档命令tar
	-c #必须加上的参数 创建新文件
	-f #必须加上的参数 指定文件格式
	-v #显示详细过程
	-z #以gzip方式进行归档压缩
	-J #以xz方式进行压缩
	-x #解档解压操作
tar –cfv temp.tar temp.txt #temp.txt文件归档为temp.tar
tar –zcfv /home/admin/temp.tar temp.txt # temp.txt文件归档压缩为temp.tar并放入到/home/admin下
tar –xfv 123.txt.tar #将123.txt解压解档,解压后的文件名为123.txt
tar –xfv 123.txt.tar.gz –C /home/admin 将123.txt.tar.gz解压解档并指定放到/home/admin下(C指定路径)

Linux核心实用命令
find 基本用法
-type #根据文件类型查找
-name #根据文件名查找
-perm #根据文件权限查找
-user #根据文件所属主查找

find /var/log -type f -name “*.log”
f #代表文件
d #代表目录

find /var/log -perm 600 -type f -name “*.log”

find高级用法
find /var/log -type f -name ".log" -exec wc -l {} ; #统计每一个/var/log -type f -name ".log"有多少条记录
; #多条命令分隔符
\ #转义符
{} #把find命令每一次匹配到的结果传递给{}
exec #执行

	find /var/log -mtime -2 -name "*.log" -exec ls -lrt {} \;

mtime #根据文件变更的时间查找 –n表示n天以内 +n表示n天以前

CentOS防火墙
防火墙:主要信息安全防护,有硬件防火墙和软件防火墙。Firewalld是软件防火墙
查看firewalld服务状态:systemctl status firewalld
开启、重启、关闭firewalld服务
开启:systemctl star firewalld.service
重启:systemctl restar firewalld.service
关闭:systemctl stop firewalld.service
查看firewall防火墙的状态:firewalld-cmd –-state
查看防火墙开放端口:
firewall-cmd –-list-port 查看所有开放端口
firewall-cmd –-query-port=80/tcp 查看80端口是否开放
查看80端口是否被监听:netstat -tunlp | grep 80
开放80端口:firewall-cmd --permanent --add-port=80/tcp
#permanent代表永久开放,没有该参数,重启后失效
加载生效的开放端口:firewall-cmd –-reload
关闭80端口:firewall-cmd –-remove-port=80/tcp

telnet与scp命令用法
telent主要用于测试某台机器的某个端口是否畅通
telent IP地址 端口
scp:用于服务器之间文件或目录拷贝
scp /home/admin/123.txt [email protected]:/root/
把本机123.txt文件拷贝到192.168.72.128的root用户下的root目录下
scp [email protected]:/root/123.txt /root/
把192.168.72.128的root用户下的root目录下123.txt文件拷贝到本机/root/下
-r #递归的作用,拷贝多个文件(或目录)

Linux进程管理命令
ps –ef | more

ps aux | more :与上面类似

cut命令:通常对数据进行列的提取
-d #指定分隔符
-f #指定截取区域
-c #义字符为单位进行分割
#不加-d参数,默认为制表符,不是空格

以”:”为分割符截取出/etc/passwd的第一列和第三列
cut -d ':' -f 1,3 /etc/passwd

以”:”为分割符截取出/etc/passwd的第一列到第三列
cut -d ':' -f 1-3 /etc/passwd

以”:”为分割符截取出/etc/passwd的第二列到最后一列
cut -d ':' -f 2- /etc/passwd

截取/etc/passwd文件从第二个字符到第九个字符
cut -c 2-9 /etc/passwd

Linux上所有可登录的用户
cat /etc/passwd | grep ‘/bin/bash’ | cut -d “:” -f 1 | grep -v root

awk命令
一个非常强大的数据处理命令,支持条件判断,数组,循环等功能,与grep,sed并成Linux三剑客

NR #行号
$1 #代表第一列
$2 #代表第二列
$NF #代表最后一列
-F #指定分隔符
BEGIN #在读取所有内容前就开始执行,一般用来初始化操作
END #结束的时候执行

以”:”为分割符截取出/etc/passwd的第一列
awk 'BEGIN {FS=":"} {print $1}' /etc/passwd
cat /etc/passwd | awk 'BEGIN {FS=":"} {print $1}'
awk -F ":" '{print $1}' /etc/passwd

打印第四行第一列
df -h | awk 'NR == 4 {print $1}'

打印第二行到第五行的第一列
df -h | awk '(NR >= 2 && NR <= 5) {print $1}'

打印第一列和第五列
df -h | grep -v '文件系统' | awk 'BEGIN {print "文件系统使用情况"} {printf $1} {printf "文件系统使用率:"} {print $5}'

df -h | grep -v '文件系统' | awk 'BEGIN {print "文件系统使用情况"} {printf $1} {printf "文件系统使用率:"} {print $5} END {print "正常"}'

sed命令
主要对数就进行处理(选取,新增,替换,删除,搜索)
常见的选项与参数
-n #把匹配到的行输出打印到屏幕上
p #以行为单位进行打印,通常与-n一起使用
d #删除
a #在行的下面插入新的内容
i #在行的上面插入新的内容
c #替换
指定字符串替换:s/要被取代的内容/新的字符串/g #指定内容进行替换
-i #对源文件进行修改(高位操作,慎用)
搜索:在文件中搜索内容
-e #表示可以执行多条动作

打印第二行
df -h | sed -n '2p'
	删除第二行(只是删除打印出来的数据)
	df -h | sed '2d'
	
在第二行下插入内容
df -h | sed '2a 123456'

在第二行上插入内容
df -h | sed '2i 123456'

替换第二行
df -h | sed '2c 123456'

把centos-root 替换为 centos7
df -h | sed 's/centos-root/centos7/g'

sed -i 's/centos-root/centos7/g' df.txt(对源文件进行修改)

搜索tmpfs
df -h | sed -n '/tmpfs/p'

执行多条执行
df -h | sed -e's/centos-root/centos7/g' -e 's/tmpfs/temp/g'

Linux常用安装软件服务rpm方式介绍
rpm安装:安装别人编译好的软件包(Redhat Package Manager),是Redhat软件包管理方式
rpm命名规则
apache-commons-cli-1.2-13.el7.noarch.rpm

apache-commons-cli #软件名
1.2 #版本号
13 #发布版本号,rpm包时第几次编译产生的
el7 #代表企业版centos7操作系统

rpm安装
-i #install 安装
-v #输出更多详细信息
-h #输出哈希标记
–nodeps #不验证安装依赖包(不建议使用)
rpm -ivh apache-commons-cli-1.2-13.el7.noarch.rpm
rpm查询:rpm -q
-a #查询所有已安装的软件包 rpm -qa apache
rpm包升级
-U #升级rpm包 rpm –Uvh apache-commons-cli-1.2-13.el7.noarch.rpm
Rpm包卸载:(只写软件包的名称)
rpm –e apache-commons-cli

yum方式安装服务软件
配置本地yum源:
配置文件路径:cd /etc/yum.repos.d/

yum安装使用:
	yum repolist : 列出yum源
	yum clean all:清空缓存
	yum makecache:加载缓存
	yum install zsh:安装软件
	yum remove –y zsh 卸载软件
	yum update zsh:升级软件
	yum info installed zsh :查看安装软件信息
	yum search gcc:查看软件信息

源码编译安装方式:
编译安装过程,可以设定参数,指定安装目录,按照需求进行安装,指定安装版本,灵活性较大,但需要对安装包一个一个进行安装,不敢轻易升级,否则会因为某个依赖包的不能使用导致一系列的连锁反应。
源码编译安装软件四大步骤:

  1. 解压压缩包
    tar –xf 【源码包】
    下载源码包:wget 【网址】
  2. 配置
    进入解压后的目录,用./configure命令来配置相关信息和生成Makefile文件
  3. 编译
    make -j4 (开启四个进程进行编译)
  4. 安装
    make install

配置jdk
全局环境变量配置文件:vi /etc/profile
加载环境变量:source /etc/profile
安装wget命令 yum install –y wget

Shell编程语言介绍
是一种脚本语言,又是一种命令语言,shell脚本就是一系列的命令的集合,可以在Unix/Linux上面直接使用,可以把一些重复性的工作交给shell来做,实现自动化运维。
Shell支持基本的编程元素,例如:if,for,while,case等循环,还有变量,数组,字符串,注释,加减乘除逻辑运算等。

常见的脚本语言:
	Shell,perl,php,Python
Shell脚本编程
	一般是以.sh结尾的文件。
#!/bin/bash 声明解释器,即该脚本是由bash解释执行的

例:

#!/bin/bash
#author:nostalgia
#date:2020-2-27
#function:practice shell !

echo "this is my first shell !"

执行shell脚本:

  1. sh first.sh
  2. 先赋予执行权限:chmod 755 first.sh
    在执行: ./first.sh
    crond服务:以守护进程的方式在无需人工干预的情况下处理着一系列作业和指令的任务
    crond启停命令:systemctl stop crond.service
    systemctl start crond.service
    systemctl status crond.service

crontab定时器使用:crontab [选项]
-l #列出crontab有哪些任务
-e #编辑任务(类似vi编辑器)
-r #删除所有任务

内容格式;

          • 级别 命令
            分时日月周

例如:

* * * * * sh /root/first.sh 每隔一分钟执行一次
0 * * * * sh /root/first.sh 每隔一小时执行一次
0 0 1 1 * sh /root/first.sh 每隔一年执行一次
0 6 * * * sh /root/first.sh 每天6点执行一次
0 */2 * * * sh /root/first.sh 每隔2小时执行一次
10,40 * * * * sh /root/first.sh 每小时的10分,40分执行一次

服务器静态ip地址配置:

网卡配置文件路径:/etc/sysconfig/network-scripts/ifcfg-ens32

1.将虚拟机网络编辑器里nat模式中的DHCP服务取消勾选
	2.将BOOTPROTO=’dhcp’改为static
	3.根据nat模式里的设置添加
	IPADDR=
	GATEWAY=
	NETMASK=
4./etc/resolv.conf 中添加 nameserver 114.114.114.114(下面任意一个都可以),不写第四步,物理机和虚拟机之间可以连通,但虚拟机无法访问外网。
dns解析配置文件路径 /etc/resolv.conf

常用的dns解析服务器地址 nameserver 114.114.114.114
nameserver 8.8.8.8
nameserver 1.1.1.1

给命令取别名:(临时生效)
alias vinet=’vi /etc/sysconfig/network-scripts/ifcfg-ens32’
取消别名:
unalias vinet

vi .bashrc
在.cshrc文件中加入alias vinet=’vi /etc/sysconfig/network-scripts/ifcfg-ens32’则永久生效
加载该文件是它立即生效:source /root/.bashrc

查看主机名:hostname
修改主机名:hostname set-hostname Nostalgia(重启后生效)
之后:vi /etc/hosts
添加:ip地址 admin
就可以在nostalgia 机器执行ping admin

你可能感兴趣的:(Linux)