关机
- sync 将数据由内存同步到硬盘中,关机前需要
- shutdown 关机
- shutdown -h now 立马关机
- shutdown -h 10:10 系统在10:10关机
- shutdown -h +10 十分钟后关机
- shutdown -r now 系统立马重启
- shutdown -r +10 系统十分钟后重启
- reboot 就是重启,等同于 shutdown -r now
- half 关闭系统,等同于shutdown -h now 和 poweroff
系统目录结构
- 一切皆文件
- 根目录 /,所有的文件都在这个节点下
ls /
基本目录介绍
-
/bin:bin时Binary的缩写,这个目录存放着最经常使用的命令
-
/boot:这里存放的是启动linux时经常使用的一些核心文件,包括一些连接文件以及镜像文件(不要动)
-
/dev:dev时Device(设备)的缩写,存放的是linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
-
/etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录
-
/home:用户的主目录,在linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账户命名的
-
/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于windows里的DLL文件,切记不要动
-
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件(存放突然关机的一些文件)
-
/media:linux系统会自动识别一些设备,例如u盘,光驱等,当识别后,Linux会把识别的设备挂载到这个目录下
-
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱的内容了。(我们后面会把一些本地文件挂载在这个目录下)
-
/opt:这是给主机额外安装软件所摆放的目录,比如你安装一个oracle数据库则就可以放到这个目录下,默认是空。
-
/proc:这个目录是一个虚拟的目录,它的系统内存的映射,我们可以通过直接访问这个目录来获取系统信息(不要管)
-
/root:该目录为系统管理员,也称为超级权限者的用户主目录
-
/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序
-
/srv:该目录存放一些服务启动之后需要提取的数据
-
/sys:这是linux2.6的内核的一个很大的变化,该目录下安装了2.6内核中新出现的一个文件系统sysfs
-
/tmp:这个目录是用来存放一些临时文件的。用完即丢的文件,可以放在这个目录下,安装包
-
/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录
-
/usr/bin:系统用户使用的应用程序
-
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护进程,Super
-
/usr/src:内核源代码默认的放置目录
-
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下,包括各种日志文件
-
/run:是一个临时文件系统,存储系统启动以来的信息,当系统重启时,这个目录的文件应该被删掉或清除
-
/www:存放服务器网站相关的资源,环境,网站的项目
常用的基本命令
目录管理
绝对路径、相对路径
- cd 目录名:切换目录命令
- ./:当前目录
- cd …:返回上一级目录
ls 列出目录,可能最常被使用的
-a 参数:all,查看全部的文件,包括隐藏文件
-l 参数 :列出所有的文件,包含文件的属性和权限,没有隐藏文件
pwd 显示当前用户所在的目录
mkdir 目录名 – 创建一个目录(文件夹) -p 目录名/目录名/目录名 创建多级目录(递归创建)
rmdir 目录名 – 删除目录 -p 目录名/目录名/目录名 删除层级目录
注意:仅能删除空的目录,如果下面存在文件,需要先删除文件
cp 复制文件或者目录,如果文件重复选择覆盖或者放弃
cp 原来的地方 新地方
rm 移除文件或者目录
-f 忽略不存在的文件,不会出现警告,强制删除
-r 递归删除目录
-i 互动,删除询问时候删除
rm -rf/ 系统中所有的文件就被删除了 (勿用)
mv 移动文件或者目录
- -f 强制
- -u 只替换已经更新过的文件
- mv li li2 重命名文件夹
基本属性
开头第一个字母:
- d ----目录
- 一 ----文件
- l 连接文档(link file)
- b 表示装置文件里面的可供储存的接口设备(可随机存取装置)
- c 表示为装置文件里面的串行端口设备,例如;键盘、鼠标(一次性读取装置)
接下来的字符三个为一组,【rwx】中 r 代表读(read),w 代表写(write),x 代表可执行(execute)
三个权限的位置不会改变,如果没有权限 会出现减号 [ - ]
每个文件的属性由左边第一部分的10个字符确定
修改文件属性
- chgrp:更改文件属组
chgrp [-R] 属性名 文件名
-R:递归更改文件属性,就是在更改某个目录文件的属性时,如果加上-R的参数,那么该目录下的所有文件的属性都会更改。
- chown:更改文件属性,也可以同时更改文件属性
chown [-R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
- chmod:更改文件9个属性
chmod [-R] xyz 文件或目录
linux文件属性由两种设置方法,一种是数字,一种是符号
linux问价的基本权限有9个,分别是 owner/group/others三种身份各有自己的read/write/execute权限
[ rwxrwxrwx],可以用数字表示: r:4 w:2 x:1
- owner = rwx = 4+2+1 = 7
- group = rwx = 4+2+1 7
- others = -wx = 0+2+1 = 3
chmod 773 目录名
文件内容查看
cat 由第一行开始显示文件内容
tac从最后一行开始显示,可以看出tac是cat的倒写
nl 显示的时候,顺道输入行号
more 一页一页的显示文件内容,空格 翻页,enter 向下一行, q 退出
less 与 more类似,但是比more 更好的是,它可以往前翻页 /字符串 — 查找字符串,向下查询 ?/字符串 — 向上查询 n/字符串 继续搜索下一个 N/向上搜索上一个
head 只看头几行
head -n 2 test.txt 显示头两行
tail 只看尾巴几行
tail -n 2 test.txt 显示后两行
可以使用 man[命令]来查看各个命令的使用文档
软链接 硬链接
touch file1 创建一个文件
ln file1 f1 创建一个硬链接,删除原文 硬链接的内容不会删除,等同于原文件
ln -s file1 f2 创建一个软链接,符号链接,等同于快捷方式
echo “abcdefg” >>file1 向file1中写入数据
cat f1|f2|file1 的内容是一样的
Vim编辑器
基本上vim共分为3中模式
- **命令模式(command mode)**
vim filename
启动vim后进入命令模式,敲击键盘动作会被vim识别为命令,而非输入字符。
-
i 切换到输入模式,输入字符
-
x 删除当前光标所在处的字符
-
:切换到底线命令模式,以在最低一行输入命令
若要编辑文本,启动vim后进入命令模式 按 i 切换为输入模式
命令模式只有一些最基本命令,因此仍要依靠底线命令输入更多命令
-
输入模式(insert mode)
若要编辑文本,启动vim后进入命令模式 按 i 切换为输入模式
命令模式只有一些最基本命令,因此仍要依靠底线命令输入更多命令
输入模式下按 ESC 键推出,切换到命令模式
-
底线命令模式(Last line mode)
底线命令模式可以输入单个或多个字符的命令,可用命令非常多
- q 退出程序
- w 保存文件
- wq 保存并退出
Vim 按键说明
移动光标的方法 | |
---|---|
h 或<– | 光标向左移动一个字符 |
j 或 向下箭头 | 光标向下移动一个字符 |
k 或 向上箭头 | 光标向上移动一个字符 |
l 或 --> | 光标向右移动一个字符 |
ctrl + f | 向下移动一页,相当于PageDown |
ctrl + b | 向上移动一页,相当于PageUp |
ctrl + d | 向下移动半页 |
ctrl + u | 向上移动半页 |
+ | 光标移动到非空格符的下一行 |
- | 光标移动到非空格符的上一行 |
n | n 表示数字,例如10,按下10 然后按空格,快捷切换光标,数字+空格 |
0 或 Home | 移动到这一行的最前面字符出 |
$ 或 End | 移动到这一行的最后面字符处 |
H | 光标移动到这个屏幕的最上方哪一行的第一字符 |
M | 光标移动到这个屏幕中央哪一行的第一个字符 |
L | 光标移动到这个屏幕最下方那一行的第一个字符 |
G | 移动到这个文档的最后一行 |
nG | n 为数字,移动到这个文档的第n行, |
gg | 移动到这个文档的第一行,相当于 1G |
n | n为数字,光标向下移动n行 |
搜索替换 | |
---|---|
/字母 | 光标向下寻找相应字母的字符串 |
?字母 | 光标向上寻找相应字母的字符串 |
n | n是英文字母,表示重复前一个搜索的动作。继续向下搜寻 |
N | N 是英文见与n相反,进行反向前一个搜索 |
删除,复制,粘贴 | |
---|---|
x,X | 在一行字中,x为向后删除一个字母,等同于del,X为向前删除一个字母,等同于backspace |
nx | n为数字,连续向后删除n个字符,例如:4x,删除连续的10个字符 |
dd | 删除游标所在的那一整行 |
ndd | n为数字,删除光标所在的向下n行,例如 20dd删除20行 |
d1G | 删除光标所在的到第一行的所有数据 |
dG | 删除光标所在到最后一行的所有数据 |
d$ | 删除游标所在处,到改行的最后一个字符 |
d0 | 删除游标所在处到改行的最前面一个字符 |
yy | 复制游标所在的哪一行 |
nyy | n 为数字,复制光标所在的向下n行,20yy复制20行 |
y1G | 复制游标所在行到第一行的所有数据 |
yG | 复制游标所在行到最后一行的所有数据 |
y0 | 复制光标所在的那个字符到该行行首的所有数据 |
y$ | 复制光标所在的那个字符到该行行尾的所有数据 |
p,P | p为将已复制的数据在光标下一行贴上,P则为贴在游标上一行 |
J | 将光标所在行与下一行的数据结合成同一行 |
c | 重复删除多个数据,例如向下删除10 10c |
u | 复原前一个动作 |
ctr+r | 重做上一个动作 |
一般模式切换到编辑模式的可用的按钮说明
进入输入或取代的编辑模式 | |
---|---|
i,I | 进入输入模式insert mode:i为从目前光标处输入,I为目前所在行的第一个非空格符处开始输入 |
a,A | 进入输入模式insert mode:a 为从目标光标所在的下一个字符处开始输入,A 为从光标所在行的最后一个字符处开始输入 |
o,O | 进入输入模式insert mode:o 为在目前光标所在的下一行处输入新的一行,O为在目前光标所在处的上一行输入新的一行 |
r,R | 进入取代模式Replace mode:r 只会取代光标所在的哪一个字符一次,R会一直取代光标所在的文字,直到按下ESC停止 |
Esc | 退出编辑模式,回到一般模式中 |
一般模式切换到指令模式的可用的按钮说明
指令行的存储、离开等指令 | |
---|---|
:w | 将编辑的数据写入硬盘中 |
:W! | 若文件属性为 只读 时,强制写入该档案,!在vim中有强制的意思 |
:q | 离开 vim编辑 |
:q! | 若修改过档案,又不存储使用 ! 强制离开不存储 |
:wq | 存储后离开,wq!强制存储后离开 |
ZZ | 若没有修改数据,不存储离开,若更改过,存储后离开 |
:w filename | 将编辑的数据存储成另一个文件,另存为 |
:r filename | 编辑数据后,读入另一个档案的数据,将filename内容加入到游标所在行后面 |
:n1,n2 w filename | 将n1 到n2 的内容存储成filename档案 |
:!command | 暂时离开vim到指令模式下执行command的显示结果,:! ls/var,看var文件 |
:set nu | 显示行号,设定之后,会在每一行的前缀显示改行的行号 |
:set nonu | 与set nu 相反,取消行号 |
Linux账号管理
useradd 添加用户 useradd -选项 用户名
- -m:自动创建这个这个用户的主目录
- -G : 指定用户组
useradd -m li
userdel 删除用户
userdel -r li 删除用户的时候删除对应文件
usermod 修改用户
usermod -d /var/121 li
切换用户, exit 退出回到root
su li
密码设置
- 超级用户
password username;
new password:
re password:
- 普通用户
password
(current) UNIX password:
new password:
re password:
锁定账户
password -l qinjiang # 锁定之后用户就不能登录了
password -d li # 没有密码也是不能登录的
用户组管理
创建一个用户组 groupadd
[root@li ~]# groupadd lis
[root@li ~]# cat /etc/group # 查看组信息
创建完用户组后可以得到一个组的id,这个id可以指定的,若不指定怎自增 1
[root@li ~]# groupadd -g 500 lis2
删除用户组 groupdel 组名
groupdel lis
修改用户组的权限和名字 groupmod -g -n
groupmod -g newid -n newname groupname
切换用户组
1. 登录当前用户 组名 li
2. newgrp newgroup
磁盘管理
df (列出文件系统整体的磁盘使用量) du(检查空间使用量)
检查系统的目录,系统初期最大的就是用户目录 user,因为文件程序都在这里
进程管理
在linux中,每一个程序都有自己的一个进程,每一个进程都有一个id号,和windows是一样的。
每一个进程都会有一个父进程。进程可以有两种存在方式:一种是前台,一种是后台。一般的话服务都是后台运行的,基本的程序都是前台运行的。
ps 查看当前系统中正在执行的各种进程的信息。
ps -xx # ps -help -man
- -a 显示当前终端运行的所有进程信息,当前进程一个
- -u 以用户的信息显示进程
- -x 显示后台运行进程的参数
ps -aux 查看所有的进程
ps -aux|grep mysql 查出信息进行过滤只查看mysql的进程
| 在Linux中叫做管道符,将a命令的输出作为b命令的参数
grep 查找文件中符合条件的字符串
ps -ef|grep tomcat #可以查看到父进程的信息
#通过进程树查看
pstree -pu
-p 显示父id
-u 显示用户组
结束进程:杀掉进程,等同于win的结束任务
kill -9 进程id 强制结束进程
环境安装
rpm 方式安装JDK
1. 在网上下载 jdk rpm包,然后上传到服务器的文件夹中
2. 检查服务器中有没有安装jdk,命令:java -version,如果有就先卸载掉,然后重新安装,安装命令如下
java -version #检查是否安装jdk环境
rpm -ivk rpm包名 #安装命令
rpm -qa|grep 包名 #检查jdk版本信息
rpm -e --nodeps jdk包名 卸载
- 配置环境变量,在文件最后面添加
vim /etc/profile
然后按 i 进行insert mode模式进行编辑
JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
CLASSPATH=%JAVA_HOME%/lib;%JAVA_HOME%/jre/lib
PATH=$JAVA_HOME/bin;$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
令配置文件生效**:source /etc/profile**
#查看firewall服务状态
systemctl status firewalld
#开启防火墙服务
service firewalld start
#关闭防火墙服务
service firewalld stop
#重启
service firewalld restart
#查看所有开启的端口,如果是阿里云服务器需要配置安全组
firewall-cmd --list-ports #只看端口信息
firewall-cmd --list-all #查看全部信息
#开启9000端口
firewall-cmd --zone=public --add-port=9000/tcp --permanent
#重启防火墙
systemctl restart firewalld.service
--zone #作用域
--add-port=80/tcp #添加端口, 端口/通信协议
--permanent #永久生效,没有重启后生效
tomcat 安装,安装包解压缩安装
-
下载安装包,官网,apache-tomcat-9.0.37.tar.gz
-
解压
tar -zxvf apache-tomcat-9.0.37.tar.gz
-
启动测试,浏览器访问 IP地址:8080,就可以
#执行 ./startup.sh
#停止 ./shotdown.sh
Docker(yum安装)
- 检测系统
[root@li /]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
- 安装准备环境
yum -y install 包名 #yum install 安装命令 -y 所有的先择都是y
yum -y install gcc
yum -y install gcc-c++
- 清除以前的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
然后根据官网进行安装:https://docs.docker.com/engine/install/centos/
- 安装环境:
yum install -y yum-utils \
> device-mapper-persistent-data \
> lvm2
- 安装镜像:aliyun的镜像,比较快
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
- 安装 docker
yum -y install docker-ce docker-ce-cli containerd.io
- 启动
systemctl start docker
- 镜像下载下来
docker run hello-world