当前位置: 首页 > news >正文

Linux基础以及常用命令

目录

  • 1 Linux简介
    • 1.1 不同应用领域的主流操作系统
    • 1.2 Linux系统版本
    • 1.3 Linux安装
      • 1.3.1 安装VMWare
      • 1.3.2 安装CentOS镜像
      • 1.3.3 网卡设置
      • 1.3.4 安装SSH连接工具
      • 1.3.5 Linux和Windows目录结构对比
  • 2 Linux常用命令
    • 2.0 常用命令(ls,pwd,cd,touch,mkdir,rm)
    • 2.1 文件目录操作命令ls
    • 2.2 文件目录操作命令cd
    • 2.3 文件目录操作命令cat
    • 2.4 文件目录操作命令more
    • 2.5 文件目录操作命令tail
    • 2.6 文件目录操作命令mkdir
    • 2.7 文件目录操作命令rmdir
    • 2.8 文件目录操作命令rm
    • 2.9 拷贝移动命令cp
    • 2.10 拷贝移动命令mv
    • 2.11 打包压缩命令tar
    • 2.12 文本编辑命令vi/vim
    • 2.13 文本编辑命令vim
    • 2.14 查找命令find
    • 2.15 查找命令grep
  • 3 软件安装
    • 3.1 软件安装的方式
    • 3.2 安装JDK
    • 3.3 安装Tomcat
      • 3.3.1 安装
      • 3.3.2 验证Tomcat启动是否成功
      • 3.3.3 防火墙操作
      • 3.3.4 停止Tomcat服务的方式
    • 3.4 安装MySQL
    • 3.4 安装lrzsz
  • 4 项目部署
    • 4.1 手工部署项目
    • 4.2 通过Shell脚本自动部署项目

1 Linux简介

在这里插入图片描述

1.1 不同应用领域的主流操作系统

  • 桌面操作系统:

    • Windows (用户数量最多)
    • MacOS (操作体验好,办公人士首选)
    • Linux (用户数量少,多用于服务器系统,少用于桌面系统)
  • 服务器操作系统

    • UNIX (安全、稳定、付费)
    • Linux (安全、稳定、免费、占有率高)
    • Windows Server (付费、占有率低)
  • 移动设备操作系统

    • Android (基于Linux、开源,主要用于智能手机、平板电脑和智能电视)
    • ios (苹果公司开发、不开源,用于苹果公司的产品,例如: iPhone、iPad)
  • 嵌入式操作系统

    • Linux (机顶盒、路由器、交换机)

1.2 Linux系统版本

Linux系统分为内核版和发行版

  • 内核版

    • 由Linus Torvalds及其团队开发、维护
    • 免费、开源
    • 负责控制硬件
  • 发行版(最常用centos)

    • 基于Linux内核版进行扩展
    • 由各个Linux厂商开发、维护
    • 有收费版本和免费 版本
      在这里插入图片描述

1.3 Linux安装

  • Linux系统的安装方式

    • 物理机安装: 直接将操作系统安装到服务器硬件上
    • 虚拟机安装:通过虚拟机软件安装
  • 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能、运行在完全隔离环境中的完整计算机系统。

  • 常用虚拟机软件

    • VMWare
    • VirtualBox
    • VMLite WorkStation
    • Qemu
    • HopeddotVoS

1.3.1 安装VMWare

在这里插入图片描述-

1.3.2 安装CentOS镜像

打开安装好的VMWare,选择创建新的虚拟机,选择典型,下一步,然后选择稍后安装操作系统,下一步,勾选Linux系统版本CentOS 7 64位,下一步,选择路径,下一步,根据需求分配磁盘空间大小,下一步,根据需求自定义硬件(内存2G,处理器2个,新CD/DVD下选择使用ISO映像文件并设置路径)
在这里插入图片描述
然后点击开启此虚拟机,(ctrl+alt快捷键可以鼠标退出虚拟机)点击install,一直回车,知道出现画面可以选择语言为中文,设置一下安装位置选择自动配置分区,键盘选择最小安装,然后开始安装,设置用户名密码,安装完成后点击重启按钮。

1.3.3 网卡设置

问题:由于启动服务器时未加载网卡,导致IP地址初始化失败,查看IP地址: ip addr
在这里插入图片描述

解决:修改网络初始化配置,设定网卡在系统启动时初始化

在这里插入图片描述
进入网络初始化配置后,输入i进入编辑状态,将ONBOOT设置为yes,按ESC键然后输入:wq
再Enter键保存退出
在这里插入图片描述
在这里插入图片描述
再次查看:
在这里插入图片描述设置静态ip:
在这里插入图片描述设置完成后重启网络服务systemctl restart network

1.3.4 安装SSH连接工具

  • SSH(Secure Shell),建立在应用层基础上的安全协议
  • 常用的SSH链接工具
    • putty
    • secureCRT
    • xshell(推荐)
    • finalshell(推荐)
  • 通过SSH连接工具就可以实现从本地连接到远程的Linux服务器
  • 直接运行FinalShell的安装程序完成安装即可

安装完成后连接服务器
在这里插入图片描述
遇到问题:fianlshell认证失败
解决:修改网络配置

1.3.5 Linux和Windows目录结构对比

  • Linux系统中的目录
    • /是所有目录的顶点
    • 目录结构像一颗倒挂的树
      在这里插入图片描述

Linux目录介绍
在这里插入图片描述

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

2 Linux常用命令

2.0 常用命令(ls,pwd,cd,touch,mkdir,rm)

在这里插入图片描述
ls:

加粗样式>在执行Linux命令时,提示信息如果显示为乱码

这里是引用
这是由于编码问题导致,只需要修改Linux的编码即可,命令如下:echo ‘LANG=“en_ US.UTF-8”’ >> /etc/profile source /etc/profile

Linux命令使用技巧:

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

Linux命令格式:

command [-options] [parameter]

说明:
● command: 命令名
● [-options]: 选项,可用来对命令进行控制,也可以省略
● [parameter]:传给命令的参数,可以是零个、一个或者多个

注意:[]代表可选;命令名、选项、参数之间有空格进行分隔

2.1 文件目录操作命令ls

作用:显示指定目录下的内容语法: ls [-al] [dir]
说明:
● -a 显示所有文件及目录(.开头的隐藏文件也会列出)
● -l 除文件名称外,同时将文件型态(d表示目录,-表示文件)、权限、拥有者、文件大小等信息详细列出
● dir 查看指定目录下的文件

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

2.2 文件目录操作命令cd

作用:用于切换当前工作目录,即进入指定目录
语法:cd [dirName]

特殊说明:

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

举例:

● cd··:切换到当前目录的上级目录
● cd~ :切换到当前用户的home目录
● cd /usr/local :切换到/usr/local目录
在这里插入图片描述

2.3 文件目录操作命令cat

作用:用于显示文件内容
语法:cat [-n] fileName
说明:-n代表由1开始对所有输出的行数编号
举例:cat /etc/profile 查看/etc目录下的profile文件内容
在这里插入图片描述

2.4 文件目录操作命令more

作用:以分页的形式显示文件内容
语法: more fileName

操作说明:
●回车键 向下滚动一行
●空格键 向下滚动一屏.
●b返回 上一屏
●q或者Ctrl+C 退出more

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

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文件末尾内容并显示
在这里插入图片描述

在这里插入图片描述

2.6 文件目录操作命令mkdir

作用:创建目录
语法:mkdir [-p] dirName
说明:
● -p:确保目录名称存在,不存在的就创建一 个。通过此选项,可以实现多层目录同时创建
举例:
● mkdir itcast 在当前目录下,建立-一个名为itcast的子目录
● mkdir -p itcast/test 在工作目录下的itcast目录中建立一个名为test的子目录, 若itcast目录不存在,则建立一个

2.7 文件目录操作命令rmdir

作用:删除空目录
语法:rmdir [-p] dirName
说明:
● -p:当子目录被删除后使父目录为空目录的话,则一并删除
举例:
● rmdir itcast 删除名为itcast的空目录
● rmdir -p itcast/test 删除itcast目录中名为test的子目录,若test目录删除后itcast目录变为空目录,则也被删除
● rmdir itcast* 删除名称以itcast开始的空目录

2.8 文件目录操作命令rm

作用:删除文件或者目录
语法:rm [-rf] name
说明:
● -r:将目录及目录中所有文件(目录)逐- -删除,即递归删除
● -f: 无需确认,直接删除

举例:
● rm-r itcast/ 删除名为itcast的目录和目录中所有文件,删除前需确认
● rm-rf itcast/ 无需确认,直接删除名为itcast的目录和目录中所有文件
● rm-f hello.txt 无需确认,直接删除hello.txt文件

2.9 拷贝移动命令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.10 拷贝移动命令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.11 打包压缩命令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.12 文本编辑命令vi/vim

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

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

2.13 文本编辑命令vim

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

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

针对vim中的三种模式说明如下:

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

2.14 查找命令find

作用:在指定目录下查找文件
语法: find dirName -option fileName

举例:
● find . -name “.java" 在当前目录及其子目录下查找.java结尾文件
● find /itcast -name“
.java” 在/itcast目录及其子目录下查找.java结尾的文件

2.15 查找命令grep

作用:从指定文件中查找指定的文本内容
语法: grep word fileName

举例:
●grep Hello HelloWorld.java 查找HelloWorld.java文件中出现的Hello字符串的位置
●grep hello *.java 查找当前目录中所有.java结尾的文件中包含hello字符串的位置

3 软件安装

3.1 软件安装的方式

  • 二进制发布包安装 .
    软件已经针对具体平台编译打包发布,只要解压,修改配置即可

  • rpm安装
    软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题

  • yum安装
    一种在线软件安装方式,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库依赖问题

  • 源码编译安装
    软件以源码工程的形式发布,需要自己编译打包

3.2 安装JDK

  1. 使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux
  2. 解压安装包,一般安装到/usr/local目录下,命令为tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local
  3. 配置环境变量,使用vim命令修改/etc/profile文件,在文件末尾加入如下配置
JAVA_ HOME=/usr/1ocal/jdk1.8.0_ 171
PATH=$JAVA_ HOME /bin:$PATH
  1. 重新加载profile文件,使更改的配置立即生效,命令为source /etc/ profile

  2. 检查安装是否成功,命令为java -version
    在这里插入图片描述

3.3 安装Tomcat

3.3.1 安装

  1. 使用FinalShell自带的上传工具将Tomcat的二进制发布包上传到Linux
  2. 解压安装包,命令为tar -zxvf apache-tomcat-7.0.57.tar.gz -C /usr/local
  3. 进入Tomcat的bin目录cd /usr/local/apache-tomcat-7.0.57.tar.gz/bin启动服务,命令为sh startup.sh或者./startup.sh
    在这里插入图片描述

3.3.2 验证Tomcat启动是否成功

  • 方式一:查看启动日志
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 一起使用,来查看特定进程

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服务的方式

  • 方式一:运行Tomcat的bin目录中提供的停止服务的脚本文件shutdovn.sh,命令为sh shutdown.sh或者./shutdown.sh
  • 方式二:结束Tomcat进程
    • 查看Tomcat进程,获得进程id
      在这里插入图片描述

    • 执行命令结束进程kill -9 xxxxx'

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

3.4 安装MySQL

  1. 检测当前系统中是否安装MySQL数据库
    rpm -qa 查询当前系统中安装的所有软件
    rpm -qa | grep mysql 查询当前系统中安装的名称带mysql的软件
    rpm -qa | grep mariadb 查询当前系统中安装的名称带mariadb的软件
    在这里插入图片描述

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

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

  1. 卸载mariadb
rpm -e --nodeps 软件名称  #卸载软件
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

在这里插入图片描述

  1. 将MySQL安装包上传到Linux并解压,解压后得到6个rpm的安装包文件
mkdir /usr/local/mysql
tar -zxvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz -C /usr/local/mysql
  1. 按照顺序安装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-communit-client-5.7.25-1.el7.x86.64.rpm
yum install net-tools
rpm -ivh mysql-community-server-5.7.25-1.eI7.x86 64.rpm 

说明1:安装过程中提示缺少net-tools依赖,使用yum安装
说明2:可以通过指令升级现有软件及系统内核 yum update

  1. 启动mysql
    systemctl status mysqld 查看mysql服务状态
    systemctl start mysqld 启动mysql服务
    在这里插入图片描述

说明:可以设置开机时启动mysq|服务,避免每次开机启动
mysql systemctl enable mysqld 开机启动mysql服务
netstat -tunlp 或者 netstat -tunlp | grep mysql 查看已经启动的服务
ps -ef | grep mysql 查看mysql进程

  1. 登录MySQL数据库查阅临时密码
    cat /var/log/mysqld.log 查看文件内容
    cat /var/log/mysqld.log | grep password 查看文件内容中包含password的行信息
    在这里插入图片描述

注意:冒号后面的是密码,注意空格

  1. 登录mysql,修改密码,开放访问权限
mysql -uroot -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 '123456';
flush privileges;

3.4 安装lrzsz

  1. 搜索lrzsz安装包,命令为yum list lrzsz
  2. 使用yum命令在线安装,命令为yum install lrzsz.x86_64
  3. 安装完成后使用rz命令可以上传文件

4 项目部署

4.1 手工部署项目

  1. 在IDEA中开发SpringBoot项目并打成jar包(maven的package命令)

  2. 将jar包上传到Linux服务器
    先创建目录将jar包上传到该目录下门mkdir /usr/local/app
    在这里插入图片描述

  3. 启动SpringBoot程序java -jar helloworld-0.0.1-SNAPSHOT.jar

  4. 检查防火墙,确保8080端口对外开放,能访问到SpringBoot项目
    在这里插入图片描述

  5. 改为后台运行SpringBoot程序,并将日志输出到日志文件
    目前程序运行的问题:
    ● 线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行
    ● 线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息
    在这里插入图片描述nohup java -jar boot工程.jar &> hello.log & 后台运行java -jar命令,并将日志输出到hello.log文件

  6. 停止SpringBoot程序,先查询进程ps -ef | grep 'java -jar'然后结束进程命令kill -9 XXXX

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

在这里插入图片描述

  1. 在Linux中安装Git
    在这里插入图片描述
  2. 使用Git克隆代码

首次登陆可能需要用户密码,这个username是gitee的登陆时的用户名(一般是手机号、邮箱号)

  1. 将maven安装包上传到Linux,在Linux中安装maven
tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/localvim /etc/ profile       修改配置文件,加入如下内容
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATHsource /etc/profile
mvn -version
vim /usr/local/apache-maven-3.5.4/conf/settings.xml     修改配置文件内容如下
<localRepository>/usr/local/repo</localRepository>

在这里插入图片描述

在这里插入图片描述

  1. 写bootStart.sh脚本文件到Linux中
    在这里插入图片描述
#!/bin/sh
echo =================================
echo  自动化部署脚本启动
echo =================================echo 停止原来运行中的工程
APP_NAME=helloworldtpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; thenecho 'Stop Process...'kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; thenecho 'Kill Process!'kill -9 $tpid
elseecho 'Stop Success!'
fiecho 准备从Git仓库拉取最新代码
cd /usr/local/helloworldecho 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`cd targetecho 启动项目
nohup java -jar helloworld-0.0.1-SNAPSHOT.jar &> helloworld.log &
echo 项目启动完成

Shell脚本(shell script),是一种Linux系统中的脚本程序。使用Shell脚本编程跟JavaScript、Java编程一样, 只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

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

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

  • Linux的文件调用权限分为三级:文件所有者(Owner) 、用户组(Group)、其它用户(Other Users)只有文件的所有者和超级用户可以修改文件或目录的权限
    在这里插入图片描述

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

  • chmod命令可以使用八进制数来指定权限
    在这里插入图片描述

举例:

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

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

在这里插入图片描述执行脚本文件:
在这里插入图片描述
查看日志信息:
在这里插入图片描述

相关文章:

Linux基础以及常用命令

目录 1 Linux简介1.1 不同应用领域的主流操作系统1.2 Linux系统版本1.3 Linux安装1.3.1 安装VMWare1.3.2 安装CentOS镜像1.3.3 网卡设置1.3.4 安装SSH连接工具1.3.5 Linux和Windows目录结构对比 2 Linux常用命令2.0 常用命令&#xff08;ls&#xff0c;pwd&#xff0c;cd&#…...

echarts 折线图上只显示某一个点值

<template> <div> <!-- 数据来源 --> <div class"echarts" ref"echartsRef"></div> </div> </template> <script setup langts name"reconciled"> import { ref } from "vue"; im…...

1、传统锁回顾(Jvm本地锁,MySQL悲观锁、乐观锁)

目录 1.1 从减库存聊起1.2 环境准备1.3 简单实现减库存1.4 演示超卖现象1.5 jvm锁1.6 三种情况导致Jvm本地锁失效1、多例模式下&#xff0c;Jvm本地锁失效2、Spring的事务导致Jvm本地锁失效3、集群部署导致Jvm本地锁失效 1.7 mysql锁演示1.7.1、一个sql1.7.2、悲观锁1.7.3、乐观…...

【Java||牛客】DFS应用迷宫问题

step by step. 题目&#xff1a; 描述 定义一个二维数组 N*M &#xff0c;如 5 5 数组下所示&#xff1a; int maze[5][5] { 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫&#xff0c;其中的1表示墙壁&#xff0c;0表示可…...

【vue】Vue中class样式的动态绑定

简介&#xff1a;Vue中class样式的绑定 1、字符串写法 使用场景&#xff1a;样式的类型不确定 写法&#xff1a; <div :class"xd_bg">测试账号</div> 手动触发样式改变 注意&#xff1a;字符串使用的是vue实例data中已有的属性 2、对象写法 使…...

机器学习深度学习——随机梯度下降算法(及其优化)

在我们没有办法得到解析解的时候&#xff0c;我们可以用过梯度下降来进行优化&#xff0c;这种方法几乎可以所有深度学习模型。 关于优化的东西&#xff0c;我自己曾经研究过智能排班算法和优化&#xff0c;所以关于如何找局部最小值&#xff0c;以及如何跳出局部最小值的一些基…...

【MTK平台】【wpa_supplicant】关于wpa_supplicant_8/src/p2p/p2p.c文件的介绍

本文主要介绍external/wpa_supplicant_8/src/p2p/p2p.c文件 先看下p2p_find 这个方法 P2P_find 主要用于 P2P&#xff08;点对点&#xff09;网络中查找其他对等方的功能。另外可以看到设置P2P模块的状态为 P2P_SEARCH int p2p_find(struct p2p_data *p2p, unsigned int tim…...

华为数通HCIP-流量过滤与转发路径控制

流量控制 分类&#xff1a;流量过滤、流量转发路径控制&#xff1b; 特点&#xff1a;1、作用于数据层面/转发层面&#xff1b; 2、不会影响路由表&#xff0c;针对转发流量生效&#xff1b; 实现步骤&#xff1a; 1、通过流量匹配工具匹配流量&#xff08;ACL…...

SpringBoot中定时任务开启多线程避免多任务堵塞

场景 SpringBoot中定时任务与异步定时任务的实现&#xff1a; SpringBoot中定时任务与异步定时任务的实现_霸道流氓气质的博客-CSDN博客 使用SpringBoot原生方式实现定时任务&#xff0c;已经开启多线程支持&#xff0c;以上是方式之一。 除此之外还可通过如下方式。 为什…...

回归预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络多输入单输出回归预测

回归预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 Matlab实…...

入侵检测——IDS概述、签名技术

1. 什么是IDS&#xff1f; IDS&#xff08;intrusion detection system&#xff09;入侵检测系统&#xff0c;是一种对网络传输进行即时监视&#xff0c;在发现可疑传输时发出警报或者采取主动反应措施的网络安全设备。它会对系统的运行状态进行监视&#xff0c;发现各种攻击企…...

golang 标准库json Marshal 序列化与反序列化

标准库代码 func Marshal(v any) ([]byte, error) {e : newEncodeState()defer encodeStatePool.Put(e)err : e.marshal(v, encOpts{escapeHTML: true})if err ! nil {return nil, err}buf : append([]byte(nil), e.Bytes()...)return buf, nil }func Unmarshal(data []byte, …...

【【51单片机AD/DA的分析】】

51单片机AD/DA的分析 看似单片机实验&#xff0c;其实是要学好数电 模数转换 与 数模转换 运算放大器 DA的转换就是利用运算放大器实现的 输出电压v0-(D7~D0)/256 x (VrefxRfb)/R D7~D0 就是我们控制的按键看输入多少 然后再划分256份 Vref是我们设置的一个基准电压 PWM 这种…...

在docker中安装使用达梦数据库

关于在docker中安装达梦数据库&#xff0c;达梦官方网站其实是有提供安装使用方法的&#xff0c;但可能还是有朋友不会&#xff0c;这里将在原文基础上简单扩充下。 注意&#xff1a;docker容器中&#xff0c;数据库安装后没有创建服务的脚本&#xff0c;只有bin、bin2、conf、…...

Leetcode-每日一题【剑指 Offer II 010. 和为 k 的子数组】

题目 给定一个整数数组和一个整数 k &#xff0c;请找到该数组中和为 k 的连续子数组的个数。 示例 1&#xff1a; 输入:nums [1,1,1], k 2输出: 2解释: 此题 [1,1] 与 [1,1] 为两种不同的情况 示例 2&#xff1a; 输入:nums [1,2,3], k 3输出: 2 提示: 1 < nums.leng…...

【JavaScript】使用Promise来处理异步调用,方法传入参数为接口,并回调接口的方法

例如我们在下面这个方法传入一个接口&#xff0c;并将方法的执行过程用传入的接口进行回调 connect() {wx.connectSocket({url: this.url,success: () > {console.log(WebSocket 连接创建成功);},fail: (err) > {console.error(WebSocket 连接创建失败, err);}});wx.onS…...

grid map学习笔记1之Ubuntu18.04+ROS-melodic编译安装grid_map栅格地图及示例运行

文章目录 0 引言1 安装依赖和编译1.1 安装依赖1.2 下载编译 2 运行示例2.1 simple_demo2.2 tutorial_demo2.3 iterators_demo2.4 image_to_gridmap_demo2.5 grid_map_to_image_demo2.6 opencv_demo2.7 resolution_change_demo2.8 filters_demo2.9 interpolation_demo 0 引言 苏…...

postgres wal2json插件jsonb字段数据丢失问题解决

使用pgwal2jsondebezium进行数据同步时&#xff0c;发现偶尔会有jsonb字段数据丢失的问题 进行测试时发现&#xff1a; 1、发生数据丢失的jsonb字段长度都比较大(超过toast阈值&#xff0c;使用toast表存储) 2、针对发生jsonb字段丢失的数据&#xff0c;jsonb字段本身未发生修…...

华为eNSP:路由引入

一、拓扑图 二、路由器的配置 1、配置路由器的IP AR1&#xff1a; [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip add 1.1.1.1 24 [Huawei-GigabitEthernet0/0/0]qu AR2&#xff1a; [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip add 1.1.1.2 24 [Huaw…...

Retrospectives on the Embodied AI Workshop(嵌入式人工智能研讨会回顾) 论文阅读

论文信息 题目&#xff1a;Retrospectives on the Embodied AI Workshop 作者&#xff1a;Matt Deitke, Dhruv Batra, Yonatan Bisk 来源&#xff1a;arXiv 论文地址&#xff1a;https://arxiv.org/pdf/2210.06849 Abstract 我们的分析重点关注 CVPR Embodied AI Workshop 上…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

DiscuzX3.5发帖json api

参考文章&#xff1a;PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下&#xff0c;适配我自己的需求 有一个站点存在多个采集站&#xff0c;我想通过主站拿标题&#xff0c;采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...

「Java基本语法」变量的使用

变量定义 变量是程序中存储数据的容器&#xff0c;用于保存可变的数据值。在Java中&#xff0c;变量必须先声明后使用&#xff0c;声明时需指定变量的数据类型和变量名。 语法 数据类型 变量名 [ 初始值]; 示例&#xff1a;声明与初始化 public class VariableDemo {publi…...