Linux
1 介绍
-
Linux 是一个开源、免费的操作系统,具有很强的稳定性、安全性、以及处理多并发的能力,目前大多数企业级应用甚至是集群项目都部署运行在 Linux 操作系统上,很多软件公司考虑到开发成本都首选Linux,Linux 在中国软件公司得到了广泛的使用。
-
Linux 的主要发行版本有以下几种:
Ubuntu(乌班图)、RedHat(红帽)、CentOS、Debain(蝶变)、Fedora、SuSE、OpenSUSE、红旗Linux(国产)。
我们使用 CentOS 进行学习。
2 安装
- VMware12 虚拟机。
- CentOS 镜像系统。
3 Linux 的目录结构
- /:Linux 系统的根目录。
- root:该目录为系统管理员目录,root 是具有超级权限的用户。
- bin:存放常用的命令文件,如cd、ls等等。
- sbin:存放系统管理员使用的系统管理命令。
- home:用户的主目录,每创建一个用户都会生成一个该用户对应的家目录:/home/用户名/,一般该目录名以用户的账号命名,叫作用户的家(根)目录;用户登录以后,默认打开自己的家目录。
- lib:这个目录存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件,几乎所有的应用程序都需要用到这些共享库。
- etc:这个目录存放 Linux 系统的所有配置文件。
- usr:Linux 的系统资源目录,里面存放的是一些系统可执行文件或者系统的一些文件库。
- boot:这个目录存放启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
- tmp:该目录用来存放临时文件。
- dev:dev是 Device(设备)的缩写,该目录下存放的是 Linux 的外部设备,Linux 中的设备也是以文件的形式存在。
- media:识别出的外设设备挂在在该目录下。
- mnt:系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容。
- opt:存放 Linux 中额外安装的软件的安装包。
- /usr/local/:安装包安装成功之后解析出的所有程序文件所在的目录。
- var:存放在不断扩充的东西,例如将那些经常被修改的文件存放在该目录下,如运行的各种日志文件等。
- bin ->usr/bin:存放系统预装的可执行程序,这里存放的可执行文件可以在系统的任何目录下执行。
4 远程操作工具
- Xshell:远程终端。
- Xftp:远程文件传输。
5 vi 和 vim 编辑器
vi 和 vim 是 Linux 提供的文本编辑器。
- 三种模式:
模式 | 进入方法 |
---|---|
正常模式 | vim 文件名 ,进入正常模式。若文件存在,则打开文件;若文件不存在,则新建并打开文件。正常模式下只能进行读操作。 |
编辑模式 | 在正常模式下,按a 或i ,进入编辑模式,按ESC ,退出编辑模式。在编辑模式下可以进行读写操作。 |
命令模式 | 在正常模式下,输入: ,进入命令模式。命令模式下,输入 q :文件没有做任何修改时退出;wq :保存并退出;q! :不保存强制退出。 |
- 快捷键:
快捷键 | 功能 |
---|---|
yy |
复制光标所在行 |
nyy |
复制光标所在行向下 n 行(包括光标所在行) |
p |
粘贴到光标所在行的下一行 |
dd |
删除光标所在行 |
ndd |
删除光标所在行向下 n 行(包括光标所在行) |
u |
撤销上一次操作 |
gg |
跳转到首行 |
G |
跳转到尾行 |
/xxx |
搜索 xxx,在命令模式下使用 |
set nu |
显示行号,在命令模式下使用 |
set nonu |
关闭行号,在命令模式下使用 |
注意:前8个快捷键在正常模式下使用,后3个快捷键在命令模式下使用。
将光标移动到第n行:
(1)set nu 显示行号
(2)输入 n
(3)按下 shift + g
6 用户管理
root 账户,具有 Linux 系统的最高权限,可以进行用户管理操作。
在 root 账户下,使用命令:
-
useradd 用户名
:添加用户。
该命令执行后,会有三个操作:
(1)创建用户
(2)创建用户根目录 /home/用户名
(3)创建主组,组名为用户名,并把该用户添加到该组中。
也可以在创建用户时,指定用户根目录:useradd -d /home/目录名 用户名
。 -
passwd 用户名
:为用户设置密码。密码不能少于7位,不能过于简单,不能是单词的组合。 -
userdel -r 用户名
:删除用户以及用户根目录。userdel 用户名
:只删除用户,不删除用户根目录。 -
id 用户名
:查看用户信息。主要用于查看用户的组信息。 -
su 用户名
:切换用户。从 root 切换到普通用户可以直接切换;从普通用户切换到 root 或者普通用户之间相互切换需要输入密码。 -
logout
:注销。只在使用 xshell 这种远程控制软件操作 linux 系统时生效,注销后会同时断开与服务器的远程连接;在 linux 系统本机上输入该命令时无效。 -
whoami
:查看当前用户。 -
usermod -g 新组名 用户名
:改变用户所在组。 -
usermod -d 新家目录名 用户名
:改变用户的家目录。注意:为防止使用root账户登录时权限过大,可以使用普通用户登录, 在有需要使用更高权限时,使用su命令切换到管理员账户。
7 组
组是 Linux 中,进行权限管理的基本方式。可以将具有相同权限的用户放在同一个组中,便于管理。
groupadd 组名
:新建组。groupdel 组名
:删除组。gpasswd -a 用户名 组名
:将用户添加到组中。gpasswd -d 用户名 组名
:将用户从组中删除。useradd -g 组名 用户名
:创建用户时指定用户所在组(此时不会创建默认组)。
8 用户和组相关的文件以及 linux 的运行级别
8.1 用户和组相关的文件
/etc/passwd
:用户配置文件(存储用户的相关信息),【文件中每行含义】用户名:密码(已加密):用户id:组id:家目录:shell/etc/group
:组配置文件(存储组相关信息),【文件中每行含义】组名:密码(已加密):组id:组内用户列表(一般不显示)/etc/shadow
:口令配置文件(存储口令相关信息,文件内容以加密形式存在)
8.2 linux 的运行级别
Linux 系统有7个运行级别:
级别 | 含义 |
---|---|
0 | 关机 |
1 | 单用户(找回密码或不小心设置成0或6级时可以使用) |
2 | 多用户无网络 |
3 | 多用户有网络 |
4 | 保留 |
5 | 图形界面 |
6 | 重启 |
-
/etc/inittab
:该文件是系统运行级别的配置文件 -
init [012356]
:修改运行级别,注意4为保留,不可用。root 密码丢失,如何找回密码? 原理:单用户模式下,以root身份登录,不需要输入密码。 步骤:开机时,在引导界面快速多次敲击enter键,进入新界面,按下e键之后,选择kernel行, 再次按下e键,进入到配置文件界面,输入1(运行级别设置为1:单用户),回车,最后按下b键, 系统重新启动,之后可以使用passwd命令修改root密码。详细步骤可以百度搜索。 ------------------------------------------------------------------------------ 注意:上述方法仅限于能够直接操作linux服务器,远程控制软件不可以(因为忘记密码,连接不上服务器)。 因为只有能够直接接触到linux本机的人员才可以使用上述方法修改密码,所有该人员一定是具备了很高的 权限,所以对linux系统本身的安全性不会构成额外的威胁。
9 系统命令
-
shutdown now
:立即关机,同halt
。 -
shutdown -h 时间
:定时关机。时间可以为数字,单位为分钟;也可以为具体时间,如17:00。 -
shutdown -r now
:立即重启。 -
shutdown -c
:取消上一条 shutdown 命令。 -
reboot
:立即重启。 -
sync
:把内存的数据同步到磁盘。注意:关机或重启之前,建议先sync同步一下数据,以免数据丢失。
10 帮助命令
man 命令名
:查看该命令的系统说明文档。分屏显示,Enter
:下一行,空格
:下一页,q
:退出。help 命令名
:查看该命令的开发注释。
11 目录、文件操作
11.1 pwd、ls
pwd
:查看当前所在目录的全路径。ls [选项] [目录名]
:查看指定目录下的所有目录和文件。ls
:查看当前目录。ls /home
:查看 home 目录。ls -a /home
:查看 home 目录下 (包括隐藏和虚拟的) 所有目录和文件。ls -l /home
:以列表形式展示 home 目录下的所有目录和文件。ls -al /home
:以列表形式展示 home 目录下(包括隐藏和虚拟的)所有目录和文件。
11.2 cd
cd 目录名
:切换目录。- 绝对目录:从盘符根路径开始。Linux 只有一个根路径 /。如,
cd /home/mcc
:进入 mcc 目录。 - 相对目录:从当前目录开始。假设当前在 home 目录,
cd mcc
:进入 mcc 目录。 ~
:绝对目录,当前用户的根目录。~ = /home/用户名。cd ~
:进入用户根目录。..
:相对目录,当前目录的上一级目录。cd ..
:进入上一级目录。.
:相对目录,当前目录。cd ./xxx = cd xxx
:进入当前目录下的 xxx 目录。
11.3 mkdir、rmdir
mkdir [选项] 目录名
:创建单级目录。如,mkdir ./dir
:在当前目录下创建 dir 目录。mkdir -p 目录名/目录名
:创建多级目录。mkdir -p ./dir1/dir2
:在当前目录下创建 dir1 和 dir2 目录(这两个目录之前都不存在)。rmdir 目录名
:删除一个空目录,删除非空目录见11.6。
11.4 touch
touch 文件名列表(多个文件名用空格隔开)
:创建一个或多个空文件。如,touch text1.txt text2.txt
。创建后,如果需要编写内容,可以用 vi 或 vim 打开。
vi 或 vim 创建的文件会默认直接打开。如果需要创建之后马上打开编辑,可以使用 vi 或 vim 创建;如果只需要创建,不需要打开,可以使用 touch 创建。
11.5 cp
cp [选项] sourceFile dest
:将 sourceFile 复制到 dest (复制单个文件)。如,cp text.txt dir/textcp.txt
:将 text.txt 复制到当前目录下 dir 文件夹下,文件名为 textcp.txt。cp -r sourceDir dest
:将 sourceDir 以及其中的文件,复制到 dest (复制目录和目录中的文件)。如,cp -r dir /home/mcc/
,将 dir 目录和其中的文件,复制到 /home/mcc/ 下。
注意:使用 cp 复制文件(目录)时,若有同名文件(目录)会逐个提醒是否覆盖原文件(有几个重名就提醒几次),若不需要提示,全部覆盖原文件,可以使用命令\cp
。
11.6 rm
rm 文件名