复习Linux

入门概述

在服务器端,在开发领域linux越来越受欢迎

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX(可移植操作系统接口)和UNIX的多用户,多任务,支持多线程和多CPU的操作系统

Linux发行版

就是将Linux内核与应用软件做一个打包

Xshell远程连接服务器

阿里云开启安全组:映射端口,获取外网ip,修改密码

xshell建立会话,开启连接

ctrl+鼠标滚轮 放大和缩小字体

开机关机和基本目录介绍

开机登录

开机会启动许多程序,他们在windows叫做服务(service),在Linux叫做守护进程(daemon)

用户的登录方式:

  • 命令行登录

  • ssh登录

  • 图形界面登录

    最高权限为root

关机

服务器上很少有关机的操作

sync 同步数据 linux没有错误就代表操作成功

shutdown

reboot 重启

halt 关闭系统

系统目录结构

一起皆文件

根目录 / ,所有的文件都挂载在这个节点上

登录系统后,在当前命令窗口下输入命令

ls /

得到如下

bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
  • /bin
    bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。

  • /boot:
    这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

  • /dev :
    dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

  • /etc:
    etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。

  • /home
    用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的

  • /lib
    lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

  • /lost+found
    这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

  • /media
    linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

  • /mnt
    系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。

  • /opt
    opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

  • /proc
    proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
    这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    
  • /root
    该目录为系统管理员,也称作超级权限者的用户主目录。

  • /sbin
    s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。

  • /selinux
    这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

  • /srv
    该目录存放一些服务启动之后需要提取的数据。

  • /sys

    这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

    sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。

    该文件系统是内核设备树的一个直观反映。

    当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

  • /tmp
    tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。

  • /usr
    usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

  • /usr/bin:
    系统用户使用的应用程序。

  • /usr/sbin:
    超级用户使用的比较高级的管理程序和系统守护程序。

  • /usr/src:
    内核源代码默认的放置目录。

  • /var
    var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

  • /run
    是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

常用的基本命令

目录管理

绝对路径 相对路径

cd 切换目录

切换目录

绝对路径以 / 开头,可以在任意地方使用

相对路径

cd .. 返回上级目录

ls 列出目录

-a参数:all,查看全部的文件,包括隐藏文件

-l参数:列出所有的文件,包含文件的属性和权限,没有隐藏文件,linux命令可以组合使用

pwd显示当前所在目录

mkdir 创建目录

mkdir

mkdir -p 创建层级目录

rm删除目录

rmdir 删除目录

rmdir -p 删除层级

cp 复制文件或者目录

cp old new

rm 移除文件或目录

-f 忽略不存在的文件,不会出现警告,强制删除

-r递归删除目录或文件

-i互动,删除询问是否删除

mv移动文件或者目录 重命名

-f 强制

-u只替换已经更新过的文件

基本属性

[root@ming /]# ls -ll
total 20
lrwxrwxrwx.   1 root root    7 May 11  2019 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 Aug 24 14:32 boot
drwxr-xr-x   19 root root 2940 Oct 11 13:17 dev
drwxr-xr-x.  94 root root 8192 Oct 11 13:17 etc
drwxr-xr-x.   3 root root   34 Oct 11 16:16 home
lrwxrwxrwx.   1 root root    7 May 11  2019 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 May 11  2019 lib64 -> usr/lib64
drwxr-xr-x.   2 root root    6 May 11  2019 media
drwxr-xr-x.   2 root root    6 May 11  2019 mnt
drwxr-xr-x.   2 root root    6 May 11  2019 opt
dr-xr-xr-x  108 root root    0 Oct 11 13:17 proc
dr-xr-x---.   6 root root  189 Oct 11 14:52 root
drwxr-xr-x   30 root root  880 Oct 11 13:17 run
lrwxrwxrwx.   1 root root    8 May 11  2019 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 May 11  2019 srv
dr-xr-xr-x   13 root root    0 Oct 11  2020 sys
drwxrwxrwt.   4 root root  255 Oct 11 16:14 tmp
drwxr-xr-x.  12 root root  144 Aug 24 14:24 usr
drwxr-xr-x.  21 root root 4096 Aug 24 06:28 var

实例中,bin 文件的第一个属性用 d 表示。d 在 Linux 中代表该文件是一个目录文件。

在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。

  • 当为 d 则是目录
  • 当为 - 则是文件;
  • 若是 l 则表示为链接文档(link file);
  • 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已。

每个文件的属性由左边第一部分的 10 个字符来确定

从左至右用 0-9 这些数字来表示。

0 位确定文件类型,第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。

第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。

其中,第 1、4、7 位表示读权限,如果用 r 字符表示,则有读权限,如果用 - 字符表示,则没有读权限;

2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限;第 3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。

修改文件属性

chgrp:更改文件属组

chgrp [-R] 属组名  文件名

-R递归更改文件属组

chown:更改文件属主,也可以同时更改文件属组

chown [-R] 属主名 文件名
chown [-R] 属主名:属组名   文件名

chmod 更改文件的9个属性

chmod [-R] xyz 文件或目录

linux文件的基本属性有两种设置方法,一种是数字,一种是符号

r:4  w:2  x:1

多种查看文件方式学习

linux系统中使用以下命令来查看文件的内容:

cat:由第一行开始显示文件内容

tac: 从最后一行开始显示,可以看出tac是cat的倒着写

nl显示的时候,顺道输出行号

more一页一页的显示文件内容 空格代表翻页 回车代表向下看一行

less与more类似,但是比more更好的是,他可以向前翻页 空格翻页 上下键翻动页面 退出 q命令 可以在界面加 /字符串 寻找字符串向下查询 ?字符串向上查询 n继续寻找下一个 N向上寻找

head只看头几行

tail只看尾巴几行

你可以使用man [命令] 来查看各个命令的使用文档,如:man cp

网络配置目录:/etc/sysconfig/network-scripts centOS 7

默认配置文件:ifcfg-eth0

ifconfig查看网络配置

硬链接和软链接

Linux的链接分为两种:硬链接 软链接

硬链接:A--B 他们两个指向了同一个文件,允许同一个文件拥有多个路径,用户可以通过这种机制建立硬链接到一些重要文件上,防止误删

软链接:类似Window下的快捷方式,删除源文件,快捷方式也访问不了

创建链接:ln 命令

ln f1 f2 硬链接

ln -s f1 f3 f3是f1的软链接

touch 命令创建文件

echo 输入字符串,也可以输入到文件中

vim编辑器

vim通过一些插件可以实现和IDE一样的功能

vim是从vi发展出来的一个文本编辑器

三种使用模式

vim file 如果存在就是编辑文件, 不存在就创建文件

基本上vim/vi共分为三种模式

命令模式(Command mode) 输入模式(Inser mode)底线命令模式(Last line mode)

命令模式:用户刚刚启动了vi/vim,便进入了命令模式,此状态下敲击键盘动作会被vim识别为命令,而非输入字符

常用的命令:

  • i切换到输入模式,以输入字符
  • x删除当前光标所在处的字符
  • :切换到底线模式,以在最底一行输入命令,如果是输入模式,要退出输入模式

:wq 保存退出

:set nu 显示行号

Linux账号管理学习

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统

  • 用户账号的添加,删除与修改
  • 用户口令的管理
  • 用户组的管理

useradd 命令 添加用户

useradd -选项 用户名

-m :自动创建这个用户的主目录 /home/xu

理解一下本质,linux一切皆文件

userdel删除用户

userdel -r xu 删除用户的时候将他的目录页一并删掉

usermod修改用户

usermod -d /ff/gg xu

修改完毕之后查看配置文件即可

切换用户

root用户

  • 切换用户的命令为su username
  • 从普通用户切换到root用户,可以使用命令 sudo su
  • 在终端输入exit或logout或使用快捷方式ctrl+d,可以退回到原来用户,其实ctrl+d也是执行的exit命令
  • 在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-
# 超级用户
$ 普通用户
hostname #查看主机名
hostname  xu  #修改主机名    修改完毕重新连接 



用户的密码设置问题

passwd xu

给用户设置密码

linux上密码是不显示的 正常输入就好了

如果是超级用户的话

passwd username

如果是普通用户

passwd

锁定账户

passwd -l   username  #锁定之后这个用户就不能登录了
passwd -d   username   #密码没有也不能登录了

用户组管理

属主 属组

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理,不同Linux系统对用户组的规定有所不同,如linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建

用户组的管理涉及用户组的添加,删除和修改,组的增加,删除和修改实际上就是对/etc/group文件的更新

创建一个用户组groupadd

创建完一个用户组可以得到一个组的id,这个id是可以指定的 groupadd -g 520 ming 如果不指定就是自增1

删除用户组 groupdel groupname

修改用户组信息 groupmod -选项 参数 groupname

文件的查看

/etc/passwd
用户名:口令(登录密码,不可见):用户标识号:组标识号:注释性描述:主目录:登录shell

登录口令:把真正的加密后的用户口令存放到/etc/shadow文件中,保证密码的安全性

磁盘管理

df(列出文件系统整体的磁盘使用量) du(检查磁盘空间使用量)

df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        1.8G     0  1.8G   0% /dev
tmpfs           1.8G     0  1.8G   0% /dev/shm
tmpfs           1.8G  452K  1.8G   1% /run
tmpfs           1.8G     0  1.8G   0% /sys/fs/cgroup
/dev/vda1        40G  2.7G   38G   7% /
tmpfs           364M     0  364M   0% /run/user/0
du
du -a

Mac或者想使用Linux挂载我们的一些本地磁盘或者文件

mount  /dev/xx  /mnt/xx   挂载
umount  -f  /mnt/x  卸载

进程管理

对于我们开发人员来说,其实linux更多偏向于使用即可

什么是进程

  • 在linux中,每一个程序都是由自己的一个进程,每一个进程都有一个id号
  • 每一个进程呢,都会有一个父进程
  • 进程有两种存在方式,:前台,后台
  • 一般的话服务都是后台运行的,基本的程序都是前台运行的
ps  #查看当前系统中正在执行的各种进程的信息
ps -a   #显示当前终端运行的所有的进程信息
ps -u   # 以用户的信息显示进程
ps -x  #显示后台运行进程的参数
ps -aux|
|  #管道符
grep  #查找文件中复合条件的字符串
ps  -ef #可以查看到父进程的信息


看父进程我们一般可以通过目录树结构来查看

pstree  -p  显示父id
        -u  显示用户组

结束进程:杀掉进程,

kill -9 进程id

但是平时写的一些java代码死循环了,可以kill -9 进程id

环境安装

安装软件一般有三种方式,rpm(jdk示例,在线发布一个springboot项目),解压缩安装(tomcat示例,启动并通过外网访问,发布网站),yun在线安装(docker安装,直接安装运行)

安装python

tar -zxvf pythonxx.tgz

./configure  --prefix=/usr/local/python

make

make install

建立软链接 ,覆盖或者用一个新的命名python快捷方式    区别系统已有的

ln -s /usr/local/python/bin/python    /usr/bin/python

如果是centos7  yum默认的是python2解释器
将yum支持改回python2
vi  /usr/bin/yum
vi /usr/libexec/urlgrabber-ext-down 
第一行修改即可

JDK安装

下载JDK rpm 去oracle官网

安装java环境

# 检测当前系统是否存在java环境   java -version
# 如果有的话就需要卸载
# rpm -qa|grep jdk #检查jdk的版本
# rpm -e --nodeps 查出来的jdk版本号

#卸载完毕后即可安装jdk
#rpm -ivh rpm包
#配置环境变量  在/etc/profile 文件的最后面增加java的配置和windows安装环境变量一样
JAVA_HOME=/usr/java/jdk1.8.0_261-amd64
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
# 让这个文件生效  source /etc/profile
#firewall-cmd --list-ports  #只看端口信息
#firewall-cmd --list-all  #查看全部信息
#systemctl status firewalld  查看防护墙状态
#systemctl start firewalld  开启
#systemctl stop  firewalld  关闭

# service firewalld start  开启
# service firewalld stop  关闭
# service firewalld restart  重启服务

#firewall-cmd --permanent --zone=public --add-port=3306/tcp   开启端口
--zone  作用域
--add-port=80/tcp   #添加端口  ,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后生效
#systemctl restart  firewalld.service  重启防火墙

Tomcat

ssm war就需要放到tomcat中运行

下载tomcat。官网下载即可,tomcat9

解压这个文件

tar -zxvf apache-tomcat-9.0.38.tar.gz 

启动tomcat测试,./xx.sh即可运行

#执行 ./startup.sh
#停止 ./shutdown.sh

如果防火墙8080端口开了并且阿里云安全组也开放了,这个时候就可以直接访问远程了

上传完毕的项目直接购买自己的域名,备案解析过去即可

域名解析后,如果端口是80 -http 或者443 -https可以直接访问,如果是9000,8080,就需要通过Apache或者Nginx做一下反向代理即可,配置文件即可,如果想要上线自己的网站,那么就可以了

Docker安装(yum安装)

官网安装参考手册https://docs.docker.com/engine/install/centos/

yum在线安装

安装

检测CentOS 7

cat /etc/redhat-release 

安装我们的准备环境

yum -y install  包名  #  yum install  安装命令   -y    所有的提示都为y

yum -y intall gcc
yum -y intall gcc-c++

清除以前的版本

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

后面根据官网安装即可

yum install -y yum-utils
yum install -y zlib*
#配置阿里云镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
       #配置文件在/etc/yum.repos.d

#更新yum软件包索引
 yum makecache fast  #centOS8  没有fast参数 去掉即可


containerd.io最新版本下载 
下载地址:https://mirrors.aliyun.com/docker-ce/linux/centos/8/x86_64/stable/Packages/

yum install containerd.io-1.3.7-3.1.el8.x86_64.rpm 

yum install docker-ce   #默认安装最新版本


#启动docker
systemctl start docker

#查看是否启动
ps -ef|grep docker

docker version  #查看版本


测试
docker run  hello-world   #下载镜像

查看镜像
docker  images  

宝塔面板

傻瓜式安装

posted @ 2020-10-11 21:45  yourText  阅读(92)  评论(0编辑  收藏  举报