Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署

认识Linux

  • 基本命令:文件、目录、vim编辑器、账号、磁盘、进程
  • 软件安装和部署:Java、tomcat、docker

1.linux入门

  • linux一切皆文件:读、写、权限
  • 很多大型项目都是部署在linux上面的,服务器端一般都是用linux
  • 创始人:芬兰人Linus Torvalds(林纳斯.托瓦兹),大学时爱好编写
  • open,free and 自传播的类Unix操作系统
  • 一个基于POSIX(可移植操作系统接口)和UNIX的多用户(root最高权限用户)、多任务、支持多线程和多CPU的OS
    主要运行UNIX软件、应用程序和网络协议,32位/64位
  • 以网络为核心,即网络OS
  • 性能稳定
  • linux的发行版简单来说就是Linux核心和应用软件的一个打包
  • 应用领域:from嵌入式to超级计算机

通常情况服务器使用LAMP(linux+apache+mysql+php)或LNMP(linux+nginx+mysql+php)的组合

服务器都是用命令行

与Windows对比

windows linux
界面统一 界面千差万别,可能互不兼容
驱动程序丰富,版本更新频繁 驱动由志愿者开发
使用简单、入门快 图形界面易学,文字界面稍难
系统构造复杂,知识技术淘汰快,深入学习较难 系统构造简单稳定,知识技术具有传承性,深入学习相对容易
软件需要付费 大部分软件可自由获取

2.环境搭建(安装CentOS)

  • 本地安装:1)双系统 2)虚拟机(建议)
  • 购买阿里云服务器安装(建议)

阿里云服务器相当于一个远程电脑,而服务器一般不会关机
注意:在这里插入图片描述
3.开始基于阿里云服务器的Linux学习
3.1环境准备
1)购买阿里云服务器

2)在阿里云服务器连接成功后,下载xshell(远程连接工具, port:22),下载xftp(文件上传,port:21)

xshell的使用

  • 点开应用,点击文件新建,在主机的位置输入从阿里云服务器上获取的公网IP地址
    Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第1张图片
  • 输入用户名
    Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第2张图片
  • 输入密码
    Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第3张图片
  • 登录进去之后显示welcome to alibaba cloud elastic compute service
    Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第4张图片

xshell6和xshell5的连接方式略有不同

  • 文件新建,在主机位置输入服务器公网ip,然后点击左边框里的用户身份验证
    Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第5张图片
  • 输入用户名和密码,点击连接
    Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第6张图片

xftp的使用

  • 同xshell,文件新建,输入公网ip、用户名、密码建立会话连接
    Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第7张图片
  • 左边为本地文件,右边为远程服务器文件(文件传输只需要拖拽即可)
    Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第8张图片

3.2走进linux
3.2.1

  • 开机时会启动很多进程,Windows中叫服务service,Linux叫守护进程daemon
  • 登录方式有三种:1)命令行 2)ssh即远程登录xshell 3)图形界面登录
  • 最高权限账户为root,可以操作一切
  • Linux大多用在服务器上,很少关机,除非不得已。关机指令:shutdown
  • 直接关机数据会丢失,要先同步到磁盘中:sync(在Linux中没有输出代表成功)
    Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第9张图片
  • 重启:reboot(不要在xshell中输入,这样会使服务器重启,而不是虚拟机重启)

3.2.2系统目录结构

  • 查看当前目录:ls

  • 查看当根目录:ls /

Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第10张图片

目录为树状结构
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第11张图片各文件中存储的内容
/bin:使用的基本命令
/boot:核心文件,never touch it
/dev:外部设备,将其当作文件来管理,比如打印机、摄像头等
/mnt:挂载别的文件系统(如,本地文件目录)
/etc:配置文件
/home:用户目录——一个用户一个(用户名命名的),相当于windows的c盘下user目录
/lib:库,基本依赖,don’t touch
/opt:安装软件,即软件安装包
/root:管理员目录
/urs:用户的目录
/tmp:临时文件
/sbin:超级管理员的管理程序
/urs/local:类似于Windows下program files目录,安装后的软件存放在这里
/selinux:安全相关的内容
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第12张图片
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第13张图片

3.3.Linux常用命令

3.3.1目录管理
命令
切换目录:cd (绝对路径以/开头,相对路径以当前目录为基准)
返回上一级目录:cd …
返回上两级目录:cd …/…
列出目录:ls (白色字体标识为文件,蓝色表示为文件夹)
进入用户目录:cd ~
查看当前在那个目录下,即上一级目录:pwd
创建目录:mkdir
递归创建目录: mkdir -p java/bin/lib
删除目录:rmdir (只能删除空目录,有文件要先删除文件才可删除目录)
当删除不为空的文件夹时:rmdir -p java/bin/lib(不可以写成 rmdir -p java,如果java下除了bin还有其它内容也是删不掉的)
复制文件或者目录:cp (文件可见,则输入文件前几字母按tab键自动补全 对于重名会提示覆盖或者放弃:y/n)
移除文件:rm
移动文件或者目录:mv 移动者 目的地
重命名文件:mv 旧名 新名
清屏:clear (并不是真的把屏幕清空了,只是上移了,上拉滚动条还是能看见之前内容)
参数
-a:all 查看全部文件,包括隐藏文件
-l:列出所有文件,包含文件属性和权限,不包括隐藏文件
-f:忽略不存在的文件,不会出现警告,强制删除
-r:递归删除
-i:删除时询问是否删除
!!非常危险的命令:rm -rf 会删除系统中的所有文件,即删库跑路
-u:只替换更新过的文件
所有Linux命令可以组合使用,如图
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第14张图片

基本属性

  • Linux系统是一种典型的多用户系统,不同用户权限不同
  • ll等价于 ls -l:查看当前目录下文件及文件夹的属性和所属用户和组,如图
    Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第15张图片
    第一列
    第一个字母含义
    目录:d
    文件:-
    链接文档(类比windows下桌面上的图标,即快捷方式):l (其后都会指向具体文件)
    存储的接口设备:b
    串行端口设备(鼠标键盘):c
    紧接着的九个字母,三组为一个(r可读 w可写 x可操作 rwx无权限时为-)
    第一组:属主权限 所有者
    第二组:属组权限 所有者同组用户
    第三组:其他用户权限
    文件个数(第二列) 所有者(第三列) 所属组(第四列)文件大小(第五列) 时间(第六列) 文件名(第七列)
    修改文件属组:chgrp 【-R】组名 文件名
    改属主:chown 【-R】 主名 文件名/ chown 【-R】 主名:组名 文件名
    更改那九个字母(r为4 w为2 x为1):chmod 【-R】 xyz 文件/目录名
    eg.owner=rwx=4+2+1=7 group=rwx=4+2+1=7 others=—=0+0+0=0
    chmod 770 filename

3.3.2文件内容查看
命令
从第一行显示文件内容:cat
从最后一行显示文件内容:tac(倒着显示)
看文件显示行号:nl
一页一页显示:more (空格翻页 回车下走一行)
一页一页显示,可以往前翻:less (pageUP上下键 q退出 /字符串来向下查找字符串 ?字符串来向上查字符串 n下一个,N上一个)
只看前几行:head (-n 20 前20行)
只看后几行:tail (-n 20 后20行)
查看命令文档:man 命令名
查看网络配置:ifconfig

linux链接

  • 硬链接:A–B B为A的硬链接,则其指向同一个文件,可以防止误删,A不在了,B还可以访问到(ln 文件 链接)
  • 软链接:A删除了,B就访问不到了(ln -s 文件 链接)

创建文件:touch
向文件写入字符串:echo
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第16张图片

3.3.3Vim编辑器——文本编辑器,更是一种程序开发工具

  • 工作模式如下图
    Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第17张图片

三种模式

  • 命令模式:刚进入vim时的模式 。eg 通过vim cainiao.txt命令,如果文件存在直接进入,如果不存在创建并进入。
    Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第18张图片
  • 输入模式:通过命令 i 进入(此 i 为命令并不是输入到文件里的内容,下图的 i 是我后来输入的字符),其为编辑模式,x命令可以删除光标所在位置字符。
    Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第19张图片
  • 底线命令模式:在输入模式不能直接进入,通过ESC键退到命令模式,然后通过:(冒号)命令进入(这里不需要回车就直接进入了),输入wq命令来保存文件并退出vim,q!表示强制退出不保存(w命令为写入,即保存)。
    Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第20张图片退出vim

注意:只有在命令模式下如下图中的内容才是命令,在输入模式下它们只是字符

vim下的很多操作(细节内容:https://mp.weixin.qq.com/s/AndIwanhZ3Tlg0iQe8a4lQ)
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第21张图片
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第22张图片
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第23张图片

  • 在文件中显示行号:set nu
    Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第24张图片
  • 纵向移动光标:数字+回车
  • 横向移动光标:数字+空格
  • 重复前一个动作:u

3.3.4账号管理

一般情况下在公司我们不是root,需要向root申请一个账户
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第25张图片
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第26张图片

3.3.4.1root对用户的管理
添加用户:useradd -m 用户名 -G 组名(-m表示自动为这个用户创建主目录,-G指定用户组) !!创建好后相应的在/etc/passwd中能看到这个用户记录
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第27张图片

删除用户:userdel -r 用户名(-r表示还要把相应目录删除)
修改用户:usermod eg 换目录——usermod -d 新目录 用户名
切换用户:su 用户名
改主机名:hostname 新名字 重新连接后才生效
查看主机名:hostname
设置用户密码:passwd 用户名(在root用户下,在一般用户下只需输入passwd即可)
锁定用户:1)passwd -l 用户名 —— 锁定之后就不能登录了 2)passwd -d 用户名 —— 没密码了,这样也不能登录

3.3.4.2用户组管理
对/etc/group的更新
创建用户组:groupadd 组名 (端口号自增一) groupadd -g 端口号 组名
删除用户组:groupdel 组名
修改用户组:groupmod -g 新端口号 -n 新组名 旧组名

/etc/shadow里是加密用户口令

3.3.5磁盘管理
列出文件系统整体磁盘使用情况:df (字节) df -h(兆M)
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第28张图片
检查磁盘空间使用量:du
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第29张图片

3.3.6进程管理
查看系统当前正在执行的进程信息:ps -参数
看进程的目录树结构:pstree -pu(p显示父id u显示用户组)
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第30张图片

结束进程:kill -9 进程id
参数
-a:当前进程
在这里插入图片描述

-u:该用户下的进程信息显示
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第31张图片

-x:显示后台运行的参数
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第32张图片

-ef:父进程信息
!!一般情况下组合使用
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第33张图片
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第34张图片

注意:|表示管道 比如A|B A的输出作为B的输入 grep查找文件中符合条件的字符串
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第35张图片

4.软件安装
三种方式:rpm、解压缩、yum在线安装

4.1JDK(rpm)

  • Oracle官网下载jdk8 rpm版本
    在这里插入图片描述
  • 安装java环境

检测当前系统是否存在Java环境,有的化先卸载(过滤命令:rpm -qa|grep jdk 卸载命令:rpm
-e -nodeps jdk的名字 nodeps表示强制)
在这里插入图片描述
安装jdk:rpm -ivh jdk名字
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第36张图片
配置环境变量:进入/etc/profile配置环境变量 通过vim /etc/profile进行编辑
在这里插入图片描述
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第37张图片
在文件最下面编辑如下内容
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第38张图片
输入如下命令使配置文件生效
在这里插入图片描述
检查是否安装成功
在这里插入图片描述
其中JAVA_HOME的位置查找如下
Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第39张图片

(看防火墙开启的端口:firewall -cmd --list -port;加端口:firewall -cmd --add -port=1234/tcp --permanent;重启防火墙:systemctl restart firewalld.service)

!!执行java程序:java -jar 项目名.jar

4.2Tomcat安装(解压缩)

  • 官网下载:apache-tomcat-9.0.34.tar.gz
  • 解压为文件:tar -zxvf 压缩包名.tar.gz 解压成功会多一个蓝色的目录
    在这里插入图片描述Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第40张图片
    在这里插入图片描述
  • 启动tomcat: ./startup.sh (绿色为可执行文件)
    Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第41张图片
    Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署_第42张图片
  • 最后打开所需端口号就可以使用

!!上传完项目直接购买自己的域名,然后备案即可

4.3Docker安装(yum)
yum -y install 包名
1)yum -y install gcc (gcc linux下的编译器)
2) yum -y install gcc-c++
3)安装软件包:yum install -y yum-utils device-mapper-persistent-data lvm2
4)设置stable镜像仓库:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5)更新yum软件包索引: yum makecache fast
6)安装docker ce: yum -y install docker-ce docker-ce-cli containerd.io
7)启动:systemctl start docker
8)测试:(1)docker version (2)docker run hello-world (3)docker images

你可能感兴趣的:(Linux学习实践篇:基于阿里云服务器CentOS7——基本命令、软件安装部署)