目录
为什么用linux
原因:很多大型项目都是部署在linux服务器中,在服务器端,开发领域上linux越来越受欢迎
linux是一套免费使用和自由传播的类unix操作系统,是一个基于posix(可移植操作系统接口)和unix的多用户,多任务支持多线程,和多cpu的操作系统
linux能运行主要的unix工具软件,应用程序和网络协议,它支持32位和64位硬件,linux继承了unix为核心的设计思想,是一个性能稳定的多用户网络操作系统
注意:linux内一切皆文件,权限最高为root(若想要以root权限执行指令,那么就在指令之前加sudo)
linux内核版本
linux开关机
开机时会启动许多程序,他们在windows内叫做服务(service),在linux内叫做守护进程(daemon)
注意:linux内最高权限的账户叫做root账户,其可以操作一切
sync:将数据内存同步到硬盘(一般关机前使用)
关机命令:shutdown
shutdown -h 10:计算机将会在10分钟后关机
shutdown -h now:立马关机
shutdown -h 11:00:计算机将会在今天11:00关机
shutdown -r now:系统立马重启
shutdown -r +10:系统10分钟后重启
reboot:系统现在重启
halt:关闭系统
注意:不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中
登出:exit
linux的目录结构
linux的基本命令
查看ip地址:ip addr
查看网络配置:ifconfig
目录管理
基本命令
切换目录:cd 路径
返回根目录:cd /
返回usr目录:cd ~
返回上一级目录:cd ..
查看当前文件目录:pwd
伪清屏:clear或者reset
列出目录
命令:ls [options]
options
- -a:查看全部的文件,包括隐藏文件
- -l:列出所有的文件,包含文件的属性和权限,没有隐藏文件
注意:linux内的所有属性可以组合使用(eg:ls -al/ls -la)
详细列出文件及属性:ll
文件夹的操作命令
创建和删除目录
创建文件夹:mkdir 文件夹名
创建多层目录:mkdir -p dir1/dir2
删除一级目录:rmdir dir1
递归删除多个目录:rmdir -p dir1/dir2(dir1也被删除了)
注意:rmdir仅能删除空的目录,若下面含有文件,则需要删除文件
复制目录
语法:cp 原来地方的文件 新的地方(也可以顺便重命名)
- eg:cp a.txt ../a(将当前文件下的a.txt文件复制到上级目录的a目录内)
- eg:cp a.txt ../a/b.txt(将当前文件下的a.txt文件复制到上级目录的a目录内,并将其重命名为b.txt)
移除文件或者目录
命令:rm [options] 文件或目录
options
- -f:忽略提示警告
- -r:递归删除目录
- -i:互动,删除询问是否删除元素
注意:若删除的是目录,则必须加-r参数,不管里面有没有文件
移动文件或目录
语法:mv [options] 移动的文件或目录 移动文件或目录的地址(也可以重命名文件/目录)
options
- -f:强制移动(目标文件存在时强制覆盖)
- -u:只替换已经更新过的文件
简单举例
- eg:mv c/a.txt d/b.txt(将c目录下的a.txt移动到d目录下并重命名为b.txt)
- eg:mv c d(将c目录移动到d目录,若d存在则直接将c移动到d里;不存在则直接将c目录重命名为d)
linux基本属性
前言
linux是一种典型的多用户系统,不同的用户拥有不同的地位,拥有不同的权限。为了保护系统的安全性,linux系统对于不同的用户访问同一文件(或目录)的权限做了不同的规定
分析(drwxr-xr-x)
分析第一个字母
- d:目录
- -:文件
- l:链接文档
- b:可供存储的接口设备
- c:端口设备(eg:鼠标、键盘)
接下来的几个字母以三个为一组,均为(rwx)组合,这三组分别为:属主权限、属组权限、其他权限
解析字母的意思
- r:该文件/目录可读-read
- w:该文件/目录可写-write
- x:该文件/目录可执行-execute
注意:若都没有权限,则用“-”替代
解析ll后文件排列格式
drwxr-xr-x. 2 root root 6 10月 4 22:57 公共
drwxr-xr-x:文件类型与权限
2:文件个数
root:属主
root:数组
6:文件大小
10月 4 22:57:时间
公共:文件名
更改文件属组
命令:chgrp [-R] 属组名 文件名
-R:递归更改文件属组,就是在更改某个文件的属组时,若加上此参数,那么该目录下的所有东西都会属组更改
更改文件属主与属组
更改文件属主:chown [-R] 属主名 文件名
更改文件属主属组:chown [-R] 属主名:属组名 文件名
-R:递归更改文件属性,就是在更改某个文件的属性时,若加上此参数,那么该目录下的所有东西都会属性更改
chmod更改9个属性
命令:chmod 三个数字 文件/目录
rwx中r占4、w占2、x占1
- 7=4+2+1——rwx
- 6=4+2+0——rw-
- 3=2+1+0——-wx
- 5=4+1+0——r-x
- 以此类推
eg:chmod 777 文件/目录(三个权限都有读写与可执行权限)
-R:递归更改文件属性,就是在更改某个文件的属性时,若加上此参数,那么该目录下的所有东西都会属性更改
文件的基本操作
创建文件:touch 文件名
向文件中输入内容:echo "文件内容" >> 文件名
注意:源文件若有内容,则新内容会追加到文件的后面
在整个硬盘中查找文件:find / -name 文件名
文件的查看
基本命令
nl 文件名:从第一行开始显示文件内容(显示行号信息)
tac 文件名:从最后一行开始显示文件信息(倒着显示)
head -n 20 文件名:从第一行开始显示文件的20行内容
tail -n 20 文件名:显示文件结尾的20行内容
more命令
语法:more 文件名
功能:页面内容若太多的话,则可以实现翻页(只是可以向下翻页)
注意:“空格键”实现翻页,“enter”代表向下看一行,“:f”可以看当前的行号信息
less命令
语法:less 文件名
功能:页面太多的话可以实现翻页功能其可以实现向上翻页和向下翻页
翻页与查看
- “空格键/pgdn”代表向下翻页
- “b按键/pgup”代表向上翻页
- “←键”代表向左翻页
- “→键”代表向右翻页
- “↑键”代表向上看一行
- “↓键”代表向下看一行
搜索
- /搜索内容:向下搜索
- ?搜索内容: 向上搜索
- n代表查找匹配了的字符 向上查找
- N代表查找匹配了的字符 向下查找
退出命令:q按键
cat命令
向文件写入内容
#向文件里写入特定的文件内容,遇到eof则停止写入
cat <<eof> 文件名
写入文件的内容
eof
#向文件中写入内容,ctrl+c退出
cat > 文件名
cat 文件名:从第一行开始显示文件内容
硬链接与软链接
前言
linux内的链接分为两种:硬链接、软链接
- 硬链接:用户可以通过此链接机制建立硬链接到一些重要的文件上以防止误删(若删了源文件则由于其链接源文件的文件没删,则还是可以访问到源文件)
- 软连接:类似于window下的快捷方式,删了源文件,其链接也就没法用了
实践操作
- 创建文件:touch f1
- 将f2硬链接到f1:ln f1 f2
- 将f2软链接到f1:ln -s f1 f2
注意:只要将源文件f1改变,那么通过f2访问到的内容也改变(不管是硬链接于软链接)
vim编辑器
vim的功能以及三种模式
理解:vim是从vi发展出来的文本编辑器,具有代码补全,编译及错误跳转等功能,在程序员中被广泛应用
主要功能:查看内容,编辑内容,保存内容
vim的三种模式:命令模式、输入模式、底线命令模式
三种模式的切换
- 用户刚创建文件便进入了命令模式
- 命令模式下按i键后切换到输入模式
- 命令模式下按:键切入到底线命令模式以退出
- 其他模式下按esc键退出到命令模式
vim的使用
命令:vim 文件
注意:若该文件存在则是修改该文件,若不存在则是新建该文件
命令模式
- x键:删除光标所在的字符
- /键搜索内容
- n代表查找匹配了的字符 向上查找
- N代表查找匹配了的字符 向下查找
- pgup/pgdn:上下翻页
输入模式
- 字符按键:输入字符
- enter:回车换行
- backspace:退格
- delete:删除光标的后一位字符
- 方向键:移动光标
- pgup/pgdn:上下翻页
底线命令模式
- q键:退出程序
- w键:保存文件
- w!:强制保存
- q!:强制退出
- wq:保存并退出
- set nu:显示行号
- set nonu:不显示行号
- /字符:搜索内容(按n键切换搜索到的内容)
linux账号管理
前言
- linux是一个多用户,多任务的分时操作系统,任何一个使用系统资源的用户都必须首先向管理员申请一个账号,然后根据这个账号进入系统
- 用户使用账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问,另一方面也可以帮助用户组织文件并为用户提供安全性防护
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录、和的登陆shell等资源(linux中一切皆文件,添加用户说白了就是往某一个文件中写入用户信息)
添加用户
语法:useradd [options] 用户名
options
- -m:自动创建这个用户的主目录
- -g 用户组:指定用户所属的用户组
- -d 目录:指定用户的主目录,若目录不存在,则同时使用-m选项,可以创建主目录
- -u 用户号:指定用户的用户号
查看所有用户及密码
查看所有用户:cat /etc/password
查看所有用户密码:cat /etc/shadow
注意:在这里面看到的用户密码是加密后的
删除用户
语法:userdel [options] 用户名
options
- -r:删除用户的时候将他的目录页一并删除
修改用户
语法:usermod [options] 用户名
options
- -d 目录:修改用户的主目录
- -g 用户组:修改用户的用户组
- -u 用户号:修改用户的用户号
切换用户
[root@localhost home]#
root:当前用户名
@localhost:当前主机名
home:当前所在的目录
#:表示当前为root用户($表示当前为普通用户)
语法:su 用户名
注意:切换后使用新用户的工作环境
退出用户到root:exit
修改与查看主机名
临时修改主机名:hostname 新主机名
查看当前用户名:hostname
注意:修改完主机名后应重启方可生效,但这个修改是临时的,重启电脑后就失效了
用户密码设置
命令:passwd 用户名
锁定用户命令
锁定用户:passwd -l 用户名(锁定后该用户便不能登录)
清空用户密码:passwd -d 用户名(没有密码也不能登录)
用户组管理
前言:每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同的linux系统对用户组的规定有所不同,如linux下的用户组属于与他同名的用户组,这个用户组在创建用户时创建
创建用户组
命令:groupadd [options] 用户组名
options
- -g 组的id:用于指定组的id
注意:创建用户组可以得到一个组id,这个id是可以指定的
查看删除切换用户组
查看用户组:cat /etc/group
删除用户组:groupdel 用户组名
用户切换用户组:newgrp 组名(将当前用户的当前组切换为新组)
修改用户组
命令:groupmod [options] 用户组名
options
- -g 用户组id:用于修改用户组id
- -n 新用户组名:用于修改用户组名
磁盘管理
列出磁盘系统整体的空间使用量
命令:df [options]
options
- -h:以mb的方式详细列出磁盘使用情乱
检查当前磁盘的空间使用量
命令:du [options]
options
- -h:详细列出使用情况
- -a:检查磁盘空间使用量,包括隐藏的
- -sm /*:检查根目录下的每个目录所占用的容量
文件挂载
将外部设备挂载到mnt目录下以实现访问
挂载:mount dev/外部设备 mnt/目录名
卸载:umount -f /mnt/目录名
注意:-f表示强制卸载该设备
内存管理
命令:free [options]
options
- -m:以字节的方式显示当前内存的使用
进程管理
前言
- 在linux中每一个程序都有自己的一个进程,每一个进程都有一个id号
- 每一个进程都有一个父进程
- 进程可以有两种存在方式:前台、后台
- 一般服务都是在后台运行,基本的程序都是前台运行
查看当前系统正在运行的进程信息
命令:ps [options]
options
- -a:显示当前系统中的所有进程信息
- -u:以用户为单位显示开启的进程
- -x:显示非控制终端上的进程信息
- -e:显示所有进程
- -f:以全格式的形式显示
常用:ps -aux(查看所有进程)
常用:ps -ef(相对于上面可以查询到父进程信息)
管道符与过滤
理解:管道符|就像管道一样,以上一个输出的结果来操作下一个命令
grep:查找文件中符合条件的字符串
findstr:查找文件中符合条件的字符串,只不过相对grep来说后面的字符串要加“”
eg:ps -aux | grep mysql(查找和mysql相关的进程)
eg:ps -aux | findstr "mysql"(查找和mysql相关的进程)
查看进程树
命令:pstree [options]
options
- -p:显示父id
- -u:显示用户组
结束进程
一般类型杀死进程:kill pid号
较为强硬的杀进程:kill -15 pid号
强制杀进程:kill -9 pid号
注意:可以一次杀死多个进程,也就是pid号可以写多个
运行java项目
前台运行:java -jar jar包名
后台运行:nohup java -jar jar包名 => 日志文件名.log &
命令说明: 将运行的方式改为后端运行,所有的日志输出端到日志文件名.log日志中。通过cat 日志文件名.log 检查日志其中&的作用为按enter后跳出。
查看端口状态
命令:netstat [options]
options
- -n:不必进行dns轮询,显示ip,以数字的形式显示地址和端口号(numeric)
- -a:显示所有连接和侦听端口(all)
- -o:显示拥有每个连接关联的进程的id(own)
- -p:显示进程标识符和程序名称(每个套接字/端口都属于一个程序)
常用命令
查看所有3306端口的使用情况:
- netstat -ano | grep 3306
- netstat -ano | findstr “3306”
防火墙
防火墙基础命令
手动开启防火墙:systemctl start firewalld.service
手动关闭防火墙:systemctl stop firewalld.service
关闭开机自启防火墙:systemctl disable firewalld.service
设置开机自启防火墙:systemctl enable firewalld.service
检查防火墙状态:systemctl status firewalld
防火墙使用命令
命令:firewall-cmd [options]
options
- --state:查询防火墙的运行状态
- --reload:重启防火墙
- --list-all:查询防火墙的全部信息
- --list-ports:查看防火墙开启的所有端口
- --zone=public:作用域为public
- --permanent:永久有效,没有此参数重启后会失效
- --add-port=80/tcp:添加80端口
- --query-port=80/tcp:查询80端口是否开放
- --remove-port=80/tcp:移除80端口
常用命令
重启防火墙:firewall-cmd --reload
查看防火墙运行状态:firewall-cmd --state
查看防火墙全部信息:firewall-cmd --list-all
检查防火墙开放的全部端口:firewall-cmd --list-ports(不是永久的)
检查80端口是否开放:firewall-cmd --query-port 80/tcp(不是永久的)
手动开放80端口:firewall-cmd --zone=public --add-port=80/tcp --permanent
手动关闭80端口:firewall-cmd --zone=public --remove-port=80/tcp --permanent
注意:带有--permanent参数的命令只能操作带有--permanent参数的端口
rpm安装命令
命令:rpm [options] 包名
options
- -i:安装
- -v:查看安装过程
- -e:卸载
- -h:hash加密算法
- -a:所有的rpm包
- -q:查看
- --nodeps:安装软件时忽略依赖性
常用命令
安装:rpm -vih 包名
查看已安装的rpm包:rpm -qa
查看特定的rpm包:rpm -qa | grep 包名
卸载:rpm -e --nodeps 包名
解压命令
命令:tar [options] 压缩包名 -C 目标目录
options
- -z:支持zip解压文件
- -x:从压缩文件中提取文件
- -v:显示操作过程
- -f:指定压缩文件
常用命令
解压这个压缩包到当前目录:tar -zxvf 压缩包名
解压这个压缩包到指定目录:tar -zxvf 压缩报名 -C 目标目录
yum安装
清空yum缓存:yum clean all
安装软件:yum -y install 软件名称(-y为所有的提示都为y)
卸载软件:yum remove 软件名称
重装软件:yum reinstall 软件名称
注意:yum安装为在线安装,确保linux联网