基于 Java 开发的 Linux
可以使用 xShell Xftp 工具或者 finallshell 远程连接操作 Linux 服务器
开机登录
开机会启动很多程序,在 Windows 系统中叫做 服务
(service),在 Linux 系统中叫做 守护进程
(daemon)
一般用户登录方式有三种:
最高权限为 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
系统目录结构
ls / # 查看目录
安装宝塔环境需要开放 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
进入网站后可以进行一键部署环境
切换目录
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 中第一个字符
接下来的字符中,以三个为一组,并且都是rwx
三个参数的组合
如果没有权限,会出现-
文件类型 | 属主权限 | 属组权限 | 其他用户权限 |
---|---|---|---|
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 从第一行开始显示文件内容
more 一页一页的显示文件内容
less 与 more 类似,比 more 更好的是,可以向前翻页 /要查询的字符进行查询,? 向上查找,n 寻找下一个,N寻找上一个
head -n 行数:只看头 n 行
tall -n 只看尾部 n 行
man 命令: 可以查看命令的使用文档
CentOS7 网络配置文件位置
/etc/sysconfig/network-scripts
使用 ifconfig
命令查看
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 通过一些插件可以实现 IDE 一样的功能。
vim 是从 Vi 中发展出来的一个编辑器,代码补全,编译,及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
三种使用模式
基本上 Vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Lastline mode)
1、命令模式
用户启动 Vi、vim,就会进入命令模式,如果文件存在会修改文件,如果不存在会新建文件
这个状态敲击键盘动作会被识别为命令而不是输入字符
常用命令:
2、输入模式
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 | 反向进行前一个搜寻的操作 |
可以使用 hostname 主机名
来切换主机名称
添加用户
useradd -选项 用户名
[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 修改内容 修改用户
[root@VM-0-4-centos home]# usermod -d /home baimengke
修改完毕后查看配置文件即可
cat /etc/passwd
切换用户
su username
su
或者 sudo su
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:强制挂载
什么是进程
查看系统中进程
ps -xx:
# 查看所有的进程
ps -aux | grep
# | 在 Linux 中这个叫做管道符,A|B
# grep 查找文件中符合条件的字符串
查看父进程信息
ps -ef|grep 进程名 # 看父进程一般可以通过目录树结构查看
pstree -pu # 进程树
-p:显示父id
-u:显示用户组
结束进程,等价于 Windows 的结束任务
kill -9 进程id:强制结束进程
安装软件一般有三种方式:rpm、解压缩、yum 在线安装
JDK、MySQL、Tomcat 安装
安装命令:rpm -ivh rpm安装包
卸载命令:rpm -e -nodeps 文件名
配置环境变量 /etc/profile
rpm安装不需要配置环境变量
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
重启防火墙
systemctl restart firewalld.service
Docker 安装
联网情况下:yum -y install yum源
:安装命令