前言:
- 本学习笔记是基于尚硅谷Linux教程(千万级学习人次,linux最新升级版)——77集-21小时韩老师的视频学习。
- 该学习视频知识点很齐全,可以当成Liunx的一个入门学习。
一:了解Linux
1.1 Linux 的应用领域
Linux在桌面应用领域相对薄弱,但在服务器领域的应用有着[免费、稳定、高效]等特点。对于嵌入式应用领域也在快速提高,Linux运行稳定、对网络的良好支持性、低成本,且可以根据需求进行软件裁剪,内核最小可以达到几百KB。
1.2Linux的介绍
-
Linux创始人-Linus 林纳斯
-
Linux的主要发行版本:
-
Unix和Linux的关系:
Unix是KenTompson和DennisRichres在贝尔实验室中开发,然后被IBM、Sun、Hp公司在Unix的基础上发行了AIX、Solaris、HpUX发行版本,但这个发行版本使用需要高昂的费用,RichardStallman提出在自由的时代用于应该免费享有对软件源代码的阅读、修改的权利,软件公司可以靠提供服务和训练获得盈利。所以提出了GNU计划:Linux是GNU计划的其中之一。
1.3Linux和Windows比较
比较 | Windows | Linux |
---|---|---|
免费与收费 | 收费且很贵 | Liunx免费或少许费用 |
安全性 | 三天两头打补丁安装系统安全更新,还是会中病毒木马 | 要说Liunx没有安全问题,那当然是不可能的,这一点仁者见仁智者见智,相对来说肯定比Windows平台更加安全 |
使用习惯 | 普通用户基本都是纯图形界面下操作使用,依靠鼠标和键盘完成一切操作,用户上升容易入门简单 | 兼具图形界面操作和完全的命令行操作,可以只用键盘完成一切操作,新手入门比较困难,需要一些学习和指导,一旦熟练之后效率极高 |
可定制性 | 封闭的,系统可定制性很差 | 开源,可定制性非常强 |
应用场景 | 桌面操作系统主要使用的是windows | 支撑百度,谷歌,淘宝等应用软件和服务的,是后台成千上万的Liunx服务器主机。世界上大部分软件和服务都是运行在Liunx之上的 |
二:安装Vmtools
2.1介绍vmtools
-
可以直接复制命令在windows和centOS系统之间
-
可以设置windows和centOS的共享文件夹
示意图:
2.2安装vmtools的步骤:
-
进入centOS
-
点击vm菜单的->install vmware tools
-
centos会出现一个vm的安装包
-
点击右键解压,得到一个安装文件
-
进入该vm解压的目录,该文件在 /root/桌面/vmware-tools-distrib/下
-
安装./vmware-install.pl
-
全部使用默认设置即可
-
需要reboot重新启动即可使用
2.3:使用vmtools来设置windows和linux的共享文件夹
-
菜单->vm->setting,注意:设置选项为:always enable,这样就可以读写
-
windows和centos可共享d:/share目录
-
在centos的/mnt/hgfs/ 下
三:入门Linux
3.1:Linux的基本介绍:
linux的文件系统是采用级层式的树目录结构,在此结构中的最上层是根目录"/",然后在此目录下创建其他的目录。
切记:在Linux世界里,一切皆文件
3.2[重要]目录结构的具体介绍
/bin (/usr/bin、/user/local/bin)
- 是Binary的缩写,这个目录存放着最常用命令
/home
- 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录是以用户的账号命名
/root
- 该目录为系统管理员,也称作超级权限者的用户主目录
/boot
- 存放的是启动Linux时使用的一些核心文件,包括一些文件以及镜像文件
/media
- Linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux会把识别的设备挂载到这个目录下
/mnt
- 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容了。d:/myshare
/usr/local
- 这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序
/var
- 这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件
3.3Linux目录总结
1:Linux的目录中有且只有一个根目录 /
2:Linux的各个目录存放的内容是规划好的,不用乱放文件
3:Linux是以文件的形式管理我们的设备,因此Linux系统,一切皆为文件
四:远程登录Linux系统
4.1:为什么需要远程登录Linux
在公司开发的时候:
-
Linux服务器是开发小组共享的
-
正式上线的项目是运行在公网的
-
因此程序员需要远程登录到centos进行项目管理或者开发
4.2:使用XShell进行远程登录
Xshell只是众多远程登录Linux的软件之一,那么为什么选择XShell:
-
流畅且完美解决中文乱码
-
强大的安全终端模拟软件,它支持SSH1,SSH2,以及Microsoft Windows平台的TELNET协议[*Secure Shell(安全外壳协议,简称SSH)*是一种网络协议]
-
可以在Windows界面下用来访问远端的不用系统下的服务器,从而比较好的达到远程控制终端的目的
特别说明: 如果希望安装好XShell就可以远程访问Linux系统的话,需要有一个前提,就是Linux启动了SSHD服务,该服务会监听22号端口
4.3:XFtp远程上传下载文件
【XShell和XFtp(Crack)】都在百度网盘上,提取码 ldzy
五:VI和VIM编译器
5.1vi和vim的基本介绍
所有的Linux系统都会内建vi文本编译器
Vim具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序代码。代码补全、编译及错误跳转等方便编程的功能特别丰富。
5.2vi和vim的三种常见模式
5.2.1正常模式
在正常模式下,我们可以使用快捷键
在vim打开一个文档就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用【上下左右】按键来移动光标,你可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制、粘贴】来处理文件数据
5.2.2插入模式/编译模式
在正常模式下,输入i、I、o、O、a、A、r、R任意一个键都可以进入到这个模式下
5.2.3命令行模式
在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim、显示行号等的动作
5.3三种模式的切换示意图
5.4快捷键的使用
1:拷贝
拷贝当前行 yy,拷贝当前行下向下的5行 5yy,并粘贴§
2:删除
删除当前行 dd,删除当前行向下的5行 5dd
3:在文件中查找某个单词
(命令行下) [/关键字]回车 查找,输入n就是查找下一个
4:行号的设置和取消
(命令行下)[:set nu 和**:set nonu**]
5:到文件末尾,和首行
(正常模式下)末尾:[G] 首行:[gg]
6:撤销-回到上一步
(正常模式下)u
7:将光标移动到第20行
7.1:显示行号 :set nu
7.2:输入20这个数字
7.3输入shift+g
5.5vim和vi的快捷键盘-览图
六:开机、重启和用户登录注销
6.1关机&重启命令
6.1.1基本介绍
shutdown:
- shutdown -h now:表示立即关机
- shutdown -h 1:表示1分钟后关机
- shutdown -r now:立即重启
halt:
直接使用,效果等价于关机
reboot:
就是重启系统
sync(同步):
把内存的数据同步到磁盘
6.1.2注意细节
当我们关机或者重启时,都应该先执行一下syn指令,把内存的数据写入磁盘,防止数据丢失
6.2用户登录和注销
6.2.1基本介绍
-
登录时尽量少用root账号登录,因为他是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用"su - 用户名" 命令来借还成系统管理员身份
-
在提示符下输入logout即可注销用户
6.2.2使用细节
- logout注销指令在图形运行级别无效,在运行级别3下有效,关于运行级别的概念在下面
七:用户管理
7.1基本介绍-示意图
7.1.1说明:
-
Linux系统是一个多用户多任务的操作系统,任何一个要是用系统资源的用户,都必须首先向管理员申请一个账号,然后以这个账号的身份进入系统。
-
Linux的用户至少要属于一个组
7.2添加用户
7.2.1基本语法
useradd [选项] 用户名
7.2.2细节说明
-
当创建用户成功后,会自动的创建和用户同名的家目录
-
也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录
7.3给用户指定或者修改密码
7.3.1基本语法
passwd 用户名
7.4删除用户
7.4.1基本语法
userdel 用户名
不保留家目录的语法
userdel -r 用户名
在删除用户时,一般不会将家目录删除【在工作中,员工离职,但还是要必要的保留他所留下的工作内容】
7.5查询用户信息
7.5.1基本语法
id 用户名
uid是用户id号,gid是所在组id号
7.6切换用户
7.6.1介绍
在操作Linux中,如果当前用户的权限不够,可以通过su- 用户名指令,切换到高权限用户,比如root
7.6.2基本语法
su - 切换用户名
7.6.3细节说明
-
权限高–>低不需要输入密码,反之则要
-
当需要返回到原来用户是,使用exit指令
7.7用户组
7.7.1介绍
类似于角色,系统可以对有共性的多个用户进行统一的管理
7.7.2增加组语法
groupadd 组名
7.7.3删除组语法
groupdel 组名
7.8增加用户时直接加上组
7.8.1基本语法
useradd -g 用户组 用户名
7.9修改用户的组
7.9.1基本语法
usermod -g 用户组 用户名
7.10 /etc/passwd 文件
用户(user)的配置文件,记录用户的各种信息
每行含义:
用户名:口令:用户标识号:组标识号:解释性描述:主目录:登录Shell
7.11 /etc/group文件
组(group)的配置文件,记录Linux包含的组的信息
每行含义:
组名:口令:组标识号:组内用户列表
7.12 /etc/shadow文件
口令的配置文件
每行的含义:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:标志
八:实用指令
8.1指定运行级别
运行级别说明:
0:关机
1:单用户[找回丢失密码]
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别是3和5,要修改默认的运行级别可改文件**/etc/inittab** 的 id:5:initdefault 这一行的中的数字
示意图:
8.2切换到指定运行级别的指令
8.2.1基本语法
init [012356] 比如:
我要重启可以输入命令:init 6
8.3忘记root密码的解决方案
开机–>在引导时输入 ENTER(回车键)–>看到一个界面输入e–>看到一个新的界面,选择第二个(编辑内核)在输入e–>在这行最后输入 1,再输入ENTER–>再次输入b,这时候就会进入到单用户模式
这时,我们就进入到单用户模式,使用passwd指令来修改root密码
8.4帮助指令
8.4.1介绍
当我们对某个指令不熟悉时,我们可以使用Linux提供的帮助指令来了解这个指令的使用方法
8.4.2man 获得帮助信息
基本语法 :
man [命令或配置文件] (功能描述:获得帮助信息)
8.4.3help 指令获得帮助信息
基本语法:
help [命令] (功能秒速:获得shell内置命令的帮助信息)
8.5文件目录类
8.5.1pwd指令显示当前所在目录绝对路径
基本语法:pwd
8.5.2ls指令查看当前目录的所有内容信息
基本语法:ls [选项] [目录或是文件]
常用选项:
-a:显示当前目录所有的文件和目录,包括隐藏的
-l:以列表的方式显示信息
-h:文件大小转换
选项只要合理都可以并用
8.5.3cd指令切换到指定位置
基本语法:cd [参数](功能描述:切换到指定目录)
常用参数
绝对路径和相对路径
如何理解绝对路劲和相对路径
绝对路径:无论身处何处,都是从根目录开始定位
相对路径:从当前工作目录开始定位
cd~或cd :回到自己的家目录
cd …:回到当前目录的上一级
8.5.4mkdir指令创建目录
基本语法:mkdir [选项] 要创建的目录
常用选项:-p:创建多级目录
8.5.5rmdir指令删除目录
基本语法 rmdir 要删除的空目录
如果 删除的目录下有内容,rmdir是无法直接删除的,需要使用 rmdir -rf 要删的目录
8.5.6touch指令创建空文件夹
基本语法 touch 文件名称
可以一次创建多个文件夹 touch hello1.txt hello2.txt
8.5.7cp指令[重要]拷贝文件到指定目录
基本语法:cp [选项] source dest
常用选项:-r:递归复制整个文件夹
递归举例:
使用细节:强制覆盖不提示的方法:\cp
技术小技巧:
可以通过 上下箭头的键,调出原来使用过的指令
8.5.8rm指令删除文件或目录
基本语法:
rm [选项] 要删除的文件或目录
常用选项:
-r:递归删除整个文件夹
-f:强制删除不提示
8.5.9mv剪切或重命名
基本语法:
mv oldNameFile newNameFile (功能表述:重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件)
8.5.10cat查看文件内容指令
cat指令是以只读的方式打开
基本语法:
cat [选项] 要查看的文件
常用选项:
-n :显示行号
我们一般会配合管道指令 和 more指令一起使用,这样就可以实现翻页,而不是直接退出
空格翻页,ENTER下一行,详情的快捷键在8.5.11
8.5.11more分页指令
more指令是基于VI编译器的文本过滤器,他以全屏的的方式按页显示文本文件的内容。more指令中内置了若干快捷键。
基本语法:
more 要查看的文件
快捷键:
操作 | 功能说明 |
---|---|
空格键(space) | 代表向下翻一页 |
Enter | 代表向下移动一行 |
q | 代表立刻离开more,不再显示该文件内容 |
Ctrl+F | 向下滚动一屏 |
Ctrl+B | 返回上一屏 |
= | 输出当前行的行号 |
:f | 输出文件名和当前行的行号 |
8.5.12less分屏查看文件内容指令
他的功能与more指令类似,但是比more指令更强大,支持各种显示终端。less指令在显示内容文件时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率
基本语法:
less 要查看的文件
快捷键:
操作 | 功能说明 |
---|---|
空格键(space) | 向下翻动一页 |
[pagedown] | 向下翻动一页 |
[pageup] | 向上翻动一页 |
/字串 | 向下搜索[字串]的功能:n:向下查找;N:向上查找 |
?字串 | 向上搜索[字串]的功能:n:向上查找;N:向下查找 |
q | 离开less这个程序 |
8.5.13 >(覆盖写入)指令和>>(追加)指令
> 输出重定向:会将原来的文件的内容覆盖
>> 追加:不会覆盖原来文件的内容,而是追加到文件的尾部
基本语法:
ls -l >文件 (功能描述:列表的内容写入文件中(覆盖写))
ls -al>>文件 (功能描述:列表的内容追加到文件的末尾)
cat 文件1>文件2 (功能描述:将文件1的内容覆盖到文件2)
echo “内容” >> 文件 (功能描述:将"内容"追加到文件中)
8.5.14echo输出内容到控制台指令
基本语法