Linux笔记

一、目录结构

Linux的目录结构都是从根开始,也就是“/”

  • bin:存放二进制可执行文件
  • boot:存放系统引导时使用的各种文件
  • dev:存放设备文件
  • etc:存放系统配置的文件
  • home:存放系统用户的文件
  • lib:存放程序运行所需的共享库和内核模块
  • opt:额外安装的可选应用程序包所放置的位置
  • root:超级用户目录
  • sbin:存放二进制可执行文件,只有root用户才能访问
  • tmp:存放临时文件
  • usr:存放系统应用程序
  • var:存放运行时需要改变数据的文件,例如日志文件

二、Linux常用命令

2.1 Linux命令初体验

2.1.1几个常用命令

命令 对应英文 作用
ls list 查看当前目录下的内容
pwd print work directory 查看当前所在目录
cd [目录名] change directory 切换目录
touch [文件名] touch 如果文件不存在,新建文件
mkdir [目录名] make directory 创建目录
rm [文件名] remove 删除指定文件

2.1.2 Linux命令使用技巧

  • Tab键自动补全
  • 连续两次Tab键,给出操作提示
  • 使用上下箭头快速调出曾经使用过的命令
  • 使用clear命令或者Ctrl+l 实现清屏

2.1.3 Linux命令格式

command {-option} {parameter}

说明:

  • command:命令名
  • option:选项,可用来对命令进行控制,也可以省略
  • parameter:传给命令的参数,可以是零个,一个或多个

2.2 文件目录操作命令

2.2.1 ls

显示指定目录下的内容

语法:ls {-al} {dir}

说明:

  • -a 显示所有文件及目录(. 开头的隐藏文件也会列出)
  • -l 除文件名称外,同时将文件形态(d表示目录,-表示文件)、权限、拥有者、文件大小等信息详细列出

注意:

由于我们使用ls命令时经常需要加入-l 选项,所以Linux为 ls -l 命令提供了一种简写方式,即 ll

2.2.2 cd

用于切换当前工作目录,即进入指定目录

语法:cd {dirName}

特殊说明:

  • ~表示用户的home目录
  • . 表示目录所在的目录
  • … 表示目前目录位置的上级目录

举例:

  • cd … :切换到当前目录的上级目录
  • cd ~ :切换到用户的home目录
  • cd /usr/local :切换到/usr/local目录

2.2.3 cat

用于显示文件内容

语法:cat {-n} fileName

说明:

  • -n :由1开始对所有输出的行数编号

举例:

  • cat /etc/profile :查看/etc目录下的profile文件内容

2.2.4 more

以分页的形式显示文件内容

语法:more fileName

操作说明:

  • 回车键 向下滚动一行
  • 空格键 向下滚动一屏
  • b 返回上一屏
  • q或者Ctrl+C 退出more

举例:

more /etc/profile :以分页方式显示/etc目录下的prifile文件内容

2.2.5 tail

查看文件末尾的内容

语法:tail {-f} fileName

说明:

  • -f:动态读取文件末尾内容并显示,通常用于日志文件的内容输出

举例:

taile /etc/profile :显示/etc目录下的profile文件末尾10行的内容

taile -20 /etc/profile :显示/etc目录下的profile文件末尾20行的内容

taile -f /my.log :动态读取my.log文件末尾内容并显示

2.2.6 mkdir

创建目录

语法:mkdir {-p} dirName

说明:

  • -p :确保目录名称存在,不存在就创建一个。通过此选项,可以实现多层目录同时创建

举例:

mkdir itcast :在当前目录下,建立一个名为itcast的子目录

mkdir -p itcast/test :在工作目录下的itcast目录中建立一个名为test的子目录,若itcast目录不存在,则建立一个

2.2.7 rmdir

删除空目录

语法:rmdir {-p} dirName

说明:

  • -p :当子目录被删除后使父目录为空目录的话,则一并删除

举例:

rmdir itcast :删除名为itcast的空目录

rmdir -p itcast/test :删除itcast目录中名为test的子目录,若test目录删除后itcast目录变为空目录,则也被删除

rmdir itcast* :删除名称以itcast开始的空目录

2.2.8 rm

删除文件或者目录

语法:rm {-rf} name

说明:

  • -r :将目录及目录中所有文件(目录)逐一删除,即递归删除
  • -f :无需确认,直接删除

举例:

rm -r itcast/ :删除名为itcast的目录和目录中所有文件,删除前需确认

rm -rf itcast/ :无需确认,直接删除名为itcast的目录和目录中所有文件

rm -f hello.txt :无需确认,直接删除hello.txt文件

2.3 拷贝移动命令

2.3.1 cp

用于复制文件或目录

语法:cp {-r} source dest

说明:

  • -r :如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件

举例:

cp hello.txt itcast/ 将hello.txt复制到itcast目录中

cp hello.txt ./hi.txt :将hello.txt复制到当前目录,并改名为hi.txt

cp -r itcast/ ./itheima/ :将itcast目录和目录下的所有文件复制到itheima目录下

cp -r itcast/* ./itheima/ :将itcast目录下所有文件复制到itheima目录下

2.3.2 mv

为文件或目录改名、或将文件或目录移动到其他位置

语法:mv source dest

举例:

mv hello.txt hi.txt :将hello.txt改名为hi.txt

mv hi.txt itheima/ :将文件hi.txt移动到itheima目录中

mv hi.txt itheima/hello.txt :将hi.txt移动到itheima目录中,并改名为hello.txt

mv itcast/ itheima/ :如果itheima目录不存在,将itcast目录改名为itheima

mv itcast/ itheima/ :如果itheima目录存在,将itcast目录移动到itheima目录中

2.4 打包压缩文件

*tar

对文件进行打包、解包、压缩、解压

语法:tar {-zcxvf} fileName {files}

包文件后缀为.tar 表示只是完成了打包,并没有压缩

包文件后缀为.tar.gz 表示打包的同时还进行了压缩

说明:

  • -z :z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或解压
  • -c :c代表的是create,即创建新的包文件
  • -x :x代表的是extract,实现从包文件中还原文件
  • -v :v代表的是verbose,显示命令的执行过程
  • -f :f代表的是file,用于指定包文件的名称

举例:

打包

tar -cvf hello.tar ./* :将当前目录下所有文件打包,打包后的文件名为hello.tar

tar -zcvf hello.tar.gz ./* :将当前目录下所有文件打包并压缩,打包后的文件为hello.tar.gz

解包

tar -xvf hello.tar :将hello.tar文件进行解压,并将解包后的文件放在当前目录

tar -zxvf hello.tar.gz :将hello.tar.gz文件进行解压,并将解压后的文件放在当前目录

tar -zxvf hello.tar.gz -C /usr/local :将hello.tar.gz文件进行解压,并将解压后的文件放在/usr/local目录

2.5 文本编辑命令

2.5.1 vi

vi命令时Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于Windows中的记事本

语法:vi fileName

说明:

  1. vim是从vi发展来的一个功能更加强大的文本编辑工具,在编辑文件时可以对文本内容进行着色,方便我们对文件进行编辑处理,所以实际工作中vim更加常用
  2. 要是用vim命令,需要我们自己完成安装。可以使用以下命令完成安装:
    yum install vim

2.5.2 vim

对文件内容进行编辑,vim其实就是一个文本编辑器

语法:vim fileName

说明:

  1. 在使用vim命令编辑文件时,如果指定的文件存在则直接打开此文件。如果不存在则新建文件
  2. vim在进行文本编辑时共分为三种模式,分别是命令模式,插入模式,底行模式。这三种模式之间可以相互切换。我们在使用vim时一定要注意我们当前所处的是哪种模式

针对三种模式说明如下:

  1. 命令模式
    • 命令模式下可以查看文件内容、移动光标(上下左右箭头、gg、G)
    • 通过vim命令打开文件后,默认进入命令模式
    • 另外两种模式需要首先进入命令模式,才能好进入彼此
  2. 插入模式
    • 插入模式下可以对文件内容进行编辑
    • 在命令模式下按下[i,o,a]任意一个,可以进入插入模式。进入插入模式后,下方会出现[insert]字样
    • 在插入模式下按下ESC键,回到命令模式
  3. 底行模式
    • 底行模式下可以通过命令对文件内容进行查找、显示行号、退出等操作
    • 在命令模式下按下[:,/]任意一个,可以进入底行模式
    • 通过/方式进入底行模式后,可以对文件内容进行查找
    • 通过: 方式进入底行模式后,可以输入wq(保存并退出)、q!(不保存退出)、set nu(显示行号)

2.6 查找命令

2.6.1 find

在指定目录下查找文件

语法:find dirName -option fileName

举例:

find . -name “*.java” :在当前目录及其子目录下查找.java文件

find /itcast -name “*.java” :在/itcast目录及其子目录下查找.java结尾的文件

2.6.2 grep

从指定文件中查找指定的文本内容

语法:grep word fileName

举例:

grep Hello HelloWorld.java :查找HelloWorld.java文件中出现的Hello字符串的位置

grep hello *.java :查找当前目录中所有.java结尾的文件中包含hello字符串的位置

三、Linux软件安装

3.1 软件安装方式

  • 二进制发布包安装
    • 软件已经针对平台编译打包发布,只要解压,修改配置即可
  • rpm安装
    • 软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题
  • yum安装
    • 一种在线软件安装方式,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库依赖问题
  • 源码编译安装
    • 软件以源码工程的形式发布,需要自己编译打包

3.2 安装jdk

操作步骤:

  1. 使用上传工具将二进制发布包上传到Linux,如jdk-8u171-linux-x64.tar.gz
  2. 解压安装包,命令为tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local
  3. 配置环境变量,使用vim命令修改/etc/profile文件,在文件末尾加入如下配置
    JAVA_HOME=/usr/local/jdk1.8.0.0_171
    PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
  4. 重新加载profile文件,使更改的配置立即生效,命令为source /etc/profile
  5. 检查安装是否成功,命令为java -version

3.3 安装Tomcat

3.3.1 安装

操作步骤:

  1. 使用上传工具将二进制包上传到Linux
  2. 解压安装包
  3. 进入Tomcat的bin目录启动服务,命令为sh startup.sh 或者./startup.sh

3.3.2 验证是否启动成功

一般有两种方式

  • 查看启动日志
    • more /usr/local/java/tomcat目录/logs/catalina.out
      • tail -50 /usr/local/java/tomcat目录/logs/catalina.out
  • 查看进程
    • ps -ef | grep tomcat

注意:

  • ps命令是Linux下非常强大的进程查看命令,通过ps -ef可以查看当前运行的所有进程的详细信息
  • “|”在Linux中成为管道符,可以将前面一个命令的结果输出给后一个命令作为输入
  • 使用ps命令查看进程时,经常配合管道符和查找grep 一起使用,来查看特定进程

3.3.3 防火墙操作

  • 查看防火墙状态
    • systemctl status firewalld :信息比较全
    • firewall-cmd --state 信息简单
  • 暂时关闭防火墙
    • systemctl stop firewalld
  • 永久关闭防火墙
    • systemctl disable firewalld
  • 开启防火墙
    • systemctl start firewalld
  • 开放指定端口
    • firewall-cmd --zone=public --add-port=8080/tcp --permanent
  • 关闭指定端口
    • firewall-cmd --zone=public --remove-port=8080/tcp --permanent
  • 立即生效
    • firewall-cmd --reload
  • 查看开放的端口
    • firewall-cmd --zone=public --list-ports

注意:

  1. systemctl是管理Linux中服务的命令,可以对服务进行启动、停止、重启、查看状态等操作
  2. firewall-cmd是Linux中专门用于控制防火墙的命令
  3. 为了保证系统安全,服务器的防火墙不建议关闭

3.3.4 停止Tomcat服务

一般有两种方式

  • 运行bin目录中的停止服务的脚本文件
    • sh shutdown.sh
    • ./shutdown.sh
  • 结束Tomcat进程
    • ps -ef | grep tomcat :获得进程id
    • kill -9 进程id :执行命令结束进程

注意:

kill命令是Linux提供的用于结束进程的 命令,-9表示强制结束

3.4 安装MySQL

3.4.1 检查当前

检查当前系统中是否安装MySQL数据库

rpm -qa :查询当前系统中安装的所有软件

rpm -qa | grep mysql :查询当前系统中安装的名称带mysql 的软件

rpm -qa | grep mariadb :查询当前系统中安装的名称带mariadb的软件

RPM(Red-Hat Package Manager)软件包管理器,是红帽Linux用于管理和安装软件的工具

注意:如果系统已经安装MySQL数据库,安装将失败。CentOS自带mariadb,与MySQL数据库冲突

3.4.2 卸载软件

卸载已经安装的冲突软件

rpm -e --nodeps 软件名称 :卸载软件

3.4.3 安装

一、准备工作

  1. 下载安装包 下载地址
  2. 查看系统⾃带的 MARIADB
    rpm -qa|grep mariadb
  3. 卸载系统⾃带的 MARIADB(如果有),remove后面加 rpm -qa|grep mariadb 查询出来的路径
    yum -y remove

二、解压

  1. 将 mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz 安装包上传到 /usr/local/ 目录下
  2. 安装包解压,并重命名为mysql
    xz -d mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
    tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar
    mv mysql-8.0.26-linux-glibc2.12-x86_64 mysql
  3. 创建MYSQL⽤户和⽤户组
    groupadd mysql
    useradd -g mysql mysql
  4. 修改MYSQL⽬录的归属⽤户
    chown -R mysql:mysql ./
  5. 准备MYSQL的配置⽂件,编辑 vim /etc/my.conf
    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    socket=/var/lib/mysql/mysql.sock
    [mysqld]
    skip-name-resolve
    #设置3306端⼝
    port = 3306
    socket=/var/lib/mysql/mysql.sock
    # 设置mysql的安装⽬录
    basedir=/usr/local/mysql
    # 设置mysql数据库的数据的存放⽬录
    datadir=/usr/local/mysql/data
    # 允许最⼤连接数
    max_connections=200
    # 服务端使⽤的字符集默认为8⽐特编码的latin1字符集
    character-set-server=utf8
    # 创建新表时将使⽤的默认存储引擎
    default-storage-engine=INNODB
    lower_case_table_names=1
    max_allowed_packet=16M
    # binglog配置
    server-id = 1
    log-bin = mysql-bin
    log_bin_index = binlog.index
    binlog_format = ROW
    # binlog过期清理时间;
    expire_logs_days= 7
    # binlog每个日志文件大小;
    max_binlog_size = 1024m
    # binlog缓存大小;
    binlog_cache_size = 128m
    # 最大binlog缓存大小。
    max_binlog_cache_size = 1024m
    并且修改权限
    mkdir /var/lib/mysql
    chmod 777 /var/lib/mysql

三、 安装MySQL

  1. 进入cd /usr/local/mysql 目录 进行初始化
    ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
  2. 执行初始化后,控制台会返回临时密码, 记录临时密码 ,后面会用到
    例如:像我的例子在最后一行 A temporary password is generated for root@localhost:kvct:yIy8_qk
    我的临时密码就是这个: kvct:yIy8_qk
    例子:
    2021-09-14T01:30:19.227943Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.26) initializing of server in progress as process 1808
    2021-09-14T01:30:19.250431Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
    2021-09-14T01:30:20.184005Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
    2021-09-14T01:30:21.140583Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1 is enabled for channel mysql_main
    2021-09-14T01:30:21.141148Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1.1 is enabled for channel mysql_main
    2021-09-14T01:30:21.341903Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: kvct:yIy8_qk
  3. 复制启动脚本到资源目录
    cp ./support-files/mysql.server /etc/init.d/mysqld
  4. 编辑vim /etc/init.d/mysqld,修改 basedir 和 datadir ,为其实际对应的目录
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data

四、设置MYSQL服务开机自启

  1. 增加 mysqld 服务控制脚本执⾏权限
    chmod +x /etc/init.d/mysqld
  2. 将 mysqld 服务加⼊到系统服务
    chkconfig --add mysqld
  3. 检查 mysqld 服务是否已经⽣效即可
    mysqld 0:关 1:关 2:开 3:开 4:开 5:开 6:关
    chkconfig --list mysqld
  4. 启动 mysql 服务, 返回 SUCCESS!
    service mysqld start
    如何停止 mysql 服务
    service mysqld stop

五、配置环境变量

  1. 编辑 vim ~/.bash_profile,在文件末尾添加下面信息
    export PATH=$PATH:/usr/local/mysql/bin
  2. 执行下面命令,使环境变量生效
    source ~/.bash_profile

六、登录MySQL,并修改密码

  1. 以 root 账户登录 mysql
    mysql -u root -p
  2. 输入刚才记录的 临时密码
  3. 修改 Root 账户密码,并刷新权限
    alter user user() identified by “root”;
    flush privileges;
  4. 设置远程主机登录
    use mysql;
    update user set user.Host=‘%’ where user.User=‘root’;
    flush privileges;

七、检查防火墙

  1. 做完上面步骤,肯能还是远程连接不上,开放端口或者关闭防火墙

  2. 查看防火墙状态
    systemctl status firewalld

  3. 查看开机是否启动防火墙服务
    systemctl is-enabled firewalld

  4. 关闭防火墙
    systemctl stop firewalld

  5. 禁用防火墙(系统启动时不启动防火墙服务)
    systemctl disable firewalld
    systemctl is-enabled firewalld

  6. 开放端口
    firewall-cmd --zone=public --add-port=3306/tcp --permanent
    firewall-cmd --reload # 配置立即生效

  7. 关闭端口
    firewall-cmd --zone=public --remove-port=3306/tcp --permanent
    firewall-cmd --reload # 配置立即生效

  8. 查看防火墙所有开放的端口
    firewall-cmd --zone=public --list-ports

  9. 查看监听的端口
    centos7默认没有 netstat 命令,需要安装 net-tools 工具,yum install -y net-tools
    netstat -lnpt

  10. 检查端口被哪个进程占用
    netstat -lnpt |grep 3306

  11. 查看进程的详细信息
    ps 6832

  12. 查看包含 mysql 的所有进程
    ps -ef | grep mysql

  13. 中止进程
    kill -9 6832

四、项目部署

一般有两种:手工部署项目、通过Shell脚本自动部署项目

4.1 手工部署项目

  1. 将项目打包成jar包
  2. 将jar包上传到Linux
  3. 启动程序(java -jar app.jar)
  4. 检查防火墙,确保8080端口对外开放
  5. 改为后台运行,并将输出打印到日志文件
    • nohup命令:用于不挂断地运行指定命令,退出终端不会影响程序的运行
    • 语法格式:nohup Command {Arg …} {&}
    • 参数说明
      • Command:要执行的命令
      • Arg:一些参数,可以指定输出文件
      • &:让命令在后台运行
    • 举例:nohup java -jar app.jar &>hello.log &
      • 后台运行java -jar命令,并将日志输出到hello.log文件
  6. 停止程序(采用杀死java -jar命令进程)

四、项目部署

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值