Linux使用

Liunx使用

命令管道连接 |

  • 命令管道符合为|,可以将两个命令进行连接,连接后第一个命令的输出结果作为第二个命令的输入信息
  • 比如 ls /ect | more -10 分屏显示etc文件夹下的10行数据

Linux文件系统结构

  • / : 根目录
  • /home: 主文件夹,登录用户的主文件夹
  • /etc :操作系统配置文件的保存位置
  • /usr : 用于添加的程序文件,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
  • root : 超级用户的目录

改变当前工作目录命令

  • cd 目标目录
  • cd 没有参数的时候直接返回用户主目录
  • cd /etc : 使用绝对路径切换当前的工作目录
  • cd .. : 返回上一级
  • cd 目录 :使用相对路径其切换,前提是当前的目录中有这个目录

显示当前的工作目录

  • pwd

文件或文件夹的操作(mkdir/touch)

  • mkdir 文件夹名称 创建文件夹
    • mkdir demo/file 在demo文件夹下新建一个文件加file,如果这个demo文件夹不存在,那么将会报错
  • mkdir -p 文件夹名称 递归创建文件夹
    • mkdir -p demo/file :如果demo文件夹不存在,那么会自动创建出来
  • touch 新文件名 : 创建文件 ,比如touch file.txt
  • touch 已经存在的文件名或者文件夹名 : 修改文件或者文件夹的创建时间,但是并不是重新创建一个,里面的内容的不会清空

改名或者移动(mv)

  • mv 参数1 参数2
  • mv 已存在的文件夹/文件 新文件夹/文件 :修改名称 比如 :mv file.txt a.txt
  • mv 已存在的文件夹/文件 目标文件夹 : 将文件或者文件夹移动到目标文件夹中
    • mv file.txt /tmp/dmeo 将当前文件夹的file.txt移动到/tmp/demo文件夹中
    • mv demo/file.txt . 将 demo文件夹下的file.txt移动到当前文件夹
    • mv file.txt ../ 将当前文件file.txt 移动到上一级目录

复制文件或者文件夹(cp)

  • cp 存在的文件/文件夹 新文件/新文件夹 进行改名复制
    • cp a.txt /tmp/file.txt 将当前文件夹中的a.txt文件复制到/tmp文件夹中,改名为file.txt
  • cp 存在文件 已存在的文件夹 将文件复制一份到已存在文件夹中,并且文件名和源文件的名一样
    • cp a.txt /tmp 将当前文件a.txt复制到tmp文件夹中,并且名称还是a.txt
  • cp -i ... 提示是否覆盖的信息
  • cp -f 强制覆盖,不给出提示
  • cp -r 存在的文件夹 目标文件夹 复制文件夹 比如:cp -r file /tmp/demo复制当前文件夹file和其中的所有内容到/tmp/demo`文件夹下

删除文件或者文件夹(rm)

  • rm 文件名 删除文件
    • rm a.txt 删除当前文件夹中的a.txt文件
    • rm /tmp/demo/a.txt 删除/tmp/demo文件夹下的a.txt文件
  • rm -r 存在的文件夹 : 删除文件夹及文件夹下的全部内容
    • rm -r demo 删除文件夹demo
  • rm -f 强制删除文件,不提示
  • rm -rf :强制删除文件夹

远程登录服务器SSH

  • 客户端输入:ssh 用户名@服务器IP/域名
    • ssh soft01@192.168.7.36
  • 第一输入需要确认证书: 选择yes
  • 输入password

SFTP传输文件

  1. sftp 用户名@主机/IP
  2. 确认证书 :yes
  3. 输入密码 : 盲敲
  4. 进入ftp,其中的提示符号变成>

常用命令

  • ls 显示当前远程服务器的目录内容
  • lls : 显示本地目录内容
  • pwd : 显示当前远程服务器目录的路径
  • lpwd :显示本地目录的路径
  • get 远程文件 : 获取远程文件,只能是压缩文件,比如.tar.gz
    • get demo.txt 获取远程文件的demo.txt
  • put 本地文件 :上传本地文件到远程服务器 ,只能是压缩文件,比如.tar.gz
    • push abc.txt : 上传本地当前文件abc.txt到远程服务器
  • exit : 退出

windows 操作Linux

  • pyttty 开源软件

Linux打包命令

  • tar -czvf 包文件.tar.gz 文件夹1 文件夹2 ....tar czvf demo.tar.gz demo/ 打包当前的demo文件夹
    • -c : create创建包 ,建议使用后缀 .tar
    • -z : 表示打包后录用gzip算法进行压缩,后缀需要写.gz
    • -v : 显示打包的过程,哪些文件被打包了
    • -f : 指定打包以后包的文件名 ,放在最后,如:czvf

解压缩包的命令

后缀为 tar.gz

  • tar -xzvf 包名.tar.gz
    • -x : 释放,将包进行释放操作
    • -z : 先使用gzip解压缩,一般对应的后缀.gz
    • -v : 表示显示解包的过程
    • -f : 指定包的文件名

后缀为 zip

  • 如果没有unzip命令,可以命令行安装即可 yum -y install unzip
  • unzip 文件

下载命令wget

  • 安装该命令:yum -y install wget
  • wget 下载地址 : 这个命令将会从互联网自动下载所需要的资源

购买云服务器

  • 地域: 国内配置域名的时候必须备案,国外服务器无需备案
  • 配置: x86服务器,1G内存 1CPU
  • 镜像: 公共镜像,Centos 7.4
  • 网络: 1M
  • 安全组(防火墙):开放端口 80,443,22
    • 注意: 没有开放8080,需要以后配置
  • 设置密码
  • 设置服务器名

PATH变量的作用

  • 操作系统可执行命令的搜索路径,操作系统在执行密令的时候,会在PATH变量一系列路径中逐一查找命令程序,如果找到就执行这个程序,否则将报出命令没有找到的错误
  • echo $PATH : 回显PATH的值
  • export PATH=... : 在终端直接输入的PATH,只会在当前的终端不关闭的情况才会生效,如果这个终端窗口关闭了,那么就会失效
    • export PATH=/usr/local/java/jdk1.8/bin:$PATH,这个命令是将java的jdk的路径添加到当前PATH路径的前面,不过这个只是临时的,当终端退出,那么就会失效
  • 如果想要这个PATH永久起作用,那么需要在/etc/profile文件中添加,这个文件会在开机启动的时候就解析加载
  • 如果我们使用的安装包安装的话,那么默认的启动命令是只能在当前安装包的bin中才能执行启动命令,如果我们想要在任何位置打开终端都能启动这个软件,那么我们可以将其配置在PATH中,我们只需要在/etc/profile文件中添加:export PATH=文件位置:$PATH

使用 VIM 编辑文本文件

  • 基于命令行的全屏幕可视化编辑器

安装 vim

  • yum -y install vim :安装vim

常用命令

  • 在命令状态下
    • yy : 复制当前行到剪切板
      • P:复制剪切板的内容到当前行之前
      • p: 复制剪切板的内容到当前行之后
    • nyy : 复制当前行和后面的n行数据到剪切板
      • 5yy
    • dd :删除当前行(其实是剪切),可以使用P或者p再次复制回去
    • ndd : 删除当前行的后面n行数据,实际上是剪切
      • 10dd
    • ?正则 : 向前查找
      • ?System
    • /正则 :向后查找
    • n 查找下一个
      • 先使用?正则或者\正则查找之后,然后按n将会查找下一个结果
    • u :撤销,可撤销多次

配置JDK环境

  • 下载jdk
  • 解压缩在/usr/local/java
    • tar -xzvf ......
  • 配置环境变量
    • 先复制一个/etc/profile ,避免错改造成系统崩溃
      • cp /etc/profile profile_1
    • vi /etc/profile
    • 在末尾输入
export JAVA_HOME=/usr/local/java/jdk1.8.0_172       ## jdk的路径
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
  • 执行source /etc/profile
  • 在终端输入java -version判断是否配置成功
  • 重启机器

安装配置Tomcat

第一种yum

  • yum -y install tomcat
  • 安装以后的安装位置在/usr/share/tomcat/,这个是默认安装位置

启动和关闭

  • systemctl start tomcat.service : 启动
  • systemctl stop tomcat.service : 关闭
  • systemctl restart tomcat.service : 重启
  • systemctl enable tomcat.service : 设置自动启动
  • systemctl disable tomcat.service : 关闭自动启动

第二种使用原厂的包安装

  • 下载tomcattomcat.apache.org
  • 或者使用wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.88/bin/apache-tomcat-7.0.88.zip
    • 如果没有wget,那么使用yum -y install wget即可
  • 解压:unzip 文件名
  • 将解压之后的文件夹移动到/usr/local下即可:mv apache-tomcat-7.0.88 /usr/local/
  • 设置启动脚本的执行权限:
    • cd /usr/local/apache-tomcat-7.0.88/bin :进入到bin目录
    • 添加执行权限: chmod +x *.sh :为.sh脚本添加执行权限
  • 启动和关闭tomcat
    • bin文件夹下 输入: ./startup.sh即可启动
    • 输入ps -A | grep java : 检查是否启动
    • 开放防火墙 : firewall-cmd --permanent --add-port=8080/tcp
    • 如果显示防火墙显示not runing,那么使用service firewalld start开启防火墙
    • bin文件夹下输入 :./shutdown.sh 即可关闭
    • 最后在浏览器输入http://ip:8080即可访问

云服务器需要开启8080端口

  • 自己的服务器 ---- > 管理 ---> 本例安全组 ----> 配置规则 ---- > 添加安全组规则 ----> 添加端口范围 8080/8080

安装MySQL

  • MariadbMysql是一样的,不过mariadb现在是开源免费的。mysql以后的版本都是收费的
  • yum -y install mariadb mariadb-server : 使用此命令安装即可
    • 安装了两个组件,客户端mariadb
  • 启动: systemctl start mariadb.service
  • 关闭:systemctl stop mariadb.service
  • 重新启动: systemctl restart mariadb.service
  • 开机启动: systemctl enable mariadb.service
  • 取消开机启动:systemctl disable mariadb.service

连接mariadb

  • mysql -u root: 初始安装没有密码

设置mysql密码

  • set password=password("密码");
  • flush privileges;
  • 设置完成之后使用mysql -u root -p输入密码进入即可

mysql 解决中文乱码

  • show variables like '%char%'; 查看自己的编码是否是utf8
  • /etc/my.cnf添加如下代码即可
[mysqld]
character-set-server=utf8 
[client]
default-character-set=utf8 
[mysql]
default-character-set=utf8

数据库迁移【Import】

  • 意思就是将本地的数据库迁移到远程服务器中。不需要在远程服务器中重新创建和插入数据了

步骤

  • 导出(备份)数据库
    • mysqldump -u root -p密码 数据库名字 > 文件名.sql
    • 比如 :mysqldump -u root -proot tedu_store>tedu_store.sql;,导出的tedu_store.sql就会在当前目录中,这个命令不需要登录mysql即可完成
  • tedu_store.sql上传到远程服务器中
    • sftp 用户名@IP: 登录远程服务器的上传下载功能
    • put tedu_store.sql: 上传
  • 在远程服务器中创建数据库
    • create database tedu_store;
  • 导入数据:
    • use tedu_store
    • source tedu_store.sql 即可,这里需要指定路径

部署项目在远程服务器上

步骤

  • 导出一个war包,比如Tedu_store.war
    • 项目右击 --- > Export ---- > WAR File ----> 选择位置 -------> Finish
  • 导出的Tedu_store.war上传到远程服务器
  • 放在tomcat中的webapps包下
    • 我们将Tedu_store.war放在webapps下,那么会自动生成一个Tedu_store,这个就是我们的项目
  • 修改数据库的连接参数
    • 第一种:在本地电脑打包的时候就修改成远程服务器的数据库的连接参数
    • 第二种: 在远程服务器中修改
      • 进入到项目的WEB-INF/classes下,其中有一个db.properties文件,其中就是配置数据库的信息,我们可以使用vi编辑器修改
  • 重启tomcat,我们使用zip安装方式安装的,因此需要在Tomcatbin下执行:
    • ./shutdown.sh 关闭
    • ./start.sh启动
  • 接下来就是访问即可
    • http://ip:8080/Tedu_store/.....

查看错误信息

  • 进入到Tomcat的安装目录的logs目录,下面有一个catalina.out,这里面存储的就是项目的运行信息,我们可以在其中查找项目的错误信息

输出重定向

  • 将一个命令的输出目标从标准控制台(标出输出)重新定向到其他设备(一般是一个文件)
  • >: 生成一个新文件
  • >>:不生成一个新文件,在文件后面追加
  • 比如cat file.txt>demo.txt, : 将显示的file.txt文件内容重定向到deom.txt文件中,如果`demo.txt不存在,那么会被新建,如果存在,那么将会覆盖其中的内容。
  • cat file.txt>>demo.txt : 将显示的file.txt文件的内容在demo.txt后面追加,如果demo.txt不存在就新建,如果存在,那么在其内容的后面追加

作用

  • 记录命令的执行日志
    • tar -czvf file.tar.gz file>file.log : 将这个执行语句的日志记录到file.log
  • 快速生成文本文件
    • echo "hello World" >hello.txt

文件权限 chmod

  • -rw-rw-r : 文件拥有者、群组、其他

为所有用户设置权限

  • x :执行权限,如果一个文件夹没有执行权限,那么我们使用cd 文件夹名是不允许进入查看内容的
    • chmod +x file : 为file文件夹添加执行权限
    • chmod -x file: 为file文件夹删除执行权限
  • r : 可读权限
    • chmod -r file.txt : 删除file.txt文件的可读权限
    • chmod +r file.txt : 添加可读权限
  • w: 可写权限
    • chmod -w file.txt
    • chmod +w file.txt

为不同的用户设置权限

  • chmod u+x,g-x,o-x file : 表示文件拥有者添加执行权限,群组用户删除执行权限,其他用户删除执行权限
  • chmod g+x file : 为群组添加执行权限

使用数字代表权限

  • r : 4
  • w : 2
  • x : 1
  • rwx : 4+2+1=7
  • rw- : 4+2 =6
  • --x : 1
  • r-x : 4+1=5
  • chmod 664 file.txt : 为文件拥有这设置rw-权限,为群组设置rw-权限,为其他用户设置r--权限

可以执行的文件

  1. 文件是可执行的二进制程序或者文件是可执行的脚本程序
  2. 文件具有可以执行的权限

可执行的脚本

  • 可执行的脚本,也是称为shell脚本,是一个文本文件,文件的每一行都是可以执行的shell命令,如果有执行权限,这个文件就可以执行,执行时候批量执行文件中的每个命令,经常用于自动化运维

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏noteless

springmvc 项目完整示例03 小结

一般一个项目,主要有domain,dao,service,controller这几个层次,具体的真不清楚的话可以百度一下

39420
来自专栏从零学习云计算

openshift/origin学习记录(11)——赋予用户集群管理员权限

由于system:admin默认没有密码,没法登录web console,这里通过指令给账号dev赋予集群管理员权限。 # oc login -u sys...

34300
来自专栏深度学习之tensorflow实战篇

python生成exe,环境win10简单的小程序案例

1.直接pip安装:pip install pyinstaller ? 2.打包时,在命令行中切换到要打包的程序所在目录,直接输入下面的指令即可。 ...

40650
来自专栏Golang语言社区

Golang语言--反射的用处--代码自动生成

背景: go语言处理db、json的时候,具体代码的变量定义和db字段、json输出的时候可能不一样。 这个时候,我们需要用tag的方式来进行定义。 例如: ?...

44160
来自专栏hbbliyong

Ubuntu 安装 JDK8 的两种方式

ubuntu 安装jdk 的两种方式: 1:通过ppa(源) 方式安装. 2:通过官网下载安装包安装. 这里推荐第1种,因为可以通过 apt-get upgra...

1.4K90
来自专栏机器学习实践二三事

pip安装报错'not a supported wheel on this platform'

这个错误很常见,解决方法是改名,首先要获得在你的机器的平台上的合法名称: import pip pip.pep425tags.get_supporte...

29870
来自专栏无原型不设计

【Mockplus教程】为什么删除多个页面的时候会有提示,如何取消提示?

为了防止误操作,在删除三个及以上页面的时候,Mockplus默认会给出输入“delete”字符 完成删除的确认提示,如下图: ? 要去掉这个提示,在设置中...

27860
来自专栏技术支持log

GET 和 POST 请求 http 站点时数据是否加密?

GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。

59810
来自专栏前端开发

CentOS 7 安装 JAVA环境(JDK 1.8)

地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-213315...

3K40
来自专栏林冠宏的技术文章

浅谈 php 采用curl 函数库获取网页 cookie 和 带着cookie去访问 网页的方法!!!!

由于近段时间帮朋友开发一个能够查询正方教务系统的微信公众平台号。有所收获。这里总结下个人经验。 开讲前,先吐槽一下新浪云服务器,一个程序里的   同一个函数  ...

1.2K100

扫码关注云+社区

领取腾讯云代金券