Linux 学习笔记 - CentOS

VMware虚拟机

Xshell+Xftp

1 介绍

  1. Linux 是一个开源、免费的操作系统,具有很强的稳定性、安全性、以及处理多并发的能力,目前大多数企业级应用甚至是集群项目都部署运行在 Linux 操作系统上,很多软件公司考虑到开发成本都首选Linux,Linux 在中国软件公司得到了广泛的使用。

  2. Linux 的主要发行版本有以下几种:
    Ubuntu(乌班图)RedHat(红帽)CentOS、Debain(蝶变)、Fedora、SuSE、OpenSUSE、红旗Linux(国产)。
    我们使用 CentOS 进行学习。

2 安装

  1. VMware12 虚拟机。
  2. CentOS 镜像系统。

3 Linux 的目录结构

在这里插入图片描述

  1. /:Linux 系统的根目录。
  2. root:该目录为系统管理员目录,root 是具有超级权限的用户。
  3. bin ->usr/bin:存放系统预装的可执行程序,这里存放的可执行文件可以在系统的任何目录下执行
  4. usr:Linux 的系统资源目录,里面存放的是一些系统可执行文件或者系统的一些文件库。
  5. usr/local/bin:存放用户自己的可执行文件,同样这里存放的可执行文件可以在系统的任何目录下执行
  6. lib->usr/lib:这个目录存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件,几乎所有的应用程序都需要用到这些共享库。
  7. boot:这个目录存放启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
  8. dev:dev是 Device(设备)的缩写,该目录下存放的是 Linux 的外部设备,Linux 中的设备也是以文件的形式存在。
  9. etc:这个目录存放 Linux 系统的所有配置文件。
  10. home:用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名以用户的账号命名,叫作用户的根目录;用户登录以后,默认打开自己的根目录。
  11. var:这个目录存放在不断扩充的东西,我们习惯将那些经常被修改的文件存放在该目录下,比如运行的各种日志文件。
  12. mnt:系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容。
  13. opt:存放 Linux 中额外安装的软件。比如安装的 MySQL 数据库就可以放到这个目录下,该目录默认为空。
  14. tmp:该目录用来存放临时文件。

4 远程操作工具

  1. Xshell:远程终端。
  2. Xftp:远程文件传输。

5 vi 和 vim 编辑器

vi 和 vim 是 Linux 提供的文本编辑器。

  1. 三种模式:
模式 进入方法
正常模式 vim 文件名,进入正常模式。若文件存在,则打开文件;若文件不存在,则新建并打开文件。正常模式下只能进行读操作。
编辑模式 在正常模式下,按ai,进入编辑模式,按ESC,退出编辑模式。在编辑模式下可以进行读写操作。
命令模式 在正常模式下,输入:,进入命令模式。命令模式下,输入q:文件没有做任何修改时退出;wq:保存并退出;q!:不保存强制退出。
  1. 快捷键:
快捷键 功能
yy 复制光标所在行
nyy 复制光标所在行向下 n 行(包括光标所在行)
p 粘贴到光标所在行的下一行
dd 删除光标所在行
ndd 删除光标所在行向下 n 行(包括光标所在行)
u 撤销上一次操作
/xxx 搜索 xxx,在命令模式下使用
set nu 显示行号,在命令模式下使用
set nonu 关闭行号,在命令模式下使用

6 用户管理

root 账户,具有 Linux 系统的最高权限,可以进行用户管理操作。

在 root 账户下,使用命令:

  1. useradd 用户名:添加用户。
    该命令执行后,会有三个操作:
    (1)创建用户
    (2)创建用户根目录 /home/用户名
    (3)创建主组,组名为用户名,并把该用户添加到该组中。
    也可以在创建用户时,指定用户根目录:useradd -d /home/目录名 用户名
  2. passwd 用户名:为用户设置密码。密码不能少于7位,不能过于简单,不能是单词的组合。
  3. userdel -r 用户名:删除用户以及用户根目录。userdel 用户名:只删除用户,不删除用户根目录。
  4. id 用户名:查看用户信息。主要用于查看用户的组信息。
  5. su 用户名:切换用户。从 root 切换到其他用户可以直接切换;从其他用户切换到 root 需要输入密码。

7 组

组是 Linux 中,进行权限管理的基本方式。可以将具有相同权限的用户放在同一个组中,便于管理。

  • groupadd 组名:新建组。
  • groupdel 组名:删除组。
  • gpasswd -a 用户名 组名:将用户添加到组中。
  • gpasswd -d 用户名 组名:将用户从组中删除。
  • useradd -g 组名 用户名:创建用户时指定用户所在组(此时不会创建默认组)。

8 系统命令

  • shutdown now:立即关机。
  • shutdown -h 时间:定时关机。时间可以为数字,单位为分钟;也可以为具体时间,如17:00。
  • shutdown -r now:立即重启。
  • shutdown -c:取消上一条 shutdown 命令。
  • reboot:立即重启。
  • sync:把内存的数据同步到磁盘。

9 帮助命令

  • man 命令名:查看该命令的系统说明文档。分屏显示,Enter:下一行,空格:下一页,q:退出。
  • help 命令名:查看该命令的开发注释。

10 目录、文件操作

10.1 pwd、ls

  • pwd:查看当前所在目录的全路径。
  • ls [选项] [目录名]:查看指定目录下的所有目录和文件。
    • ls:查看当前目录。
    • ls /home:查看 home 目录。
    • ls -a /home:查看 home 目录下 (包括隐藏和虚拟的) 所有目录和文件。
    • ls -l /home:以列表形式展示 home 目录下的所有目录和文件。
    • ls -al /home:以列表形式展示 home 目录下(包括隐藏和虚拟的)所有目录和文件。

10.2 cd

  1. cd 目录名:切换目录。
  2. 绝对目录:从盘符根路径开始。Linux 只有一个根路径 /。如,cd /home/mcc:进入 mcc 目录。
  3. 相对目录:从当前目录开始。假设当前在 home 目录,cd mcc:进入 mcc 目录。
  4. ~:绝对目录,当前用户的根目录。~ = /home/用户名。cd ~:进入用户根目录。
  5. ..:相对目录,当前目录的上一级目录。cd ..:进入上一级目录。
  6. .:相对目录,当前目录。cd ./xxx = cd xxx:进入当前目录下的 xxx 目录。

10.3 mkdir、rmdir

  1. mkdir [选项] 目录名:创建目录。如,mkdir /home/mcc/dir:创建 dir 目录。
  2. mkdir -p 目录名/目录名:创建多级目录。mkdir -p dir1/dir2:创建 dir1 和 dir2 目录。
  3. rmdir 目录名:删除一个空目录

10.4 touch

  • touch 文件名列表(多个文件名用空格隔开):创建一个或多个空文件。如,touch text1.txt text2.txt。创建后,如果需要编写内容,可以用 vi 或 vim 打开。

vi 或 vim 创建的文件会默认直接打开。如果需要创建之后马上打开编辑,可以使用 vi 或 vim 创建;如果只需要创建,不需要打开,可以使用 touch 创建。

10.5 cp

  • cp [选项] sourceFile dest:将 sourceFile 复制到 dest (复制单个文件)。如,cp text1.txt dir/textcp.txt:将 text.txt 复制到当前目录下 dir 文件夹下,文件名为 textcp.txt。
  • cp -r sourceDir dest:将 sourceDir 以及其中的文件,复制到 dest (复制目录和目录中的文件)。如,cp -r dir /home/mcc,将 dir 目录和其中的文件,复制到 /home/mcc 下。

10.6 rm

  • rm 文件名:删除文件。会提示是否确认删除。
  • rm -f 文件名:强制删除文件。不提示是否确认删除。
  • rm -r 目录名:删除目录以及目录中的文件。会提示是否确认删除。执行流程:先进入到目录中,删除目录中的全部文件,再删除该目录。
  • rm -rf 目录名:强制删除目录以及目录中的文件。不提示是否确认删除。

10.7 mv

命令 结果
mv file dir (1)dir 存在,将 file 移动到 dir 下。(2)dir 不存在,将 file 重命名为 dir。
mv dir1 dir2 (1)dir2 存在,将 dir1,包括其中的子目录和文件,移动到 dir2 下。(2)dir2 不存在,将 dir1 重命名为 dir2。
mv file1 file2 将 file1 重命名为 file2,若 file2 已经存在,则会将 file2 覆盖。

10.8 cat

  • cat [选项] 文件名:以只读形式,查看文件内容。
  • cat -n 文件名:显示行号。

10.9 more

  • more 文件名:以只读、全屏方式,按页显示文件内容。 在这里插入图片描述

10.10 less

  • less 文件名:分屏查看文件内容,功能与 more 指令类似。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示加载内容,在显示大型文件时具有较高的效率。
    在这里插入图片描述

10.11 head

  • head 文件名:默认查看文件的前 10 行内容。
  • head -n num 文件名:查看文件的前 num 行内容。如,head -n 5 test.txt:查看 test.txt 的前 5 行内容。

10.12 tail

  • tail 文件名:默认查看文件的最后 10 行内容。
  • tail -n num 文件名:查看文件的最后 num 行内容。如,tail -n 5 test.txt:查看 test.txt 的最后 5 行内容。

10.13 echo

  • echo 输出内容:在控制台输出变量或常量的内容。其中,变量要用$变量名表示。如,echo $PATH:输出环境变量值;echo Hello, Linux:输出 Hello, Linux。

10.14 >、>>

  • 查看命令 > 文件:写入。将查看命令查出的结果保存到指定文件中。若文件不存在,则新建文件再保存;若文件存在,则直接保存。若两次操作指定的文件相同,则后一次查看的结果会覆盖前一次。如,ls > res.txt:将当前目录下的所有目录名和文件名,保存到 res.txt 中。如果再执行,ls test.txt > res.txt:则会覆盖文件中原有内容,将本次查看结果保存到 res.txt 中。
  • 查看命令 >> 文件:追加。与 > 类似,只不过新的查看结果会追加在文件的原有内容之后,不会覆盖。

11 日期与时间

日期与时间:

  • date:查看系统的日期与时间。
  • date +%Y:查看年份。
  • date +%m:查看月份。
  • date +%d:查看日期。
  • date '+%Y-%m-%d %H:%M:%S':以 年-月-日 时:分:秒 的格式查看系统日期和时间。
  • date -S '年-月-日 时:分:秒':设置系统日期和时间。

日历:

  • cal:查看当前月份的日历。
  • cal 年份:查看某一年的日历。

12 搜索目录与文件

find:

  • find [搜索范围] [搜索标准] 关键字:按条件搜索。
  • 搜索标准:-name:按名称查找,默认文件或目录所在的路径也在搜索范围之内-size:按大小查找。-user:按用户权限查找。
  • 举例:
    • 查找当前目录下名称中包含 a 的 txt 文件:find *a*.txt = find -name *a*.txt。其中,*是 Linux 系统中的通配符。
    • 查找当前目录下所有名称包含 d 的目录和文件:find *d*
    • 查找 etc 目录下所有 txt 文件:find /etc *.txt
    • 查找 etc 目录下文件大小小于 5M 的 txt 文件:find /etc -size -5M -name *.txt
    • 查找 etc 目录下,所有者是 mcc 的目录和文件:find /etc -user mcc

locate:

  • locate 关键字:在 Linux 系统的目录树中查找满足条件的目录和文件。
    因为新建的目录和文件不能及时同步到目录树中,因此使用该命令之前,需要先同步目录树:updatedb,再使用 locate 命令查找。

13 过滤查找

  • 查看或搜索命令 |grep [选项] 过滤条件:对查看或搜索的结果进行进一步过滤。
    选项:-n,显示匹配行的行号;-i,匹配时忽略大小写。
  • |:管道符,表示将前一个命令的处理结果,传递给后面的命令处理。
  • 举例:
    find *.txt |grep a:查找名称包含 a 的 txt 文件。
    cat text.txt |grep -ni abc:查找 text.txt 中的 abc(忽略大小写),并显示 abc 所在行号。
    在这里插入图片描述

14 压缩

14.1 gzip、gunzip

  • gzip 被压缩文件名:压缩单个文件,后缀名为.gz,并删除被压缩的文件。
  • gunzip gz压缩包名:解压 gz 压缩包,解压完成后删除压缩包。

14.2 zip、unzip

  • zip 压缩包名 被压缩文件或目录列表:压缩单个或多个文件和目录,后缀名为.zip。不会删除被压缩的文件和目录。
  • unzip 压缩包名:将压缩包解压到当前目录下。原压缩包不会被删除。
  • unzip 压缩包名 -d 解压目录:将压缩包解压到指定目录下。

14.3 tar

  • tar -zcvf 压缩包名 被压缩文件或目录列表:压缩一个或多个文件和目录,后缀名为.tar.gz。不会删除被压缩的文件和目录。
  • tar -zxvf 压缩包名:将压缩包解压到当前目录下。原压缩包不会被删除。
  • tar -zxvf 压缩包名 -C 解压目录:将压缩包解压到指定目录下。
  • 选项说明:
    -c:压缩
    -x:解压
    -z:打包同时压缩
    -f:指定压缩后的文件名
    -v:显示详细信息
    -C:指定解压到哪个目录

15 文件、目录与组的关系

在 Linux 系统中,每个用户都有一个主组,主组时是创建用户时必须要指定的,并且不能修改。每个用户可以有多个额外组,这些额外组表示用户的其他权限。

对于文件和目录来说,每个文件和目录都有自己的所有者和组,只有所有者相同组的用户,才有操作权限。

使用命令ls -l查看文件和目录的所有者、所在组。
在这里插入图片描述

15.1 修改文件或目录的所有者

  • chown 新的所有者 文件或目录名:不会修改目录内的文件和目录的所有者。
  • chown -R 新的所有者 文件或目录名:修改文件或目录的所有者,包括目录内的文件和目录。
  • chown [-R] 新的所有者:新的所在组 文件或目录名:同时修改所有者和所在组。

15.2 修改文件或目录的所在组

  • chgrp 新的所在组 文件或目录名:不会修改目录内的文件和目录的所在组。
  • chown -R 新的所在组 文件或目录名:修改文件或目录的所在组,包括目录内的文件和目录。

16 权限管理

16.1 文件和目录的权限

对于用户来说,一个用户只有一个主组,但可以有多个副组
对于文件和目录来说,一个文件或目录只能有一个所有者,一个所在组

文件和目录的权限:

类型 权限
文件 (1)读 read:查看文件,如 cat、more、less、head、tail 等。(2)写 write:编辑文件,如 vi、vim 等。(3)执行 execute:运行可执行文件(.sh 文件)。
目录 (1)读 read:查看目录内容,如 ls 等。(2)写 write:在目录内创建、删除、重命名子目录或文件等。如 mkdir。(3)执行 execute:进入该目录,如 cd 等。

16.2 查看权限

使用ls -l查看文件和目录的权限:
在这里插入图片描述

  • r:读权限。
  • w:写权限。
  • x:执行权限。

16.3 修改权限

如果要修改一个文件或目录的权限,那么该用户必须具有对这个文件或目录的w权限。
如果要删除一个文件或目录,那么该用户必须具有对这个文件或目录的上层目录的w权限。

修改权限:

  • chmod:修改文件或目录权限。
  • ugoa:分别对应所有者、同组用户、其他组用户、所有用户。
  • +-=:分别对应添加、删除、设置某个权限。
  • rwx:分别对应读、写、执行权限。
  • 举例:
    (1)删除 test.txt 同组用户的编辑权限:chmod g-w test.txt
    (2)删除 test.txt 同组用户的读取和编辑权限:chmod g-rw test.txt
    (3)为 test.txt 的同组用户添加执行权限,并删除其他用户的读取权限:chmod g+x,o-r test.txt

16.4 用数字的方式修改权限

rwx 权限可以用数字的和来表示:r-4, w-2, x-1
若权限为读和写,则可以使用 6,来代替 rw。
注意,如果使用数字设置权限,则必须将 u、g、o 的权限同时设置,也就是说必须三组数字一起使用。

举例:
将 test.txt 所有者权限设置为 rwx,同组用户为 rw,其他用户没有任何权限:chmod 760 test.txt

17 网络配置

  1. 获取 ip 地址,网关,DNS。如果是自己的电脑,按照下面的方法查看,如果是公司服务器,则公司会提供,只需设置进去就可以。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 网络的配置文件在 /etc/sysconfig/network-scripts 目录下:cd /etc/sysconfig/network-scripts
    在这里插入图片描述

  3. 使用 vi 或 vim 编辑器打开配置文件,进行配置。
    在这里插入图片描述

  4. 配置完成后,要重启 Linux 系统,才会生效:reboot

  5. 配置完成后,可以使用:ifconfig,查看 ip 地址。
    在这里插入图片描述

18 进程管理

  1. 查看进程:
    查看 Linux 系统正在运行的进程:ps -ef
    可以通过过滤功能,查看指定进程是否运行:ps -ef | grep xxx

  2. 关闭进程:
    使用命令:ps -ef,查看进程的 PID
    使用命令:kill -9 PID,关闭 PID 进程。

19 服务管理

systemctl [start|stop|restart|reload|status|enable] 服务名称

start:开启服务。
stop:停止服务。
restart:重启服务。
reload:重新加载数据、配置文件等。
status:查看服务状态。
enable:将服务设置为开机启动。

防火墙服务:firewalld

20 软件包管理

20.1 RPM 包

  • 查看当前系统中已经安装的 RPM 包:rpm -qa,查看是否安装 xxx 包:rpm -qa | grep xxx
  • 安装 RPM 包:rpm -ivh xxx.rpm
  • 卸载 RPM 软件:rpm -e 软件名称

20.2 YUM 包

YUM 包基于 RPM 包,类似于 Maven,不需要处理软件包之间的依赖关系,通过执行 YUM 命令,系统会自动去 YUM 服务器上下载所有依赖。不需要预先将软件包下载到本地。

  • 查看当前系统中已经安装的 RPM 包:yum list installed,查看是否安装 xxx 包:yum list installed | grep xxx
  • 安装 RPM 包:yum install 软件名称
  • 卸载 RPM 软件:yum remove 软件全名

21 搭建 JavaEE 开发环境

21.1 安装 jdk

  1. 使用 Xftp 软件,将 Linux 版本的 jdk 安装包传输到 /opt 目录下。
  2. 进入到 /opt 目录下,使用命令:tar -zxvf jdk压缩包名称 -C 解压路径,将 jdk 压缩包解压。
  3. 进入到 /etc 目录下,在profile文件中进行环境变量的配置。
  4. 配置环境变量:
    JAVA_HOME=jdk安装路径
    PATH=$JAVA_HOME/bin:$PATH
    CLASSPATH=$JAVA_HOME/lib:.
    export JAVA_HOME PATH CLASSPATH
    
         
          
          
    • 1
    • 2
    • 3
    • 4
  5. 重启 Linux 系统:reboot或重新加载 profile 配置文件:source profile
  6. 输入:java -version,查看 jdk 是否安装成功。

21.2 安装 tomcat

  1. 使用 Xftp 软件,将 Linux 版本的 tomcat 安装包传输到 /opt 目录下。
  2. 进入到 /opt 目录下,使用命令:tar -zxvf jdk压缩包名称 -C 解压路径,将 tomcat 压缩包解压。
  3. 进入到 tomcat 安装目录下的 bin 目录,执行 startup.sh文件,启动 tomcat 服务器。
  4. 使用:ps -ef | grep tomcat,查看是否存在 tomcat 进程,如果存在,则代表已经启动了 tomcat 服务器。也可以在浏览器中,输入 http://localhost:8080,看能否访问到页面。
  5. 如果要在外部浏览器访问 Linux 的 tomcat 服务器,如在 Windows 系统上访问,则需要关闭 Linux 的防火墙服务:systemctl stop firewalld,之后在 Windows 的浏览器中输入:http://Linux的ip地址:8080,就可以访问。

21.3 安装 MySQL

  1. 检查 Linux 中是否安装了 mariadb:yum list installed | grep mariadb,如果安装了,需要卸载:yum remove mariadb全称
    在这里插入图片描述
  2. 使用 Xftp 软件,将 Linux 版本的 mysql 安装包传输到 /opt 目录下。
  3. 进入到 /opt 目录下,使用命令:tar -zxvf mysql压缩包名称 -C 解压路径,将 mysql 压缩包解压。
  4. 由于 mysql 解压之后的目录名很长,不方便后续使用,所以重命名 mysql 目录名:mv 原目录名 新目录名,注意,新目录之前不能存在,否则会将原目录移动到新目录下,而不是重命名。这里假设重命名后的目录名为:mysqlDir。
  5. 在 mysqldir 下,创建存放数据的目录 data:mkdir data。该目录用来存放数据库文件,数据库的表等数据都放在 data 目录下。
  6. 创建用来执行mysqld命令的 Linux 用户:groupadd mysqluseradd -g mysql mysql。该用户专门用来执行 mysql 的 mysqld 命令,此命令用来初始化 msyql 的基本信息
  7. 初始化 mysql,使用 mysqld 命令初始化数据库的基本信息。在 mysqlDir/bin 目录下,使用命令:./mysqld --initialize --user=mysql --datadir=/opt/mysqlDir/data --basedir=/opt/mysqlDir。该命令执行后,会生成一个临时的 mysql 数据库 root 用户的密码,先将改密码记录下来,后续第一次登录 mysql 时需要使用。
    在这里插入图片描述
  8. 开启 mysql 的安全功能。该功能将客户端和服务器之间传输的数据进行加密,通过证书提供了身份验证机制。在 mysqlDir/bin 目录下,使用命令:./mysql_ssl_rsa_setup --datadir=/opt/mysqlDir/data,开启该功能。
  9. 修改 mysql 安装目录的权限。由于安装 mysql 是在 root 账户下安装的,所以之前新建的,用于管理 mysql 的账户并不具有最高权限。因此,要修改 mysql 安装目录,即 mysqlDir 的所有者为 mysql,所在组为 mysql,并开放所有权限。在 mysqlDir 的上级目录下执行命令:chown -R mysql:mysql /opt/mysqlDir/chmod 777 /opt/mysqlDir/
  10. 启动 mysql。在 mysqlDir/bin 目录下,使用命令:./mysqld_safe &,启动 mysql 服务,其中 & 表示后台启动。使用:ps -ef | grep mysql,查看 mysql 服务是否启动成功。
  11. 登录 mysql。在 mysqlDir/bin 目录下,使用命令:./mysql -u用户名 -p,输入初始化密码,登录 mysql。其中,-u 表示使用哪个账户登录 mysql,-p 表示使用密码登录。
  12. 修改密码。登入 mysql 后,使用命令:show databases;,第一次使用时,会提示修改密码。使用命令:alter user '用户名'@'主机域名或ip' identified by '新密码';,如 alter user 'root'@'localhost' identified by 'mcc';,修改用户密码。
  13. 授权远程访问 mysql。在没有授权之前只能在本机访问 mysql,授权远程访问之后,就可以让其他计算机通过网络访问 Linux 上的 mysql。
    (1)登入 mysql 后,使用命令:grant all privileges on *.* to 用户名@'%' identified by '密码';,授权远程访问。其中*.* 的第一个*表示所有数据库,第二个*表示所有的数据表,% 表示 ip 地址,也可以指定具体的 ip 地址,如 root@localhost、[email protected] 等。
    (2)更新权限信息,使用命令:flush privileges;,刷新权限。
    (3)关闭防火墙:systemctl stop firewalld。可以使用:systemctl status firewalld,查看防火墙是否关闭成功(Active inactive(dead))。
    (4)远程连接 mysql。在其他计算机的数据库软件上,如 Windows 上的 SQLyog,输入 Linux 系统的 ip 地址,端口号:3306,授权了远程访问的用户名和密码,即可远程连接 Linux 上的 mysql。
  14. 关闭 mysql。在 mysqlDir/bin 目录下,使用命令:./mysqladmin -u用户名 -p shutdown,输入密码,关闭 mysql 服务。使用:ps -ef | grep mysql,查看 mysql 服务是否关闭成功。

VMware虚拟机

Xshell+Xftp

1 介绍

  1. Linux 是一个开源、免费的操作系统,具有很强的稳定性、安全性、以及处理多并发的能力,目前大多数企业级应用甚至是集群项目都部署运行在 Linux 操作系统上,很多软件公司考虑到开发成本都首选Linux,Linux 在中国软件公司得到了广泛的使用。

  2. Linux 的主要发行版本有以下几种:
    Ubuntu(乌班图)RedHat(红帽)CentOS、Debain(蝶变)、Fedora、SuSE、OpenSUSE、红旗Linux(国产)。
    我们使用 CentOS 进行学习。

2 安装

  1. VMware12 虚拟机。
  2. CentOS 镜像系统。

3 Linux 的目录结构

在这里插入图片描述

  1. /:Linux 系统的根目录。
  2. root:该目录为系统管理员目录,root 是具有超级权限的用户。
  3. bin ->usr/bin:存放系统预装的可执行程序,这里存放的可执行文件可以在系统的任何目录下执行
  4. usr:Linux 的系统资源目录,里面存放的是一些系统可执行文件或者系统的一些文件库。
  5. usr/local/bin:存放用户自己的可执行文件,同样这里存放的可执行文件可以在系统的任何目录下执行
  6. lib->usr/lib:这个目录存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件,几乎所有的应用程序都需要用到这些共享库。
  7. boot:这个目录存放启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
  8. dev:dev是 Device(设备)的缩写,该目录下存放的是 Linux 的外部设备,Linux 中的设备也是以文件的形式存在。
  9. etc:这个目录存放 Linux 系统的所有配置文件。
  10. home:用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名以用户的账号命名,叫作用户的根目录;用户登录以后,默认打开自己的根目录。
  11. var:这个目录存放在不断扩充的东西,我们习惯将那些经常被修改的文件存放在该目录下,比如运行的各种日志文件。
  12. mnt:系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容。
  13. opt:存放 Linux 中额外安装的软件。比如安装的 MySQL 数据库就可以放到这个目录下,该目录默认为空。
  14. tmp:该目录用来存放临时文件。

4 远程操作工具

  1. Xshell:远程终端。
  2. Xftp:远程文件传输。

5 vi 和 vim 编辑器

vi 和 vim 是 Linux 提供的文本编辑器。

  1. 三种模式:
模式 进入方法
正常模式 vim 文件名,进入正常模式。若文件存在,则打开文件;若文件不存在,则新建并打开文件。正常模式下只能进行读操作。
编辑模式 在正常模式下,按ai,进入编辑模式,按ESC,退出编辑模式。在编辑模式下可以进行读写操作。
命令模式 在正常模式下,输入:,进入命令模式。命令模式下,输入q:文件没有做任何修改时退出;wq:保存并退出;q!:不保存强制退出。
  1. 快捷键:
快捷键 功能
yy 复制光标所在行
nyy 复制光标所在行向下 n 行(包括光标所在行)
p 粘贴到光标所在行的下一行
dd 删除光标所在行
ndd 删除光标所在行向下 n 行(包括光标所在行)
u 撤销上一次操作
/xxx 搜索 xxx,在命令模式下使用
set nu 显示行号,在命令模式下使用
set nonu 关闭行号,在命令模式下使用

6 用户管理

root 账户,具有 Linux 系统的最高权限,可以进行用户管理操作。

在 root 账户下,使用命令:

  1. useradd 用户名:添加用户。
    该命令执行后,会有三个操作:
    (1)创建用户
    (2)创建用户根目录 /home/用户名
    (3)创建主组,组名为用户名,并把该用户添加到该组中。
    也可以在创建用户时,指定用户根目录:useradd -d /home/目录名 用户名
  2. passwd 用户名:为用户设置密码。密码不能少于7位,不能过于简单,不能是单词的组合。
  3. userdel -r 用户名:删除用户以及用户根目录。userdel 用户名:只删除用户,不删除用户根目录。
  4. id 用户名:查看用户信息。主要用于查看用户的组信息。
  5. su 用户名:切换用户。从 root 切换到其他用户可以直接切换;从其他用户切换到 root 需要输入密码。

7 组

组是 Linux 中,进行权限管理的基本方式。可以将具有相同权限的用户放在同一个组中,便于管理。

  • groupadd 组名:新建组。
  • groupdel 组名:删除组。
  • gpasswd -a 用户名 组名:将用户添加到组中。
  • gpasswd -d 用户名 组名:将用户从组中删除。
  • useradd -g 组名 用户名:创建用户时指定用户所在组(此时不会创建默认组)。

8 系统命令

  • shutdown now:立即关机。
  • shutdown -h 时间:定时关机。时间可以为数字,单位为分钟;也可以为具体时间,如17:00。
  • shutdown -r now:立即重启。
  • shutdown -c:取消上一条 shutdown 命令。
  • reboot:立即重启。
  • sync:把内存的数据同步到磁盘。

9 帮助命令

  • man 命令名:查看该命令的系统说明文档。分屏显示,Enter:下一行,空格:下一页,q:退出。
  • help 命令名:查看该命令的开发注释。

10 目录、文件操作

10.1 pwd、ls

  • pwd:查看当前所在目录的全路径。
  • ls [选项] [目录名]:查看指定目录下的所有目录和文件。
    • ls:查看当前目录。
    • ls /home:查看 home 目录。
    • ls -a /home:查看 home 目录下 (包括隐藏和虚拟的) 所有目录和文件。
    • ls -l /home:以列表形式展示 home 目录下的所有目录和文件。
    • ls -al /home:以列表形式展示 home 目录下(包括隐藏和虚拟的)所有目录和文件。

10.2 cd

  1. cd 目录名:切换目录。
  2. 绝对目录:从盘符根路径开始。Linux 只有一个根路径 /。如,cd /home/mcc:进入 mcc 目录。
  3. 相对目录:从当前目录开始。假设当前在 home 目录,cd mcc:进入 mcc 目录。
  4. ~:绝对目录,当前用户的根目录。~ = /home/用户名。cd ~:进入用户根目录。
  5. ..:相对目录,当前目录的上一级目录。cd ..:进入上一级目录。
  6. .:相对目录,当前目录。cd ./xxx = cd xxx:进入当前目录下的 xxx 目录。

10.3 mkdir、rmdir

  1. mkdir [选项] 目录名:创建目录。如,mkdir /home/mcc/dir:创建 dir 目录。
  2. mkdir -p 目录名/目录名:创建多级目录。mkdir -p dir1/dir2:创建 dir1 和 dir2 目录。
  3. rmdir 目录名:删除一个空目录

10.4 touch

  • touch 文件名列表(多个文件名用空格隔开):创建一个或多个空文件。如,touch text1.txt text2.txt。创建后,如果需要编写内容,可以用 vi 或 vim 打开。

vi 或 vim 创建的文件会默认直接打开。如果需要创建之后马上打开编辑,可以使用 vi 或 vim 创建;如果只需要创建,不需要打开,可以使用 touch 创建。

10.5 cp

  • cp [选项] sourceFile dest:将 sourceFile 复制到 dest (复制单个文件)。如,cp text1.txt dir/textcp.txt:将 text.txt 复制到当前目录下 dir 文件夹下,文件名为 textcp.txt。
  • cp -r sourceDir dest:将 sourceDir 以及其中的文件,复制到 dest (复制目录和目录中的文件)。如,cp -r dir /home/mcc,将 dir 目录和其中的文件,复制到 /home/mcc 下。

10.6 rm

  • rm 文件名:删除文件。会提示是否确认删除。
  • rm -f 文件名:强制删除文件。不提示是否确认删除。
  • rm -r 目录名:删除目录以及目录中的文件。会提示是否确认删除。执行流程:先进入到目录中,删除目录中的全部文件,再删除该目录。
  • rm -rf 目录名:强制删除目录以及目录中的文件。不提示是否确认删除。

10.7 mv

命令 结果
mv file dir (1)dir 存在,将 file 移动到 dir 下。(2)dir 不存在,将 file 重命名为 dir。
mv dir1 dir2 (1)dir2 存在,将 dir1,包括其中的子目录和文件,移动到 dir2 下。(2)dir2 不存在,将 dir1 重命名为 dir2。
mv file1 file2 将 file1 重命名为 file2,若 file2 已经存在,则会将 file2 覆盖。

10.8 cat

  • cat [选项] 文件名:以只读形式,查看文件内容。
  • cat -n 文件名:显示行号。

10.9 more

  • more 文件名:以只读、全屏方式,按页显示文件内容。 在这里插入图片描述

10.10 less

  • less 文件名:分屏查看文件内容,功能与 more 指令类似。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示加载内容,在显示大型文件时具有较高的效率。
    在这里插入图片描述

10.11 head

  • head 文件名:默认查看文件的前 10 行内容。
  • head -n num 文件名:查看文件的前 num 行内容。如,head -n 5 test.txt:查看 test.txt 的前 5 行内容。

10.12 tail

  • tail 文件名:默认查看文件的最后 10 行内容。
  • tail -n num 文件名:查看文件的最后 num 行内容。如,tail -n 5 test.txt:查看 test.txt 的最后 5 行内容。

10.13 echo

  • echo 输出内容:在控制台输出变量或常量的内容。其中,变量要用$变量名表示。如,echo $PATH:输出环境变量值;echo Hello, Linux:输出 Hello, Linux。

10.14 >、>>

  • 查看命令 > 文件:写入。将查看命令查出的结果保存到指定文件中。若文件不存在,则新建文件再保存;若文件存在,则直接保存。若两次操作指定的文件相同,则后一次查看的结果会覆盖前一次。如,ls > res.txt:将当前目录下的所有目录名和文件名,保存到 res.txt 中。如果再执行,ls test.txt > res.txt:则会覆盖文件中原有内容,将本次查看结果保存到 res.txt 中。
  • 查看命令 >> 文件:追加。与 > 类似,只不过新的查看结果会追加在文件的原有内容之后,不会覆盖。

11 日期与时间

日期与时间:

  • date:查看系统的日期与时间。
  • date +%Y:查看年份。
  • date +%m:查看月份。
  • date +%d:查看日期。
  • date '+%Y-%m-%d %H:%M:%S':以 年-月-日 时:分:秒 的格式查看系统日期和时间。
  • date -S '年-月-日 时:分:秒':设置系统日期和时间。

日历:

  • cal:查看当前月份的日历。
  • cal 年份:查看某一年的日历。

12 搜索目录与文件

find:

  • find [搜索范围] [搜索标准] 关键字:按条件搜索。
  • 搜索标准:-name:按名称查找,默认文件或目录所在的路径也在搜索范围之内-size:按大小查找。-user:按用户权限查找。
  • 举例:
    • 查找当前目录下名称中包含 a 的 txt 文件:find *a*.txt = find -name *a*.txt。其中,*是 Linux 系统中的通配符。
    • 查找当前目录下所有名称包含 d 的目录和文件:find *d*
    • 查找 etc 目录下所有 txt 文件:find /etc *.txt
    • 查找 etc 目录下文件大小小于 5M 的 txt 文件:find /etc -size -5M -name *.txt
    • 查找 etc 目录下,所有者是 mcc 的目录和文件:find /etc -user mcc

locate:

  • locate 关键字:在 Linux 系统的目录树中查找满足条件的目录和文件。
    因为新建的目录和文件不能及时同步到目录树中,因此使用该命令之前,需要先同步目录树:updatedb,再使用 locate 命令查找。

13 过滤查找

  • 查看或搜索命令 |grep [选项] 过滤条件:对查看或搜索的结果进行进一步过滤。
    选项:-n,显示匹配行的行号;-i,匹配时忽略大小写。
  • |:管道符,表示将前一个命令的处理结果,传递给后面的命令处理。
  • 举例:
    find *.txt |grep a:查找名称包含 a 的 txt 文件。
    cat text.txt |grep -ni abc:查找 text.txt 中的 abc(忽略大小写),并显示 abc 所在行号。
    在这里插入图片描述

14 压缩

14.1 gzip、gunzip

  • gzip 被压缩文件名:压缩单个文件,后缀名为.gz,并删除被压缩的文件。
  • gunzip gz压缩包名:解压 gz 压缩包,解压完成后删除压缩包。

14.2 zip、unzip

  • zip 压缩包名 被压缩文件或目录列表:压缩单个或多个文件和目录,后缀名为.zip。不会删除被压缩的文件和目录。
  • unzip 压缩包名:将压缩包解压到当前目录下。原压缩包不会被删除。
  • unzip 压缩包名 -d 解压目录:将压缩包解压到指定目录下。

14.3 tar

  • tar -zcvf 压缩包名 被压缩文件或目录列表:压缩一个或多个文件和目录,后缀名为.tar.gz。不会删除被压缩的文件和目录。
  • tar -zxvf 压缩包名:将压缩包解压到当前目录下。原压缩包不会被删除。
  • tar -zxvf 压缩包名 -C 解压目录:将压缩包解压到指定目录下。
  • 选项说明:
    -c:压缩
    -x:解压
    -z:打包同时压缩
    -f:指定压缩后的文件名
    -v:显示详细信息
    -C:指定解压到哪个目录

15 文件、目录与组的关系

在 Linux 系统中,每个用户都有一个主组,主组时是创建用户时必须要指定的,并且不能修改。每个用户可以有多个额外组,这些额外组表示用户的其他权限。

对于文件和目录来说,每个文件和目录都有自己的所有者和组,只有所有者相同组的用户,才有操作权限。

使用命令ls -l查看文件和目录的所有者、所在组。
在这里插入图片描述

15.1 修改文件或目录的所有者

  • chown 新的所有者 文件或目录名:不会修改目录内的文件和目录的所有者。
  • chown -R 新的所有者 文件或目录名:修改文件或目录的所有者,包括目录内的文件和目录。
  • chown [-R] 新的所有者:新的所在组 文件或目录名:同时修改所有者和所在组。

15.2 修改文件或目录的所在组

  • chgrp 新的所在组 文件或目录名:不会修改目录内的文件和目录的所在组。
  • chown -R 新的所在组 文件或目录名:修改文件或目录的所在组,包括目录内的文件和目录。

16 权限管理

16.1 文件和目录的权限

对于用户来说,一个用户只有一个主组,但可以有多个副组
对于文件和目录来说,一个文件或目录只能有一个所有者,一个所在组

文件和目录的权限:

类型 权限
文件 (1)读 read:查看文件,如 cat、more、less、head、tail 等。(2)写 write:编辑文件,如 vi、vim 等。(3)执行 execute:运行可执行文件(.sh 文件)。
目录 (1)读 read:查看目录内容,如 ls 等。(2)写 write:在目录内创建、删除、重命名子目录或文件等。如 mkdir。(3)执行 execute:进入该目录,如 cd 等。

16.2 查看权限

使用ls -l查看文件和目录的权限:
在这里插入图片描述

  • r:读权限。
  • w:写权限。
  • x:执行权限。

16.3 修改权限

如果要修改一个文件或目录的权限,那么该用户必须具有对这个文件或目录的w权限。
如果要删除一个文件或目录,那么该用户必须具有对这个文件或目录的上层目录的w权限。

修改权限:

  • chmod:修改文件或目录权限。
  • ugoa:分别对应所有者、同组用户、其他组用户、所有用户。
  • +-=:分别对应添加、删除、设置某个权限。
  • rwx:分别对应读、写、执行权限。
  • 举例:
    (1)删除 test.txt 同组用户的编辑权限:chmod g-w test.txt
    (2)删除 test.txt 同组用户的读取和编辑权限:chmod g-rw test.txt
    (3)为 test.txt 的同组用户添加执行权限,并删除其他用户的读取权限:chmod g+x,o-r test.txt

16.4 用数字的方式修改权限

rwx 权限可以用数字的和来表示:r-4, w-2, x-1
若权限为读和写,则可以使用 6,来代替 rw。
注意,如果使用数字设置权限,则必须将 u、g、o 的权限同时设置,也就是说必须三组数字一起使用。

举例:
将 test.txt 所有者权限设置为 rwx,同组用户为 rw,其他用户没有任何权限:chmod 760 test.txt

17 网络配置

  1. 获取 ip 地址,网关,DNS。如果是自己的电脑,按照下面的方法查看,如果是公司服务器,则公司会提供,只需设置进去就可以。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 网络的配置文件在 /etc/sysconfig/network-scripts 目录下:cd /etc/sysconfig/network-scripts
    在这里插入图片描述

  3. 使用 vi 或 vim 编辑器打开配置文件,进行配置。
    在这里插入图片描述

  4. 配置完成后,要重启 Linux 系统,才会生效:reboot

  5. 配置完成后,可以使用:ifconfig,查看 ip 地址。
    在这里插入图片描述

18 进程管理

  1. 查看进程:
    查看 Linux 系统正在运行的进程:ps -ef
    可以通过过滤功能,查看指定进程是否运行:ps -ef | grep xxx

  2. 关闭进程:
    使用命令:ps -ef,查看进程的 PID
    使用命令:kill -9 PID,关闭 PID 进程。

19 服务管理

systemctl [start|stop|restart|reload|status|enable] 服务名称

start:开启服务。
stop:停止服务。
restart:重启服务。
reload:重新加载数据、配置文件等。
status:查看服务状态。
enable:将服务设置为开机启动。

防火墙服务:firewalld

20 软件包管理

20.1 RPM 包

  • 查看当前系统中已经安装的 RPM 包:rpm -qa,查看是否安装 xxx 包:rpm -qa | grep xxx
  • 安装 RPM 包:rpm -ivh xxx.rpm
  • 卸载 RPM 软件:rpm -e 软件名称

20.2 YUM 包

YUM 包基于 RPM 包,类似于 Maven,不需要处理软件包之间的依赖关系,通过执行 YUM 命令,系统会自动去 YUM 服务器上下载所有依赖。不需要预先将软件包下载到本地。

  • 查看当前系统中已经安装的 RPM 包:yum list installed,查看是否安装 xxx 包:yum list installed | grep xxx
  • 安装 RPM 包:yum install 软件名称
  • 卸载 RPM 软件:yum remove 软件全名

21 搭建 JavaEE 开发环境

21.1 安装 jdk

  1. 使用 Xftp 软件,将 Linux 版本的 jdk 安装包传输到 /opt 目录下。
  2. 进入到 /opt 目录下,使用命令:tar -zxvf jdk压缩包名称 -C 解压路径,将 jdk 压缩包解压。
  3. 进入到 /etc 目录下,在profile文件中进行环境变量的配置。
  4. 配置环境变量:
    JAVA_HOME=jdk安装路径
    PATH=$JAVA_HOME/bin:$PATH
    CLASSPATH=$JAVA_HOME/lib:.
    export JAVA_HOME PATH CLASSPATH
    
         
        
        
    • 1
    • 2
    • 3
    • 4
  5. 重启 Linux 系统:reboot或重新加载 profile 配置文件:source profile
  6. 输入:java -version,查看 jdk 是否安装成功。

21.2 安装 tomcat

  1. 使用 Xftp 软件,将 Linux 版本的 tomcat 安装包传输到 /opt 目录下。
  2. 进入到 /opt 目录下,使用命令:tar -zxvf jdk压缩包名称 -C 解压路径,将 tomcat 压缩包解压。
  3. 进入到 tomcat 安装目录下的 bin 目录,执行 startup.sh文件,启动 tomcat 服务器。
  4. 使用:ps -ef | grep tomcat,查看是否存在 tomcat 进程,如果存在,则代表已经启动了 tomcat 服务器。也可以在浏览器中,输入 http://localhost:8080,看能否访问到页面。
  5. 如果要在外部浏览器访问 Linux 的 tomcat 服务器,如在 Windows 系统上访问,则需要关闭 Linux 的防火墙服务:systemctl stop firewalld,之后在 Windows 的浏览器中输入:http://Linux的ip地址:8080,就可以访问。

21.3 安装 MySQL

  1. 检查 Linux 中是否安装了 mariadb:yum list installed | grep mariadb,如果安装了,需要卸载:yum remove mariadb全称
    在这里插入图片描述
  2. 使用 Xftp 软件,将 Linux 版本的 mysql 安装包传输到 /opt 目录下。
  3. 进入到 /opt 目录下,使用命令:tar -zxvf mysql压缩包名称 -C 解压路径,将 mysql 压缩包解压。
  4. 由于 mysql 解压之后的目录名很长,不方便后续使用,所以重命名 mysql 目录名:mv 原目录名 新目录名,注意,新目录之前不能存在,否则会将原目录移动到新目录下,而不是重命名。这里假设重命名后的目录名为:mysqlDir。
  5. 在 mysqldir 下,创建存放数据的目录 data:mkdir data。该目录用来存放数据库文件,数据库的表等数据都放在 data 目录下。
  6. 创建用来执行mysqld命令的 Linux 用户:groupadd mysqluseradd -g mysql mysql。该用户专门用来执行 mysql 的 mysqld 命令,此命令用来初始化 msyql 的基本信息
  7. 初始化 mysql,使用 mysqld 命令初始化数据库的基本信息。在 mysqlDir/bin 目录下,使用命令:./mysqld --initialize --user=mysql --datadir=/opt/mysqlDir/data --basedir=/opt/mysqlDir。该命令执行后,会生成一个临时的 mysql 数据库 root 用户的密码,先将改密码记录下来,后续第一次登录 mysql 时需要使用。
    在这里插入图片描述
  8. 开启 mysql 的安全功能。该功能将客户端和服务器之间传输的数据进行加密,通过证书提供了身份验证机制。在 mysqlDir/bin 目录下,使用命令:./mysql_ssl_rsa_setup --datadir=/opt/mysqlDir/data,开启该功能。
  9. 修改 mysql 安装目录的权限。由于安装 mysql 是在 root 账户下安装的,所以之前新建的,用于管理 mysql 的账户并不具有最高权限。因此,要修改 mysql 安装目录,即 mysqlDir 的所有者为 mysql,所在组为 mysql,并开放所有权限。在 mysqlDir 的上级目录下执行命令:chown -R mysql:mysql /opt/mysqlDir/chmod 777 /opt/mysqlDir/
  10. 启动 mysql。在 mysqlDir/bin 目录下,使用命令:./mysqld_safe &,启动 mysql 服务,其中 & 表示后台启动。使用:ps -ef | grep mysql,查看 mysql 服务是否启动成功。
  11. 登录 mysql。在 mysqlDir/bin 目录下,使用命令:./mysql -u用户名 -p,输入初始化密码,登录 mysql。其中,-u 表示使用哪个账户登录 mysql,-p 表示使用密码登录。
  12. 修改密码。登入 mysql 后,使用命令:show databases;,第一次使用时,会提示修改密码。使用命令:alter user '用户名'@'主机域名或ip' identified by '新密码';,如 alter user 'root'@'localhost' identified by 'mcc';,修改用户密码。
  13. 授权远程访问 mysql。在没有授权之前只能在本机访问 mysql,授权远程访问之后,就可以让其他计算机通过网络访问 Linux 上的 mysql。
    (1)登入 mysql 后,使用命令:grant all privileges on *.* to 用户名@'%' identified by '密码';,授权远程访问。其中*.* 的第一个*表示所有数据库,第二个*表示所有的数据表,% 表示 ip 地址,也可以指定具体的 ip 地址,如 root@localhost、[email protected] 等。
    (2)更新权限信息,使用命令:flush privileges;,刷新权限。
    (3)关闭防火墙:systemctl stop firewalld。可以使用:systemctl status firewalld,查看防火墙是否关闭成功(Active inactive(dead))。
    (4)远程连接 mysql。在其他计算机的数据库软件上,如 Windows 上的 SQLyog,输入 Linux 系统的 ip 地址,端口号:3306,授权了远程访问的用户名和密码,即可远程连接 Linux 上的 mysql。
  14. 关闭 mysql。在 mysqlDir/bin 目录下,使用命令:./mysqladmin -u用户名 -p shutdown,输入密码,关闭 mysql 服务。使用:ps -ef | grep mysql,查看 mysql 服务是否关闭成功。

猜你喜欢

转载自blog.csdn.net/weixin_46644403/article/details/121784103