写在前面

  • 环境 — 腾讯云服务器下的 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:其它组的用户

五、 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 / {
    }
}

更多推荐

Linux 学习笔记