70.java项目--linux

本文的架构如图
在这里插入图片描述

一.linux概述

1.linux的历史概述

Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。

特点:

  • all is file(一切皆为文件)
    Linux的基本思想有两点:第一,一切都是文件;第二,每个文件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
  • 多用户、多任务
    Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
  • 开源免费
    Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
2.linux的现有版本

Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。
在这里插入图片描述
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
在这里插入图片描述

3.linux的目录结构

这是linux的目录为属性结构,所有目录的根目录都是 /,
/ 根目录下有如下目录.
在这里插入图片描述
目录的树状结构如下图:
在这里插入图片描述
以下是对这些目录的解释(重要的目录,加粗表示):

  • /bin

bin是Binary的缩写, 这个目录存放着最经常使用的命令。

  • /boot:

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

  • /dev :

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

  • /etc

这个目录用来存放所有的系统管理所需要的配置文件和子目录。因为我们可能修改系统的配置,例如安装jdk修改path

  • /home

用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。一般我们登陆进linux系统中的根目录就是这个/home目录.

  • /lib:

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

  • /lost+found:

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

  • /media:

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

  • /mnt:

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

  • /opt

这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的.我们经常会将自己安装的应用程序放在这个目录.

  • /proc:

这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

  • /root

该目录为系统管理员,也称作超级权限者的用户主目录。

  • /sbin:

s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

  • /selinux:

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

  • /srv:

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

  • /sys:

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

sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。
该文件系统是内核设备树的一个直观反映。

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

  • /tmp:

这个目录是用来存放一些临时文件的。

  • /usr

这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

  • /usr/bin

系统用户使用的应用程序。

  • /usr/sbin:

超级用户使用的比较高级的管理程序和系统守护程序。

  • /usr/src

内核源代码默认的放置目录。

  • /var:

这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

  • /run:

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

4.linux需要掌握的知识点

作为一个后台开发人员,我们经常与服务器打交道,经常操作服务器,所以我们需要对linux系统有一定的认知.我们需要掌握的知识点:

  1. linux基本的原理和目录
  2. linux上发布项目
  3. linux上检查日志
  4. linux上检查系统的运行情况
  5. linux上搭建项目运行的环境

二.linux命令

1.文件夹类命令
(1) 进入
  • cd 目录
    进入目录
  • cd …
    回退到上一级目录
  • cd /
    回退到整个系统根目录
  • cd ~
    进入到用户的根目录

在这里插入图片描述

(2) 显示
  • pwd
    显示当前进入的文件目录
  • ll
    详细显示当前目录下所有文件,一行显示一个目录
  • ls [目录]
    不加参数目录则显示当前目录下所有文件,加参数则显示参数目录下的所有文件和文件夹

在这里插入图片描述

(3) 创建文件夹
  • mkdir 目录名
    创建文件夹
    在这里插入图片描述
(4) 复制文件夹
  • *cp -r resource目录 target目录 *
    复制resource目录到目标路劲
    在这里插入图片描述
(5) 移动/重命名
  • mv 目录1 目录2
    移动文件夹或者重命名
    在这里插入图片描述
(6) 删除
  • rmdir 文件名
    删除文件夹(注意删除的文件夹必须为空)
  • rm -rf 文件名
    递归删除文件夹,及文件夹下所有的额内容
    在这里插入图片描述
(7) 查找

find 目录1 -name 目录2
在目录1下,查找目录2,以文件名的方式查找.
在这里插入图片描述

(7) 查找

1).按照文件名查找

  • find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找

  • find /etc -name httpd.conf  #在/etc目录下文件httpd.conf

  • find /etc -name ‘srm  #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件

  • find . -name 'srm’*   #表示当前目录下查找文件名开头是字符串‘srm’的文件
    在这里插入图片描述
        2).按照文件特征查找

  • find / -amin -10   # 查找在系统中最后10分钟访问的文件(access time)

  • find / -atime -2   # 查找在系统中最后48小时访问的文件

  • find / -empty   # 查找在系统中为空的文件或者文件夹

  • find / -group cat   # 查找在系统中属于 group为cat的文件

  • find / -mmin -5   # 查找在系统中最后5分钟里修改过的文件(modify time)

  • find / -mtime -1   #查找在系统中最后24小时里修改过的文件

  • find / -user fred   #查找在系统中属于fred这个用户的文件

  • find / -size +10000c  #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)

  • find / -size -1000k   #查找出小于1000KB的文件

在这里插入图片描述

(8) 权限

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
命令:ll # 显示当前目录下所有文件和文件夹的详细信息.
在这里插入图片描述

drw-r–r--
说明:
在这里插入图片描述

  • 第0位代表这个文件是目录、文件或链接文件等等。

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

  • 第1-3位确定属主(该文件的所有者)拥有该文件的权限。
    [ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute),[ - ]代表没有该权限。
  • 第4-6位确定属组(所有者的同组用户)拥有该文件的权限.
    [ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute),[ - ]代表没有该权限。
  • 第7-9位确定其他用户拥有该文件的权限。
    [ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute),[ - ]代表没有该权限。

1) chgrp:更改文件属组
语法:
chgrp [-R] 属组名 文件名

2)chown:更改文件属主,也可以同时更改文件属组
语法:
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

3)chmod:更改文件9个属性
Linux文件属性有两种设置方法,一种是数字,一种是符号。
各权限的分数对照表如下:
r:4
w:2
x:1

语法:
chmod 777 文件名
`#说明,只有可执行文件才能设置x,执行的权利,文本文件最多可以设置666
在这里插入图片描述

2.文件类命令

本命令主要是操作文件类的命令.

(1) 创建

vi 文件名
或者
vim 文件名
创建文件,并进入编辑模式.
在这里插入图片描述
1)命令模式

参考文档:https://blog.youkuaiyun.com/zzti_erlie/article/details/82695305

说明:
1.vi或者vim默认进入的模式,或者任何其他模式下按Esc进入命令模式.
2.命令模式下,输入冒号:,则进入末行模式.

在这里插入图片描述
常用编辑相关的命令:

  • yy
    复制光标所在行
  • p
    在光标处粘贴
  • dd
    删除光标所在行
  • u
    撤销上一步操作
  • 行数 gg
    跳转到指定行

2)插入模式(按i/o进入插入模式)

说明:
1.命令模式下,按i或者o进入插入模式.
2.该插入模式下,按Esc进入命令模式.

在这里插入图片描述

3)末行模式(命令模式下,按冒号)

说明:
1.命令模式下,按冒号进入末行模式.

在这里插入图片描述
常用指令:

  • wq
    保存并退出
  • q!
    退出不保存
  • /任意字符
    在本文件查找该字符串
    n表示下一处

在这里插入图片描述

  • set nu
    显示行号
    在这里插入图片描述
(2) 删除

rm [-rf] 文件名
删除文件
在这里插入图片描述

(3) 复制

同文件夹相同

(4) 移动/重命名

同文件夹相同

(5) 比较

diff 文件1 文件2
在这里插入图片描述

(6) 显示
  • cat 文件名
    显示该文件全部内容
  • more 文件名
    分页显示文件内容
    空格:下一页
    b:上一页
    q:退出
  • less 文件名
    分页显示文件内容
    空格:下一页
    b:上一页
    q:退出
  • head -行数 文件名
    显示该文件头部几行
  • tail -行数 文件名
    显示该文件尾部几行
  • tailf 文件名
    显示文件最后几行,并且动态显示追加的内容,常用语本地测试,跟踪日志文件

在这里插入图片描述

(7) 查找

同文件夹操作

(8) 统计
  • wc -l 文件名
    统计文件的行数
    在这里插入图片描述
  • ls -l|grep “^d”| wc -l
    ls -l :显示当前目录下所有文件和文件夹
    grep “^d” : 筛选出是文件夹的,^d是文件夹;-是文件
    wc -l : 显示行数
    所以这行命令的意思:统计当前目录下所有的文件夹数目
    在这里插入图片描述
(9) 权限

同文件夹操作

(10) 文本处理

linux中最为常用的三大文本(awk,sed,grep)处理工具之一

  • grep [选项] ”正则表达式“ [文件]
    -E :开启扩展(Extend)的正则表达式。
    -i :忽略大小写(ignore case)。
    -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。
    -n :显示行号
    -w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker
    -c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。
    -o :只显示被模式匹配到的字符串。
    –color :将匹配到的内容以颜色高亮显示。
    -A n:显示匹配到的字符串所在的行及其后n行,after
    -B n:显示匹配到的字符串所在的行及其前n行,before
    -C n:显示匹配到的字符串所在的行及其前后各n行,context
    在这里插入图片描述
3.安全
(1)开机关机

重启命令

  • reboot
  • shutdown -r now
    #立刻重启(root用户使用)
  • shutdown -r 10
    #过10分钟自动重启(root用户使用)
  • shutdown -r 20:35
    #在时间为20:35时候重启(root用户使用)
    如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启

关机命令

  • halt
    立刻关机
  • poweroff
    立刻关机
  • shutdown -h now
    立刻关机(root用户使用)
  • shutdown -h 10
    10分钟后自动关机

如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启

(2)防火墙

1)iptables防火墙

  • service iptables status
    查看防火墙状态
  • service iptables stop
    停止防火墙
  • service iptables start
    启动防火墙
  • service iptables restart
    重启防火墙
  • chkconfig iptables off
    永久关闭防火墙
  • chkconfig iptables on
    永久关闭后重启

2)firewall防火墙

  • systemctl status firewalld
    查看firewall服务状态
    出现Active: active (running)切高亮显示则表示是启动状态。
    出现 Active: inactive (dead)灰色表示停止,看单词也行。

  • firewall-cmd --state
    查看firewall的状态

  • service firewalld start
    开启

  • service firewalld restart
    重启

  • service firewalld stop
    关闭

  • firewall-cmd --list-all
    查看防火墙规则

(3)用户操作
  • useradd 选项 用户名
    添加用户
    -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。

  • userdel 选项 用户名
    删除用户

  • usermod 选项 用户名
    修改用户

  • passwd 选项 用户名
    修改密码

  • su 或者 su root
    切换到root用户

  • su - username
    切换到username用户

在这里插入图片描述

还有些用户组的命令就省略了

4.系统
(1)内存及cpu
  • /proc/直接查看文件信息
    在这里插入图片描述

  • free -h
    free命令是一个快速查看内存使用情况的方法,它是对 /proc/meminfo 收集到的信息的一个概述。
    在这里插入图片描述

  • top
    top命令不仅可以看见整个系统的内存,cpu,以及进程等使用情况,还能对我们各个进程中对cpu和内存的占用进行监控,所以是一个非常有用的指令.
    在这里插入图片描述

(2)进程相关
  • ps #显示进程
    -A :所有的进程均显示出来
    -a :不与terminal有关的所有进程
    -u :有效用户的相关进程
    -x :一般与a参数一起使用,可列出较完整的信息
    -l :较长,较详细地将PID的信息列出

  • kill #停止进程
    1:SIGHUP,启动被终止的进程
    2:SIGINT,相当于输入ctrl+c,中断一个程序的进行
    9:SIGKILL,强制中断一个进程的进行
    15:SIGTERM,以正常的结束进程方式来终止进程
    17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行

在这里插入图片描述

  • top
    #还有就是top命令也能查看进程
(3)网络相关
  • hostname
    显示主机名

  • ping
    用来确认网络连接是畅通的。
    用来查看连接的速度信息。

  • ifconfig
    查看用户网络配置

  • ifup 设备名
    启动网络设备

  • ifdown 设备名
    关闭网络设备

在这里插入图片描述

5.应用程序

(1)文件上传下载

  • rz
    选择文件进行上传

  • sz 文件名
    sz后面跟文件名可以进行文件从linux上面下载。
    在这里插入图片描述
    (2) 压缩与解压

.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
———————————————

.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
———————————————
.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName

———————————————
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName

———————————————

.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
———————————————

(3) 安装和卸载

yum
yum安装是连网安装,可以直接联网下载安装.

  • yum -y install 包名
    安装软件
  • yum -y update 包名
    升级特定的软件包。
  • yum remove 包名
    卸载软件包

rpm
rpm安装适合离线安装,需要自己先下载安装包,并且需要自己下载依赖的安装包.
-qa 查找全部的安装文件
-q 查找安装包
-qi 查找安装包详细信息
在这里插入图片描述

6.其他
  • |
    管道命令,在linux 中竖线(|)代表着管道命令,管道命令是非常有用的,竖线前的结果作为竖线后的命令的参数.
    例如:
    在这里插入图片描述
    又例如
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值