写在前面:
- 环境 — 腾讯云服务器下的 centos 8
- finalshell 连接云服务器
一、Linux 目录结构
概览
-
/ : 根目录
- : 当前目录 ① root 用户 / 代表 /root ②其它用户 / 代表 /home
bin
存放二进制可执行文件
boot
存放用于系统引导时使用的各种文件
data
dev
存放设备文件
etc
存放系统配置文件
home
存放用户文件的跟目录
lib
存放跟文件系统中的程序运行所需要的共享库及内核模块
lib64
lost+found
media
mnt
系统管理员安装临时文件系统的安装点
opt
proc
root
超级用户目录
run
sbin
存放二进制可执行文件, 只有 root 用户才能访问
srv
sys
tmp
用于存放各种临时文件
usr
存放共享的系统资源
var
存放运行时需要改变数据的文件
二、Linux 常用命令
- pwd : 显示当前所在目录
- touch:创建一个空文件
- clear:清屏 快捷键 ctrl + L
- netstat -apn | grep : 端口号 — 查看 80 端口被什么进程占用
1. 切换目录命令:cd
tips:
使用 tab 键补全命令
--help:查看帮助
cd + 路径: 切换到指定路径
cd … : 切换到上一级目录
cd / : 切换到系统根目录
cd ~ : 切换到当前用户主目录
cd - : 切换到上一个目录
2. 列出文件列表:ls、ll
tips: 在 linux 中以 . 开头的文件都是隐藏文件
ls ( list ) : 显示当前目录下的内容.
* ls -a : 显示当前目录下所有的文件和文件夹(包括隐藏的)
* ls -l(ll) :显示当前目录下**非隐藏**的所有文件的详细信息
3. 创建目录和移除目录:mkdir、rmdir
mkdir + 路径:创建指定的一级目录
mkdir -p + 多级路径:创建多级目录
rmdir + 路径:移除指定的空目录
4. 浏览文件:cat、more、less、tail
cat + 文件名:查看文件的所有内容
more + 文件名:分页显示文件内容。回车 显示下一行,空格 显示下一页,按 q 或 ctrl+c 退出
less + 文件名:比 more 多一个滚动查看的功能
tail -n + 文件名:查看文件的最后 n 行(比如查看日志)
5. 文件操作:rm、cp、mv、tar、find、grep
rm:删除
- rm -r + 文件夹:删除指定文件夹,会有询问(确定删除吗)
- rm -rf + 文件夹:删除指定文件夹,不会询问(直接删除)
- *rm -rf / **:自杀
cp:复制
mv:剪切
【tar】:打包或解压
tar 命令位于 /bin 目录下,它能够将用户所指定的文件或目录**打包成一个文件,但不做压缩。**一般 Linux 上常用的压缩方式是选用 tar 将许多文件打包成一个文件,再以 gzip 压缩命令压缩成 xxx.tar.gz(或称为 xxx.tgz)的文件。
tar -c:创建一个新 tar 文件
tar -v:显示运行过程的信息
tar -f:指定文件名
tar -z:调用 gzip 压缩命令进行压缩 或 解压
tar - t:查看压缩文件的内容
tar -x:解开 tar 文件
- 打包:
- tar -cvf xxx.tar ./*
- 打包并压缩:
- tar -zcvf xxx.tar.gz ./*
- 解包:
- tar -xvf xxx.tar — 未压缩
- tar -zxvf xxx.tar.gz -C + 路径 — 已压缩
【find】:查找符合条件的文件
* find + 路径 + -name + 文件名(如:catalina.log、cata*.log)
【grep】:查找文件里符合条件的字符串
- grep + 字符串 + 路径
- grep + 字符串 + 路径 --color:高亮显示字符串
- grep + 字符串 + 路径 --color -A1 -B1:显示字符串所在行的前一行(B1)、后一行(A1)
三、Linux 的vi 和 vim 编辑器
vim 编辑器
三种模式:命令行模式、插入模式、底行模式
-
命令行模式:按 esc 键
-
插入模式:按 i o a 键
- i:在当前位置插入
- I:在当前行首插入
- a:在当前位置后插入
- A:在当前行尾插入
- o:在当前行之后插入一行
- O:在当前行之前插入一行
-
底行模式:按 : (冒号)键
搜索:
进入底行模式,输入 /8080 :查找 8080
打开文件:./ 代表当前目录
vi ./file:普通显示文件内容
vim ./file:高亮显示文件内容
退出编辑:
-
esc --> :q 退出
-
esc --> :wq 保存并退出
!:表示强制
-
esc --> :q! 强制退出
-
esc --> :wq! 强制保存并退出
使编辑生效:
* source ./file
重定向输出:>、>>
>: 重定向输出,覆盖原有内容
cat a.txt > b.txt
>>: 重定向输出,在文件尾追加
cat a.txt >> b.txt
系统管理命令
ps 正在运行的某个进程的状态
* ps -ef:查看所有进程
* ps -ef | grep java:查找名称中包含 java 的进程
* kill PID:杀死 PID 编号的进程
* kill -9 PID:强制杀死进程
管道:|
管道作用:将一个命令的输出作为另一个命令的输入。
四、Linux 的权限命令
文件权限管理
chmod 变更文件或目录的权限
- chmod 755 a.txt
- chmod u=rwx, g=rx, o=rx a.txt
- u:当前用户
- r:read 读 – 4
- w:write 写 --2
- x:excute 执行 --1
- g:当前组内其他用户
- o:其它组的用户
- u:当前用户
五、 Linux 上常用网络操作
1. 主机名配置
- hostname 查看主机名
- hostname xxx 修改主机名为 xxx,重启后无效
- 如果想要永久修改主机名,可以修改 /etc/sysconfig/network 文件
2. IP 地址配置
-
ifconfig 查看(修改)ip 地址 — 重启后无效
-
ifconfig eth0 192.168.13.14:修改 ip 地址为 192.168.13.14
-
如果想要永久生效 修改 /etc/sysconfig/network-scripts/ifcfg-eth0 文件
ifcfg-eth0:
# Created by cloud-init on instance boot automatically, do not edit. # BOOTPROTO=dhcp #获取 ip 的方式:static/dhcp/bootp/none DEVICE=eth0 #网卡名称 DHCPV6C=yes DHCPV6C_OPTIONS=-S HWADDR=52:54:00:8d:b3:45 #MAC 地址 IPV6INIT=yes IPV6_AUTOCONF=yes ONBOOT=yes #开机时使用此网卡 eth0 PERSISTENT_DHCLIENT=yes TYPE=Ethernet USERCTL=no <hr> IPADDR #IP 地址 NETMASK #子网掩码 NETWORK #网络地址 BROADCAST #广播地址 NBOOT=yes #系统启动时是否设置此网络接口,yes 代表系统启动时激活此设备
3. 域名映射
在 /etc/hosts 文件中配置:ip 名字
4. 网络服务管理
-
service 服务名 status:查看指定服务状态
-
service 服务名 stop:停止指定服务
-
service 服务名 start:启动指定服务
-
service 服务名 restart:重启指定服务
-
service --status-all:查看系统中所有后台服务
-
netstat -nltp:查看系统中网络进程的端口监听情况
5. 防火墙设置
防火墙根据配置文件 /etc/sysconfig/iptables 来控制本机的 “出”、“入”网络访问行为
CentOS 7:
-
service iptables status:查看防火墙状态
-
service iptables stop:关闭防火墙
-
service iptables start:启动防火墙
-
chkconfig iptables off:禁止防火墙自启动
CentOS 8
-
systemctl start firewalld:开启防火墙
-
systemctl stop firewalld:关闭防火墙
-
firewall-cmd --reload:重启防火墙
六、Linux 上安装软件
- Linux 上的软件安装常见方式:
1. 二进制发布包
软件已经针对平台编译打包发布,只要解压,修改配置即可。
缺点:不适用于多平台
2. RPM 包
软件已经按照 Redhat 的包管理工具规范 RPM 进行打包发布,需要获取到相应的软件 RPM 发布包,然后用 RPM 命令进行安装
缺点:比如 C 程序依赖于 A 和 B 两个程序,它只会下载 C 程序,缺少 A和 B 两个依赖
3. Yum 在线安装
软件已经以 RPM 规范打包,但发布在了网络上的一些服务器上,可用 yum 在线安装服务器上的 rpm 软件,并且会自动解决软件安装过程中的库依赖问题
4. 源码编译安装
软件以源码工程的形式发布,需要获取到源码工程后用相应开发工具进行编译打包部署
- 上传与下载工具
- FileZilla
- lrzsz
- yum install lrzsz:安装 lrzsz
- rz:上传
- sz + 文件名:下载
3. sftp
4. finalshell 自带功能
- finalshell:自带上传下载功能
- 上传:选择文件夹,右键选择上传 或直接拖到指定位置
- 下载:直接右键,右上角设置下载目录
5. 安装 tomcat
centos8下:
systemctl start firewalld:开启防火墙
systemctl stop firewalld:关闭防火墙
firewall-cmd --reload:重启防火墙
firewall-cmd --zone=public --add-port=8080/tcp --permanent:开放8080端口
firewall-cmd --zone=public --query-port=8080/tcp:查看 8080 端口是否开放
firewall-cmd --zone=public --remove-port=8080/tcp --permanent:删除已开放的 8080 端口
6. 安装 redis
①源码安装 redis
redis 是 C 语言开发,安装 redis 需要先将官网下载的源码进行编译,编译依赖 gcc 环境
-
安装 gcc 依赖:在 local 文件夹下执行:yum install gcc-c++
-
安装依赖:
-
添加EPEL仓库:sudo yum install epel-release
-
更新yum源:sudo yum update
-
安装 redis:yum install redis 或 yum -y install redis(-y 代表同意所有询问)
②配置 redis
-
启动:systemctl start redis
-
设置开机自启 systemctl enable redis(腾讯云未设置)
-
允许远程连接:
- 修改 /etc/redis.conf 文件,注释掉 bing 127.0.0.1
- 搜索 requirepass foobared 取消注释 后面填写密码 – requirepass foobared 你的密码
-
查看 redis 服务状态:systemctl status redis
-
停止:systemctl stop redis
7. 安装 nginx
①yum 安装:
-
需要
-
gcc 环境:yum install gcc-c++
-
PCRE:yum install pcre pcre-devel
PCRE 是一个Perl 库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式
-
zlib:yum install zlib zlib-devel
zlib 库提供了很多种压缩和解压缩方式,nginx 使用 zlib 对 http 包的内容进行 gzip
-
OpenSSL:yum install openssl openssl-devel
OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的秘钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的的使用。nginx 不仅支持 http 协议,还支持 https(即在 ssl 协议上传输的 http)
-
-
安装 nginx:yum install nginx
-
启动:systemctl start nginx
-
重启:systemctl restart nginx
-
状态:systemctl status nginx
② 配置 nginx
nginx.conf: 虚拟主机和域名绑定
server {
listen 80 default_server; # 端口号,配置多个 server,改变端口号实现多态虚拟主机
listen [::]:80 default_server;
server_name _; # 域名 -- 在浏览器中输入域名,会先在本地 hosts 文件中找该域名,如果有,通过 ip 返回,然后通过 80 端口访问;如果没有,会通过本地 DNS 服务器去寻找对应的域名和端口及 ip 的对应
# root 代表访问的目录,将静态资源放入 html 文件夹下,配置 root。
# 输入服务器地址就可以访问了
#root /usr/share/nginx/html
root /usr/share/nginx/html/index
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
}