参考尚硅谷韩顺平老师教程
我个人认为学习linux流程为:
第1阶段:linux环境下的基本操作命令,包括 文件操作命令(rm mkdir chmod, chown) 编
辑工具使用(vi vim)linux用户管理(useradd userdel usermod)等
第2阶段:linux的各种配置(环境变量配置,网络配置,服务配置)
第3阶段:linux下如何搭建对应语言的开发环境(大数据,JavaEE, Python等)
第4阶段:能编写shell脚本,对Linux服务器进行维护。
第5阶段:能进行安全设置,防止攻击,保障服务器正常运行,能对系统调优。
第6阶段:深入理解Linux系统(对内核有研究),熟练掌握大型网站应用架构组成、并熟
悉各个环节的部署和维护方法。
Linux的学习方法
- 高效而愉快的学习
- 先建立一个整体框架,然后细节
- 不需要掌握所有的Linux指令,要学会查询手册和百度
- 先know how ,再know why
- 计算机是一门”做中学” 的学科 ,不是会了再做,而是做了才会.
- 适当的囫囵吞枣
- Linux不是编程,重点是实际操作,各种常用指令要玩的溜
Linux基础篇
Linux目录结构
linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此
目录下再创建其他的目录。
记住一句经典的话:在Linux世界里,一切皆文件。
具体的目录结构:
/bin [重点] (/usr/bin 、 /usr/local/bin): 是Binary的缩写, 这个目录存放着最经常使用的命令
/home [重点] : 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/root [重点] : 该目录为系统管理员,也称作超级权限者的用户主目录。
/etc [重点] : 所有的系统管理所需要的配置文件和子目录 my.conf
/usr [重点] : 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录
/boot [重点] : 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
/media [重点] : linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/mnt [重点] : 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。 d:/myshare
/usr/local [重点] : 这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序。
/var [重点] : 这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件
/srv: service缩写,该目录存放一些服务启动之后需要提取的数据。
/sbin (/usr/sbin 、 /usr/local/sbin) : s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/lib: 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found: 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/proc: 这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息。
/sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs
/tmp: 这个目录是用来存放一些临时文件的
/dev : 类似于windows的设备管理器,把所有的硬件用文件的形式存储。
/opt : 这是给主机额外安装软件所摆放的目录。如安装ORACLE数据库就可放到该目录下。默认为空。
/selinux [security-enhanced linux] 360• SELinux是一种安全子系统,它能控制程序只能访问特定文件。
Linux实操篇
vi和vim的基本介绍
所有的 Linux 系统都会内建 vi 文本编辑器。
Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
vi和vim常用的三种模式
正常模式:
以 vim 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用『复制、贴上』来处理你的文件数据。
插入模式:
按下i, I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式, 一般来说按i即可.
命令行模式
在这个模式当中, 可以提供你相关指令,完成读取、存盘、替换、离开 vim 、显示行号等的动作则是在此模式中达成的!
命令行模式下快捷键:
拷贝当前行 yy
删除当前行 dd
设置文件的行号,取消文件的行号.[命令行下 : set nu 和 :set nonu]
编辑 /etc/profile 文件,使用快捷键到底文档的最末行[G]和最首行[gg]
:q 退出
:q! 不保存退出
:wq 保存退出
文件目录类
pwd 指令:显示当前工作目录的绝对路径
ls指令
-a :显示当前目录所有的文件和目录,包括隐藏的。
-l :以列表的方式显示信息
-h : 以合适的单位展示
cd 指令
cd ~ 或者cd :回到自己的家目录
cd … 回到当前目录的上一级目录
mkdir指令
-p :创建多级目录
rmdir指令
rmdir 删除的是空目录,如果目录下有内容时无法删除的。提示:如果需要删除非空目录,需要使用 rm -rf 要删除的目录.
-r :递归删除整文件夹 -f : 强制删除不提示
touch指令
创建空文件
cp指令
拷贝文件到指定目录
mv指令
mv 移动文件与目录或重命名
mv oldNameFile newNameFile (功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件)
cat命令:用于显示整个文件的内容,单独使用没有翻页功能,经常和 more 命令搭配使用,cat 命令还可以将数个文件合并成一个文件。
more命令:让画面在显示满一页时暂停,此时可按空格健继续显示下一个画面,或按 q 键停止显示。
less命令:less 命令的用法与 more 命令类似,也可以用来浏览超过一页的文件。所不同的是 less 命令除了可以按空格键向下显示文件外,还可以利用上下键来翻动文件。当要结束浏览时,只要在 less 命令的提示符“:”下按 q 键即可。
这三个命令除了 cat 命令有合并文件的功能,其余功能上相近,只是从浏览习惯和显示方式上有所不同
echo指令 输出内容到控制台。
head指令
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的前10行内容。
- tail 文件 (功能描述:查看文件头10行内容)
- tail -5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)
- tail -f 文件 (功能描述:实时追踪该文档的所有更新)
‘> 输出重定向和 >> 追加’
- ls -l >文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))
- ls -al >>文件 (功能描述:列表的内容追加到文件aa.txt的末尾)
- cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)
- echo “内容”>> 文件
ln指令
ln -s 源文件 目标文件 软链接
ln 源文件 目标文件 硬链接
history指令
查看已经执行过历史命令,也可以执行历史指令
history 10 查看过去10条命令
!19 执行历史命令中的第19条
date指令-显示当前日期
- date (功能描述:显示当前时间)
- date +%Y (功能描述:显示当前年份)
- date +%m (功能描述:显示当前月份)
- date +%d (功能描述:显示当前是哪一天)
- date “+%Y-%m-%d %H:%M:%S”(功能描述:显示年月日时分秒)
cal指令
查看日历指令
cal : 显示当前日历
cal 2020 : 显示2020年日历
find指令
find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
-name<查询方式> 按照指定的文件名查找模式查找文件
-user<用户名> 查找属于指定用户名所有文件
-size<文件大小> 按照指定的文件大小查找文件.(+n 大于 -n小于 n等于) find -size +50M
locate(locate) 命令用来查找文件或目录。 locate命令要比find -name快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db 。这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
touch del.txt 创建del.txt文件,查找del.txt文件,找不到,更新数据库,然后再查找
locate del.txt
updatedb
locate del.txt
grep作用是在文件中提取和匹配符合条件的字符串行。
和find区别
find:用于搜索符合条件的文件名,如果需要模糊查询,可以使用通配符,-regex选项也支持正则(equals)
grep:用于在文件中搜索符合条件的字符串,如果需要模糊查询,可以使用正则(contains)
管道符 |
表示 命令1的正确输出作为命令2的操作对象。有点像find命令中的-exec选项
gzip/gunzip 指令
gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz (功能描述:解压缩文件命令)
zip/unzip 指令
zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的
zip del.zip del.txt
unzip del.zip
gzip压缩的时候原文件会消失,zip不会
tar 指令
tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件。
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件
tar -cvf del.tar del.txt
tar -xvf del.tar