入门Linux
Linux的目录结构
- Linux中只有一个根目录(/),不像Windows那样可以分盘,每个盘中有各种的子目录。
- Linux的目录结构为层级式的。(树状目录结构)
- Linux中所有内容都是以文件形式进行管理的,即所说的“一切皆文件”。。普通文件是文件;目录(在win下称为文件夹)是文件;硬件设备(键盘、硬盘、打印机,网卡)是文件;套接字(socket)、网络通信等资源也都是文件。
下面显示的是根目录下的子目录:
  目录结构:
目录结构:
 
 1)root:该目录为系统管理员目录,root是具有超级权限的用户。
 2)bin->usr/bin:存放系统预装的可执行程序,这里存放的可执行文件可以在系统的任何地方执行。 ->usr/local/bin:用户自己的可执行文件,可以在任何目录下执行。
 3)etc:存放相关配置的文件。配置环境变量(/etc/profile)
  4)home:用户的根目录。默认情况下,home下的目录名和自己的用户名相同,当然也可以自行修改成其他。
4)home:用户的根目录。默认情况下,home下的目录名和自己的用户名相同,当然也可以自行修改成其他。
 5)opt:存放额外安装的软件。相当于Windows系统中的ProgramFiles目录。
5)opt:存放额外安装的软件。相当于Windows系统中的ProgramFiles目录。
 6)tmp:用于存放一些临时文件,比如日志。
 
Linux的远程操作
Linux是一个典型的多用户操作系统,它和Windows(单用户)不同,Linux需要满足多用户同时使用,多个人怎么同时使用呢?
使用shell终端工具。
 
Xshell 软件
Linux的终端模拟软件。
Xftp 软件
文件传输软件。
Linux 基础命令
vi 和 vim
vi 和 vim的使用:
- 一般模式:用vi或者vim命令打开文件(vim test.txt),进入了一般模式。可以查看文件的内容、并且可以通过上下左右键移动光标,查看文件的某一部分。但是不能编辑文件中的内容。
- 编辑模式:在一般模式下,按i、a、I、A或o键即可进入编辑模式。可以编辑文件内容;但是不能保存编辑的内容。按Esc可以回到一般模式。
- 命令模式:在一般模式下,按shift+:键;进入命令模式。按Esc可以回到一般模式。
 vi 和 vim编辑器的快捷键
vi 和 vim编辑器的快捷键
一般模式
| 操作键 | 功能 | 
|---|---|
| x或delete | 删除光标对应着的字符 | 
| dd | 删除光标所在行 | 
| ndd(3dd) | 删除从光标往下n(3)行 | 
| yy | 复制当前行到剪切板 | 
| nyy(4yy) | 从光标所在行往下复制n(4)行到剪切板 | 
| p | 粘贴 | 
| r+ | 替换所在位置的字符 | 
| u | 撤销最后执行的命令,多次输入多次撤销 | 
命令模式
| 命令 | 功能 | 
|---|---|
| q! | 强制退出编辑器 | 
| wq | 保存并推出编辑器 | 
| q | 单纯推出编辑器,不保存 | 
| set nu | 在编辑器中显示行号 | 
| set nonu | 在编辑器中不显示行号 | 
| /查找的内容 | 文件中对应查找的内容颜色会变亮 | 
Linux中的用户管理
任何使用Linux的系统资源的用户,必须使用一个合法的账号和密码,账号和密码一般都是向系统管理员申请。root是Linux系统管理时默认创建的系统管理员账号,由root创建普通账号。
1)添加用户:useradd 用户名
 useradd lisi
 1.创建一个用户lisi
 2.在/home目录下创建用户的根目录,默认名称和用户名相同
 3.在Linux中任何一个用户都至少属于一个组,新建用户时如果不指定组,组名跟用户名相同,并且把该用户添加到该组中
2)创建完用户后,必须给用户设置密码,否则无法登陆。passwd 用户名
3)用户间的切换。su 用户名
 从权限高的用户切换到权限低的用户,不需要密码验证;
 从权限低的用户切换到权限高的用户,需要密码验证。
 4)删除用户。userdel 用户名
 userdel -r lisi 删除用户的同时级联删除它的主目录。
5)查看用户信息:id 用户名
Linux中的组管理
Linux中的组相当于角色的概念,可以对有共性的用户进行统一的管理。每一个用户至少属于一个组,不能独立于某个组存在,也可以属于多个组。新建用户时如果不指定组,则会新建一个组,组名跟用户名相同,并且把该用户添加到该组中。(组即是为权限做准备的)
1)添加组:groupadd 组名
 
 2)删除组:groupdel 组名
3)把用户添加到组中:gpasswd -a 用户名 组名

 (可以看见myz用户属于两个组)
4)把用户从组中移除:gpasswd -d 用户名 组名

 5)新增用户同时添加到工作组:useradd -g 组名 用户名
 useradd -g dev lisi

Linux中的权限管理
-  在Linux中每一个用户都至少属于一个组,用户不能独立于组存在,一个用户可以属于多个组。 
-  在Linux中每一个文件或者目录也必须属于一个组,而且只能属于一个组:文件或者目录通过组来控制哪些用户可以对它们进行哪些操作;在文件或者目录看来,Linux系统中所有的用户可分为三类: 
 a. 所有者:默认情况下,文件或者目录的所有者都是创建者,可以修改
 b. 同组用户:跟文件或者目录属于同一个组的用户
 c. 其它组用户:既不是文件或者目录的所有者,也不是同组用户
-  chown 新的所有者 文件名:修改文件或者目录的所有者
  
-  chown 新的文件所有者:新的组 文件名:改变文件的所有者和组
  
-  chown -R 新的文件所有者:新的组 目录:递归修改目录的所有者和组
  
文件或者目录中的三种权限
在Linux中,任何文件或者目录都有三种权限:读(Read)、写(Write)、执行(Execute)。
-  对文件而言: - 读:可以读取、查看文件的内容,比如:cat、more、less、head、tail等。
- 写:可以修改文件的内容,比如:vi或者vim等。
- 执行:如果该文件是可执行文件(.sh),可以直接运行,比如:./xxx.sh。
 
-  对目录而言: - 读:可以读取、查看目录下边的内容,比如:ls等.
- 写:可以修改目录中的内容,创建子目录、删除子目录、创建文件、删除文件、重命名文件或者目录。
- 执行:可以进入该目录,比如:cd 等。
 
查看三种权限使用ls -l(ll)命令即可
 
在Linux中,任何一个文件或者目录都有三部分权限:所有者权限、同组用户权限、其他组用户权限。
- 第一部分权限:所有者权限(uuser),文件或者目录的所有者对该文件所拥有的权限。使用r、w、x分别表示所有者对该文件所拥有的读、写、执行的权限。比如:rwx–拥有读写执行的权限。(ls -l 的前三个字符(234)位置)
- 第二部分权限:同组用户权限(ggroup),文件或者目录的同组用户对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。(ls -l 的中间三个字符(567)位置)
- 第三部分权限:其他组用户权限(oother),文件或者目录的其他组用户对该文件所拥有的权限。(ls -l 的后三个字符(8910)位置)
修改文件或者目录的权限
用r、w、x分别表示读、写、执行的权限,
 用 u、g、o分别表示所有者、同组用户、其他组用户三个身份,
 用 a(all) 则表示三个用户身份。
 用 +、- 表示添加或去除某个权限,
 用 = 去表示某用户身份的权限,比如 chmod a=rwx t.txt:给t.txt文件三种身份都赋予rwx权限。。
给t2.txt三种用户身份都添加执行权限。
  去除t2.txt三种用户身份上的执行权限
去除t2.txt三种用户身份上的执行权限
 
注意:经过小编的测试,使用chmod命令去修改文件或者目录的权限,只能文件和目录的所有者(u)才能去执行。
使用数字的方式修改文件或者目录的权限
即每一个权限都可以用一个数字来表示:
 r、w、x分别用4、2、1表示。
- 可读可写可执行:4+2+1=1
- 只可以执行:1
- 可读可写不可执行:4+2=6
每一个文件或者目录都有三部分权限,每一部分权限都可以用一组数据之和来表示,三部分权限就是一组三个数字的序列。
例如:
- -rwx------(700)等价 u=rwx,g=—,o=—:表示该文件所有者拥有读、写、执行权限,其他两身份没有。
- -rwxrwxrwx(777)等价 a=rwx:表示三种用户身份都有读、写、执行权限。
举例:
 给aaaaaa.sh文件授予所有者有读写执行权限,剩余两用户只有执行权限。则:chmod 711 aaaaa.sh
 
Linux中的帮助命令
帮助命令主要有两个,man 和 help。
 help 是用来获取 Shell 内置命令的帮助信息。比如:cd、pwd、echo等等
man ls

| 按键 | 用途 | 
|---|---|
| Enter或者空格 | 向下翻一行 | 
| PgDn | 向下翻一页 | 
| PgUp | 向上翻一页 | 
| /或者? | 查询内容 | 
| q | 退出 | 
help echo

Linux目录相关命令
- pwd:显示当前目录的绝对路径
- ls:列出指定目录下的所有子目录和文件列表
| ls命令 | 作用 | 
|---|---|
| ls [指定目录] | 列出指定目录所有子目录和文件列表 | 
| ls -a(–all) | 显示全部文件和目录(包括隐藏的) | 
| ls -l | 按列的顺序显示该目录下的文件和信息 | 
-  cd 目录名:切换目录- 目录的两种表现形式: 
    - 绝对目录:以盘符开始的目录叫做绝对目录 
      - ~:当前用户的根目录。
 
- 相对目录:以目录名开始的目录叫做绝对目录 
      - . . :当前目录的上一级目录
- .:当前目录
 
 
- 绝对目录:以盘符开始的目录叫做绝对目录 
      
 
- 目录的两种表现形式: 
    
-  mkdir [选项] 目录名:创建目录(绝对目录、相对目录)
  
 命令参数:-p:递归创建多级目录
  
-  rmdir [选项] 目录名称:删除空目录
  
 命令参数:-p:递归删除多级目录 
-  touch 文件名:创建一个或者多个空文件(文件名之间用空格隔开)
 touch t1.txt t2.txt t3.txt
-  cp 【源目录或文件】 【目标目录或文件】:复制粘贴文件
  只是复制粘贴,非剪切。 只是复制粘贴,非剪切。
 命令参数:-r:递归复制目录
  
-  rm [选项] 文件或者目录:删除文件或者目录
 命令参数1:-f:强制删除,跳过询问
  
 命令参数2:-r:递归执行(-rf:强制递归删除)
  命令参数3: -d:删除空目录,像rmdir命令一样
-  mv [选项] source(源) desk(目标):剪切或重命名文件、目录。
 重命名
  
 剪切
  
-  echo:输出系统变量或者常量的值到命令行终端。
  
-  cat 文件名:查看文件内容
-  more 文件名:查看文件内容,一页一页显示
 显示时部分按键的作用:
 空格键:向下翻一页
 q:推出more命令,不再查看下面的内容下面是执行more /etc/profile的结果  * *head [选项] 文件:查看文件头几行,使用-n参数进行指出。
  
-  tail [选项] 文件:查看文件末尾几行,使用-n参数进行指出。
  
-  >:把前一个查看命令的结果输出到指定的文件中:查看命令 > 文件名
  
 如果文件已存在,则把文件以前的内容覆盖;
 如果文件不存在,则会新建文件然后把内容输入进去。
Linux查找命令
-  find [搜索范围] [搜索条件]:查找文件和目录
 -name:按文件名称搜索(搜索范围得在查找范围的前面)
 -user:按文件拥有者查找按文件名称查找(文件或者目录所在的路径也在搜索范围内) 
  
 按文件拥有者查找
  直接匹配 直接匹配
  
-  grep:搜索过滤命令,在前一个搜索命令的结果中按名称进一步过滤
 使用:
 搜索命令 文件|grep [选项] 过滤条件
 查看命令 文件|grep [选项] 过滤条件
 -i:忽略大小写
  
  
Linux压缩解压命令
为了便于传输或节省存储空间有时候文件是以压缩包的形式存在,因此就需要了解压缩和解压的相关命令。
- 打包是指将一大堆文件或者目录什么的变成一个总的文件。
- 压缩是将一个大文件通过一些算法变成一个小文件。
- 打包和压缩是两个命令
-  压缩或者解压单个文件: gzip 文件名:压缩单个文件,生成一个==.gz==的压缩包,并且会把原来的文件删除。
  
 解压 .gz压缩包,使用gunzip命令。
  
-  压缩(打包)或者解压多个文件和目录: zip [参数] 包名.zip 文件或者目录列表
  
 可以看见多个文件被压缩后,文件还在,而gzip压缩单个文件的时候,文件木的了。
 unzip 压缩包名.zip:将指定的 .zip 压缩包解压到当前目录.
  
-  压缩(打包)或者解压多个文件和目录: tar [选项] 目标研所包名称(xxx.tar.gz)
| 短指令 | 长指令 | 作用 | 
|---|---|---|
| -c | –create | 打包 | 
| -x | –extract | 解包 | 
| -f | –file | 要操作的文件名 | 
| -v | –verbose | 显示详细的tar处理的文件信息的过程 | 
| -z | –gzip, --gunzip, --ungzip | 通过 gzip 进行归档压缩或解压 | 
| -C | 解压文件指定目录(可加可不加) | 
一般是 -zcvf 和 -zxvf 一起用。


Linux中的进程管理
线程:一个程序的线路
 进程:一个程序的执行,一个进程占用一个端口。
- ps:查看系统中的进程
| 参数 | 作用 | 
|---|---|
| -e | 显示所有进程 | 
| -f | 全格式 | 
ps -ef:查看Linux系统中某一些软件或者应用是否处于启动状态

|:管道命令
上面使用 ps -ef 后显示的进程信息太多了,可以使用管道命令+grep进行过滤。
 管道命令的作用就是将左边命令的返回结果作为右边命令的输入。
比如查看防火墙是否开启
ps -ef |grep firewalld

Linux中的服务管理
服务介绍:服务是支持Linux运行的一些必要程序,本质上也是进程,也叫守护进程。
- systemctl [start|stop|restart|reload|status|enable] + 服务名称:操作服务
systemctl status firewalld:查看防火墙的状态
 
systemctl stop firewalld:关闭防火墙

systemctl start firewalld:开启防火墙,开启需要root身份验证。

Linux中软件包的管理:软件安装包
RPM:Linux软件包的打包和安装工具,它操作的软件包都是以.rpm结尾。
RPM的使用(rpm命令)
-  查看rpm版本 rpm --version
  
-  rpm参数很多,其他 -q表示查询,-a表示所有安装包,下面查看有没有火狐浏览器的安装包
  
-  rpm -e 软件名:卸载软件,比如rpm -e firefox,卸载火狐浏览器(要使用root用户)
  
-  rpm -ivh xxx.rpm:下载软件。
  
YUM的使用(yum命令)
YUM包管理:是一种基于RPM的软件包管理工具,它能够从指定服务器上自动下载RPM包并且自动安装,可以自动处理软件包之间的依赖关系。(这一点上有点类似于Maven,会自动处理依赖关系)

-  yum list installed:查看当前系统中已经安装的rpm软件包
  
  
-  yum remove rpm软件包:卸载rpm软件包

- yum install rpm软件包:安装rpm软件包











