- 一、Linux的各个发行版
- 二、Linux目录结构
- 三、远程操作Linux服务器
- 1.XShell(远程操控服务器)
- SSH协议
- 开启sshd服务
- 使用XShell远程登录Linux
- 2.XFtp(文件上传/下载)
- 四、vi和vim编辑器
- 五、Linux常用命令
- 1.基本指令
- 关机
- 重启
- 2.用户管理
- 用户登录&注销
- 创建用户
- 给用户指定/修改密码
- 删除用户
- 查询用户信息
- 查询当前登录用户
- 3.用户组管理
- 增加组
- 删除用户组
- 修改用户的用户组
- 4.用户/用户组的配置文件详解
- 5.Linux的运行级别详解
- 什么是运行级别?
- 切换到指定的运行级别
- 修改开机的默认运行级别
一、Linux的各个发行版
各个公司在Linux内核基础上进行二次开发、定制,出现不同的发行版
发行版——用户正在可以使用的操作系统软件
二、Linux目录结构
Linux主机的根目录为:/
| 目录 | 描述 |
|---|---|
| /root | 系统管理员(超级权限者)专有主目录 |
| /bin | Binary的缩写,存放着经常使用的命令(如:/usr/bin、/usr/local/bin) |
| /boot | 存放的是启动Linux时使用的一些核心文件、引导文件,包括一些连接文件及镜像文件 |
| /dev | 类似Windows的设备管理器,把所有硬件用文件的形式保存 |
| /etc | 所有系统管理所需的配置文件和子目录my.conf |
| /home | 存放普通用户的主目录,在Linux中每个用户都有一个自己的主目录,目录名一般以用户的账号命名 |
| /var | 存放着不断扩充的东西,习惯将经常被修改的文件存放在这个目录下,包括各自日志文件 |
| /lib | 系统开机所需的基本的动态连接共享库、引导文件,类似于Windows里的DLL文件,几乎所有应用程序都会用到这些共享库 |
| /usr | 非常重要的目录,用户安装的许多应用程序和文件都放在这个目录下,类似Windows下的Program files目录 |
| /usr/local | 给主机额外安装软件的目标安装位置,一般是一些通过编译源码方式安装的程序 |
| /opt | 给主机额外安装软件时安装程序所摆放的目录(规范我们需要把安装执行程序放在这个目录下) |
| /media | Linux会自动识别一些设备,如U盘、光驱,Linux会把识别到的设备挂载到这个目录下 |
| /mnt | 该目录用来让用户临时挂载别的系统文件,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容了,如共享文件:d:/myShare |
| /sbin | s即super user的意思,存放系统管理员使用的系统管理程序(如:/usr/sbin、/usr/local/sbin) |
| /lost + found | 这个目录下一般为空的,当系统非法关机后,就会存放一些文件 |
| /seLinux | SELinux是一种安全子系统,能控制程序只能访问特定文件 |
以下为Linux内核相关目录,一般不去动
| 目录 | 描述 |
|---|---|
| /proc | 一个虚拟的目录,为系统内存的映射,访问这个目录来获取系统信息 |
| /srv | service的缩写,存放一些服务启动之后需要提取的数据 |
| /sys | 为Linux2.6内核的一个很大的变化,目录下安装了2.6内核中新出现的文件系统sysfs |
| /tmp | 用来存放一些临时文件 |
使用哪个用户账户登录,就会定位到当前用户的主目录下,如使用root登录,就会定位到/root下
总结:
Linux的目录中有且只有一个根目录:/
Linux的各个目录分别存放哪些内容是约定好的,我们需要遵守这个规范
Linux是以文件的形式管理我们的设备,linux系统中一切皆为文件
三、远程操作Linux服务器
实际工作中,我们一般将Linux作为远端服务器,部署软件系统及其他操作时,我们需要远程操作Linux服务器,这就需要借助以下两款工具
1.XShell(远程操控服务器)远程登录Linux服务器,使用命令行操作(没有图像界面)
SSH协议SSH(Secure Shell):应用层安全协议,是为远程登录会话,其他网络服务提供安全性的协议,可有效管理防止远程管理过程中的信息泄漏
开启sshd服务使用远程工具有一个前提:主机是否开启了sshd服务,若没有开启则无法远程
sshd:监听端口22,这个服务基于SSH协议,为客户端远程操作进行服务、管理,开启这个服务后,则会一直在监听状态(监听22端口),有客户端连接进来后并进行管理
一般情况下这个服务默认开启
检查是否开启了sshd:
(1)在终端输入:setup
(2)选择系统服务
(3)检查sshd前面是否打了*,打了则表示已开启,没有则勾上开启
(1)在CentOS终端输入ifconfig,查看当前IP地址
(2)XShell中创建会话,将主机地址填上IP地址,端口为22,协议选择SSH
(3)连接,输入用户名root或其他用户名,及密码,完成连接
实现远程服务器与本地文件的上传/下载
(1)打开XFtp并新建会话
(2)主机地址填CentOS的IP地址(同上),协议选择SFTP,端口22,并输入登录账户的用户名、密码
(3)登录了哪个用户,如root,就会默认定位在哪个用户的主目录下,如/root(若出现乱码问题,点击打开会话的属性——选项——编码选择UTF-8),然后就可以右键选择文件进行传输了
四、vi和vim编辑器
vi:为Linux系统自带的一个文本编辑器
vim:具有程序编译的功能,可看成vi的增强版,会根据代码、语法、关键字来区分颜色,方便程序设计,有代码补全、编译及错误跳转等功能
vi、vim的三种模式:
(1)普通模式:使用命令行打开一个文件,终端输入:vim test.txt,就会默认进入普通模式(若不存在这个文件,则会帮你自动创建),这个模式下,可以进行复制、粘贴、移动、删除等快捷键操作
(2)插入模式:普通模式下按i或a或I或A或O即可进入插入模式,插入模式下可进行字符输入操作,按ESC可回到普通模式
(3)命令模式:普通模式下按:或/或即可进入命令模式,该模式下可以进行保存、搜索、替换、退出、显示行号等操作,按ESC可回到普通模式
命令模式中几种常用命令:
#(回车向后查找“word”关键字,按n向后继续查找) :/word #(回车向前查找“word”关键字,按n向前继续查找) :?word #(保存文本) :w #(强制保存,root用户,文件就算只读也能保存) :w! #(退出编辑器) :q #(保存并退出) :wq #(显示行号) :set nu #(不显示行号) :set nonu
五、Linux常用命令 1.基本指令 关机
# 关机 shutdown # 立刻关机 shutdown -h now # 1分钟后关机 shutdown -h 1 # 立刻关机 halt重启
# 立刻重启 shutdown -r now # 现在重启 reboot
注意:不管是关机还是重启,首先要sync将主存中的数据保存到外存
# 把内存数据同步到硬盘上 sync2.用户管理
Linux是一个多用户多任务的操作系统,必须一个账号对应一个用户,以账号的身份进入系统,且Linux维护了一个用户组的概念,会有多个不同权限的用户组,且每个用户至少属于一个用户组,如图:
Linux中有且只有一个超级管理员用户root,可以有多个普通用户,各个账号都有一个对应的主目录,root账户有一个专属的主目录,其他各普通用户在/home下有一个对应的主目录,主目录名称通常为用户名,登录时,默认进入对应用户的主目录下
实际工作中,不能把root用户分配给每个人,因为权限太大,而是创建多个用户组、用户,并分配不同的权限
用户登录&注销实际工作中,应尽量少用root用户登录,因为权限太大
# 进行切换用户登录 # 从低权限用户往高权限用户切换时,需要输入密码,反之不需要 su [用户名] # 注销,使用远程连接命令行操作时,输入logout就会注销用户并关闭连接,减少服务器压力,但在图形界面中打开终端输入logout不会起作用 logout # 使用su切换过用户后,使用exit可返回原用户,无用户时,作用同logout注销用户 exit创建用户
# 创建用户,同时会自动创建一个同名用户组并关联 # 例:useradd xm —— 会创建一个用户xm,同时会自动创建一个xm的用户组,并用户xm属于用户组xm useradd [可选] [用户名] # 创建用户,同时指定用户组(前提是用户组必须已经存在) useradd -g [用户组名] [用户名] # 创建用户,同时指定home目录(默认用户主目录会在/home下,也可以指定为某个目录下) useradd -d [目录] [用户名]给用户指定/修改密码
# 指定或修改该用户密码 passwd [用户名]删除用户
# 删除用户,但会保留对应的用户主目录 userdel [用户名] # 删除用户,同时删除对应的用户主目录 userdel -r [用户名] # 实际中,一般建议保留用户主目录,方便查阅历史记录查询用户信息
# 查询用户信息 # 若不存在用户,则返回 “no such user” # 若存在用户,则返回uid(用户id)、gid(用户组id)、组(属于的用户组id及组名) id [用户名]查询当前登录用户
# 查询当前登录用户,返回用户名 whoami3.用户组管理
相当于角色,可对多个有共性的用户进行统一管理、分配权限
增加组groupadd [组名]删除用户组
groupdel [组名]修改用户的用户组
# 用户组事先存在为前提 usermod -g [用户组名] [用户名]4.用户/用户组的配置文件详解
(1)用户的配置信息都记录在 /etc/passwd 这个文件中,我们使用cat/etc/passwd可以以只读的形式打开文件,打开后可以查看到例如用户cty的信息
(2)用户的密码记录在 /etc/shadow 这个文件中:
(3)用户组的配置信息记录在 /etc/group 这个文件中:
运行级别,举个例子,如使用 “多用户无网络” 这个运行级别运行Linux,就好比用 “安全模式” 启动Windows
Linux有以下运行级别:
常用运行级别为:3和5
# 切换到0~6中某个运行级别 # 例:进入CentOS,若此时进入到了图形界面(运行级别为5) # 则此时命令行输入:init 3,就会进入到纯命令行的模式(多用户有网络) # 命令行输入:init 5,就会回到图形界面 # 命令行输入:init 0,就会直接关机 init [0~6]
实际中的运用
若忘记了root的密码,怎么找回?
步骤一:系统开机时,在内核选择界面时,按键盘任意键使Linux启动引导停留在选择阶段(使用方向键上下进行选择)
步骤二:根据步骤提示,键入小写 “e” 下一步
步骤三:选项停留在Kernel这一项,按 “e” 下一步
步骤四:此时,进入下一个界面,在quiet后键入 “1”(表示进入单用户模式),回车回到启动选择界面,选择停留在 “Kernel” 处,此时再输入 “b”(表示引导),现在启动就是单用户模式了
步骤五:在单用户模式下,即可以使用命令:passwd root 来修改root的密码,修改完成后reboot重启
对于CentOS7中进行到步骤三中选项没有Kernel这一项:
(1)按方向键下找到最下面有 “ro” 的这一行(意为read only),将 “ro” 替换成 “rw init=/sysroot/bin/sh”
(2)按 “Ctrl + x” 重启,重启进入出现 “#”,即表示已进入到了单用户模式,然后输入 “chroot/sysroot” 来获得root权限
(3)修改root密码并重启
Linux系统的运行级别的配置信息保存在 /etc/inittab 文件中
要修改默认的运行级别可在:/etc/inittab 文件中修改 id:5:initdefault: 这一行的数字
CentOS之后不再是这样设置了
我们打开inittab文件可以看到
得知 “multi-user.target” 相当于原来的运行级别3(多用户有网络),graphical.target相当于运行级别5(图形界面),并根据注释提示得知若要设置需要这样写:systemctl set-default [xxx.target]
(若要得知当前运行级别,可在终端输入:systemctl get-default)
在CentOS7中,不再是通过修改配置文件来改变启动默认的运行级别了,而是在终端输入:systemctl set-default [xxx.target]
CentOS7中运行级别对照表
| 运行级别 | 指令 |
|---|---|
| 0(关机) | shutdown.target |
| 1(单用户模式) | emergency.target |
| 2(多用户无网络、安全模式) | rescure.target |
| 3(多用户有网络) | multi-user.target |
| 4(保留) | - |
| 5(图形界面) | graphical.target |
| 6(重启) | - |
若被他人恶意修改了启动默认的运行级别,例如修改为关机、重启,则会开机就关机、重启,解决方式也是进入单用户模式来进行修改



