该篇解析Linux的基础理论和常用基本的命令操作


一.学习方式:

1.认识Linux(理解目录结构)

2.掌握常用的命令(文件管理、文件属性、目录管理、Vim编辑器、账号管理、磁盘管理)

3.软件的安装和部署(本章描述java、tomcat、docker的安装和部署)

总结:Linux的本质:一切皆为文件:对文件的操作,无非就是读、写、控制文件的权限。

二、为何要学习Linux?

       在服务器端,在开发领域Linux是越来越受欢迎,很多程序员都觉得不懂点Linux都觉得不好意思,Linux在开源社区的地位依然岿然不动。
     尤其是作为一个后端程序员,是必须要掌握Linux的,因为这都成为了你找工作的基础门槛了,所以不得不学习

总结:大势所趋!非常热门,经常用到的技术。

三、Linux简介


 Linux内核最初只是由芬兰人林纳斯.托瓦兹在赫尔辛基大学上学时出于个人爱好而编写的。
 Linux是一套免费使用和自由传播的类Unix操作系统(类似苹果的Mac系统),是一个基于POSIX (可移植操作系统接口)和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
 Linux能运行主要的UNIX工具软件(多数是开源的不收费)、应用程序和网络协议。它支持32位和64位硬件。Linux 继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

四、Linux发行版

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

版本图分支图:

本章使用CentOS7版本。 

五、Linux应用领域

今天各种场合都有使用各种Linux发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位。

通常服务器使用两种组合方式:

  • LAMP(Linux + Apache + MySQL + PHP)
  • LNMP(Linux + Nginx + MySQL + PHP)

 Linux对比Windows

六、搭建环境

1.本地安装(占用资源)
环境:虚拟机VMware Workstation Pro 15.2+CentOS 7

Linux的安装步骤比较繁琐(操作系统本身也是一个软件), 如果嫌弃搭建麻烦,可以买一台云服务器用来学习使用。

1.安装CentOS7

  • 通过镜像安装,下载镜像。(链接:阿里云开源镜像站资源目录
  • 打开VMware,点击文件选项,点击新建虚拟机。选择下载好的镜像路径即可安装。

-------------------------------------------------------------------------------------------------------------------------------- 

2.购买云服务器(推荐,资源占用小,搭建速度快)

详细请看:阿里云服务器购买指南_caixukun1的博客-CSDN博客_阿里云

七、走近Linux系统


  1. 开机
 会启动许多程序。它们在Windows叫做’服务" ( service ) , 在Linux就叫做"守护进程" ( daemon)。
一般来说,用户的登录方式有三种:
 ●命令行登录
 ●SSH登录(远程)
 ●图形界面登录
 最高权限账户为root,可以操作一切!

2.关机(不常用,但是也要知道)

 在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
 关机指令为shutdown

sync #关机前先执行该指令,将数据由内存同步到硬盘中。防止数据丢失。
shutdown #关机指令,你可以看一下帮助文档。例如你可以运行如下命令关机:
shutdown -h 10 #这个命令告诉大家,计算机将在10分钟后关机
shutdown -h now#立马关机
shutdown -h 20:25 #系统会在今天20:25关机
shutdown -h +10 #十分钟后关机
shutdown -r now #系统立马重启
shutdown -r +10 #系统十分钟后重启
reboot #就是重启,等同于shutdown -r now
halt #关闭系统,等同于shutdown -h now和poweroff

总结:以上的命令。带h的是关机,带r的是重启。不管是重启还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中,执行命令之后没有返回消息则表明运行成功。

3.看懂Linux系统目录结构

记住,一切皆为文件。并且Linux文件没有后缀名。

“/”为根目录,所有文件都挂载在该节点上

输入ls /命令,看到多个目录。

 ls:该命令为查看当前目录下的东西。ls命令相当于我们的眼睛

ls命令拓展详解:

语法:ls[参数][文件名]

命令参数
可以使用帮助命令查看详细命令参数:man ls或ls --help(这个需要有一定的英语阅读理解)

  • -a, --all
  • do not ignore entries starting with .(列出目录下的所有文件,包括以.开头的隐含文件)
  • -A, --almost-all
  • do not list implied . and …(列出除了.及…以外的所有文件)
  • –author
  • with -l, print the author of each file(打印出每一个文件的作者)
  • -b, --escape
  • print octal escapes for nongraphic characters(不能输出的字符用反斜杠加字符编号的形式输出)
  • –block-size=SIZE
  • use SIZE-byte blocks.(使用SIZE-byte的大小的字节为单位)
  • -B, --ignore-backups
  • do not list implied entries ending with ~(不列出任何以波浪号结束的项目)
  • -c with -lt: sort by, and show, ctime (time of last modification of file status information) with -l: show ctime and sort by name otherwise: sort by ctime
  • (输出文件的ctime(文件状态最后更改的时间),并根据ctime排序)
  • -C list entries by columns(由上至下的列出项目)
  • –color[=WHEN]
  • colorize the output. WHEN defaults to ‘always’ or can be ‘never’ or ‘auto’. More info below(控制是否使用色彩分辨文件。WHEN可以是always、never或者auto其中一个)

小总结:带“-”符号为参数,最右边的是文件名。命令看不懂或者想知道更多,就man ls或ls --help。(任何命令都可以试一试。只要英语阅读理解优秀)


---------------------------------------------------------------------------------------------------------------------------------

这是目录的树状结构图

 各个目录详解(标了红色的是比较重要的目录,乱动该目录会产生严重后果

  • /bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。(例如ls,mv等命令。如果闲的蛋疼把这个目录删了,后果就是输入ls,mv等命令,无法正常使用)
  • /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。(不要动)
  • /dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。(插入U盘,能在该目录下看到U盘里面的信息)
  • /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。(redis、mysql的配置文件放在该目录)
  • /home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。(和windows的C盘用户目录一样的性质)
  • /lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。
  • /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
  • /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
  • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
  • /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。(redis、mysql安装路径放在这个目录下)
  • /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
  • /root:该目录为系统管理员,也称作超级权限者的用户主目录。
  • /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
  • /srv:该目录存放一些服务启动之后需要提取的数据。
  • /sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
  • /tmp:这个目录是用来存放一些临时文件的。 用完即丢的文件可以放在这个目录下
  • /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
  • /usr/bin: 系统用户使用的应用程序。
  • /usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。
  • /usr/src: 内核源代码默认的放置目录。
  • /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
  • /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
  • /www:存放服务器网站相关的资源,环境,网站的项目。

八、常用的基本命令(基本操作)

1.理解绝对路径和相对路径

绝对路径和相对路径

我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /。

其他目录(例如插入U盘的目录)通过挂载可以将它们添加到树中,通过解除挂载可以移除它们

绝对路径:

路径的写法,由根目录 / 写起,例如:/usr/share/doc 这个目录。

相对路径:

 

路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成:     cd . /man 这就是相对路径的写法。

 

-------------------------------------------------------------------------------------------------------------------------------- 

2.处理目录的常用命令


ls: 列出目录
常用选项与参数:
-a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
-l :长数据串列出,包含文件的属性与权限等等数据;(常用)

cd:切换目录
cd 绝对路径(以/开头)
cd 相对路径(寻找当前目录下,以..开头)

pwd:显示目前的目录

mkdir:创建一个新的目录

rmdir:删除一个空的目录

cp: 复制文件或目录

rm: 移除文件或目录

mv: 移动文件与目录,或修改文件与目录的名称

 ​下面描述以上命令的用法

-------------------------------------------------------------------------------------------------------------------------------- 

 3.pwd命令

pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。

-------------------------------------------------------------------------------------------------------------------------------- 

4.mkdir (创建新目录)和rmdir(删除目录)

语法:mkdir  [-mp]  目录名称

          rmdir [-p] 目录名称

如果想要创建新的目录的话,那么就使用mkdir (make directory)。

创建多层目录

目录删除

 

小结:

mkdir [-mp] 目录名称

选项与参数:

-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 。

-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!

rmdir只能删除空目录。如果要删除多层目录,请加-p参数

-------------------------------------------------------------------------------------------------------------------------------- 

5.cp ( 复制文件或目录 )

语法:cp 原来的目录 目标目录

小技巧:长按Tab键有惊喜,会自动补全文件名

 把test4文件复制到usr目录

cp命令选项与参数:

-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)

-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);

-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;

-r:递归持续复制,用於目录的复制行为;(常用)

-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;

-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)

-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身。

-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;

-u:若 destination 比 source 旧才升级 destination !

-------------------------------------------------------------------------------------------------------------------------------- 

6.rm ( 移除文件或目录 ,不要乱用,有危险!)

语法:rm [-fir] 文件或目录

选项与参数:

-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;

-i :互动模式,在删除前会询问使用者是否动作(加了这个参数,不问你,直接删除)

-r :递归删除!最常用在目录的删除了!这是非常危险的选项!(删库跑路专用命令:rm -rf /*)

使用命令删除test4文件 

---------------------------------------------------------------------------------------------------------------------------------

7.mv 命令(移动文件与目录,或修改名称 )

语法:mv [fiu] 移动文件 目标路径

选项与参数:

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

  • -u :若目标文件已经存在,且 source 比较新,才会升级 (update)

使用mv命令给test1文件改名

使用mv命令将as移到test2目录下

---------------------------------------------------------------------------------------------------------------------------------

以上皆为基操,精通Linux靠这些还远远不够

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐