Linux(CentOS 7)

基于 Java 开发的 Linux

Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX(可移植操作系统接口)

自己测试用的服务器可以在阿里云上购买,或者使用 VMware 在虚拟机上安装 CentOS 镜像

购买完毕后,获取服务器的 IP 地址,重置服务器密码,就可以远程登录了

可以使用 xShell Xftp 工具或者 finallshell 远程连接操作 Linux 服务器

走进 Linux 系统

开机登录

开机会启动很多程序,在 Windows 系统中叫做 服务(service),在 Linux 系统中叫做 守护进程(daemon)

一般用户登录方式有三种:

  • 命令行登录
  • ssh 登录
  • 图形界面登录

最高权限为 root !

关机

Linux 系统很少进行关机操作的,除非特殊情况迫不得已才会关机。

关机的指令为 shutdown

sync # 将数据由内存同步到云盘中
shutdown -h 10 # 十小时后关机
shutdown -h now # 马上关机
shutdown -h 20:20 # 在今天 20:20 关机
shutdown -h +10 # 十分钟后关机
shutdown -r now # 马上重启
shutdown -r +10 # 系统十分钟后重启
reboot # 重启,相当于 shutdown -r now
halt # 关闭系统,相当于 shutdown -h now 和 poweroff

系统目录结构

  1. 所有的都是文件
  2. 根目录 /,所有的文件
ls / # 查看目录
  • /bin bin 是 Binary 的缩写,这个目录存放着最经常使用的命令
  • /boot 存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件
  • /dev dev 是 Device 的缩写,存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的
  • /etc 存放所有的系统管理所需要的配置文件和子目录
  • /home 用户的主目录,在 Linux 中,每个用户都有自己的一个目录,一般目录名以用户账号命名
  • /lib 存放着系统最基本的动态链接共享库,作用类似 Windows 系统的 DLL 文件
  • /lost+found 一般是空文件,系统非法关机后会存放一些文件
  • /media Linux 系统识别到 U 盘,光驱等会把识别的设备挂载到这个目录下
  • /opt 主机额外安装软件所摆放的目录
  • /proc 虚拟的目录,是系统内存的映射,可以通过直接访问这个目录获取系统信息
  • /root 系统管理员的用户主目录
  • /tmp 存放一些临时文件
  • /usr 很重要的目录,用户很多程序和文件都放在这个目录下,用户 APP 目录,类似 Windows 下的 program files 目录
  • /srv 存放一些服务启动之后需要提取的数据

Linux 宝塔环境搭建

安装宝塔环境需要开放 8888 端口

宝塔面板安装官网教学:https://www.bt.cn/download/linux.html

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
  • url:
  • username
  • password

进入网站后可以进行一键部署环境

常用基本命令

目录管理

切换目录

cd 目录名 :切换目录 ./ : 当前目录 cd … :返回上一级目录

列出目录

ls :列出目录

ls -a :all,查看全部文件,包括隐藏文件

ls -l :列出所有的文件,包括文件的属性和权限,没有隐藏文件

显示当前目录

pwd :显示当前用户所在的目录

创建目录

mkdir 目录名 :# 创建目录

mkdir -p 目录名/目录名 :层级创建目录

删除目录

rmdir 目录名 :#删除目录

rmdir -p 目录名/目录名 # 递归删除多个目录

复制文件或者目录

cp 源文件 目的文件夹 # 拷贝文件到指定目录

移除文件或目录

rm 文件名或目录

rm -f 文件名或目录 :忽略不存在的文件,不会出现警告,强制删除

rm -r 文件名或目录 :递归删除目录

rm -i 文件名或目录 :询问是否删除

移动文件或者目录

mv 源文件 目标文件夹或目录 :移动文件到指定目录

mv -f 源文件 目标文件夹或目录 :强制

mv -u 源文件 目标文件夹或目录 :只替换已经更新过的文件

mv 源文件名 新文件名 :重命名文件夹

基本属性

Linux 中第一个字符

  • d:目录
  • -:文件
  • l:链接文档
  • b:装置文件里可供储存的接口设备
  • c:装置文件里的串行端口设备,键盘、鼠标(一次性读取装置)

接下来的字符中,以三个为一组,并且都是rwx三个参数的组合

  • r:可读 read
  • w:可写 write
  • x:可执行 execute

如果没有权限,会出现-

文件类型

属主权限

属组权限

其他用户权限

0

1 2 3

4 5 6

7 8 9

d

r w x

r w x

r w x

目录文件

读 写 执行

读 写 执行

读 写 执行

从左到右用 0~9 数字表示

0 位确定文件类型,1-3 位确定文件所有者权限,4-6 位确定属组用户权限,7-9 位确定其他用户权限

1、4、7位表示读权限,使用 r 字符表示

2、5、8位表示写权限,使用 w 字符表示

3、6、9位表示可执行权限,使用 x 字符表示

修改文件权限

更改文件属组

chgrp -R 属组名 文件名:递归更改文件属组

更改文件属主,也可以更改文件属组

chown -R 属主名 文件名:改变文件属主

chown -R 属主名:属组名 文件名:改变文件属主及属组

更改文件 9 个属性

Linux 文件属性有两种设置方式,一种是数字,一种是符号。(常用数字)

Linux 文件的基本权限有九个,分别是 owner、group、others 三种身份各自有自己的 read、write,execute 权限。

r : 4 w : 2 x : 1

可读可写:rw- 6

可读可写可执行 7

chmod -R 777 filename

文件内容查看
  • cat 从第一行开始显示文件内容
  • tac 从最后一行开始显示文件内容
  • centos 关闭远程秘钥 centos 远程关机_linux

  • nl 显示的时候输出行号
  • centos 关闭远程秘钥 centos 远程关机_命令模式_02

  • more 一页一页的显示文件内容
  • less 与 more 类似,比 more 更好的是,可以向前翻页 /要查询的字符进行查询,? 向上查找,n 寻找下一个,N寻找上一个
  • head -n 行数:只看头 n 行
  • tall -n 只看尾部 n 行

man 命令: 可以查看命令的使用文档

网络配置

CentOS7 网络配置文件位置

/etc/sysconfig/network-scripts

使用 ifconfig 命令查看

Linux 链接

Linux 的链接分为硬链接和软连接

硬链接:类似复制并同步操作,删除之后不影响源文件存在

软链接:类似 Windows 下的快捷方式,删除源文件,快捷方式无法访问

创建链接使用ln命令

使用touch命令创建文件

echo 命令输入字符串,也可以输入到文件中

[root@VM-0-4-centos ~]# touch f1 # 创建文件 f1
[root@VM-0-4-centos ~]# ln f1 f2 # 创建一个硬链接 f2
[root@VM-0-4-centos ~]# ln -s f1 f3 # 创建一个软链接 f3
[root@VM-0-4-centos ~]# ls
f1  f2  f3
[root@VM-0-4-centos ~]# ll
total 0
-rw-r--r-- 2 root root 0 Apr 23 23:14 f1
-rw-r--r-- 2 root root 0 Apr 23 23:14 f2
lrwxrwxrwx 1 root root 2 Apr 23 23:15 f3 -> f1
[root@VM-0-4-centos ~]# echo "i love baimengke" >>f1
[root@VM-0-4-centos ~]# cat f1
i love baimengke
[root@VM-0-4-centos ~]# cat f3
i love baimengke
[root@VM-0-4-centos ~]# cat f2
i love baimengke
[root@VM-0-4-centos ~]#

Vim 编辑器

什么是vim

vim 是一个程序开发工具,vim 通过一些插件可以实现 IDE 一样的功能。

vim 是从 Vi 中发展出来的一个编辑器,代码补全,编译,及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

三种使用模式

基本上 Vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Lastline mode)

1、命令模式

用户启动 Vi、vim,就会进入命令模式,如果文件存在会修改文件,如果不存在会新建文件

这个状态敲击键盘动作会被识别为命令而不是输入字符

常用命令:

  • i:切换到输入模式,输入字符
  • x:删除当前光标所在处的字符
  • **:**切换到底线命令模式,在最底一层输入命令

2、输入模式

  • 字符按键以及 shift 组合,输入字符
  • enter 键,回车键,换行
  • backspace 退格键,删除光标前一个字符
  • del 删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • home/end 键,移动光标到首尾
  • page up/page down,上下翻页
  • insert,切换光标为输入/替换模式,贯标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式

3、底线命令模式

在命令模式下按:(英文冒号)就可以进入底线命令模式,光标移动到最下面,可以输入一些底线命令

  • :q:退出程序
  • :w:保存文件
  • :wq:强制存储后离开
  • :ZZ:没有改动就不存储离开,改动过则储存后离开
  • :w filename:编辑的数据存储到另一个档案
  • :r filename:编辑的数据中读入另一个档案的数据
  • :n1,n2 w filename:将 n1 到 n2 的内容存储到 filename 档案中
  • :set nu:显示行号
  • :set nonu:取消行号
  • :u:撤回
  • Ctrl + r :返回撤销内容

移动光标的方法

h 或者 ←

向左移动一个字符

j 或者 ↓

向下移动一个字符

k 或者 ↑

向上移动一个字符

l 或者 →

向右移动一个字符

Ctrl + f

屏幕向下移动一页,相当于 page down

ctrl + b

屏幕向上移动一页,相当于 page up

Ctrl + d

屏幕向下移动半页

ctrl + u

屏幕向上移动半页

+

光标移动到非空格符的下一行

-

光标移动到非空格符的上一行

搜索替换

/word

向下寻找一个名称为 word 的字符

?word

向上寻找一个名称为 word 的字符

n

重复前一个搜寻的操作

N

反向进行前一个搜寻的操作

Linux 账号管理

可以使用 hostname 主机名 来切换主机名称

添加用户

useradd -选项 用户名

  • -m:自动创建用户的主目录 /home/用户名
[root@VM-0-4-centos ~]# useradd -m baimengke	# 创建一个用户
[root@VM-0-4-centos ~]# cd /home
[root@VM-0-4-centos home]# ls
baimengke  redis  www
[root@VM-0-4-centos home]#

Linux 中一切都是文件,创建用户就是向某个文件中写入用户信息 /etcpasswd

删除用户

userdel -r 用户名 删除用户的时候将目录一起删掉

[root@VM-0-4-centos home]# userdel -r baimengke
[root@VM-0-4-centos home]# ls
redis  www

修改用户

usermod 修改内容 修改用户

  • -d 目录:指定用户主目录
  • -g 用户组:指定用户所属组
  • -G 用户组:指定用户所属的附加组
[root@VM-0-4-centos home]# usermod -d /home baimengke

修改完毕后查看配置文件即可

cat /etc/passwd

切换用户

  1. 切换普通用户命令:su username
  2. 普通用户切换到 root 用户: su 或者 sudo su
  3. 在终端输入 exit 或者 logout 或者使用快捷方式 Ctrl + d 可以退回到原来用户
  4. 切换用户时,如果想在切换用户后使用新用户的工作环境,可以在 su 和 username 之间 加 - ,比如 su -root

$ 表示普通用户

# 表示超级用户

用户密码设置

passwd 用户名

[root@sqdkk ~]# passwd baimengke
Changing password for user baimengke.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@sqdkk ~]#

锁定账号

passwd -l 用户名 # 锁定之后用户不能登录
passwd -d 用户名 # 没有密码也不能登录

用户组管理

用户组的管理涉及用户组的添加、删除和修改,组的增加、删除、修改实际上是对 /etc/group 文件的修改

创建用户组

groupadd 用户组名 cat /etc/group

创建完用户组可以得到一个组的 id,id 可以指定,不指定就默认自增 1

groupadd -g id 用户组名

[root@sqdkk ~]# groupadd -g 520 baimengke2
[root@sqdkk ~]# cat /etc/group

删除用户组

groupdel 用户组名

[root@sqdkk ~]# groupdel baimengke2
[root@sqdkk ~]# cat /etc/group

修改用户组的权限信息和名字

[root@sqdkk ~]# groupmod -g 520 -n baimengke2 baimengke
[root@sqdkk ~]# cat /etc/group
# 修改用户组 id 为 520,重命名为 baimengke2

切换用户组

# 登录当前用户 baimengke2
newgrp root

文件查看

/etc/passwd

用户名:口令(登录密码,不可见):用户标识号:组标识号:注释性描述:主目录:登录shell
文件中每一行代表一个用户,可以看到每个用户的主目录在哪里,以及属于哪个组

/etc/shadow

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告事件:不活动时间:失效时间:标志
登录口令,加密后的用户口令存放在 /etc/shadon 中

/etc/group

用户组的信息存放在 /etc/group 文件中

磁盘管理

查看磁盘使用情况

df(列出文件系统整体的磁盘使用量)

du(检查磁盘空间的使用量)

df -h(按 M 或 G 查看)

[root@sqdkk ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
devtmpfs          930500       0    930500   0% /dev
tmpfs             941008      24    940984   1% /dev/shm
tmpfs             941008     540    940468   1% /run
tmpfs             941008       0    941008   0% /sys/fs/cgroup
/dev/vda1       51473868 5692176  43458572  12% /
tmpfs             188204       0    188204   0% /run/user/0
[root@sqdkk ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        909M     0  909M   0% /dev
tmpfs           919M   24K  919M   1% /dev/shm
tmpfs           919M  540K  919M   1% /run
tmpfs           919M     0  919M   0% /sys/fs/cgroup
/dev/vda1        50G  5.5G   42G  12% /
tmpfs           184M     0  184M   0% /run/user/0
[root@sqdkk ~]# du
8	./.cache/abrt
8	./.cache/pip/http/7/6/7/4/f
12	./.cache/pip/http/7/6/7/4
16	./.cache/pip/http/7/6/7
20	./.cache/pip/http/7/6
24	./.cache/pip/http/7
172	./.cache/pip/http/5/e/2/6/d
176	./.cache/pip/http/5/e/2/6
180	./.cache/pip/http/5/e/2
184	./.cache/pip/http/5/e
188	./.cache/pip/http/5
48	./.cache/pip/http/c/f/1/c/2
52	./.cache/pip/http/c/f/1/c
56	./.cache/pip/http/c/f/1
60	./.cache/pip/http/c/f
64	./.cache/pip/http/c
24	./.cache/pip/http/b/8/e/b/a
28	./.cache/pip/http/b/8/e/b
32	./.cache/pip/http/b/8/e
36	./.cache/pip/http/b/8
40	./.cache/pip/http/b
12	./.cache/pip/http/2/f/c/e/e
16	./.cache/pip/http/2/f/c/e
20	./.cache/pip/http/2/f/c
24	./.cache/pip/http/2/f
28	./.cache/pip/http/2
348	./.cache/pip/http
8	./.cache/pip/selfcheck
180	./.cache/pip/wheels/3a/64/b6/ca54e036582cba4ec0aad12462355ebb53fa82b716a99733ab
184	./.cache/pip/wheels/3a/64/b6
188	./.cache/pip/wheels/3a/64
192	./.cache/pip/wheels/3a
196	./.cache/pip/wheels
556	./.cache/pip
568	./.cache
8	./.pip
8	./.oracle_jre_usage
4	./.config/abrt
8	./.config
4	./.pki/nssdb
8	./.pki
4	./.ssh
652	.
[root@sqdkk ~]# du -h
8.0K	./.cache/abrt
8.0K	./.cache/pip/http/7/6/7/4/f
12K	./.cache/pip/http/7/6/7/4
16K	./.cache/pip/http/7/6/7
20K	./.cache/pip/http/7/6
24K	./.cache/pip/http/7
172K	./.cache/pip/http/5/e/2/6/d
176K	./.cache/pip/http/5/e/2/6
180K	./.cache/pip/http/5/e/2
184K	./.cache/pip/http/5/e
188K	./.cache/pip/http/5
48K	./.cache/pip/http/c/f/1/c/2
52K	./.cache/pip/http/c/f/1/c
56K	./.cache/pip/http/c/f/1
60K	./.cache/pip/http/c/f
64K	./.cache/pip/http/c
24K	./.cache/pip/http/b/8/e/b/a
28K	./.cache/pip/http/b/8/e/b
32K	./.cache/pip/http/b/8/e
36K	./.cache/pip/http/b/8
40K	./.cache/pip/http/b
12K	./.cache/pip/http/2/f/c/e/e
16K	./.cache/pip/http/2/f/c/e
20K	./.cache/pip/http/2/f/c
24K	./.cache/pip/http/2/f
28K	./.cache/pip/http/2
348K	./.cache/pip/http
8.0K	./.cache/pip/selfcheck
180K	./.cache/pip/wheels/3a/64/b6/ca54e036582cba4ec0aad12462355ebb53fa82b716a99733ab
184K	./.cache/pip/wheels/3a/64/b6
188K	./.cache/pip/wheels/3a/64
192K	./.cache/pip/wheels/3a
196K	./.cache/pip/wheels
556K	./.cache/pip
568K	./.cache
8.0K	./.pip
8.0K	./.oracle_jre_usage
4.0K	./.config/abrt
8.0K	./.config
4.0K	./.pki/nssdb
8.0K	./.pki
4.0K	./.ssh
652K	.
[root@sqdkk ~]#
[root@sqdkk /]# du -sm -h /*
0	/bin
106M	/boot
4.0K	/data
0	/dev
39M	/etc
84K	/home
28K	/install.sh
0	/lib
0	/lib64
16K	/lost+found
4.0K	/media
4.0K	/mnt
136M	/opt
8.0K	/patch
du: cannot access ‘/proc/14334/task/14334/fd/4’: No such file or directory
du: cannot access ‘/proc/14334/task/14334/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/14334/fd/4’: No such file or directory
du: cannot access ‘/proc/14334/fdinfo/4’: No such file or directory
0	/proc
652K	/root
540K	/run
0	/sbin
4.0K	/srv
0	/sys
13M	/tmp
2.3G	/usr
515M	/var
2.3G	/www
[root@sqdkk /]#

挂载

mount 设备位置 挂载位置

-f:强制挂载

进程管理

什么是进程

  1. 在 Linux 中,每个程序有自己的一个进程,每个进程都有一个 id 号
  2. 每个进程都有一个父进程
  3. 进程可以有两种方式存在,前台、后台运行
  4. 一般服务都是在后台运行,基本的程序都是在前台运行

查看系统中进程

ps -xx:

  • -a :显示当前终端所有运行的进程信息(当前进程)
  • -u:以用户信息显示进程
  • -x:显示后台运行进程的参数
# 查看所有的进程
ps -aux | grep
# | 在 Linux 中这个叫做管道符,A|B
# grep 查找文件中符合条件的字符串

查看父进程信息

ps -ef|grep 进程名 # 看父进程一般可以通过目录树结构查看

pstree -pu # 进程树
	-p:显示父id
	-u:显示用户组

centos 关闭远程秘钥 centos 远程关机_linux_03

结束进程,等价于 Windows 的结束任务

kill -9 进程id:强制结束进程

环境安装

安装软件一般有三种方式:rpm、解压缩、yum 在线安装

JDK、MySQL、Tomcat 安装

安装命令:rpm -ivh rpm安装包

卸载命令:rpm -e -nodeps 文件名

配置环境变量 /etc/profilerpm安装不需要配置环境变量

JAVA_HOME=/usr/java/jdk1.8.0_291-i586
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME

查看防火墙端口

firewall-cmd --list-all :查看全部信息

firewall-cmd --list-port :查看端口信息

开启防火墙端口

firewall-cmd --zone=public --add-port=端口号/tcp --permanent

  • –zone:作用域
  • –add-port=80/tcp:添加端口,格式为:端口/通讯协议
  • –permanent:永久生效,没有此参数重启后失效

重启防火墙

systemctl restart firewalld.service

Docker 安装

Docker 安装

联网情况下:yum -y install yum源 :安装命令