Linux常见命令

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
Linux 学习


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Linux命令

命令 选项 参数(Linux格式)

1.文件管理

命令如下:

# 文件访问
	ls -l 访问目录  长模式输出
	ls -lt 按照修改时间 (--reverse 相反顺序输出)
	ls -a 查看隐藏文件 (隐藏文件的首位为 .)
	ls /usr
	
	pwd 打印当前目录

# cd(change directory)
	cd 绝对路径 cd /home/yjmmqy (根目录起的路径)
	cd 相对路径 cd ./yjmmqy 	(当前目录起的路径)
	../ 上一级目录
	../../../ 前三级目录
	cd 移动到家目录
	cd -更改工作目录到先前的工作目录
	cd ~ user01 移动到用户家目录
# 创建文件
	touch 路径/文档名
	touch /file.txt
	touch /home/{demo1,demo2,.demo3}   (.文件名是隐藏文件)
	file file.txt  (查看文件具体类型)

# 创建目录
	mkdir 路径/目录
	mkdir dir1 dir2 dir3   创建三个目录
	# 连续创建目录(父目录和子目录一起创建)
	mkdir -p / 
	mkdir dir1
	mkdir /home/dir2 /home/dir3
	mkdir -v /home/{dir4,dir5}  	 (v指的显示创建过程)
	
	mkdir -pv /home/dir8/111/222 	 
	mkdir -pv /home/{yjm/{dir1,111},天下}   (p 父系 v 显示)

# 复制 
	cp  /home/a1/file.txt  /home/a2   (只复制文件)
	cp -r /home/a1/file.txt  /home/a2  (-r 将文件夹也一同复制)

# 移动
	mv /home/a1/file1.txt  /home/a2 
	mv /home/a1/file1.txt  /home/a2/dome1.txt (修改文件名称) 
	mv /home/a2/dome1.txt /home/a2/dome1.txt  (只修改文件名称,并不移动) 

# 删除
	rm -rf /*          */
	rm -rf 强制删除
	rm -rf /home/a1/*           */
	rm -rf /home/a1/a*  (可以将该目录下a开头的文件都删除)
	rm -i file1 dir1
	

# 查看文件内容
	cat /home/demo1.txt     (长文件一下就结束)
	head -5 /home/demo1.txt  (查看头部5行)
	tail -5 /home/demo1.txt  (查看尾部5行)
	more /home/demo1.txt  	 (翻页查看 空格下翻页) 
	grep a /home/demo1.txt  (查看关键字) 

# 修改文件内容
	重定向
	ls / > demo1.txt  (将内容写进文档中)
	gedit  /demo1.txt (图像修改)
# 创建硬链接和符号链接
	ln

# 通配符号
	* 匹配任意多个字符  所有文件
	[[:class:]] 匹配任意一个属于指定字符类中的字符
	[characters] 匹配任意一个属于字符集中的字符
		ls a[characters]来匹配这些文件。这将匹配所有以"a"开头且接着是任意一个字符的文件
	[!characters] 匹配任意一个不是字符集中的字符
	[:alnum:] 匹配任意一个字母或数字
	[:alpha:] 匹配任意一个字母
	[:digit:] 匹配任意一个数字
	[:upper:] 匹配任意一个大写字母
	
	g* 文件名以“g”开头的文件
	b*.txt 以”b” 开头,中间有零个或任意多个字符,并以”.txt” 结尾 的文件
	Data??? 以“Data”开头,其后紧接着 3 个字符的文件
	[[:upper:]]* 以大写字母开头的文件
	[![:digit:]]* 不以数字开头的文件

命令总结


2.Vim 编辑

2.1 Vim一般操作

# 进入vim编辑
vim /home/demo1.txt
	# 修改 i(直接插) o(换行插入) ; 退出编辑 Ese ; 保存并退出 shift + :   wq 
	# 另存为 
	:w /home/a2/aaa.txt 

# 可视化 V

# 文本编辑
	复制 y ; 删除 d ; 粘贴 p ; 撤销 u ; 
	--(hjkl 上下左右)

# 0 $ 行首行尾

# gg G 页首页尾 
	3G 进入指定行位置   

# /符号 (n N 可以循环) 查找字符

# 设置环境
	:set nu 设置行号
	:set nonu 取消设置行号
	:set list 显示控制字符
	:set nolist 取消控制字符
# 查看文件
	less file.txt   允许前后滚动浏览

2.2 Vim自动备份文件

E325 备份文件
	1、 查看隐藏文件 ls -a /  (查看全部文件,swp后缀为备份文件)
	2、 使用rm删除即可

由于服务器报错,会自动备份文件


3. 用户管理

创建 查找 修改

3.1 用户组信息存储文件

#管理
/etc/passwd  (7列字段)
	root : x : 0 : 0 : root :/root:/bin/bash   # 用户名:x: uid: gid: 描述:HOME:shell
	用户名:登录系统的名字
	X:密码占符位
	uid: 用户的身份证号   系统约定 : 0特权用户 ;1~499 系统用户 	1000+ 普通用户
	gid: 组号
	描述:
	/root:登录系统时,所在目录
	shell: 命令解释器(定义 接收 执行) bin/bash  /bin/nologin(用户不允许登录)
	
# 用户信息密码文件
/etc/shadow  (8列字段)	
root:$6$Ilbd9Dr/$h7t/yNT/RWdInxBXCPBYeYAWMxrkTiEBLX.HOfa13jQoOOmBuuJIrW6jQ51fxts/Z8p6JhgiEimf6yJtyJR6Y.:19906:0:99999:7:::
	1用户名: 2加密方式和值: 3最后修改时间: 4最小间隔(两次密码修改的最小时间): 5最大时间间隔(修改密码时间上述无限期: 6:警告时间(密码过期的提示) 7: 不活动时间(用户不登录系统但保留用户信息) 8: 失效时间(账号生命时间)
	
	# $6$ 表示用SHA-512加密 ;$1$ 表明用MD5加密
	口令:存放加密后的用户口令,*代表账号被锁定
	
	!!表示密码过期
		用户感受:需要输入用户名和密码;提示:你的密码已过期,请修改你的密码; 输入框,输入密码
		
# 组信息文件
/etc/group
	root:x:0: 组名: 组密码: 组ID: 组成员
	


3.2 用户/组管理
useradd --help

# 创建用户
	# 未指定项
	useradd   mars1  (Ubuntu存在登陆界面循环问题)
	id mars1 
	passwd mars1  (修改密码)
		/var/spool/mail/mars1  (邮件)
	
	# 指定项
	useradd mars1 -u  (uid) 
	useradd mars1 -d  (directory)  (指定一个目录)
	
	# 删除用户
	userdel  -r mars1  (删除用户信息和文件)
	
	# 修改用户密码
	# cat /etc/passwd  (查找其他存在的用户)passwd 用户信息  shadow 用户
	passwd mars2  (修改其他用户密码)
	
	# 修改用户信息
	usermod -s    
	usermod -s /sbin/nologin mars (不允许登录)
	
# 用户组管理
	groupadd hr 
	groupadd net01 -g 2000   (创建组,组号)
	cat /etc/group 		 	 (查看组)
	grep hr /etc/group  	(查看指定组)
	groupdel net01 			(删除组)
	groupmod -g 1512 DDD     (修改基本组)
	
	# 创建用户 1 产生基本组   (附加组)2 加入其它组
	-G 指定用户的附加组
	-g 指定用户的基本组
	/etc/password 		    (查看基本组)
	/etc/group/ 		    (查看用户附加组)
	groupadd CCC -g 1510     (创建组,组号)
	usermod AAA -g CCC      (修改AAA的基本组号为CCC)
	usermod BBB -G CCC      (修改BBB的附加组号为CCC)
	grep CCC /etc/group
	gpasswd -d BBB CCC 		 (把用户BBB从CCC组移除)
	
# 提权 
	# 永久提权 Switching users with su

	# 临时提权 Running commands as root with sudo (指定部分特权)
	vim /etc/sudoers 
	% wheel ALL=(ALL) NOPASSWD:ALL
	允许wheel用户组中的用户在不输入该用户密码的情况下使用所有命令
	

3.3 基本权限 UGO

# 权限的三类
	属主:u
	属组:g
	其他人:o
	特殊对象:所有人:(u+g+o)
# 权限的三种类型
	读:r=4
	写:w=2
	执行:x=1 (可执行的文件) 目录文件夹都要带执行
# 语法
	chmod (-R 所有权限)对象(u/g/o/a)赋值符(+/-/=)权限类型(r/w/x)文件/目录  
	-rw-r--r-- 1 root root 3576296 2007-04-03 11:05 Experience ubuntu.ogg
	"-" (首部): 表示普通文件
	"1": 表示链接数目
	"3576296": 文件字节数
	-rw-r--r--. root:属主 root:属组 6 212 1649 file  	
	(类型和权限11个)-没有权限 中间九个 第一个链接  6:多少字节
	用户 组  其他人
	rwx  rwx rwx
	u    g    o    a(包含三个对象)
	+:添加权限
	-:去掉权限
	=:覆盖
	ls -l file.txt 查看文件权限
	ls -d 查看文件夹权限
	
	# 数字方式
	chmod 000777) file.txt  7=4+2+1; 6=4+2; 0=0+0+0 
	
# 编写程序 (vim编写)
	# echo " " 输出
	# read  -p "input name:" name(收集信息)
# 改变属主
	chown user.hr  file.txt (该属主 组)
		  用户名:组名 文件 	
	chown user file.txt     (只改属主)
	chown .hr file.txt       (只改属组)
# 改小组	
	chgrp it file.txt (改文件属组)
	chgrp -R file.txt  (-R 递归的意思 对目录修改权限后,目录下的权限都更改)

# 针对hr部门的访问目录设置权限,root用户和hr组的员工可以读写执行
	groupadd hr
	useradd hr01 -G hr
	useradd hr02 -G hr
	mkdir /home/hr
	chgrp hr /home/hr
	ls -dl /home/hr
	chmod 770 /home/hr

3.4 基本权限 ACL

# ACL access control list
	  访问    控制	 列表
	限制用户对文件的访问,对UGO的补充
	
# setfacl -m(添加)(-b移除所有权限)u:user:rwx/g:hr:rwx  /home/file1.txt 
setfacl -x g:hr /home/file.txt  //删除组hr的acl权限
置文件访问	
getfacl /home/file.txt

watch -n1 'ls -l /tmp/file.txt' (实时观察该命令)

3.5 特殊权限

# 特殊位suid (sgid)针对文件/程序,具备临时提升权限
	使调用文件的用户,临时具备属主能力
	chmod u+s /usr/bin/cat (普通用户可以用cat查看root下的文件)
	chmod u-s /usr/bin/cat
# 文件属性chattr
	i 在文件上启动该属性,不能更改、重命名或者删除这个文件
	chatter +i(-i) file1
	a 允许在文件中追加,
# 进程掩码 umask
	新建文件、目录默认权限受到umask影响,表示要减掉权限
	chmod 7777 file   第一位 suid


在这里插入图片描述** 权限777 rwx rwx rwx

4 进程管理

4.1 进程

# 已启动的可执行程序的运行实例,进行有以下组成部分:
文件 内存地址空间 有权限限制 执行线程 状态
# 目标
	## PID 进程号 PPID

	## 当前进程状态  
	R T Z S
		fork (父进程睡眠,子程序运行) exit(退出程序) sleep(休眠) zomble (阻塞) 
		(父进程复制自己的地址空间(fork),创建一个新的子进程结构。每个进程分配一个唯一的PID)

	# 内存分配情况

	# CPU和已花费实际时间

	# 用户UID,决定进程特权

	## 进程名称


# 静态查看进程 ps
	ps aux | head -2
USER  PID %CPU %MEM  VSZ RSS TTY STAT START TIME COMMAND
root   1  5.4  0.2  77812 8648 ? Ss  15:29 0:01 /sbin/init splash
	ps a 显示终端正在运行的程序	
	ps u 以用户为主的格式来显示程序状态
	ps x 
	# 进程父子关系
		ps -ef 
UID    PID  PPID C STIME TTY  TIME      CMD
root    1    0  0 15:29   ?   00:00:01  /sbin/init splash
root    2    0  0 15:29   ?   00:00:00  [kthreadd]
root    4    2  0 15:29   ?   00:00:00  [kworker/0:0H]
	# 自定义显示字段
	ps axo  user,pid,ppid,%mem,command |head -3
	
	
查看内存 free -m 

# 动态查看进程 top
	top -d 1 每秒刷新
	top -d 1 -p 10126 查看指定进程的动态信息
	top -d 1 -p 10126,1 查看101261号进程

top - 16:36:11 up  1:06,  1 user,  load average: 0.00, 0.00, 0.00
程序名:系统时间 运行时间 登陆用户 CPU负载  5分钟 10 15

任务:245 total, 3 running, 176 sleeping, 0 stopped, 1 zombie
	 总进程数    运行数1    睡眠数175      停止数0     僵死数1 

%Cpu(s): 0.2 us, 1.3 sy, 0.0 ni, 98.3 id, 0.0 wa, 0.0 hi, 0.2 si,  0.0 st                  (百分之98.3空闲)
us用户,sy系统,ni优先级,id空闲, wa等待, hi硬件,si软件, st虚拟机 

KiB Mem:4013244 total,1712824 free,1106180 used,1194240 buff/cache
物理内存K total总共4G free空闲1G  userd使用500M cache 缓存硬盘内容 2G

KiB Swap:1942896 total,  1942896 free, 0 used. 2629208 avail Mem 
进程 USER      PR  NI    VIRT    RES    SHR �  %CPU %MEM     TIME+ COMMAND  
交换分区(硬盘的一部分空间,存放常用数据)

# 使用信号控制进程 
	kill -l 列出所有支持的信号  编号 信号名
	kill -9 (-15)
# 进程排序
	ps aux --sort % cpu (以cpu来排序)                     
		
# 进程优先级 nice 
Linux进程调度及多任务,每个CPU在一个时间点上只能处理一个进程,通过时间片技术,来同时运行多个程序

	# 优先级范围和特性  
		-20 19  (优先级越高值越小)
	# 查看进程和nice级别 
		ps axo pid,command,nice --sort=-nice  (排序降序)
	# 启动不同nice级别的进程
		继承父进程nice值(一般默认为0)
		ps axo pid,command,nice | grep sleep  
		nice -n -5 sleep 7000 设置优先级
		sleep 8000 (进程)
		renice -20 3881 (修改进程sleep(PID)优先级值)
		ps aux | grep sleep
	# jobs:查看后台进程
	# fg 1 将进行1调回前台
	# bg 1 将后台进程运行
	
	# 消灭进程 (后台进程)
		kill % 2
		
	# 更改现有进程的nice
	
	# proc 虚拟文件(进程信息) 
		ls /proc
		/proc/cpuinfo   /proc/meminfo  /proc/cmdline 

			

		

在这里插入图片描述## 进程fork过程

4 管道与重定向

4.1 重定向

">" : 将内容直接输入文件中
"FD": 文件描述符,文件句柄,进程使用文件描述符来管理打开的文件
(为了省去冗长的绝对路径)
	0: 键盘只读
	12: 是终端可以理解是屏幕
	3+: 是文件,可读可写
	FD=0,stdin 键盘输入程序  stdout FD=1 
# ls /proc/5912/fd (查看文件fd) 

echo 123 > /dev/pts/0   (pts 虚拟终端)
data 1> /dev/pts/0  (屏幕输出)
	data 1> /dev/pts/1

data >> time.txt (>>追加内容,单>覆盖)

# 邮箱
	mail -s "sssss"   alice(账号)
	按邮件编号:1,即可查看邮件
	按q退出
	# mail -s "sssss"   alice <word.txt
	
# 输出重定向 > 
	进程产生的信息,存放到文件中
	标准正确输出: ls /home > 1.txt
	标准错误输出: ls /aaa 2> 2.txt
	标准混合:             &> 3.txt
	
# 输入重定向 <  (编程时会使用)
	以文本内容,作为进程的标准输入
	chmod +x 111.sh
	./111.sh
	cat 1.conf

4.2 管道

# 管道命令可以将多条命令组合起来,一次性处理复杂的任务
# 进程管道 Piping 
	cat /etc/passwd | grep "root" | head -1 (多条命令叠加)

# tee管道 把输出保留副本
	cat /etc/passwd | tail -1
	cat /etc/passwd |tee file88.txt | tail -1  (复制输出)
	
	cat /etc/passwd | grep "root" | head -1 
	cat /etc/passwd | grep "root" | tee file99.txt |head -1
# 参数传递 xargs (转换格式)
	# cp rm一些特殊命令不服从其他程序
		cat files.txt | xargs rm -rvf
	cat /etc/passwd |grep ntp
	cat /etc/passwd |grep ntp |cut -d: -f1 (-fn 切割第几列)

	
	

5 磁盘管理

5.1 基础知识

# 磁道 扇区 扇面
	
	# 命名:
	SATA(串口):
		/dev/sda  第一块磁盘
			/dev 设备文件目录
			sda 一个文件
			s 代表sata就是串口
			d 代表磁盘
			a 第一块
		/dev/sdb 第二块磁盘
	# 磁盘分区方式
		# MBR 分配几个分区 (支持单块硬盘<2G)
		如超过4个分区,需放弃主分区,改为扩展分区和逻辑分区

	# GPT 分区表 超2T硬盘

# 添加硬盘( 关机状态下 )
	# 查看磁盘 ll -/dev/sd*
		lsblk(列出块状设备)查看分区
		
	
	# 分区(MBR)
		fdisk /dev/sdb 
		进入会话模式:欢迎使用 fdisk (util-linux 2.31.1)。
			更改将停留在内存中,直到您决定将更改写入磁盘。
			使用写入命令前请三思。
			设备不包含可识别的分区表。
			创建了一个磁盘标识符为 0x9aa215f9 的新 DOS 磁盘标签。
		命令: n
		Partition type:
			p primary(0 primary,0 extended, 4 free)
			e extended
		Select(default p): p
		分区编号(1-4,默认1: 1
		起始扇区:默认
		last 扇区 : +1G (分盘)
			创建了一个新分区 1,类型为“Linux”,大小为 1 GiB。
		命令(输入 m 获取帮助): w  (保存分区信息)
			分区表已调整。
			将调用 ioctl() 来重新读分区表。
			正在同步磁盘。	
		***(可以继续分区)
		
		# 分区准备	
			partprobe /dev/sdb 
		# 查看新分区
			fdisk -l /dev/sdb

	# 格式化/文件系统 Filesystem 
		mkfs.ext4 /dev/sdb1	 (分区格式化)
			make file system extend4  /dev/sdb1 第一块串口硬盘的第一个分区,准备格式化
			
	# 挂载/mount
		mkdir /mnt/disk1
		mount -t ext4 /dev/sdb1 /mnt/
		df -hT 查看挂载信息   (分区 文件系统 大小 占用 空闲 占比 挂载点) 
			/dev/sdb1      ext4      974M   24K  907M    1% /mnt/disk1
		cp -rf /etc/ /mnt/disk1/ (验证变化)
		mkfs.ext4 /dev/sdb2 (mkfs -t ext4 /dev/sdb2)
		mkdir /mnt/disk2
		mount -t ext4 /dev/sdb1 /mnt/disk2
		umount 卸载挂载

	# 扩展分区,放弃一个主分区作为扩展分区 (逻辑分区数量不限制)
		
	# 创建磁盘 挂载
	fdisk /dev/sd*
	partprobe /dev/sdb 
	fdisk -l /dev/sdb
	mkfs.ext4 /dev/sdb2 (mkfs -t ext4 /dev/sdb2)
	mkdir /mnt/disk1
	mount -t ext4 /dev/sdb1 /mnt/disk1	
	
	# 格式化 swap
	mkswap /dev/sdd2
	swapon /dev/sdd2  (这部分再学习下)

5.2 交换分区管理 Swap

作用: 提升内存容量,防止溢出
# 放热点数据  大小为内存的2倍, 16G内存,10G左右交换空间.

	t 修改类型,选择82 Linux swap/Solaris
	ll /dev/sdc  (查看)
	mkswap /dev/sdc1 (格式化)
	swapon /dev/sdc1 (挂载) swapoff /dev/sdc1
	free -m 查看内存

在这里插入图片描述两者不能同时存在(挂载相当于给了一个去磁盘的链接
1-5为sdb的文件,6-10为sda的文件)

5.3 逻辑卷LVM

物理硬盘-> 变成物理卷-> 加入卷组-> 在卷组中,抽取空间,制作逻辑卷-> 格式化-> 挂载
# 创建 LVM
# PV 物理卷
	将物理盘,转为物理卷
	# pvcreate /dev/sdd

# VG 管理 (卷组)
	# vgcreate vg1 /dev/sdd
	
# LV 扩容 (逻辑卷)
	# lvcreate -L 200M -n lv1 vg1
		-L 大小  -n 卷名  vg1 组名
# mkfs.ext4 /dev/vg1/lv1  			(格式化)
# mkdir /mnt/lv1					(创建挂载点)
# mount /dev/vg1/lv1 /mnt/lv1		(挂载)

首先扩卷组,再扩逻辑卷

# 扩大卷组
	# pvcreate /dev/sde
	# vgextend vg1 /dev/sde
	# lvextend -L +2G /dev/vg1/lv1
	# df -hT
	# resize2fs /dev/vg1/lv1  (刷新文件系统)
	

5.4 磁盘卸载










5.5 存储管理高级

# 文件系统详解(ext4文件系统)
	分区 创建空间
	格式化 创建文件系统
	挂载 找一个入口进入磁盘
	# 索引文件系统
		# inode 128 bytes)
			ll -i 文件名
			记录文件的属性,大小、权限、属主、属组、连接块、块数量、块编号
			df -i |grep sdd
		# block 
			存储文件的实际数据,文件较大会占用多个block,大小4K
		# superblock 
			block与inode 的总量 ,使用和未使用的数量
# 文件链接
	# 符号链接
		symbolic link/软链接	
		创建一个文件:echo 111 > /file1
		创建一个软链接: ln -s /file1 /home/file11(/root/桌面/file11)
		观察软链接: ll /home/file11 (l 链接文件)
		查看两个文件: cat /home/file11 
		删除源文件:rm -rf /file1
		
		
	# 硬链接	
		echo 222 > /file2
		ln  /file2 /file2- h1
		ls -l /file2 /file2- h1
		ls -l /file2 /file2- h1  /file2- h2  /file2- h3
		硬链接 删除源文件,还保留文件

RAID

RAID0   RAID1  RAID5
# 软RAID
	创建RAID ->  格式化,挂载 -> 查看RAID信息 -> 模拟一个块硬盘损坏,并移除 -> 设置RAID 开机生效
	# RAID5 (三块数据盘) + (1块热备盘)  + (校验)
		ll  /dev/sd*
	# 创建RAID 
		mdadm -C /dev/md0 -l5 -n2 -x1 /dev/sd{d,e,f,g}
		-C 创建RAID; /dev/md0 第一设备名称; -l5 RAID5 ;-n RAID 成员数量
		-x 热备磁盘的数量  
	
	# mkfs.ext4 /dev/mod0
	# mkdir /mnt/raid5
	# mount  /dev/md0 /mnt/raid5/etc1
	# df -hT
	# mdadm -D /dev/md0
	# mdadm /dev/md0 -f /dev/sde -r /dev/sde    (去掉数据盘)
	

5.4 磁盘卸载




6 文件管理

6.1 文件查找

# which :命令查找
	which ls (直接跟命令) 应用程序的找出所在文件夹
	# alias yjm='ls -- color=auto - l'  代替ls (修改)
# find: 文件查找,针对文件名
		命令 路径 选项 表达式 动作
	# 根据文件名
	find /etc/ - name '123.txt'  (iname忽略大小写)
	find /etc/ -iname "hos*"
	
	# 根据文件大小
	find /etc -size 5M   -5M +5M 小于 大于

	# 按照目录深度(几级目录)
	find / -maxdepath 2 -a -name ifcfg- en*   

	# 按属主
	find /home -user jack
	fing /home -group hr 
	ls -l -d ./1.txt /tmp /dev/sda /dev/cdrom
	
	# 按照文件类型
	find /dev/ -type f  普通
	find /dev/ -type b	设备
	find /dev/ -type l  链接

	# 按照文件权限
	find . -perm 644 -ls (限制长输出)
	find . -perm 
	
	# 找到后的动作
	find /etc -nmae "775*" -delete		(删除)
	find /etc -name "775*"  - ok  cp -rvf {}	/tmp \;(复制)
	

6.2 文件压缩与解压

# tar - f 1.tar /etc
	选项 压缩包名称 源文件
# tar -cf etc.tar /etc

# tar -czf etc- gzip.tar.gz /etc   z是gzip ,压缩包名称中有压缩方式
	tar -cjf - etc.tar.bz /etc
	tar -cJf - etc.tar.xz /etc
	ls -lh | grep etc
# tar -xf 111 (解压)
	tar -cf
	tar -tf etc.tar
	tar xf etc.tar.xz
	tar -xvf etc.tar.bz -C /tem  //-C 压缩到指定位置

7 软件管理

# RPM 包管理  
	# YUM 工具	(自动处理依赖关系,并一次安装所有依赖软件包,指定服务器自动下载RPM包并安装)
		YUM 本地
	# 系统安装光盘(本地源)
	0 观察YUM核心配置目录
		/etc/yum.repos.d/
		*.repo
		
	1 删除官方YUM库
		mv /etc/yum.repos.d/  /tmp
		
	2 编写本地YUM库配置文件
		# mkdir /mnt/cdrom
		
		# vim /etc/yum.repos.d/dvd.repo
			[dvd]
			name=dvd1
			baseurl=file:///mnt/cdrom
			gpgcheck=0
			ebable=1 (开关)
			
			[cvc]
			name=dvd1
			baseurl=file:///mnt/cdrom
			gpgcheck=0
			ebable=0
			
		
			
		
	3 挂载安装光盘
		mount /dev/cdrom /mnt/cdrom/
		(开电源,虚拟机下标小光盘)
		vim /root/.bashrc
	4 使用YUM安装和卸载程序
		yum install -y httpd			安装软件
		systemctl start httpd			启动软件
		systemctl stop firewalld		关闭防火墙
		systemctl disable firewalld 	禁用防火墙		

	5 模拟客户机访问	
h
# 阿里源
	# 清理原来配置
	# 下载阿里开源镜像站
		wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
		wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
		makecache (更新库)
		yum repolist
		



# YUM 管理RPM 包
	# 安装
		全新安装: yum -y install httpd vsftpd  (后面两个软件包)	
		重新安装: yum -y reinstall httpd
		升级安装: yum -y update httpd
	# 查询安装包(带@ 说明已经安装)
		yum list httpd
	# 移除软件包
		yum -y remove httpd	

# RPM 工具 (无法处理依赖)
	cd /mnt/cdrom/Packages
	rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm  (直接安装)
	rpm -q wget 	(查询软件包)
	rpm -evh wget 	(卸载软件包)
	
	

# 源码包管理
	umount /dev/cdrom
	mount /dev/cdrom /mnt/cdrom/
	# 安装编译器
		yum -y install gcc make zlib-devel pcre pcre-level openssl-devel
	# 解压
		tar xf tengine-2.3.2.tar.gz	
	# 配置
		cd tengine-2.3.2/
		./configure  --user=www  --prefix=/usr/loca/nginx
		用户 组 功能模块 
	# 编译
		make
	# 安装
		make install
	# /usr/local/nginx/sbin/nginx
		

8 任务计划

8.1 计算任务

# 一次调用执行
# at + 
	now +5min
	teatime tomorrow
	noon + 4 days
# at> useradd uuu
# ctrl + D	

# 循环调度执行 
# cron 
	systemctl status crond.service
	ps aux | grep crond
	
	
# ls /var/spool/cron/
	# crontab -e Edit jobs for the current user
		*****(time)command
		*mintue * hour * day of month * month * day of week OR sun,mon,tue,wed,thu,fri,sat
		# 实例
		15 1 15 * *  /mysql_back.sh
			* 代表每天 or 每月 or 每年
			*/5 每隔五分钟
		20 2 1,2,5 * * (每月的125日的2点执行)
		30 2 1-5 * *   (每月15日)
		40 * * * * (每小时的整点)
		500 02 * * * 
				

	# crontab -l List the jobs for the current user
		
	# crontab -r Remove all jobs for the current users
	

8 日志管理

# rsyslogd 系统日志管理   
	ps aux | grep rsyslogd 
http/nginx/mysql

# 常见的日志文件(系统、进程、应用程序)
	tail -10 /var/log/messages   // 系统主日志文件
	tail -f /var/log/messges 	//动态查看日志文件尾部
	tailf /var/log/secure  		// 认证、安全
	tail /var/yum.log		// yum
	tail /var/log/cron 		// crond 、at
# rsyslogd 配置
	yum install rsyslog logrotate 
	systemctl start rsyslog.service
	rpm -qc rsyslog	//  config
		/etc/rsyslog.conf			//主配文件
		*.emerge  设备 级别 位置
		/etc/sysconfig/rsyslog		// 
		/etc/logrotate.d/syslog		// 日志轮转
		
	# RULES (rsyslog.conf)设备 级别 位置
		
	# grep Faciltiy /etc/ssh/sshd_config
			LOG_SYSLOG
			LOG_AURHPRIV  安全认证
			LOG_FTP 文件服务 
	# 级别 
		LOG_EMERG 紧急
		LOG_INFO 标准信息
		LOG_DEBUG 调试 
		
	# 修改配置文件规则后 重启
		systemctl restart rsyslog
		kill -1  1284 // 进程重新加载	

# logrotate (日志轮转)
	# 按照配置轮转
	/etc/logrotate.conf  //主文件,决定日志文件如何轮转
	/etc/logrotate.d/*  (*/)   //子文件夹(自定义文件)
	
	see man logrotate for detials  //详细日志信息 
	rotate log files weekly 
	rotate 5 //保留几份
	create    //轮转后创建新文件
	dateext		//使用日期作为后缀
	include /etc/logrotate.d  //包含该目录下的子配置文件
	
	/var/log/wtmp  //对某日志文件设置轮转的方法
	{  monthly  //每月轮转一次
		minsize 1M //大小达到1M
		create 0064 root utmp  // 轮转后创建新文件
		rotate 1 //保留一份/var/log/btmp{
		missingok  //丢失无提示
		monthly		//每月轮转
		create 0600 root utmp //轮转后创建新文件,并设置权限
		rotate 1
	}	
	# 实例
		# vim /etc/logrotate.d/yum
		# 	/var/log/yum.log  //对某日志文件设置轮转的方法
	{  yearly //每年轮转一次
		missingok 
		notifempty   // 空文件也要轮转 
		maxsize 30K //大小达到30K ,daily or size
		create 0600 root root  // 轮转后创建新文件, 用户 组
		rotate 1 //保留一份/usr/sbin/lograotate /etc/logrotate.conf //动手轮转
	
	date 04011000  //时间戳
	/usr/sbin/lograotate -s /var/lib/logrotate.status /etc/logrotate.conf
	ls /


在这里插入图片描述

9 网络管理

9.1 网络配置

# 网络接口名称规则
	网络适配器 交换机NAT
	# 设置网络适配器	
	# 打开网卡
	# IP设置
	
	# 认识网卡
	# 查看网卡
		ls /etc/sysconfig/network- scripts/
			ifcfg-ens33
		
		# 备份
		cp /etc/sysconfig/network-scripts/ifcfg-ens33	/tmp

	# 查看服务是否运行
		systemctl status NetworkManager  //总程序
		system status network			//子程序
	# 配置网络工具
		vim /etc/sysconfig/network- scripts/ifcfg-ens33
		nmcli device	yum -y install NetworkManager
		# 图形界面
			nm-connection-editor
			nmtui 
	# 配置IP 
		配置网卡信息
		cp /etc/sysconfig/network-scripts/ifcfg-ens33	/tmp
		vim /etc/sysconfig/network-scripts/ifcfg-ens33
		
		ONBOOT=yes	//是否启用该设备
		BOOTPTOTO=none	//手动(none/static) 还是自动(dhcp)
		IPADDR=192.168.91.133
		NETMASK=255.255.255.0
		GATEWAY=10.18.43.1
		DNS1=8.8.8.8
		DNS2=114.114.114.114
		# 网卡信息
		NAME="ens33"
		UUID="8b6ec686-a678-4a52-b69d-4b413ecbce9a"
		DEVICE="ens33"
		systemclt restart network   //配置完重启网络
		# 查看本机自动IP
			ip a
			ip route  //查看网关
			ip neigh  //另一台主机ping,查看邻居
			ping 192.172.186.12
		# 查看主机名
			hostnamectl set-hostname yjm
			cat /etc/hosthome
			vim /etc/hostname	
			reboot
		# 网络测试工具
			ports and service
			# Show TCP sockets
				ss -tnl  //查看端口号检验
				State Recv-Q Send-Q
				netstat -anpt
		# 初始化服务器
			最小化安装
			1、为服务器配置root密码
			2、配置IP地址(VMNAT8)
			3、配置YUM源
				* 能上网配置阿里源
			4、关闭防火墙
			5、selinux
			6、安装常用程序
			7、关机快照


9.2 网络管理实践










在这里插入图片描述IP地址

10 文件管理

10.1 文件服务

# FTP  (文件传输协议)
	vsftpd
		yum list | grep vsftp
		yum -y install vsftp
		# 分发文件
			touch /var/ftp/abc.txt
			vim /var/ftp/abc.txt

		# 启动服务
			systemctl start vsftpd
			systemctl enable vsftpd
		# 关闭防火墙
			systemctl stop firewalld
			systemctl disable firewalld
			setenforce 0
			vim /etc/selinux/config
		#  
			systemctl start vsftpd
			systemctl enable vsftpd		
		
		#  lftp 访问客户端
		
			yum -y install lftp
			lftp ip
			ls
			get abc.txt
			mirror pub
	# wget 	
			ls /var/ftp/ (在ftp目录的文件)
			wget ftp://192.168.142.132/pub/333.txt -0 /home/12.txt
			wget -m http://  
			     
	# 启动上传功能
		# 客户机
		touch 5.txt
		echo hello1 > 5.txt
		vim /etc/vsftpd/vsftpd.conf
		# anonymous_enabe=YES   // 启用匿名账号
		anon_upload_enable=YES	// 启动上传
		anon_mkdir_write_enable=YES
		mkdir /var/ftp/upload   // 创建独立文件夹
		chmod 777 /var/ftp/upload    // 授权
		
		lftp 192.168.91.133
		cd upload/
		put 5.txt
		
		# 服务器
		lftp 192.168.91.133
		cd upload
		put 2.txt
		mkdir 222
		mirror -R aaa


# NFS
	nas 192.168.142.133
	web1 192.168.142.130
	web2 192.168.142.131
	web1 web2  // 客户端
	nas  //存储端
		yum -y install nfs-utils
		mkdir /webdata  // 存储网站代码
		echo "nfs test" > /webdata/index.html  // 放置测试页面
		vim /etc/exports
		/webdata 192.168.142.0/24(rw)
		# 启动
		systemctl start nfs-server
		systemctl enable nfs-server	// 开机自启
		exportfs -v // 检查
	# 客户端
		yum -y install nfs-utils

		mount -t nfs 192.168.142.133:/webdata /var/www/html/
		umount /var/www/html/  // 取消挂载
		
		yum -y install nfs-utils httpd
		systemctl start httpd
		systemctl enable httpd
		
		# 查看存储端共享
			showmount -e 192.168.142.133  //查看NFS服务器可用目录
			Export list for 192.168.142.133:
			/web/data 192.168.142.0/24
			mount -t nfs 192.168.142.133:/webdata /var/wwww/html/
			cat /var/www/html/index.html
		# 查看挂载
			df
			ls /var/www/html/
		# 其他客户端查看
			elinks http://192.168.142.132
	# 重新配
	yum -y install nfs-utils
	yum -y install nfs-utils httpd
	systemctl start httpd
	systemctl enable httpd
	mount -t nfs 192.168.142.133:/webdata /var/www/html/
	ls /var/www/html/

echo 2222 >  /webdata/index.html  //nas 修改内容

# SSH

ssh root@ 192.168.142.132  






总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值