欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux操作系统

程序员文章站 2022-06-20 08:38:24
...

Linux操作系统

Linux概述

​ 是一个开源的操作系统

​ Linux一次代表的是Linux内核

​ 创始人:林纳斯托瓦斯

Linux 两大发行版本

​ Red hat 一般在服务器上使用

​ Debian

Linux操作系统安装

​ 虚拟一台电脑

​ 点击 编辑虚拟机设置 , CD/DVD使用iso,选择本机ios地址

​ 网络适配器:

​ 桥接模式:使用和宿主机同一网段地址,同一局域网下可以互相访问

​ Nat模式:把自己电脑看成路由器,然后只能自己本机和虚拟机通信,或者是多个虚拟机之间

Linux目录结构

/      根目录,处于Linux文件系统树形结构的顶端,所有的目录、文件、设备都在/下。
/bin   Binary的缩写。目录存放经常使用的命令。 
/boot   存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件。 
/dev     Device(设备)的缩写。该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。 
/etc     该目录用来存放所有的系统管理所需要的配置文件和子目录。 
/home  用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib       这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 

/lost+found      这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 
/mnt     在这里面中有四个目录,系统提供这些目录是为了让用户临时挂载别的文件系统的。如:我们可以将光驱挂载在/mnt/cdrom上,然后进入该目录就可以查看光驱里的内容了。
/proc    这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/root     该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin 	Super User的意思,这里存放的是系统管理员使用的系统管理程序。 
/tmp      这个目录是用来存放一些临时文件的。 
/usr	      这个目录存放了我们常用的程序和文件

常用命令

​ Linux查看IP地址 : ifconfig

防火墙:

关闭防火墙服务:service iptables stop
打开防火墙服务:service iptables start
永久关闭防火墙:chkconfig iptables off
永久打开防火墙:chkconfig iptables on

目录类操作

查看当前所在路径:pwd
默认root用户登录在root目录下
进入指定目录:cd 目录名/路径
回到上一层目录:cd ..
直接进入根目录:cd /
进入目录的两种写法:
	绝对路径:从根目录一层一层往下找
	相对路径:相对于当前位置  cd ../同级目录名

ls		查看当前目录有哪些文件或者子目录
ls -a	显示所有文件和目录包括隐藏目录或者文件
ls -la	显示文件或者目录的详细信息(也会展示出隐藏文件的详细信息)

开机关机

立即关闭:shutdown -h now

定时关机:shutdown +5 5分钟后关机

定时关机:shutdown 15:30

注销:logout

重启:reboot

用户管理类

添加用户 useradd  用户名
		新建用户会创建以用户名命名的组
		-g 指定该用户的主属组,一个用户永远只有一个主属组,创建的时候可以指定,也可以后期修改
		-G 指定该用户的附属组,一个用户可以有多个附属组,同时主属组也会添加到附属组
		也可以这样写useradd -g 主属组名 -G 附属组名 用户名

添加密码 passwd
		passwd 用户名
		
修改用户 usermod
		usermod  -g  主属组名 -G 附属组名,附属组名	用户名
		
修改用户名 usermod
	usermod -l 新用户名  旧用户名	[注]只会更改用户名,用户组、家目录、ID等都保持不变
	
	修改家目录
    	sudo usermod -d /home/新用户名 -m 新用户名
	
	修改组名
		groupmod -n 新用户名 旧用户名
	
	修改UID
		sudo usermod -u 1000 新用户名
	
	检
	 
		id 新用户名

删除用户 userdel
		-r 递归删除该用户所以资料和账户信息
		-f 强制删除
			
组的增、删、改
	增加组:groupadd
		groupadd 组名
		
	删除组:groupdel
		groupdel 组名
		
	修改组:groupmod 主要是修改组名
		groupmod -n  新组名  旧组名

查看系统有哪些组: cat /etc/group

查看 指定用户 的详细信息:id 指定用户名 

查看 指定用户 的组的信息:groups 指定用户名

查询当前登录用户:whoami

文档目录的管理

创建一个文件夹
		mkdir  文件名

		同时创建多级目录	   mkdir -p 文件名1/文件名2/文件名3/...
		同时新建两个同级目录    mkdir 文件名1 文件名2

删除一个文件夹 rmdir
		rmdir 文件名
		
		[注]rmdir只能删除空目录,目录下如果还有其他字目录,则不能删除
	
重命名一个文件夹 mv
		重命名
			如果mv的第二个参数是个文件,则执行重命名的操作
			mv 旧名字 新名字
		
		剪切
			如果mv的第二个参数是个路径的话,则执行剪切
			mv 文件名 /剪切路径
			
		剪切并改名
			mv 旧文件名 /剪切路径 新文件名
		
		z.B.当前在home下,但是要把tmp/ky,剪切到opt下
			mv /tmp/ky /opt
			
命令和参数之间必须有空格,参数和后边文件或者路径之间应该有空格

文档操作类

统计 wc
	可以统计文件中的字符数、单词数以及行数
	
	wc -w 按照单词数统计
		wc -w 文档名
		[注]统计数量和系统版本有关系
	
	wc -l 按照行数进行统计
		wc -l 文档名 
	
	wc -m 根据字符来进行统计
		wc -m 文档名

复制拷贝 cp
	拷贝文件到其他路径
	
	cp -r 递归拷贝	将源目录下的所有文件夹以及文件夹下的所有文件都复制到目标目录
		
	cp -i 复制文件时会提示,如果复制的目标文件存在,会提示是否覆盖,如果不存在直接复制
	
	z.B.
	cp /home/1.txt ./		将home中的1.txt拷贝到当前目录,使用 ./表示当前目录
	
删除 rm
	r				表示递归删除
	f				强制删除,不会询问
	rm				本身只是删除文件,删除路径需要添加rf
	rm -rf 文档名	  强制删除文档
	rm -rf /		慎重使用,会删除一切

创建文件

方式一:
	touch 文件名
		[注]touch创建的是空文件,如果要给里面添加内容,则需要使用vi编辑器
		
方式二:
	vi 文件名
		[注]使用vi编辑器创建并打开进行编辑文件,如果创建文件但是不进行编辑,则不会创建成功

vi编辑器
	三种模式:
		1、命令行模式 ———— 刚进入
		2、编辑模式 ———— i 进入编辑模式
		3、可视化模式(visual line)———- 可进行复制
	
	esc退出编辑模式 :
	w		保存					q		退出
	q!		强制退出			   wq		保存并退出
	wq!		强制保存并退出
	
	esc退出编辑模式  /要搜索的内容
	
	esc退出编辑模式:s/被修改的内容/修改后的内容/g
				 :s/被修改的数字/修改后的数字
				 
	esc退出编辑模式	gg	移动到文件内容的首行
					G	移动到文件内容的末尾
	
	vi +5 文件名   指定打开文件时光标移动到第五行

grep查找

通过模式对文件内容进行查找
	grep mail /etc/passwd

管道操作符 |
	将管道操作符左边命令的输出作为右边命令的输入    
		z.B.
			cat /etc/passwd | grep root

模糊搜索 ^
	ls -la | grep ^d		搜索以d开头的字符串
	ls -la | gerp ^[^d]		搜索除了以d开头之外的所有内容
	
grep -c	统计符合结果条件的行数
	grep -c "INSERT"  agilenone.sql		统计agileone中insert有几行

grep -n	查看行数
	grep -n "INSERT" agileone.sql		显示符合样式的行之前标示出该行的列数编号
	
grep -v	看除了insert之外剩余的内容
	grep -v "INSERT" agileone.sql		
	
查看除了ls之外(-v)的行,并显示行号(-n)cat /etc/passwd | grep -v -n ls

区分大小写查找
	列出大小写都存在的showtime
		grep -i showtime hello
		
	只查看大写/小写的Showtme/showtime
		grep Soup/showtime hello
	
精确查找,例如需要查找483和484这两个数字
	grep "48[34]" hello
	
通配符
	grep "I...DB*" agileone.sql     寻找以I开头,以DB结尾的内容,然后中间几个点,代表中间省略几个字母
	grep '\" ' agileone.sql         查询内容为双引号,必须加上转义\

sort排序

将文本文件的内容加以排序,默认根据ASCII码表进行排序

sort -n 按数字大小进行排序
	sort -n 1.txt
	
sort -u 去重,并不改变源文件的内容
	sort -u -n 1.txt 

>>  追加重定向
	例如在使用sort排序后,使用重定向功能,重定向到一个新的文件
		sort -u -n 1.txt >> num
	
>   覆盖重定向,源文件内容被覆盖
		sort -u -n 2.txt > num

find

在系统中查找具有指定特征的文件或者路径

find -name 根据文件名进行查找
	find -name "*.txt"	在当前目录下查找出所有以.txt结尾的文件
	
find -perm 根据权限进行查找
	find -perm  775		在当前目录下查找权限是775的所有文件
	
find -user 用户名	根据文件拥有者查找

find -nouser 查找没有用户的文件

find -group 组名	按照文件所属组进行查找
	find -group test
	
find -type	根据类型来查找
	find -type f
		f代表文件
	find -type d
		d代表路径
		
不想查找用感叹号 !
	find ! -type f   不查找文件f		=	find -type d
	
find -exec	
	find -name "*.txt" -exec rm -rf {} \;	删除后缀名为txt的所有文件
	find -name "*.sql" -exec ls -la {} \;	查找文件名后缀以.sql结尾,的文件的详细信息
	find -name "*.txt" -exec cp {} /opt \;	复制后缀名为txt的所有文件到opt文件夹
	{}用来存放前面find出来的结果
	
find -ok
	用法跟exec完全一致,区别在与会询问你是否执行

文件管理类

cat
	显示文本文档的内容
	
	cat -n 显示行号
	
	可以多个文件同时显示
		z.B.
			cat 1.txt agone 
			cat -n agileone.sql test.sh
	
head	从开头开始显示指定行数
	head -n agone

tail	从末尾开始显示指定行数
	tail -n agone
	
more 分页显示
	more +2 -3 agone  从第二行开始,每次显示三行(+ 从多少行开始;- 每页显示行数)
	
文件权限设置
	一个用户能看到那些文件,完全取决于用户的身份和所属组
	
	文件权限的种类
		r读权限
		w写权限
		x执行权限
	
	z.B.drwxrwxrwt
		第一位
			d:路径类型	- :文件类型	l : 软连接
		第一组:rwx
			拥有者的权限
		第二组:rwx
			文件所属组的权限
		第三组:rwx
			其他人的权限
		
	chmod	
		一种根据数字来改变权限		chmod 777 
			r:4
			w:2
			x:1
		
		根据角色来修改权限		chmod  u + r 
			u:代表文件所有者
			g:文件所属组
			o:其他人
			a:所有人
			+:增加对应的权限
			-:去掉对应的权限
			
	chgrp
		chgrp root 1.txt	改变文件1.txt的所属组为root
	
	chown
		chown tom 文件名	改变文件1.txt的所有者为tom
	
	-R 修改所有文件的权限(R递归)
		chmod -R a+rwx *.txt	给所有.txt文档赋予权限
	
	diff (不经常用,比较'鸡肋')
		比较两个文件的内容上的差异
			例如:  diff  1.txt  2.txt
	
	whereis  命令名  定位可执行文件(-b)、源代码文件(-s)、帮助文件(-m)在文件系统中的位置
		查找系统二进制文件(-b)的位置			例如:whereis  find
		查找系统man说明文件(参数-m)的位置	  
		查找系统源代码文件(参数-s)的位置

	which	查看可执行文件的位置
		在系统的环境变量中查找		which python	which cd
	
	alias	给命令 取别名		例如:alias la='ls -a'
	
	unalias	删除别名		 例如:unalias la

网络通信

ping	确定网络和各外部主机的状态;跟踪和隔离硬件和软件问题;测试、评估和管理网络	ctrl+c终止
		ping [参数] [主机名或IP地址]
	
ifconfig	查询ip地址
	
netstat	查询端口使用情况
	netstat -ano	例如 netstat -ano(找所有的端口号) | grep 3306 

备份压缩

tar
	压缩
		tar -zcvf 压缩后的文件名.tar.gz 被压缩文件名
		tar -zxvf 
				
	解压
		1、解压到本文件
		tar -zxvf 被解压的文件名.tar.gz 
				
		2、解压到目标文件
			tar -zcvf 被解压的文件名.tar.gz -C /解压到指定路径

	f必须是放在最后
	v代表解压的时候打印出所有的文件

zip
	压缩	安装:yum -y install zip
		zip 压缩后的文件名.zip 被压缩文件名
			
	解压	安装:yum -y install unzip
		1、解压到本文件
			unzip 被解压的文件名.zip
		2、解压到指定路径
			unzip 被解压的文件名.zip -d /解压到指定路径

进程管理

进程管理的作用
		判断服务器健康状态
		查看系统中所有进程
		杀死进程

查看系统中所有进程: ps -aux
	USER:该进程是由哪个用户产生的
	PID:进程的ID号
	%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源
	%MEN:该进程占用物理内存的百分比,占用越高,进程越耗费资源
	VSZ:该进程占用虚拟内存的大小,单位KB
	RSS:该进程占用实际物理内存的大小,单位KB
	TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,
	     tty7是图形终端。pts/0-256代表虚拟终端
	STAT:进程状态。常见的状态有: 
		R:运行
		S:睡眠
		T:停止状态
		s:包含子进程
		+:位于后台
	START:该进程的启动时间
	TIME:该进程占用CPU的运算时间,注意不是系统时间
	COMMAND:产生此进程的命令名

查看系统中所有进程,使用Linux标准命令格式: ps -le(一般不用)

查看系统状态:top

查看可用的进程信息:kill -l

每两秒钟监控一次:vmstat 2  

重启进程 : kill -1  进程ID

强制杀死进程: kill -9 进程ID

系统启动级别(一般情况下,不修改启动级别)

0:关机	init 0	
1:单用户模式,只允许一个用户登录
2:多用户模式,不支持网络工作
3: 命令行模式,企业服务器开机模式
4:系统预留
5:图形化界面,Linux默认启动级别
6:重启模式,不能设置,否则系统反复重启	init 6
		
修改启动级别:vim /etc/inittab			
相关标签: linux