Linux知识总览
-
linux可以简单的理解成和window一样的操作系统。
-
Linux和Windows区别
- Linux是严格区分大小写的;
- Linux中一切皆是文件;
- Linux中文件是没有后缀的,但是他有一些约定俗成的后缀;
- Windows下的软件一般是无法直接运行的Linux中。
-
网络类型
-
仅主机模式
- 虚拟机只能和主机通信,不能上网,相当于用一根线将两台电脑链接起来,没有连路由器。在真机中仅主机模式模拟网卡对应的物理网卡是VMnet1。
-
桥接
- 虚拟机和主机在局域网中地位一样,就相当于两台电脑同时连接了Wifi,但是不好的地方就是,如果WiFi断开了,呢吗虚拟机和主机无法通信
-
nat模式
- 通过vmnet8做中转和主机连接。让 VM 虚拟机的网络服务发挥路由器的作用,使得通过虚拟机软件模拟的主机可以通过物理主机访问外网,在真机中NAT 虚拟机网卡对应的物理网卡是 VMnet8。相当于自己的电脑成了网关,虚拟机成了子主机
-
-
linux的目录结构
- root:该目录为系统管理员HOME目录
- bin:这个目录下放着经常使用的命令
- boot:这里存放的是启动Linux时的一些核心文件
- etc:存放系统管理所需要的配置文件和子目录
- home:普通用户的HOME目录
- usr:unix shared resources(共享资源) ;默认安装软件的目录,类似Windows中的Program Files目录
- opt:optional(可选) ;是主机额外安装软件拜访的目录
- 须知:/usr/local 是 /usr 下的一个用户级的程序目录,用户自己安装的软件一般选择安装到这个目录下
-
linux快速入门-安装流程
- 安装虚拟机
- 安装操作系统-linux
- 配置静态ip
- 快照和克隆以及修改相关配置信息
-
复制linux
-
基本命令
shell# 1. 我是谁 who am i # 2. 我在哪 pwd # 3. 查看ip 地址 ip a | ip address ifconfig # 4. 清屏 clear # 5. ping域名|ip ping 地址 # 6. 强制停止 Ctrl + C
-
目录命令
shell# 实现目录间切换,使用绝对路径、相对路径、特殊符号 cd 具体路径 | 特殊符号 # . 当前目录 # .. 上一级目录 # / 根目录 # ~ 当前登录用户的home目录 # - 返回上一次所在的目录 # 查看指定目录下的内容,默认查看当前目录下内容 ls [-ald] [目录名] # 目录名不填写,默认为当前目录。 # -a:列出的全部的文件,包括隐藏文件 # -l:列举出全部的信息=》 # -d:仅查看目录本身 # -h:以人们方便阅读的形式显示文件大小 # 创建目录,以及创建多级目录方式 mkdir [-p] 目录名 # -p:代表创建多级目录时,使用 # 只能删除空目录 rmdir 目录名 # 删除非空目录 rm [-rf] 目录名 # -r:代表递归删除目录下的全部内容 # -f:不询问,直接删除 # 复制目录下的全部内容 cp -r 来源目录 目标目录 # -r:递归复制全部内容,必填项 # 来源目录:被复制的目录 # 目标目录:复制到哪儿 # 移动、重命名目录,会根据第二个参数指定具体操作逻辑 mv 目录名 新目录名 | 路径 # 如果第二个参数指定的路径不存在,就是重命名,如果第二个参数的路径存在,就是移动(剪切)
-
ll =》 ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名。获取内容如下
drwxr-xr-x 19 root root 3.0K Feb 16 22:44 dev
- 第一字段:第一个字符代表文件的类型。
- 字母"-"表示该文件是一个普通文件
- 字母"d"表示该文件是一个目录,字母"d",是dirtectory(目录)的缩写;注意:目录或者是特殊文件,这个特殊文件存放其他文件或目录的相关信息
- 字母"l"表示该文件是一个链接文件。字母"l"是link(链接)的缩写.链接文件分为硬链接或符号链接两种。
- 字母"b"的表示块设备文件(block),一般置于/dev目录下,设备文件是普通文件和程序访问硬件设备的入口,是很特殊的文件。没有文件大小,只有一个主设备号和一个辅设备号。一次传输数据为一整块的被称为块设备,如硬盘、光盘等。最小数据传输单位为一个数据块(通常一个数据块的大小为512字节)
- 字母为"c"表示该文件是一个字符设备文件(character),一般置于/dev目录下,一次传输一个字节的设备被称为字符设备,如键盘、字符终端等,传输数据的最小单位为一个字节。
- 字母为"p"表示该文件为命令管道文件。与shell编程有关的文件。
- 字母"s"表示该文件为sock文件。与shell编程有关的文件。
- 第一字段:第1字符的后面9个字母表示该文件或目录的权限位。
- r表是读 (Read) 、w表示写 (Write) 、x表示执行 (eXecute)
- 其中前三个表示文件拥有者的权限,中间三个表示文件所属组拥有的权限,最后三个表示其他用户拥有的权限。
- rwx在这三个权限中数字表现形式r:4,w:2,x:1
- 第2字段:代表文件硬链接数
- 软链接:类似于 Windows 系统中给文件创建快捷方式,即产生一个特殊的文件,该文件用来指向另一个文件,此链接方式同样适用于目录。
- 硬链接:我们知道,文件的基本信息都存储在 inode 中,而硬链接指的就是给一个文件的 inode 分配多个文件名,通过任何一个文件名,都可以找到此文件的 inode,从而读取该文件的数据信息,就是说,修改硬链接文件,其他文件也会修改
- 第3字段:文件(目录)拥有者
- 第4字段:文件(目录)拥有者所在的组
- 第5字段: 文件所占用的空间(以字节为单位
- 如果是一个文件夹(目录),则表示该文件夹的大小。请注意是文件夹本身的大小,而不是文件夹以及它下面的文件的总大小。因为在linux中文件夹是一个特殊的文件
- 第6字段:文件(目录)最近访问(修改)时间
- 第7字段:文件名
- 如果是一个符号链接,那么会有一个 "->" 箭头符号,后面根一个它指向的文件名
-
-
文件命令
shell# 创建空文件 touch 文件名1 文件名2 ...... # 查看文件,直接展示到最后一行 cat 文件名 # 从最后一行开始查看文件内容,展示全部 tac 文件名 # 显示文件的用时,展示行号 nl 文件名 # 查看大文件时,可以一页一页的向下翻 # 嗯space向下翻页,退出时摁q more 文件名 # 查看大文件时,可以任意的向上或者向下翻 # 向上或向下翻页摁PageUp和PageDown,一行一行查看,摁光标的↑↓ less 文件名 # 只查看前几行 head 文件名 head -n 行数 文件名 # 只查看后几行 tail 文件名 tail -n 行数 文件名 # 监控日志 tail -f 文件名 # 同目录命令 mv 文件名 新文件名 | 路径 cp 文件名 目录 rm [-f] 文件名
-
压缩解压命令
-
Linux中常用的压缩包,大多是.tar,.tar.gz、.tar.bz2的,操作如下
shell# 解压压缩包 tar [-zxvf] 压缩包名称 [-C 路径] # -z: 通过gzip的支持进行压缩和解压缩,档案名最好为*.tar.gz # -j: 通过bzip2的支持进行压缩和解压缩,档案名最好为*.tar.bz2 # -x: 代表解压 # -v: 解压时,打印详细信息 # -f: -f选项必须放在所有选项的最后,代表指定文件名称 # -C 路径: 代表将压缩包内容解压到指定路径 # 打包成压缩包 tar [-zcvf] 压缩包名称 文件1 文件2 目录1 目录2 ... # -c: 代表打包 # 其他参数同上
-
Linux不仅仅针对tar类型的压缩包,也支持zip,rar这种Windows下的压缩包。不过需要安装软件针对对各种类型压缩包的操作,操作如下
shellyum -y install zip # 打包程序 yum -y install unzip # 解压程序 # 解压 unzip 压缩包名称 # 打包 zip 压缩包名称 文件1 文件2 目录1 目录2 ...
-
-
文件权限修改命令
-
在Linux中输入ls -l 或者 ll查看文件和目录的详细信息
-
使用chmod对文件的权限进行修改,一种使用数字,一种使用符号......
- 数字方式方便操作,不过要修改整体权限信息
- 符号方式更细粒度华,不过操作麻烦
shellchmod [-R] 777 文件|目录 # rwx在这三个权限中r:4,w:2,x:1 # -R: 当修改一个目录权限时,可以添加-R,将目录下的全部内容,都修改权限。 chmod [-R] a=rw 文件|目录 # user:u,group:g,other:o,all:a # read:r,write:w,execute:x # 赋予权限的方式 , 添加:+,减掉:-,设定:= # -R: 当修改一个目录权限时,可以添加-R,将目录下的全部内容,都修改权限。 # 修改文件的拥有者和所属组 chown [-R] 拥有者:所属组 文件|目录 # 修改文件的拥有者 chown [-R] 拥有者 文件|目录 # 修改文件的所属组 chgrp [-R] 所属组 文件|目录
-
-
用户&用户组命令
-
Linux是一个多用户的操作系统,任何一个用户想要操作Linux操作系统,必须向系统管理员申请一个账号才可以,并且以这个账号的身份去操作Linux。
-
用户的账号一方面可以帮助系统管理员追踪当前用户的操作。另一方面可以控制当前用户对系统资源访问。
-
用户的身份除了用户本身,还会分配到指定的用户组,可以通过用户组对设置一些文件的操作权限
shelluseradd [-cgd] [选项指定的具体内容] 用户名 # -c:代表comment,给用户添加一段注释 # -g:代表group,可以修改用户的所在组 # -d:代表指定用户的HOME目录 # 设置用户密码 passwd 用户名 # 切换用户 su 用户名 # [root@localhost ~]# -> root用户在本地登录,并且当前在~目录下,#代表是超级管理员 # [qf@localhost ~]$ -> qf用户在本地登录,并且当前在~目录下,$代表是普通用户 # 删除用户 userdel [-r] 用户名 # -r: 代表删除用户的同时,删除该用户的HOME目录 # 修改用户 usermod [-cgd] [选项指定的具体内容] 用户名 # -c:代表comment,给用户添加一段注释 # -g:代表group,可以修改用户的所在组 # -d:代表指定用户的HOME目录 # 创建用户组 groupadd 用户组名 # 修改用户组 groupmod [-n] [选项指定的具体内容] 用户组名 # -n 修改用户组名称 # 删除用户组 groupdel 用户组名 # 只能删除不存在用户的用户组
-
-
端口相关命令
-
VIm=》Linux系统默认的编辑器;类似于Windows下的记事本、notepad++。
-
三种操作模式切换
-
三种操作模式
- 命令模式:默认处于命令模式,vi将输入的字符作为命令对待,并对每个命令做出回应,但不显示这些字符;
- 插入模式:在输入模式下,Vim 可以对文件执行写操作,类似于在 Windows 系统的文档中输入内容。
- 末行模式:编辑模式用于对文件中的指定内容执行保存、查找或替换等操作。所有以冒号":"开始的命令将使vi处于最后一行模式,光标移动到屏幕最底一行,输入的命令将在该行显示。
-
vim常用命令
-
命令模式常用命令
gg
将光标定位到文件开始处;G
将光标定位到文件结束处;[n]G
将光标定位到第n行开始处;H
光标定位到屏幕顶部;M
光标定位到屏幕中间;L
光标定位到屏幕底部。dd
删除光标所在行[n]dd
删除从当前行开始的n行;[n]yy
复制从当前行开始的n行;p
把剪切板上的内容插入到当前行;.
执行上一次操作;
-
命令模式进入插入模式
- i:从光标当前位置开始插入;
- a:从光标当前位置的下一个字符开始插入;
- o:在光标位置的下行插入一个空行,再进行插入;
- O:在光标位置的上一行插入一个空行,再进行插入;
- I:从光标所在行的开头开始插入正文;
- A:从光标所在行的末尾开始插入正文
-
末行模式常用命令
!
强制的意思,一般不单独使用:w
保存当前文件;:q
退出vi;如果文件有修改,:q
会提示有修改,是否退出,输入y退出:q!
强制退出vi;如果文件有修改,:q!
会强制直接退出,并且不对文件进行保留:wq
保存并退出当前文件;强制性写入文件并退出,即使文件没有被修改也强制写入,并更新文件的修改时间.:wq!
如果文件设置为只读了的话,用 :wq命令是不能保存并退出的,但是最高权限者可通过wq!来进行文件的保存并退出文件。文件所有者通过 wq! 可以保存只读文件:x
保存并退出当前文件;写入文件并退出,仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间.:set number / :set nu
设置行号显示:set nonumber / :set nonu
设置行号不显示
-
搜索命令:在文件中搜索aaa
:/aaa
或者/aaa
从上到下查找:?aaa
或者?aaa
从下到上查找- 按 **
n
**来搜索下一个出现的匹配结果,按大写的N
反向搜索下一个出现的匹配结果。
-
-
git
-
版本控制系统(Version Control System):是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。常见的版本控制系统有:cvs、svn、git
-
三种分区
- **工作区:**就是你在电脑里能看到的目录(代码编辑区)。
- **暂存区:**一般存放在 ".git目录下" 下的index文件中(过渡层,避免误操作)。
- **版本库:**工作区有一个隐藏目录.git (本地仓库,专门控制版本)。
-
三种状态
- 已修改(modified):已修改表示修改了文件,但还没保存到数据库。
- 已暂存(staged):已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
- 已提交(committed):已提交表示数据已经安全的保存到本地数据库。
-
git工作流程
- 在工作目录修改文件;暂存文件,将文件快照放到暂存区域;提交更新到本地库。暂存区保存了下次将要提交的文件列表信息,一般在 Git 仓库目录中。
-
常用命令
shell# 设置用户名和邮箱地址: git config --global user.name "dabin" git config --global user.email xxx@xxx.com # 查看配置信息 git config --list # 查看某一项配置: git config user.name # 克隆项目 git clone https://github.com/... # 将工作区的文件放到暂存区。 git add . # 查看文件状态: git status # 提交到本地仓库 git commit -m "add readme.md" # 推动到远程仓库 git push # 列出所有提交记录 git log # 列出所有提交记录以简略形式 git log --oneline # 日志输出--只看最近的2条 git log -2 git log --oneline -2
-
忽略文件
.gitignore
-
版本回退
-
分支
shell# 查看分支 git branch # 新建分支 git branch <分支名> # 创建并切换分支 git branch -b <分支名> # 切换分支 git checkout <分支名> # 删除分支 git branch -d <分支名>