环境配置#
学习 Linux 需要一个环境,我们需要创建一个虚拟机,然后在虚拟机上安装一个 CentOS 系统来学习
虚拟机安装#
VMware15.5
系统安装#
CentOS 7
网络连接的三种模式:
- 桥接模式:虚拟机可以直接和外部通讯(容易 IP 冲突)
- NAT 模式:网络地址转换模式,虚拟机可以和外部系统通讯,不造成 IP 冲突
- 主机模式:独立的系统,不和外部联系
虚拟机克隆:直接复制文件夹
虚拟机快照:比如发生误触,想返回原先的一个状态,这就叫虚拟机快照管理
Vi Vim 入门#
vi 文本编辑器 Linux 系统会内置
Vim 具有程序编辑的能力,可以看做是 Vi 的增强版本,可以主动的以字体颜色辨别语法的正确性方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
正常模式以 V 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上下左右」按键来移动光标,你可以使用『删除字符或『删除整行」来处理档案内容,也可以使用『复制、粘贴) 来处理你的文件数据。
插入模式按下,L,o,O,a,A,r,R 等任何一个字母之后才会进人编辑模式,一般来说按 i 即可
命令行模式 输入 esc,再输入 在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开 V、显示行号等的动作则是在此模式中达成的!
wq write quit
撤销:u
1. 拷贝当前行 yy, 拷贝当前行向下的 5 行 5yy, 并粘贴(输入 P)
2. 删除当前行 dd, 删除当前行向下的 5 行 5dd
3. 在文件中查找某个单词 [命令行下 / 关键字,回车查找,输入就是查找下一个]
4. 设置文件的行号,取消文件的行号.[命令行下:set nu 和 set nonu]
5. 编辑 /etc/profile 文件,在一般模式下,使用快捷键到该文档的最末行 [G] 和最首行 [gg]
6. 在一个文件中输入 "helo”, 在一般模式下,然后又撤销这个动作 u
7. 编辑 /etc/rofile 文件,在一般模式下,并将光标移动到,输入 20,再输入 shift+g
相关管理文件:
/etc/passwd
文件,记录用户的各种信息:用户名:口令:用户标识符:组标识号:注释性描述:主目录:登录 Shell
Shell 是指口令的解释器,使内核根据用户输入口令进行工作
/etc/shadow
文件,保存口令的配置信息
/etc/group
文件 组配置信息,记录 Linux 包含的组信息
运行级别#
基本介绍运行级别说明:
- 0: 关机
- 1: 单用户【找回丢失密码】
- 2: 多用户状态 没有网络服务
- 3: 多用户状态 有网络服务
- 4: 系统未使用保留给用户
- 5: 图形界面
- 6: 系统重启
常用运行级别是 3 和 5,也可以指定默认运行级别
init x
切换运行级别
一、Linuxi 远程连接#
1.1 网络信息配置#
远程登录 Linux——XShell
远程文件管理 ——XFtp
检测两个系统是否 ping 通:ping 192.168.58.129
192.168.58.129 是虚拟机的 IP 地址,在主机验证 ping 通
ip addr
查询 IP 地址
ifconfig
查询 ip 地址
ls /etc/sysconfig/network-scripts/
查看网卡信息
可以看到,网卡 IP 的配置文件名为 ifcfg-ens33。
vi /etc/sysconfig/network-scripts/ifcfg-ens33
查看文件 ifcfg-ens33 的内容
根据本地局域网设置配置网络信息
1.2 联网需配置内容#
DNS=8.8.8.8
DNS1=114.114.114.114
BROADCAST 设置的是局域网广播地址
IPADDR 就是静态 P
NETMASK 是子网俺码
GATEWAY 就是网关或者略由地址
更改之后重启网络:service network restart
ping www.baidu.com
1.3 防火墙相关#
查看防火墙状态:firewall--cmd-state
或者systemctl status firewalld.service
启动防火墙:systemctl start firewalld.service
关闭防火墙:systemctl stop firewalld.service
重启:systemctl restart firewalld.service
开机启用:systemctl enable firewalld.service
禁止开机启动:systemctl disable firewalld.service
查看是否开机启动:systemctl is-.enabled firewalld.service
二、Linux 系统目录结构#
目录结构树#
- /bin:bin 是 Binaries (二进制文件) 的缩写,这个目录存放着最经常使用的命令。
- /boot:这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
- /dev:dev 是 Device (设备) 的缩写,该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
- /etc: etc 是 Etcetera (等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
- /home:用户的主目录,在 Liux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。
- /lib:lib 是 Library(库)的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
- /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
- /media: linux 系统会自动识别一些设备,例如 U 盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可心以查看光驱里的内容了。
- /opt: opt 是 optionalQ (可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个 ORACLE 口数据库则就可以放到这个目录下。默认是空的。
- /proc:proc 是 Processes (进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
- /root:该目录为系统管理员,也称作超级权限者的用户主目录。
- /sbin: s 就是 Super User 的意思,是 Superuser Binaries(超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
- /selinux:这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放 selinux 相关的文件的。
- /srv:该目录存放一些服务启动之后需要提取的数据。
- /sys:这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs。sysfs 文件系统集成了下面 3 种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
- /tmp:tmp 是 temporary (临时) 的缩写这个目录是用来存放一些临时文件的。
- /usr:usr 是 unix shared resources (共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 因下的 program files 目录。
- /usr/bin:系统用户使用的应用程序。
- /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。/usr/src: 内核源代码 Q 默认的放置目录。
- /var:var 是 variable (变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
- /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 var/run 目录,应该让它指向 run。
在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。 /etc:上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin,/sbin,/usr/bin,/usr/sbin:这是系统预设的执行文件的放置目录,比如 Is 就是在 /bin/ls 目录下的。值得提出的是 /bin、/usr/bin 是给系统用户使用的指令(除 root 外的通用用户),而 /sbin,/usr/sbin 则是给 root 使用的指令。
/var:这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。****
三、Liux 基础知识文件与目录管理#
绝对路径:路径的写法,由根目录 / 写起,例如:/usr/share/doc 这个目录。
相对路径:路径的写法,不是由 / 写起,例如:由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成:cd../man 这就是相对路径的写法。
3.1 处理目录的常用命令#
ls (列出目录)
- -a:全部的文件,连同隐藏文件,文件名以开头(常用)
- -d:显示详细信息(常用)
- -l:查看目录属性(常用)
- -h:与配合使用显示详细文件大小
mkdir (创建新目录)
mkdir -mp xxx
- -m:配置文件的权限
- -p:递归创建
touch (创建空文件)
touch xxx
cd (切换目录)
#使用 mkdir 命令创建 runoob 目录
[root@www ~]# mkdir runoob
#使用绝对路径切换到 runoob 目录
[root@www ~]# cd /root/runoob/
#使用相对路径切换到 runoob 目录
[root@www ~]# cd ./runoob/
# 表示回到自己的家目录,亦即是 /root 这个目录
[root@www runoob]# cd ~
# 切换到上一级目录
[root@www ~]# cd ..
pwd (显示目前所在的目录)
pwd
rmdir (删除空的目录)
rmdir [-p] 目录名称
-p 从该目录起,一次删除多级空目录(仅能删除空目录)
cp (复制文件或目录)
[root@www ~]# cp -rp [原文件或者目录] (目标目录)
[root@www ~]# cp [opt] tes1
mv (移动文件与目录,或修改名称)
[root@www ~]# mv [原文件或者目录] (移动地址/修改名称)
[root@www ~]# mv /tmp/day1 /root/day02 移动别的目录在改名
[root@www ~]# mv day1 day02 在当前目录改名
- -f :如果目标文件已经存在,不会询问而直接覆盖;
- -i :若目标文件已经存在时,就会询问是否覆盖!
rm (移除文件或目录)
- -f :强制执行
- -i :在删除前会询问是否删除
- -r :递归删除啊!最常用在删除目录
3.2 Linux 文件内容查看#
cat 第一行开始显示文件内容
tac 最后一行开始显示
more 一页一页翻动
less 一页一页翻动
head 取出文件前面几行
tail 取出文件后面几行
四、关机和重启指令#
4.1 重启命令:#
- reboot 就是重启
- shutdown -r now 立刻重启 (root 用户使用)
- shutdown -r 10 过 10 分钟自动重启 (root 用户使用)
- shutdown -r 20:35 在时间为 20:35 时候重启 (root 用户使用) 如果是通过 shutdown 命令设置重启的话,可以用 shutdown -c 命令取消重启
4.2 关机命令:#
- halt 立刻关机
- poweroff 立刻关机
- shutdown -h now 立刻关机 (root 用户使用)
- shutdown -h 10 10 分钟后自动关机 如果是通过 shutdown 命令设置关机的话,可以用 shutdown -c 命令取消重启
五、权限管理命令#
5.1 用户管理#
用户信息
使用 cat 命令来查看一下保存用户信息的文件 ,保存用户信息的文件保存在 /etc/passwd 文件里面
cat /etc/passwd
超级用户:root,UID=0
普通用户:UID 在 500 到 60000
伪用户:UID 在 1 到 499
伪用户不能登录系统,而且没有宿主目录
为什么需要伪用户:没有用户登录时,linux 系统依然要运行,有很多进程在跑着,所以必须需要一些伪用户来执行那些命令
保存密码的文件:/etc/shadow
保存用户组的文件:/etc/group
保存用户组密码的文件:/etc/gshadow
用户配置文件:/etc/default/useradd
添加用户
useradd 参数 用户名
参数:
- -s:设置新用户的默认 Shell 终端
- -u:user 设置用户 ID
- -e:end 设置用户的终止日期
- -f:fire 设置用户过期几日后永久停权
- -M:不建立用户家目录
- -G:group 设置用户对应的扩展用户组
修改用户
usermod 参数 用户名
参数:
- -c:修改用户账号的备注文字
- -d:修改用户登录时的家目录
- -e:修改用户账号的有效期限
- -f:设置在密码过期后多少天关闭该账号
- -u:修改用户账号的 ID
- -l:修改用户账号名称
- -L:锁定用户密码,使密码立即失效
- -U:解除密码锁定,使密码恢复正常
- -p:设置用户的新密码
修改用户密码
passwd 参数 用户名
参数:
- -l:lock 锁定用户的密码值,不允许修改
- -u:unlock 解锁用户的密码值,允许修改
- -e:edit 下次登录时强制修改密码
- -d:delete 清除已有密码
- -S:show 显示当前密码状态
切换用户
su 参数 用户名
- -l:切换身份时,也同时变更工作目录
- -m:切换身份时,不要变更工作目录
删除用户
userdel 参数 用户名
参数:
- -f:强制删除用户账号而不询问
- -h:显示帮助信息
- -r:删除用户的家目录及其全部子文件
查看用户有谁
ls /home
5.2 用户组管理#
添加用户组
groupadd 参数 用户组
- -g:设置用户组 ID
- -r:root 创建系统用户组
- -o:允许创建重复 ID 的用户组
更改用户组
`groupmod 参数 组名
参数:
- -g:设置群组识别码
- -n:name 设置群组名称
删除用户组
groupdel 参数 组名
- -f:强制删除而不询问
修改用户组
`usermod 参数 用户名
- -l:修改用户账号名称
- -L:锁定用户密码,使密码立即失效
- -u:修改用户账号的 ID
- -U:解除密码锁定,使密码恢复正常
- -d:修改用户登录时的家目录
5.3 修改文件权限#
** 更改文件所属用户组
`chgrp 参数 用户名
- -R:递归处理所有子文件
- -v:显示执行过程详细信息
改变文件或目录权限
`chmod 参数 用户名
- -c:改变文件权限成功后再输出成功信息
- -f:改变文件权限失败后不显示错误信息
- -R:递归处理所有子文件
- -v:显示执行过程详细信息
六、管道命令和重定向#
6-1 管道#
- more:分屏显示内容
- grep:在命令执行结果的基础上查询指定文本
6-2 重定向 > 和 >>#
> 表示输出,会覆盖文件原有内容
>> 表示追加,会将内容追加到已有文件的末尾
七、软件磁盘命令#
7-1 磁盘管理相关命令#
管理磁盘分区
fdisk 参数 设备名
- -H:设置硬盘的磁头数
- -l:显示指定的外围设备分区表状态
- -s:显示指定的分区大小
- -S:设置每个磁道的扇区数
- -b:设置每个分区的大小
显示系统内存使用量情况
free 参数
- -b:设置显示单位为 Byte
- -g:设置显示单位为 GB
- -h:自动调整合适的显示单位
- -k:设置显示单位为 KB
- -l:显示低内存和高内存统计数据
- -m:设置显示单位为 MB
- -s:持续显示内存数据
7-2 打包 / 解压#
gzip 压缩文件
gzip -v t.txt
将文件压缩为.gz,用于压缩单个文件
- -d:解压指定压缩包文件
- -v:显示执行过程详细信息
- -k:保留原文件
- -l: 显示压缩包内的文件信息
gunzip 解压文件
gunzip -v t.txt.gz
压缩或解压多个文件
Zip 压缩文件
zip 参数 压缩名称 需要压缩的文件
unzip 解压文件
unzip 参数 压缩包名 -d 指定目录名
tar 压缩或解压文件
tar 参数 压缩包名自定义 文件或目录名
tar -czvf test.tar.gz -C /etc
规范后缀为.tar.gz
-c:创建新的压缩包
-z:使用 gzip 压缩格式
-v:显示执行过程详细信息
-t:显示压缩包的内容
-f:指定压缩后的文件名
-x:解压
-C:解压到指定目录
tar 参数 压缩包名 -C 解压目录名
tar -xvf File.tar -C /etc
解压 File.tar 文件到 /etc 目录
7-3 软件安装御载#
yum 命令
yun 参数 动作 软件包
7-4 软件控制启动关闭#
systemctl 参数 动作 服务名
7-5 rpm 命令 RPM 软件包管理器#
rpm 的作用类似于 windows. 上的电脑管家中 “软件管理”、安全卫士里面 “软件管家 " 等产品,主要作用是对 linux 服务器上的软件包进行对应管理操作,管理分为:查询、卸载、安装。
rpm -ql 软件包名
参数:
- -a:显示所有软件包
- -e:卸载软件包
- -i:安装软件包
- -l:显示软件包的文件列表
- -q:显示指定软件包是否已安装
- -U:升级软件包
- -v:显示执行过程信息
查询某个软件的安装情况
安装软件
查看安装软件路径
卸载某个软件
升级某个软件包
八、搜索命令和软连接#
8-1 搜索命令#
find 命令
find 路径 条件 文件名
grep 命令
grep 参数 文件名
8-2 软连接#
类似于 Win 中的快捷方式
ln 参数 源文件名 目标文件名
。