Linux初体验

Posted Gaorry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux初体验相关的知识,希望对你有一定的参考价值。

Linux笔记

一、Linux安装

1.1 网卡设置

如果诸位在启动服务器时未加载网卡,则会导致 IP 地址初始化失败。

可以采用以下的方式来解决。

  • 首先使用 ip addr 来查看服务器的 ip 地址。

  • 修改网络初始化配置,设定网卡在系统启动时初始化。
cd / # 进入根目录

cd etc # 进入 etc 目录

cd sysconfig # 进入 sysconfig 目录

cd network-scripts # 进入 network-scripts

vi ifcfg-ens33 # 编辑 ifcfg-en33 文件
  • 这里补充一下关于vi的按键操作
    • <i> 键,进入光标状态。
    • 移动光标,找到要修改的部分,再修改内容。
    • <ESC> 键,退出光标状态。
    • 再敲 :wq --> 最后按 <Enter> 键,成功保存退出

可以看到 BOOTPROTO=dhcpONBOOT=no。我们把其改为 ONBOOT=yes 就行。

  • ONBOOT 是指明在系统启动时是否激活网卡,只有在激活状态的网卡才能去连接网络,进行网络通讯。

之后重启虚拟机即可。



1.2 Linux目录介绍

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



二、Linux常用命令

2.1 Linux命令初体验

2.1.1 几个常用的命令


2.1.2 注意事项

在执行 Linux 命令时,若提示信息显示为乱码,一般多为编码问题导致。

只需要修改 Linux 的编码即可

  1. \'LANG="en_us.UTF-8"\' 追加到 /etc/profile 中去。
echo \'LANG="en_us.UTF-8"\' >> /etc/profile
  1. 重新加载配置文件,使得新增的配置生效
source /etc/profile

2.1.3 使用技巧

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

2.1.4 命令格式

command -[options] [parameter]

命令格式的说明

  • command:命令名
  • [-options]:选项,可用来对命令进行控制,也可以省略
  • [parameter]:传给命令的参数,可以是零个、一个或者多个
  • 其中 [] 代表可选,且命令名 ,选项 ,参数之间需用空格进行分隔


2.2 文件目录操作命令

2.2.1 ls

  • 作用:显示指定目录下的内容

  • 语法:ls [-al] [dir]

  • 说明

    • -a 显示所有文件及目录(像 .文件名 这样的 隐藏文件 也会列出)
    • -l 除文件名称外,同时将文件型态(d 表示目录,- 表示文件)、权限、拥有者、文件大小等信息详细列出
  • 注意:由于我们使用 ls 命令时经常需要加入 -l 选项,所以 Linuxls -l 命令提供了一种简写方式,即 ll


2.2.2 cd

  • 作用:用于切换当前工作目录,即进入指定目录
  • 语法:cd [dirName]
  • 特殊说明
    • ~ 表示当前用户的home目录
      • 不同用户的 home 目录可能不同,Linux 中的 root 用户的 home 目录即为 /root
    • . 表示目前所在的目录
    • .. 表示目前目录位置的上级目录
  • 举例
    • cd ..:切换到当前目录的上级目录
    • cd ~:切换到用户的 home 目录
    • cd /usr/local: 切换到 /usr/local 目录

2.2.3 cat

  • 作用:用于显示文件内容
  • 语法:cat [-n] filaName
  • 说明: -n 表示由 1 开始对所有输出行数编号
  • 举例:cat /etc/profile 查看 /etc 目录下的 profile 文件内容

2.2.4 more

  • 作用:以分页的形式显示文件内容
  • 语法:more fileName
  • 操作说明:
    • 回车键:向下滚动一行
    • 空格键:向下滚动一屏
    • b:返回上一屏
    • q 或者 Ctrl + C:退出 more
  • 举例:more /etc/profile:以分页方式显示 /etc 目录下的 profile 文件内容

2.2.5 tail

  • 作用:查看文件末尾的内容
  • 语法:tail [-f] fileName
  • 说明
    • -f:动态读取文件末尾内容并显示,通常用于日志文件的内容输出
  • 举例
    • tail /etc/profile:显示 /etc 目录下的 profile 文件末尾 10 行的内容
    • tail -20 /etc/profile:显示 /etc 目录下的 profile 文件末尾 20 行的内容
    • tail -f /itcast/my.log:动态读取 /itcast 目录下的 my.log 文件末尾内容并显示
  • 操作说明
    • tail [-f] fileName 动态读取时会霸屏,使用 Ctrl + C 退出即可。

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/ ./itheimal:将 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 表示打包的同时还进行了压缩
  • 说明

    • -zz 代表的是 gzip,通过 gzip 命令处理文件(gzip 可以对文件压缩或者解压)

    • -cc 代表的是 create,即创建新的包文件

    • -xx 代表的是 extract,实现从包文件中还原文件

    • -vv 代表的是 verbose,显示命令的执行过程

    • -ff 代表的是 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

2.5.2 vim

  • 作用:对文件内容进行编辑,vim 其实就是一个文本编辑器
  • 语法:vim fileName
  • 说明

    • vim是从vi发展来的一个功能更加强大的文本编辑工具。

      • 在编辑文件时可以对文本内容进行着色,方便我们对文件进行编辑处理,故实际工作中 vim 更加常用。
    • 要使用 vim 命令,需要我们自己完成安装。可以使用该命令来完成安装:yum install vim

    • 在使用 vim 命令编辑文件时,如果指定的文件存在则直接打开此文件。如果指定的文件不存在则新建文件。

    • vim在进行文本编辑时共分为三种模式

      • 命令模式(Command mode)、插入模式(Insert mode)、底行模式(Last line mode)。
      • 这三种模式之间可以相互切换。我们在使用 vim 时一定要注意我们当前所处的是哪种模式

  • 针对 vim 中的三种模式的说明

    • 命令模式

      • 命令模式下可以查看文件内容、移动光标(上下左右箭头、ggG
      • 通过 vim 命令打开文件后,默认进入命令模式
      • 另外两种模式需要首先进入命令模式,才能进入彼此
    • 插入模式

      • 插入模式下可以对文件内容进行编辑
      • 在命令模式下按下[iao]任意一个,可以进入插入模式。
        • 进入插入模式后,下方会出现 INSERT 字样
      • 在插入模式下按下 ESC 键,回到命令模式
    • 底行模式

      • 底行模式下可以通过命令对文件内容进行查找、显示行号、退出等操作

      • 在命令模式下按下[:/]任意一个,可以进入底行模式

      • 通过 / 方式进入底行模式后,可以对文件内容进行查找

      • 通过:方式进入底行模式后

        • 可以输入 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

  • 操作步骤
    • 使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux
      • jdk-8u171-linux-×64.tar.gz
    • 解压安装包,命令为 tar -zxvf jdk-8u171-linux-x64.tar.gz -C/usr/local
    • 配置环境变量,使用 vim 命令修改 /etc/profile 文件,在文件末尾加入如下配置
      • JAVA_HOME=/usr/local/jdk1.8.0_171
      • PATH=$JAVA_HOME/bin:$PATH
    • 重新加载 profile 文件,使更改的配置立即生效,命令为 source /etc/profile
    • 检查安装是否成功,命令为 java -version

3.3 有关防火墙的操作

  • CentOS 上 防火墙 的相关操作

    • 查看防火墙状态:systemctl status firewalldfirewall-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


  • 关于 防火墙 的相关注意事项
    • systemctl是管理Linux中服务的命令
      • 可以对服务进行启动、停止、重启、查看状态等操作
    • firewall-cmdLinux 中专门用于控制防火墙的命令
    • 为了保证系统安全,服务器的防火墙不建议关,一般只开放指定的端口

3.4 安装 Tomcat

  • 操作步骤

    • 使用FinalShell自带的上传工具将Tomcat 的二进制发布包上传到Linux

      • apache-tomcat-7.0.57.tar.gz
    • 解压安装包,命令为 tar -zxvf apache-tomcat-7.0.57.tar.gz -C /usr/local

    • 进入 Tomcatbin 目录启动服务,命令为 sh startup.sh 或者 ./startup.sh


验证

  • 查看启动日志

    • more /usr/local/apache-tomcat-7.0.57/logs/catalina.out

    • tail -50 /usr/local/apache-tomcat-7.0.57/logs/catalina.out

    • 查看进程:ps -ef | grep tomcat

    • 注意

      • ps 命令是 linux 下非常强大的进程查看命令,通过 ps -ef 可以查看当前运行的所有进程的详细信息

      • |Linux 中称为管道符,可以将前一个命令的结果输出给后一个命令作为输入

      • 使用 ps 命令查看进程时,经常配合管道符和查找命令 grep 一起使用,来查看特定进程


  • 输入 虚拟机IP地址:8080 就可以正常访问到 Tomcat

但如果防火墙没有关的话就不行。


  • 停止 Tomcat 服务的方式

    • 运行Tomcat的bin目录中提供的停止服务的脚本文件shutdown.sh

      • sh shutdown.sh
      • ./shutdown.sh
    • 或者我们可以直接结束 Tomcat 的进程

      • 先查到 Tomcat 进程 idps -ef | grep tomcat

      • 后执行

        kill -9 进程id
        
        • kill 命令是 Linux 提供的用于结束进程的命令,-9 表示强制结束
    • 一般情况下还是建议使用第一种方式停止 Tomcat 的服务


3.5 安装 MySQL

操作步骤

  1. 检测当前系统中是否安装 MySQL 数据库

  2. 卸载已经安装的冲突软件

  3. 将资料中提供的 MySQL 安装包上传到 Linux 并解压

  4. 按照顺序安装 rpm 软件包

  5. 启动 MySQL

  6. 登录 MySQL 数据库,查阅临时密码

  7. 登录 MySQL,修改密码,开放访问权限

  8. 测试 MySQL 数据库是否正常工作


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

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

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

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


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

  • 注意
    • 如果当前系统中已经安装有 MySQL 数据库,安装将失败。
    • CentoS7 自带的 mariadb,与 MySQL 数据库冲突

  • 卸载已经安装的冲突软件
    • rpm -e --nodeps 软件名称 卸载软件
    • 例如:rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

  • 将资料中提供的 MySQL 安装包上传到 Linux 并解压
    • mkdir /usr/local/mysql
    • tar -zxvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz -C /usr/local/mysql

  • 解压后会得到 6rpm 的安装包文件
mysq1-community-c1ient-5.7.25-1.e17.x86_64.rpm
mysq1-community-common-5.7.25-1.e17.x86_64.rpm
mysq1-community-deve1-5.7.25-1.e17.x86_64.rpm
mysq1-cammunity-1ibs-5.7.25-1.e17.x86_64.rpm
mysq1-community-1ibs-compat-5.7.25-1.e17.x86_64.rpm
mysq1-community-server-5.7.25-1.e17.x86_64.rpm

按照顺序安装 rpm 软件包

  • rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm

  • rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm

  • rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm

  • rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm

  • rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm

  • yum install net-tools

  • rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm


  • 说明 1:若安装过程中提示缺少 net-tools 依赖,使用 yum 安装

  • 说明 2:可以通过指令升级现有软件及系统内核:yum update


  • 启动 MySQL

    • systemctl status mysqld:查看 MySQL 服务状态

    • systemctl start mysqld:启动 MySQL服务

    • systemctl enable mysqld:设置开机启动 MySQL 服务,避免每次手动开启服务

    • netstat -tunlp:查看已经启动的服务

    • netstat -tunlp | grep mysql:查看已经启动的服务中的 MySQL 服务

    • ps -ef | grep mysql:查看 MySQL 进程


  • 登录 MySQL 数据库,查阅临时密码
    • cat /var/log/mysqld.log:查看文件内容
    • cat /var/log/mysqld.log | grep password:查看文件内容中包含 password 的行信息

注意:冒号后的就是密码,空格也算在内的。


  • 登录 MySQL,修改密码,开放访问权限

    • mysql -urpot -p:登录 mysql(使用临时密码登录)
    • 修改密码

      • set global validate_password_length=4;:设置密码长度最低位数

      • set global validate_password_policy=LOW;:设置密码安全等级低,便于密码可以修改成 root

      • set password = password(\'root\');:设置密码为 root

    • 开启访问权限
      • grant all on *.* to \'root\'@\'%\' identified by \'root(远程连接时需要的认证密码,写啥数字英文都行)\';
      • flush privileges;

3.6 安装 lrzsz

  • Yum(全称为Yellow dog Updater, Modified)

    • Yum 是一个在 FedoraRedHat 以及 CentOS 中的 Shell 前端软件包管理器。
  • Yum基于 RPM包管理

    • 能够从指定的服务器自动下载 RPM 包并且安装。
    • 可以自动处理依赖关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

  • lrzsz 这个是用于 Linux 系统中文件的上传 / 下载的一个文件。

操作步骤

  1. 搜索 lrzsz 安装包,命令为 yum list lrzsz
  2. 使用 yum 命令在线安装,命令为 yum install lrzsz.x86_64

之后使用 rz 这个命令就可以打开相应的传送界面。



四、Linux中的项目部署

4.1 手工部署项目

  1. 在 IDEA 中开发 SpringBoot 项目并打成 jar 包
  2. 将 jar 包上传到 Linux 服务器
  3. 检查防火墙,确保 8080 端口对外开放
  4. 准备数据库的信息
  5. 运行项目
  6. 改为后台运行 SpringBoot 程序,并将日志输出到日志文件
  7. 停止 SpringBoot 项目程序

  1. 在 IDEA 中开发 SpringBoot 项目并打成 jar 包
  2. jar 包上传到 Linux 服务器

可以创建目录(mkdir /usr/local/app),将项目 jar 包放到此目录。

  1. 检查防火墙,确保 8080 端口对外开放

开放指定端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent 

执行上面的命令后,若出现 sucess,须执行下面的命令使得开放的端口生效

firewall-cmd --reload

使用下面的命令查看开放的端口

firewall-cmd --zone=public --list-ports  # 如果再次进行查看
  1. 准备数据库的信息

  2. 运行项目

进入各位存放上述 jar 包的地址后,输入 java -jar reggie_take_out-1.0-SNAPSHOT.jar

注意端口冲突


  1. 改为后台运行 SpringBoot 程序,并将日志输出到日志文件

目前程序运行的问题

* 线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行

* 线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息

nohup 命令:英文全称 no hang up(不挂起)

  • 用于不挂断地运行指定命令,退出终端不会影响程序的运行。

  • 语法格式:nohup Command [ Arg ...][&]

  • 参数说明

    • command:要执行的命令
    • Arg:一些参数,可以指定输出文件
    • &:让命令在后台运行
  • 举例

    • nohup java -jar boot工程.jar &> hello.log &

    • 后台运行java -jar命令,并将日志输出到hello.log文件

      • 此处的 log 文件是相对路径下的文件,会在我们执行该行命令的目录下生成这个 log 文件
      • 最后一个 & 表示在后台运行
  1. 停止 SpringBoot 项目程序
ps -ef | grep \'java -jar\'
kill -9 相应的进程id



4.2 通过 Shell 脚本自动部署项目

执行步骤

  1. 在 Linux 中安装 Git
  2. 使用 Git 克隆代码
  3. 在 Linux 中安装 maven
  4. 编写 Shell 脚本(拉取代码、编译、打包、启动)
  5. 为用户授予执行 Shell 脚本的权限
  6. 执行 Shell 脚本
  7. 设置静态 IP
  8. 重启网络服务

  1. Linux 中安装 Git

列出 git 安装包

yum list git

在线安装 git

yum install git

  1. 使用 Git 克隆代码
cd /usr/local/
git clone https://gitee.com/ChuanZhiBoKe/helloworld.git

我自己这里当然是使用之前上传过的瑞吉外卖的代码了:git clone https://gitee.com/Gaorry/helloworld.git

这里需要注意的是:上传的项目得是执行过打包操作的项目。


  1. Linux 中安装 Maven

首先将资料中提供的 maven 安装包上传到 Linux,再于其中安装 maven

解包解压(假设 maven 安装包的位置是 /usr/local

tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local

修改配置文件:profile

vim /etc/profile

修改文件 profile 的内容如下

export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

加载配置文件:profile

source /etc/profile

查看 Maven 版本

mvn -version

修改配置文件 settings.xml

vim /usr/local/apache-maven-3.5.4/conf/settings.xml

修改文件 settings.xml 内容如下(决定 maven 的本地仓库)

<localRepository>/usr/local/mavenRepo</localRepository>

  1. 编写 Shell 脚本(拉取代码、编译、打包、启动)

Shell 脚本(shell script),是一种 Linux 系统中的脚本程序。

使用 Shell 脚本编程只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。(跟 JavaScriptJava 编程一样)


  1. 为用户授予执行 Shell 脚本的权限

chmod(英文全拼: change mode)命令是控制用户对文件的权限的命令

Linux 中的权限分为:读(r)、写(w)、执行(x)三种权限

Linux 的文件调用权限分为三级︰文件所有者(Owner)、用户组(Group)、其它用户(Other Users)

只有文件的所有者和超级用户可以修改文件或目录的权限

要执行 Shell 脚本需要有对此脚本文件的执行权限,如果没有则不能执行

Chmod 命令可以使用八进制数来指定权限


举例

  • chmod 777 bootStart.sh 为所有用户授予读、写、执行权限

  • chmod 755 bootStart.sh 为文件拥有者授予读、写、执行权限,同组用户和其他用户授予读、执行权限

  • chmod 210 bootstart.sh 为文件拥有者授予写权限,同组用户授予执行权限,其他用户没有任何权限


  • 注意:三位数字分别代表不同用户的权限
    • 1 位表示文件拥有者的权限
    • 2 位表示同组用户的权限
    • 3 位表示其他用户的权限

  1. 执行 Shell 脚本

进入目录 /usr/local/sh,使用命令:./bootStart.sh 即可。


  1. 设置静态 IP

修改文件 /etc/sysconfig/network-scripts/ifcfg-ens33

就上面的 ifcfg-ens33(网络设备的名称)而言,不同系统的名称并不是固定的。

可以自行去该目录 /etc/sysconfig/network-scripts/ 下查找。

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" # 使用静态IP地址,默认为 dhcp
IPADDR="192.168.138.100" # 设置的静态 IP 地址
NETMASK="255.255.255.0" # 子网掩码
GATEWAY="192.168.138.2" # 网关地址
DNS1="192.168.138. 2" # DNS 服务器
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes "
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="95b614cd-79b0-4755-be8d-99f1cca7271b"
DEVICE="ens33"
ONBOOT="yes" # 是否开机启用

使用动态 IP 的问题在于万一系统莫名挂了之后,动态 IP 发生变化,就需要输入新的 IP 地址。

为了安全(如果是上线的服务是不可能给用户动态获取 IP 这个权限的)和方便,是很有必要设置静态 IP 的。


  1. 重启网络服务
systemctl restart network
  • 注意
    • 重启完网络服务后 ip 地址已经发生了改变。
    • 此时 FinalShell 已经连接不上 Linux 系统,需要创建一个新连接才能连接到 Linux


CentOS后继者Rocky Linux安装初体验

以上是关于Linux初体验的主要内容,如果未能解决你的问题,请参考以下文章

Linux初体验

Linux初体验

CentOS后继者Rocky Linux安装初体验

Linux初体验

云计算第一章:服务器硬件及linux初体验

Linux多线程初体验