Linux笔记,基于CentOS7(使用阿里云SEC云服务器)

Linux
这东西是个开源的操作系统
这东西贼他妈稳定,而且高并发处理及其强劲,不收费还很安全
Linux是Unix的一个版本
Linux所有东西都是用文件来表示的,包括用户,硬件都是,比如CPU,网卡,这些在linux中都是一个文件

一、准备工作与概念(根据视频学习)

1、根据视频安装虚拟机和CentOS操作系统

视频教程
https://www.bilibili.com/video/BV1dW411M7xL?p=8

2、CentOS的Linux目录结构

/根目录
	➢/bin ([重点] /us/bin、/us/oca/bin)
		是Binary的缩写,这个目录存放着最经常使用的命变
	➢/sbin /usr/sbin 、/us/loca/sbin)
		s就是Ssuper User的意思,这里存放的是系统管理员使用的系统管理程序。
	➢/home [重点]
		存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
	➢/root [重点]
		该目录为系统管理员,也称作超级权限者的用户主目录。
	➢/lib
		系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的LL文件。几乎所有的应用程序都需要用到这些共享库。
	➢/lost+found
		这个目录一 -般情况下是空的,当系统非法关机后,这里就存放了一些文件。
	➢/etc[重点]
		所有的系统管理所需要的配置文件和子目录myconf
	➢/usr [重点]
		这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的programfiles目录。
	➢/boot[重点]
		存放的是 启动Uinux时使用的一些核心文件,包括一些连接文件以及镜像文件
	➢/proc
		这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息。
	➢/srv
		service缩写,该目录存放一些服务启动之后需要提取的数据。这是linup2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs 。
	➢/tmp
		这个目录是用来存放一些临时文件的。
	➢/dev
		类似于windows的设备管理器,把所有的硬件用文件的形式存储。
	➢/media[重点]
		linux系统会自动识别一些设备,例如u盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
	➢/mnt[重点]
		系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了.
	➢/opt
		这是给主机额外安装软件所摆放的目录。如安装ORACLE数据库就可放到该目录下。默认为空。
	➢/us/local [重点]
		这是另一个给主机额外安装软 件所安装的目录。-般是通过编译源码方式安装的程序。
	➢/var[重点]
		这个目录中存放着在不断扩 充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件。
	➢/selinux
		SELinux是一种安全子系统,它能控制程序只能访间特定文件。

3、常用工具:远程操控工具XShell和文件上传下载管理工具XFTP

如果你不想消费买激活码,或者不会破解,可以选用putty和winSCP,免费的
免费版下载地址
https://www.netsarang.com/zh/free-for-home-school/

在这里插入图片描述

想要用软件控制到Linux,需要你的Linux开启SSHD服务的22号端口

二、VI和VIM,关机和重启(根据视频学习)

VIM是VI的升级版,有代码高亮显示

1、VI和VIM的三种模式

正常模式
	在正常模式下,我们可以使用快捷键。
	以vim打开一个档案就直接进入-般模式了(这是默认的模式。在这个模式中,你可以使用[上下左右」按健来移动光
	标,你可以使用[删除字符」或[册除整行」来处理档案内容,也可以使用[复制、粘贴]来处理你的文件数据。
插入模式/编辑模式
	在此模式下,程序员可以输入内容。.
	按下i,I,o,O.a. A.r, R等任何一个字母之后都会进入编辑模式. 一般来说按i即可
命令行模式
	在这个模式当中,可以提供你相关指令, 完成读取、存盘、替换、离开vim、显示行号等的动作则是在此模式中达成的!

在这里插入图片描述

详细使用看博客
https://www.cnblogs.com/junwen5599/p/9996873.html

2、关机合重启命令

shutdown -h now		立该进行关机
shudown -h 1		"hello, 1分钟后会关机了"
shutdown -f now		现在重新启动计算机
halt				立刻关机,作用和上面一样.
reboot				现在重新启动计算机
sync				把内存的数据同步到磁盘.
注意细节:
	不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中

3、用户登陆和注销

1)登录时尽量少用root帐号, 因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用”su-用户名”命令来切换成系统管理员身份.
2)在提示符下输入logout即可注销用户(退出登陆,不是销毁用户)
使用细节:
1) logout 注销指令在图形运行级别无效,在运行级别3下有效.
2)运行级别这个概念,后面给大家介绍

三、用户管理

概念
Linux系统是多用户多任务操作系统,任何一个用户,都需要先向管理员申请一个账号,然后才能用账号进入系统
Linux的每个用户都至少属于一个组
因为Linux有万物皆文件的概念,所以,每个用户都对应到/home/目录下的一个文件夹
组和/home/下文件夹不是一个概念,组是分组,而文件夹代表用户实体
如果你单单创建用户,不指定分组和文件夹,那么默认按用户名创建同名文件夹和组

1、添加用户设置密码

一、不指定文件夹
	useradd 用户名
		这里没有指定文件夹,所以会自动按照你的用户名在home目录下创建一个同名文件夹
二、指定文件夹
	useradd -d 目录 用户名
		这里指定的目录,那么这个用户就会被分到这个目录中
三、给指定用户添加密码(修改密码也是这个命令)
	passwd 用户名
四、常用指令
	cd 路径		:	切换目录
	mkdir 名字  :  在当前路径下创建一个指定名字的目录
	ll			:  显示当前目录所有文件和详细信息
	ls			:  像素当前目录所有文件

在这里插入图片描述
在这里插入图片描述

2、删除用户

必须是root根用户才可以使用删除权限
一、删除用户而不删除文件夹(组)
	userdel 用户名
		删除指定用户
二、删除用户同时删除文件夹
	userdel -r 用户名
		同时删除指定用户和其所在文件夹

在这里插入图片描述

3、用户基本操作

一、查询指定用户信息
	id 用户名
		查询用户信息,没有返回无此用户
		其中uid代表用户id,pid代表其所在组id,groups代表所在组名称
二、切换用户
	su - 切换用户名
		我们操作系统时,如果权限不够,则需要切换用户
		高权限用户切换到低权限用户无需输入密码
		低权限切换高权限需要密码
	exit
		切换回原来用户
三、查看当前用户
	whoami/who am i
		whoami 只显示用户名
		who am i 显示详细信息

在这里插入图片描述在这里插入图片描述在这里插入图片描述

4、用户组

类似于角色,系统可以对有共性的多个用户进行统一管理
一、创建组
	groupadd 组名
		添加一个指定名字的组
二、删除组
	groupdel 组名
		删除指定组
三、添加用户时指定组
	useradd -g 用户组 用户名
		创建用户到指定组,如果不指定,前面已经说过了,会自动创建一个同名组
四、修改用户组
	usermod -g 新用户组 用户名
		将指定用户的组,改为新指定的用户组

5、用户和组的相关文件

/etc/passwd
	用户的配置文件,记录用户的各种信息
	每行含义,用户名:口令:用户表示号:组标识号:注释性描述:主目录:登陆Shell
/etc/shadow
	口令的配置文件
	每行的含义,登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group
	组(group)的配置文件,记录Linux包含的组的信息
	每行含义,组名:口令:组标识号:组内用户列表

四、实用指令

1、指定运行级别

一、Linux系统7个运行级别
	0:关机
	1:单用户(找回丢失密码)
	2:多用户五网络服务
	3:多用户有网络服务
	4:保留
	5:图形界面
	6:重启
二、运行级别配置文件
	/etc/inittab
三、指定运行级别
	init 级别
		切换到指定运行级别
四、进入单用户找回密码
	进入到单用户模式后,root不需要密码即可登录,这时可以重新设置root密码

2、帮助指令

一、获取帮助信息
	man 命令或配置文件
		查看指定命令或配置文件的帮助信息
	help 命令
		查看指定命令的帮助信息

3、文件目录类指令

/代表根目录,cd / 就是切换目录到根目录,cd  /home/ 就是去往绝对路径 根目录下的home目录中
一、查看目录信息
	pwd
		显示当前工作目录的绝对路径
	ls	[选项] [目录或文件夹]
		查看当前目录或指定文件和目录的信息内容
		选项
			-a :显示当前目录所有文件和目录,包括隐藏的
			-l :以列表方式显示信息
		举例:
			ls -l :以列表方式显示当前目录下所有文件
			ls -al:一列表方式显示当前目录下所有文件包括隐藏文件
			ll:ls -l简写形式
二、切换
	cd [参数]
		切换到指定目录
		常用参数
			绝对路径或相对路径:直接切换到对应路径
			~ 或 不指定参数 :自己回到自己的家目录,就是/home/里面你的用户目录
			.. :回到当前目录的上一级
三、创建目录
	mkdir [选项] 要创建的目录	
		创建指定目录
		常用选项
			-p :创建多级目录
		举例
			mkdir /home/test
				在home下创建一个目录test
			mkdir -p /home/test/test_child
				在home下创建test并在test中创建test_child
				多级目录必须指明-p,否则会创建失败
		
四、删除目录
	rmdir [选项] 要删除的空目录(注意是空的)
		删除指定空目录,非空目录无法删除
	rm -rf 要删除的目录
		删除指定非空目录
五、创建文件
	touch 文件名称
		创建一个空文件
		举例
			touch 1.txt 2.txt
				创建1.txt和2.txt两个空文件
六、拷贝指令
	cp [选项] source dest
		拷贝文件到指定目录
		参数
			source :你要拷贝的源文件
			dest:你要拷贝的目标目录
		常用选项
			-r :递归复制整个文件夹,简单说就是带上这个参数可以拷贝文件夹,不带只能拷贝文件
		举例
			cp aaa.txt /home/bbb
				拷贝当前目录aaa.txt文件到bbb文件夹下,bbb文件夹必须先存在
			cp -r bbb /
				拷贝当前目录下的bbb目录到根目录下
			前期如果你找不准目录,可以先用cd进入目录,然后pwd看看是否正确,确保无误后在执行cp命令
七、删除指令
	rm [选项] 要删除的文件或目录
		删除指定文件或目录
	常用选项
		-r:递归删除整个文件夹
		-f:强制删除不提示
八、移动和重命名指令
	mv 要重命名文件 重命名后的名字
		将要重命名的文件重名名
	mv 要移动的文件
		将文件移动到当前目录
	你需要先进入到某个文件夹,如果你想重命名,就进入到内个文件所在文件夹,然后执行mv指令,就会执行重命名
	如果你想将某个文件移动到home文件夹,就进入到home文件夹,然后执行mv 要移动的文件,就会将文件移动过来
九、查看文件内容
	cat [选项] 要查看文件
		以只读的方式查看指定文件
		选项
			-n :显示行号
		举例
			cat -n /etc/profile | more
				以只读并且显示行号而且要分页的形式打开文件 | more 是后面的知识点,这里作用就是分页显示文件,按空格换页
	more指令
		一个机遇VI编辑器的文本过滤器,一全屏方式按页显示文本文件内容
		快捷键和指令
			空格:向下一页
			Enter:向下一行
			q:立即离开
			Ctrl+F:向下滚动一屏
			Ctrl+B:向上一屏
			*:输出当前行行号
			:f :输出文件名和当前行行号		
		more /etc/profile
	less指令
		功能和more一样,但是less指令显示文件时,不是一次性加载所有内容显示,而是根据显示需要加载内容
		快捷键和指令
			空格 :向下一页
			/字符串 :向下查找字符串,n向下,N向上
			?字符串:向上查找,n向上,N向下
			q:退出
十、>指令(输出重定向)和>>指令(追加)
	ls -l>文件	: 将列表的内容写入文件a.txt(覆盖写)
	ls -al>>文件: 将列表内容追加到文件aa.txt的末尾
	cat 文件1>文件2 : 将文件1的内容覆盖到文件2
	echo “内容”>>文件: 将内容写进文件
十一、将文件内容输出到控制台
	echo [选项] [输出内容]
		输出内容到控制台
		举例
			echo $PATH
				输出Linux系统环境变量
			echo “hello”
				输出hello到控制台		
	head 文件
		显示文件开头部分,默认为前10行
	head -n 5 文件
		查看文件前5行内容,要看6行就写6,看几行就写几
		举例
			head -n 5 /etc/profile
				输出文件前5行内容
	tail 文件
		显示文件尾部内容,默认后10行
	tail -n -5 文件
		显示文件后5行
	tail -f 文件
		实时追踪该文档的所有更新
十二、快捷方式
	ln -s [源文件或目录] [软连接名]
		符号链接,windows中的快捷方式和其有异曲同工之妙
十三、历史命令
	history
		查看已经执行过的历史命令,或者执行历史命令
		举例
			history
				显示所有历史命令
			history 10
				显示最近10个历史命令
			! 历史命令编号
				执行指定编号历史命令,编号使用history可以查到	

4、时间日期类指令

一、显示时间
	date
		显示当前时间
	date +%Y
		显示当前年份
	date +%m
		显示当前月份
	date +%d
		像素当前是哪一天
	date +%Y-%m-%d %H:%M:%S
		根据指定格式显示年-月-日 时:分:秒
二、设置时间
	date -s 字符串时间
		设置系统当前时间,比如2020-7-8 11:22:22
三、日历
	cal [选项]
		显示指定日历
	cal
		显示当前日历
	cal 2020
		显示2020年日历

5、搜索查找类指令

一、find指令
	从指定目录下递归地遍历器各子目录,将满足条件的文件和目录显示在终端
	find [搜索范围] [选项]
		选项
			-name 文件名 :根据文件名查找
			-user 用户名   :查找属于指定用户的所有文件
			-size 文件大小 :按文件大小查找
		举例
			find /home -name yzpnb.txt
				查找home目录下 名字为yzpnb.txt的文件
			find /home -user yzpnb
				查找home目录下 属于yzpnb用户的文件
			find /home -size +20M
				查找 home目录下,文件大小大于20M的文件(如果你不加+号,会查找20M的文件,如果你用-号,会查找小于20M的文件)
二、locate指令
	快速定位文件路径,利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询数的块,为了查询准确,管理员应该定期更新locate时间
	由于locate指令基于数据库查询,所以第一次运行前,需要使用updatedb指令创建locate数据库
	locate 搜索文件
		搜索文件
三、管道符号|
	管道符| 表示将前一个命令的处理结果输出传递给后面的命令处理
四、grep指令,过滤查找
	grep [选项] 查找内容 源文件
		过滤找出源文件中指定的查找内容
		选项
			-n:显示匹配行及行号
			-i:忽略字母大小写
		举例
			grep yes hello.txt
				查询出当前目录中hello.txt文件中的yes字符串
			cat hello.txt | grep yes
				先以只读方式显示hello.txt内容,然后通过管道符号|将输出传递给grep yes处理,获取输出结果中的yes字符串
			grep -n yes hello.txt
				查询当前目录中hello.txt文件中包含yes字符串的一整行和行号 

6、压缩和解压类指令

一、gzip(压缩)和gunzip(解压)指令
	gzip 文件
		将文件压缩为.gz文件
	gunzip .gz文件
		将指定文件解压
二、zip压缩和unzip解压指令
	项目打包发布中很有用
	zip [选项] xxx.zip
		压缩文件和目录
		常用选项
			-r :递归压缩,压缩目录
		举例
			zip -r test.zip /home/
				将home文件中所有内容包括子目录文件全部压缩到test.zip
	unzip [选项] xxx.zip
		解压缩文件
		常用选项
			-d 目录 :指定解压后文件的存放目录
		举例
			unzip -d /home/test/ test.zip
				将test.zip所有文件解压到home中的test目录下
三、tar指令
	打包指令,将文件打包为.tar.gz文件,解压也是解压.tar.gz文件
	tar [选项] xxx.tar.gz 要打包的内容
		将指定内容打包到xxx.tar.gz包中
		常用选项
			-c 产生tar打包文件
			-v 显示详细信息
			-f 指定压缩后文件名
			-z 打包同时压缩
			-x 解压
		举例
			tar -zcvf test.tar.gz test1.txt test2.txt
				将当前目录下test1和test2文本文件,打包成test.tar.gz文件,并显示详细信息,同时压缩
			tar -zxvf test.tar.gz
				将test.tar.gz解压到当前目录
			tar -zxvf test.tar.gz -C /home/testtar/
				将test.tar.gz解压到home下testtar目录(目录要确保已存在)

五、组管理和权限管理

1、组管理

linux中每个用户必须属于一个组,不能独立与组外,在linux中每个文件有所有者、所在组、其他组的概念
比如现在有一个小明创建的文件,那么这个文件所有者就是小明,所在组就默认是小明所在组,当然可以改变到其它组
一、文件或目录所有者
	文件的创建者自然成为该文件所有者
	1、查看文件/目录的所有者
		ls -ahl
			显示文件,并显示文件所有者(a代表所有,h代表排版好看,l代表列表形式)
	2、修改文件所有者
		chown 用户名 文件名
			修改指定文件的所有者为指定用户
二、文件或目录所在组
	用户创建一个文件后,文件所在组就是用户所在组
	1、查看文件/目录所在组
		ls -ahl
			显示文件,并显示文件所在组
	2、修改文件所在组
		chgrp 组名 文件名
			修改指定文件所在组为指定组
三、用户所在组
	添加时可以指定组,root权限可以改变组
	usermod -g 组名 用户名
		修改指定用户的所在组
	usermod -d 目录名 用户名
		修改指定用户的登陆初始目录(就是home里面对应此用户的文件夹)

2、权限管理

核心概念
ls -l显示内容如下
- rw- r-- r-- 1 tom police 6 3月 18 19:24 abc.txt
说明
	第0位确定文件类型,这里就是一个-,代表普通文件。
		d(目录)
		-(普通文件)
		l(软连接文件)
		c(字符设备,键盘鼠标等)
		b(块文件,硬盘)
	rw- ,这块内容确定文件所有者,拥有的文件权限
		1、作用到文件
			r代表读权限
			w代表写权限,可以修改,但不能删除,必须具有对该文件所在目录有写的权限才能删除文件
			x代表可执行权限,这里这个文件没法执行,所以没有x权限
		1、作用到目录
			r代表读权限,查看目录内容
			w代表写权限,可以修改目录中内容,创建+删除+重命名目录
			x代表可执行权限,可以进人到目录
	第一个r--,确定文件所在组的其他用户对该文件的权限
		r--代表只读权限
		rw-代表读写权限
		rwx代表读写执行权限
		---代表没有权限
	第二个r--,确定其他用户拥有该文件的权限
		r--代表只有读权限
	1,这是一个数字
		如果是文件,表示硬链接的数量
		如果是目录,表示子目录数量
	tom
		代表文件所有者
	police
		代表文件所在组
	6
		代表文件大小,如果是目录就是4096,固定值,代表目录所占空间(不包含其中内容)
	3月 18 19:24
		是文件最后修改时间
	abc.txt
		代表文件名称

上面内个权限,你应该具备三位一组的概念
	-rwxrw-r--
		-这就代表此文件是普通文件
		rwx,这三位代表文件拥有者的权限是读写和执行
		rw-,这三位代表同组其它用户的权限是读写
		r--,这三位代表其它组用户的权限是只能读

rwx的数字表示形式
	r=4
	w=2
	x=1
	rwx=7(r+2+x)
	如果是3表示(w+x)
权限操作
一、修改权限
	chmod 权限类型 权限操作符 权限值[,权限类型=权限值,...] 文件/目录名
		修改指定文件或目录的权限
		权限类型
			u:所有者
			g:所有组
			o:其他用户
			a:所有人
		权限操作符
			+:增加权限
			-:减少权限
			=:设置权限
		权限值
			r:读
			w:写
			x:执行
		举例
			chmod u=rwx,g=rw,o=x a.java
				表示设置a.java文件的所有者权限为读写执行,同组用户为读写,其他用户为执行
			chmod u+w a.java
				给a.java文件的所有者增加一个写权限
			chomd u-w a.java
				给a.java文件的所有者减少写权限
	chmod 751 a.java
		等价于 chmod u=rwx,g=rw,o=x a.java
二、修改文件所有者
	当你权限不够对文件进行读写操作时,可以用下面命令改写
	chown newowner file 
		改变文件所有者为newowner
	chown newowner:newgroup file
		改变文件的所有者和所有组为newowner和newgroup
	chown -R newowner /home/kkk/
		递归改变目录中所有文件的所有者为newowner,这个就得用root用户来了
	chgrp -R newgroup /home/kkk/
		递归改变目录所有文件的所在组为newgroup

六、任务调度和磁盘

1、任务调度(如果想深入,请专门去学习Linux的任务调度)

什么是任务调度
指在系统的某个时间执行的特定的命令或程序
分为两类:系统工作和个别用户工作
系统工作:有些重要工作需要反复执行,比如病毒扫描
个别用户工作,个别用户可能希望执行某些程序,比如对mysql的数据备份
crontab [选项]
	选项
		-e:编辑一个定时任务
		-l:查看定时任务
		-r:删除定时任务
	举例
		conrtab -r
			终止任务调度
		crontab -l
			列出当前任务调度
		service crond restart
			重启任务调度

2、磁盘分区、挂载

分区和挂载
分区方式
	mbr分区:
		最多支持4个主分区
		系统只能安装在主分区
		扩展分区要占一个主分区
		MBR最大支持2TB,但拥有最好的兼容性
	gtp分区:
		支持无限多主分区(操作系统会限制,比如windows最多128分区)
		支持18EB大容量(EB=1024PB,PB=1024TB,TB=1024GB,GB=1024MB,MB=1024KB)
		windows7 64位以后支持gtp
Linux分区
	无论有几个分区,分给哪一个目录使用,它归根结低就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。
	Linux采用载入的处理方式,整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得
Linux挂载
	说白了就是Linux万物皆为文件,每一个分区对应挂载一个文件夹
指令
lsblk -f
	查看系统分区和挂载情况
fdisk /dev/sdb
	分区到sdb
mkfs -t ext2 /dev/sdb1
	将dev下sdb1分区格式化为ext2
mount /dev/sdb1 /home/newdisk
	将sdb1分区挂载到newdisk文件目录

六、rpm和yum

1、rpm

一种用于互联网下载包的打包及安装工具
包含在某些Linux发布版中,生成具有.RPM扩展名的文件
一、rpm包管理
	rpm -qa
		查询已经安装的rpm包列表
	rpm -qa|grep xx
		管道符,过滤一下结果
	rpm -qa | grep firefox
		查询Linux安装没安装火狐浏览器
二、卸载rpm包
	rpm -e RPM包名称
		卸载指定包
三、安装rpm包
	rpm 参数 RPM包全路径名称
		根据路径安装包
		参数
			-i:安装
			-v:提示
			-h:进度条
		举例:
			rpm -ivh 包路径
				安装rpm包
	

2、yum

yum是一个shell前端软件包管理器
基于RPM包管理
可以从指定服务器下载RPM包并安装,自动处理依赖性关系,并一次性安装所有依赖的软件包
一、查询需要安装的软件是否存在与yum服务器
	yum list|grep xx软件列表
		过滤查询指定软件,是否在yum服务器,没有就只能用rpm下载
二、安装指定yum包
	yum install xxx 
		从yum服务器下载安装指定包
	yum install firefox
		下载安装火狐浏览器

猜你喜欢

转载自blog.csdn.net/grd_java/article/details/107233667