Linux基础
一、Linux概述
(一)简介
Linux是一种自由和开放源码的类UNIX操作系统,于1991年由林纳斯·托瓦兹在赫尔辛基大学上学时创立,主要受Minix和Unix思想启发。它使用Linux内核,存在众多版本,可安装在多种计算机硬件设备中,如手机、平板电脑、路由器、台式计算机等。
(二)特点
- 多用户:支持多个用户同时登录和使用系统。
- 多任务:能够同时处理多个任务。
- 丰富的网络功能:具备强大的网络通信和服务能力。
- 可靠的系统安全:提供多种安全机制保障系统安全。
- 良好的可移植性:可在不同硬件平台上运行。
- 具有标准兼容性:遵循相关标准,便于与其他系统协同工作。
- 良好的用户界面:包括图形界面和命令行界面。
- 出色的速度性能:在处理任务时具有较高效率。
- 开源:源代码开放,用户可自由获取、修改和分发。
(三)Linux和Window的区别
| 比较 | Windows | Linux |
|---|
| 界面 | 界面统一,外壳程序固定,所有Windows程序菜单和快捷键几乎一致。 | 图形界面风格依发布版不同而不同,可能互不兼容;GNU/Linux的终端机从UNIX传承,基本命令和操作方法几乎一致。 | | 驱动程序 | 驱动丰富,版本更新频繁,默认安装程序包含流行硬件驱动,但新硬件驱动依赖厂商提供,老硬件驱动支持可能存在问题。 | 由志愿者开发,核心开发小组发布,部分硬件厂商未提供驱动,安装相对复杂,但开源模式下老硬件驱动易获取,问题逐渐缓解。 | | 使用 | 图形化界面使用简单,容易入门,适合无计算机背景知识用户。 | 图形界面使用简单,文字界面需学习掌握。 | | 学习 | 系统构造复杂、变化频繁,知识技能淘汰快,深入学习困难。 | 系统构造简单、稳定,知识技能传承性好,深入学习相对容易。 | | 软件 | 特定功能常需商业软件支持,需购买授权。 | 大部分软件可自由获取,但相同功能软件选择较少。 |
二、Linux安装
(一)了解虚拟化
虚拟化是一种资源管理技术,将计算机实体资源抽象转换后呈现,打破实体结构限制,使用户能更好地应用资源,其虚拟部分不受现有资源架设方式、地域或物理组态限制,一般指计算能力和资料存储。
(二)Windows安装VMware
- 官网下载VMware 15.X pro(https://www.vmware.com/cn.html)。
- 在BIOS中设置当前电脑支持虚拟化(部分机器需要)。
- 安装VMware,一路下一步,注意不要放入中文目录。
(三)掌握VMware网络配置
- 桥接模式
- 将主机网卡与虚拟机虚拟网卡利用虚拟网桥通信,类似物理主机虚拟为交换机,虚拟机连接到交换机接口,网卡间为交换模式可相互访问。虚拟机IP需与主机在同一网段,联网时网关与DNS需与主机网卡一致。
- NAT模式
- 借助虚拟NAT设备和虚拟DHCP服务器使虚拟机联网。主机网卡与虚拟NAT设备相连,虚拟NAT设备与虚拟DHCP服务器连接虚拟交换机VMnet8。主机虚拟网卡VMware Network Adapter VMnet8用于主机与虚拟机通信。
- NAT网络连接配置步骤:
- 打开VM设置虚拟机网络(NAT设置相关参数)。
- 在centos中配置地址信息(如设置IPADDR、GATEWAY、DNS等)。
- 关闭防火墙(systemctl stop firewalld.service)。
- 刷新网络(systemctl restart network)。
- 仅主机模式
- 是NAT模式去除虚拟NAT设备,使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机与虚拟机通信,将虚拟机与外网隔开,使其成为独立系统,只与主机通讯。若要联网,可将能联网的主机网卡共享给VMware Network Adapter VMnet1。
(四)掌握VMware安装CentOS7
- 打开VMware Workstation,创建新的虚拟机,选择典型推荐或自定义配置,指定虚拟机硬件兼容性、安装来源(可稍后安装操作系统)、客户机操作系统(如CentOS 7 64位)、虚拟机名称和位置、处理器配置、内存大小、网络类型、I/O控制器类型、磁盘类型、磁盘大小等参数,准备好后创建虚拟机。
- 启动刚创建的虚拟机,开始安装CentOS7,选择语言、安装类型(如自动分区或手动分区)、配置网络和主机名(设置IP地址、DNS服务器等)、开始安装并设置ROOT密码,安装完成后重启。
(五)设置Centos7的下载源(可不做)
可配置清华大学数据源(https://mirrors.cnnic.cn/)或阿里云数据源(https://developer.aliyun.com/mirror/)。
(六)安装SSH工具XShell 6
- 安装XShell 6。
- 连接远程Linux,在常规中设置主机名,选择身份验证并输入用户名和密码,点击连接。
三、Linux的目录结构
- bin (binaries):存放二进制可执行文件。
- sbin (super user binaries):存放二进制可执行文件,只有root才能访问。
- etc(etcetera):存放系统配置文件。
- usr (unix shared resources):用于存放共享的系统资源。
- home:存放用户文件的根目录。
- root:超级用户目录。
- dev(devices):用于存放设备文件。
- lib (library):存放文件系统中程序运行所需的共享库及内核模块。
- mnt(mount):系统管理员安装临时文件系统的安装点。
- boot:存放系统引导时使用的各种文件。
- tmp(temporary):用于存放各种临时文件。
- var (ariable):用于存放运行时需要改变数据的文件。
四、Linux常用命令
(一)命令使用格式
命令 -选项 参数,如:ls -a /root。
(二)文件与目录操作
| 命令 | 解析 |
|---|
| cd /home (cd ~) | 进入home目录 | | cd… | 返回上一级目录 | | cd…/… | 返回上两级目录 | | cd - | 返回上次所在目录 | | cp file1 file2 | 将file1复制为file2 | | cp -a dir1 dir2 | 复制一个目录 | | cp -a /tmp/dir1. | 复制一个目录到当前工作目录(.代表当前目录) | | ls | 查看目录中的文件 | | ls -a | 显示隐藏文件 | | ls -l | 显示详细信息 | | ls -lrt | 按时间显示文件(l表示详细列表,r表示反向排序,t表示按时间排序) | | pwd | 显示工作路径 | | mkdir dir1 | 创建dir1目录 | | mkdir dir1 dir2 | 同时创建两个目录 | | mkdir -p /tmp/dir1/dir2 | 创建一个目录树 | | touch aa | 创建一个文件 | | mv dir1 dir2 | 移动/重命名一个目录;dir2存在是移动,dir2不存在是重命名;也可对文件操作 | | rm -f file1 | 删除file1文件(注意是文件) | | rm -rf dir1 | 删除dir1目录及其子目录内容 |
(三)查看文件内容
| 命令 | 解析 |
|---|
| cat file1 | 从第一个字节开始正向查看文件内容,内容多显示最后一屏 | | head -2 file1 | 查看文件的前两行 | | more file1 | 查看长文件内容 | | tac file1 | 从最后一行开始反向查看文件内容 | | tail -3 file1 | 查看文件的最后三行 | | wc | 统计文本行数、字数、字符数(-m统计字符数,-w统计字数,-l统计行数) |
(四)文本内容处理
| 命令 | 解析 |
|---|
| grep str /tmp/test | 在文件/tmp/test中查找str | | grep ^str /tmp/test | 在文件tmp/test中查找以str开始的行 | | grep [0 - 9] /tmp/test | 查找/tmp/test文件中所有包含数字的行 | | grep str -r /tmp/* | 在目录/tmp及其子目录中查找str | | diff file1 file2 | 找出两个文件的不同处 | | sdiff file1 file2 | 以对比方式显示两个文件的不同 |
(五)查询操作
| 命令 | 解析 |
|---|
| find / -name file1 | 从/开始进入根文件系统查找文件和目录 | | find / -user user1 | 查找属于用户user1的文件和目录 | | find /home/user1 -name *.bin | 在目录/home/user1中查找以bin结尾的文件 |
(六)压缩和解压缩
| 命令 | 解析 |
|---|
| tar -zcvf archive.tar.gz file1 | 把file1打包成archive.tar.gz | | tar -zcvf archive.tar.gz file1 dir1 | 把file1、dir1打包成archive.tar.gz | | tar -zxvf archive.tar.gz | 解压缩archive.tar.gz到当前文件夹中 | | tar -zxvf archive.tar.gz -C /dailyblue | 解压缩archive.tar.gz到dailyblue文件夹中(大写C) | | tar -tf archive.tar.gz | 查看archive.tar.gz中的内容 |
(七)网络相关
| 命令 | 解析 |
|---|
| ifconfig | 显示网卡的IP地址 | | ip addr | 显示网卡的IP地址 | | ifup eth0 | 启用eth0网络设备 | | ifdown eth0 | 禁用eth0网络设备 | | netstat | 显示各种网络相关信息,如网络连接、路由表、接口状态、masquerade连接、多播成员等 | | netstat -a | 列出所有端口 | | netstat -n | 以数字形式显示地址和端口号 | | netstat -p | proto显示proto指定的协议的连接;proto可以是TCP、UDP、TCPv6或UDPv6 | | netstat -anp | 组合命令,包含上述效果 | | service network restart | 重启网络 | | systemctl status firewalld.service | 查看防火墙信息 | | systemctl stop firewalld.service | 关闭防火墙 | | systemctl start firewalld.service | 开启防火墙 |
(八)其他命令
| 命令 | 解析 |
|---|
| su - | 切换到root权限(与su有区别) | | su用户名 | 切换到指定用户下,普通用户不需要输入密码 | | exit(Ctrl + D) | 退出当前登录用户 | | shutdown -h now | 关机(poweroff) | | shutdown -r now | 重启(reboot) | | top | 罗列使用CPU资源最多的Linux任务(输入q退出) | | man ping | 查看参考手册(例如ping命令) | | ping --help | 查看参考手册(例如ping命令),同上作用类似 | | help | 显示帮助 | | passwd | 修改密码 | | df -h | 显示磁盘使用情况 | | ps -ef | 查看所有正在运行的进程 | | ps -u用户名 | 查看指定用户正在运行的进程 | | kill pid | 强制杀死进程pid(进程号) | | cal | 显示当前月历 | | cal 10 1988 | 显示指定月、年的月历 | | whoami | 显示当前用户 | | who | 显示登录用户 |
五、VI和VIM的使用
(一)VI/VIM概述
Unix Like系统内建vi文书编辑器,vim是从vi发展而来的文本编辑器,具有程序编辑能力,可辨别语法正确性,在程序员中广泛使用,vim是程序开发工具而非单纯文字处理软件。
(二)VI/VIM的基本模式
- 命令模式:用户启动vi/vim进入此模式,敲键盘被识别为命令,如i、a、o分别用于切换到输入模式、在当前光标处后输入字符、切换到底线命令模式。此模式基本命令有限,需依靠底线命令模式输入更多命令。
- 输入模式:在命令模式下按i、a、o进入,可输入字符、进行文本编辑操作,按ESC键退出返回命令模式。
- 底线命令模式:在命令模式下按:进入,可输入单个或多个字符的命令,如q退出程序、wq退出保存、强制退出等。
六、安装Java JDK
- 查看是否存在Java(java -version)。
- 删除Java JDK(如有需要)。
- 官网上下载Linux Java JDK(如jdk - 8u281 - linux - x64.tar.gz)。
- 通过ftp上传到Linux。
- 解压到指定文件夹(tar - zxvf jdk - 8u281 - linux - x64.tar.gz,删除压缩包rm - rf jdk - 8u281 - linux - x64.tar.gz)。
- 配置环境变量(vim /etc/profile,在文件底部引入相关内容,如export JAVA_HOME等,注意路径)。
- 刷新文件并测试(source /etc/profile)。
- 安装Tomcat(拓展知识,包括上传、解压、配置环境变量、刷新等步骤)。
七、用户和组
(一)用户和组的概念
Linux系统是多用户多任务分时操作系统,用户需申请账号登录,账号有助于管理员管理用户和控制资源访问,每个用户账号有唯一用户名和口令,登录后进入主目录。用户ID(UID)与用户名对应,记录在/etc/passwd文件中,用户组ID(GID)与用户组名对应,记录在/etc/group文件中,登录时系统通过查找这些文件核对密码。
(二)用户和组的相关文件
- /etc/passwd:记录用户账号信息,包括用户名、密码占位符、UID、GID、用户说明、主文件夹、登录Shell等。UID 0用于系统管理员,1 - 499保留给系统用户,500 - 65535为用户自建账号。
- /etc/shadow:存放用户密码记录,包括用户账号、加密密码、密码更改相关信息(如最近更改日期、最短使用期限、最长使用期限、警告天数、宽限时间、账号失效日期等),只有root用户可读写。
- /etc/group:记录用户组信息,包括组名、密码位、GID、属于该组的用户列表。
- /etc/gshadow:存放用户组密码相关信息,包括组名、密码列、用户组管理员账号、该组所属账号。
(三)用户的增删改
- 新增用户
- useradd指令可创建用户,如useradd -u 3000 -g input -m -c yigeceshi user1创建用户use
(三)用户的增删改(续)
- 新增用户
- useradd指令可创建用户,如useradd -u 3000 -g input -m -c yigeceshi user1创建用户user1,指定UID为3000,所属组为input,强制创建主文件夹,说明文字为yigeceshi;useradd dailyblue则创建自增UID、同用户名组且强制创建主文件夹的用户dailyblue。执行创建用户操作时,系统会修改相应文件,如在/etc/passwd、/etc/shadow、/etc/group中添加信息,在/home下创建主文件夹(-d指定路径除外)。使用useradd -r指令添加系统用户时,不创建主文件夹且UID和GID小于500。
- 修改用户
- 修改用户密码:passwd用户名,如passwd user1用于更改user1的密码。
- 修改用户信息:usermod指令可修改用户各项信息,如usermod -l修改账号名称,-g添加组,-G添加次要用户组,-c添加账号说明,-L冻结密码,-U解除密码冻结,-d修改主文件夹,-e修改账号失效日期,-f修改密码过期宽限时间,-a与-G组合增加次要用户组,-s修改Shell,-u修改UID。注意修改账号名称时,若当前账号已登录需退出后操作。
- 删除用户
- userdel [-r]用户名,-r选项用于删除账号时同时删除目录,指令会删除用户账号及相关密码、用户组、个人文件数据等。
(四)用户组的增删改
- 用户组的添加
- groupadd [-g] [-r]用户名,-g设置组编号,-r新建系统用户组(与/etc/login.defs内的GID_MIN有关,不建议使用),如groupadd -g 3333 xiaozu1创建组编号为3333的用户组xiaozu1。
- 用户组的修改
- groupmod [-g gid] [-n group_name]用户组名,-g修改GID数字,-n修改组名,如groupmod -g 4444 -n xiaozu2 xiaozu1将xiaozu1的组名改为xiaozu2,GID改为4444。
- 用户组的删除
- 只有当用户组不是用户的初始用户组时才能被删除,即确认/etc/passwd内账号无人使用该用户组作为初始用户组后,使用groupdel用户组名进行删除。
八、权限管理
(一)访问权限和文件类型权限表示
- 访问权限
- 读取(r):允许查看文件内容、显示目录列表。
- 写入(w):允许修改文件内容,在目录中新建、移动、删除文件或子目录。
- 可执行(x):允许运行程序、切换目录。
- 归属:包括属主(拥有文件或目录的用户账号)和属组(拥有文件或目录的组账号)。
- 文件类型、权限表示
- 文件类型:-开头代表普通文件,d代表目录,l代表链接文件。
- 权限项:用字符(r、w、x)或数字(4、2、1)表示,分别对应读、写、执行权限,分配给文件所有者、文件所属组、其他用户。例如-rw-r–r–. 1 root root 126 3月10 16:20 demo.tar.gz表示普通文件demo.tar.gz,所有者有读写权限,所属组和其他用户有读权限,所有者为root,所属组为root,文件大小126字节,创建时间为3月10日16:20。
(二)更改操作权限(chmod命令)
- chmod修改文件权限命令,参数-R用于递归地对下面文件和子目录做相同权限操作。
- 操作对象:u(用户,即文件所有者)、g(同组用户)、o(其他用户)、a(所有用户,默认值)。
- 操作符号:+添加权限、-取消权限、=赋予给定权限并取消其他权限。
- 设置权限:r(可读)、w(可写)、x(可执行)、u/g/o(与对应对象拥有相同权限)。例如chmod u+x /dailyblue/test/demo.tar.gz给demo.tar.gz文件所属用户添加x权限,chmod a+w /dailyblue/test/demo.tar.gz赋予所有用户w权限。
(三)chown命令
- 概述:更改文件或目录的属主和属组。
- 语法:chown [选项]用户或组 文件,-R递归改变指定目录及其下子目录和文件的拥有者,-v显示chown命令所做工作。
- 案例:
- chown -v user1 /dailyblue/test/demo.tar.gz将demo.tar.gz文件属主改为user1。
- chown -v dailyblue.dailyblue /dailyblue/test/demo.tar.gz将demo.tar.gz文件属主改为dailyblue,属组改为dailyblue。
|