Linux
概述:操作系统OS(Operating System)
管理计算机硬件与软件资源的计算机程序
Unix ----- 现代操作系统的先祖
1.安卓
2.MacOS
3.Windows
4.Linux --- CentOS、 Ubauntu、 RedHat、 Debain、 Fedora、 SUSE、 OpenSUSE
Linux是一套免费使用和自由传播的类Unix操作系统
Linux内核最初只是由芬兰人----林纳斯·托瓦兹(Linus Torvalds)(Linux之父) 编写,后来开源
个人桌面领域
典型代表:Ubuntu、fedora、SUSE linux
服务器领域
典型代表:
1.Red Hat公司的AS系列
2.完全开源的Debian系列
3.SUSE EnterPrise 11系列等
嵌入式领域
linux:运行稳定、网络支持性好、低成本、软件可根据需求裁剪、内核小
Linux部分不同发行版本
排行 | 版本 | 描述 |
---|---|---|
1 | MX Linux | 基于Debian和antiX |
2 | Linux Mint | 基于Ubuntu和Debian |
3 | Ubuntu | 顶级Linux发行版之一 |
4 | Elementary OS | 基于Debian |
5 | Manjaro Linux | 基于Arch Linux |
6 | Zorin OS | 基于Debian |
7 | Fedora | 软件技术方面处于领先地位 |
8 | Debian | 设计得非常稳定 |
9 | CentOS | 基于Fedora和Red Hat的企业最佳Linux |
10 | Kali Linux | 基于Debian |
安装(VMware Workstation)
1.安装VMware Workstation(关于虚拟化设置冲突,可以开关Hyper-V老设置)
2.安装镜像文件(虚拟机)
虚拟机网络模式:
1.桥接(Bridge):虚拟机使用物理机的网卡,需要配置IP访问互联网
2.NAT(网络地址转换):虚拟了一个网卡,无需配就可访问互联网
3.仅主机(Host Only):不能访问互联网
禁用和启用虚拟网络
Xshell无法连接虚拟机时何以尝试使用此方法
克隆模式
减少安装配置、备份
快照
相当于建立存档(用于不可逆回档)
安装CentOS
经典安装 NAT模式 用root账户登陆
CentOS配置
i进入编辑模式
Esc退出编辑模式
:wq 保存并退出
:q! 不保存直接退出
替换为aliyun yum源
注意:先备份原先yum源配置
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
关闭防火墙(在本机学习时可以这样做,在生产环境时不要这样做,要用哪个端口开哪个端口)
systemctl stop firewalld.service
systemctl disable firewalld.service
配置静态IP
1.查看物理机 IP
打开 cmd,输入 ipconfig -all
有线网络,找到“以太网”的 IPv4地址
无线网络(WiFi),找到 WLAN 的IPv4地址
2.虚拟机网络设置
配置虚拟机NAT子网IP为物理机查询的IP相同(网段相同!最后一位是 0 例如:物理机IP:172.21.146.51 虚拟机NAT网络配置子网IP:172.21.146.0)
DCHP设置中其实IP与结束IP地址也应该修改
最后点击确定,应用
3.CentOS 网络配置文件
以root用户登陆
修改网络配置
vi /etc/sysconfig/network-scripts/ifcfg-ens33
1)BOOTPROTO 需要改成 static
2)添加 IPADDR/NETMASK/DNS1/GATEWAY
IPADDR="172.21.146.222"//与物理机玩分段一致,第四位可以改变
NETMASK="255.255.255.0"
DNS1="114.114.114.114"
GATEWAY="172.21.146.2"//前三位必须和物理机一致最后一位必须为2
3)重启网络
service network restart
4)测试网络
物理机:ping 172.21.146.222
得到:
正在 Ping 172.21.146.222 具有 32 字节的数据:
来自 172.21.146.222 的回复: 字节=32 时间<1ms TTL=64
来自 172.21.146.222 的回复: 字节=32 时间<1ms TTL=64
来自 172.21.146.222 的回复: 字节=32 时间=1ms TTL=64
来自 172.21.146.222 的回复: 字节=32 时间=1ms TTL=64
172.21.146.222 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 1ms,平均 = 0ms
虚拟机:ping www.baidu.com
得到:
[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (180.101.49.42) 56(84) bytes of data.
64 bytes from 180.101.49.42 (180.101.49.42): icmp_seq=1 ttl=128 time=39.0 ms
64 bytes from 180.101.49.42 (180.101.49.42): icmp_seq=2 ttl=128 time=38.4 ms
64 bytes from 180.101.49.42 (180.101.49.42): icmp_seq=3 ttl=128 time=39.2 ms
则配置成功
Linux文件系统
Windows:每个驱动器都有自己的根目录结构
Linux:所有文件都在根目录下
部分目录解释:
目录 | 说明 | 备注 |
---|---|---|
bin | 存放普通用户可执行的指令 | 即使在单用户模式下也能够执行处理 |
boot | 开机引导目录 | 包括Linux内核文件与开机所需要的文件 |
dev | 设备目录 | 所有的硬件设备及周边均放置在这个设备目录中 |
etc | 各种配置文件目录 | 大部分配置属性均存放在这里 |
lib/lib64 | 开机时常用的动态链接库 | bin及sbin指令也会调用对应的lib库 |
media | 可移除设备挂载目录 | 类似软盘 U盘 光盘等临时挂放目录 |
mnt | 用户临时挂载其他的文件系统 | 额外的设备可挂载在这里,相对临时而言 |
opt | 第三方软件安装目录 | 现在习惯性的放置在/usr/local中 |
proc | 虚拟文件系统 | 通常是内存中的映射,特别注意在误删除数据文件后,比如DB,只要系统不重启,还是有很大几率能将数据找回来 |
root | 系统管理员主目录 | 除root之外,其他用户均放置在/home目录下 |
run | 系统运行是所需文件 | 以前防止在/var/run中,后来拆分成独立的/run目录。重启后重新生成对应的目录数据 |
sbin | 只有root才能运行的管理指令 | 跟bin类似,但只属于root管理员 |
srv | 服务启动后需要访问的数据目录 | |
sys | 跟proc一样虚拟文件系统 | 记录核心系统硬件信息 |
tmp | 存放临时文件目录 | 所有用户对该目录均可读写 |
usr | 应用程序放置目录 | |
var | 存放系统执行过程经常改变的文件 |
几个重要文件目录
/etc:这个是系统中的配置文件
/bin, /sbin, /usr/bin, /usr/sbin:系统预设的执行文件的放置目录
/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户)
/sbin, /usr/sbin 是给root使用的指令
/var:每个程序产生的日志被记录到这个目录下(具体在/var/log ),另外mail的预设放置也是在这里
基本概念
用户目录:位于 /home/user
登录信息:
[root@localhost /]#
root:登陆用户
localhost:当前主机名
/:表示当前所处的目录位置 (这里的'/'表示当前在根目录下)
绝对路径
从/目录开始描述的路径为绝对路径
对路径
从当前位置开始描述的路径为相对路径
. 和 ..
. 表示当前目录
.. 表示上一级目录,即父目录
文件权限
查看权限
ls -l
三种访问方式限制访问权限
1)只允许用户自己访问(所有者)
2)允许当前用户所在同一组
2)允许其他用户
l rwx rwx rwx
d r-x r-x r-x
首先第一个字母 在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。
[ d ] 表示目录
[ l ] 表示为链接文档(link file)
[ - ] 表示为文件
[ b ] 表示为装置文件里面的可供储存的接口设备(可随机存取装置)
[ c ] 表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)
# 其次接下来的字符中,以三个为一组,且均为 [ rwx ] 的三个参数的组合
[ r ]代表可读(read): 4
[ w ]代表可写(write): 2
[ x ]代表可执行(execute): 1
[ - ]代表没有权限
基本命令信息
ls 命令
用于显示指定工作目录下之内容
常用组合
[1]查看文件详情:ls -l 或 ll
[2]增强对文件大小易读性,以人类可读的形式显示文件大小: ls -lh
[3]对文件或者目录进行从大到小的排序: ls -lhs
[4]查看当前目录下的所有文件或者目录,包括隐藏文件: ls -la
[5]只查看当前目录下的目录文件: ls -d .
[6]按照时间顺序查看,从上到倒下时间越来越近: ls -ltr
[7]查看文件在对应的inode信息:ls -li
cd 命令
变换当前目录
cd - :切换到上一次目录
pwd 命令
查看绝对路径
mkdir 命令
用来创建指定的名称的目录
选项参数 | 功能描述 |
---|---|
-m | 设定权限 (类似 chmod),而不是 rwxrwxrwx 而是721721721(r=4,w=2,x=1) |
-p(parents) | 可以是一个路径名称。若目录不存在,将自动建好目录,即一次可建立多个目录 |
-v(-verbose | --help | --version ) | --verbose 每次创建新目录都显示信息 --help显示此帮助信息并退出 --version输出版本信息并退出 |
touch 命令
用于修改文件或者目录的时间属性,文件不存在,会建立一个新的文件
强制避免创建新文件 使用参数 -c
更改文件的访问、修改时间 使用参数 -a
仅更改此文件的修改时间 使用参数 -m
将访问和修改时间从一个文件复制到另一个文件 使用参数 -r
touch text3.txt -r text1.txt
stat查看文件详细信息、最近访问和最近更改时间
rm 命令
用于删除一个文件或者目录
参数 | 参数描述 |
---|---|
-i | 删除前逐一询问确认 |
-f | 即使原档案属性设为唯读,亦直接删除,无需逐一确认 |
-r | 将目录及以下之档案亦逐一删除 (递归删除) |
rmdir 命令
删除空的目录,不能删除非空目录
mv 命令
用来为文件、目录改名或移动文件、目录位置
参数 | 参数描述 |
---|---|
-i | 若指定目录已有同名文件,则先询问是否覆盖旧文件; |
-f | 在 mv 操作要覆盖某已有的目标文件时不给任何指示 |
cp 命令
复制文件或目录
cat 命令
连接文件并打印
more 命令
页一页的形式显示,空白键(space)就往下一页,按 b 键就会往回(back)一页,q键退出
less 命令
可以随意浏览文件
b向下翻一页,d向下翻半页, u向上滚动半页,y向上滚动一行
回车键向下滚动一行,空格向上键滚动一页
ps 命令
查看进程
ps aux 查看所有进程,相当于Windows任务管理器
head 命令
查看文件的开头部分的内容,参数 -n 用于显示行数,默认为 10
tail 命令
查看文件的末尾 ,参数-f 用于监控实时写入内容
which 命令
查找某个命令或者文件
whereis 命令
只能用于程序名的搜索(默认:二进制文件、说明文、源代码文件)
locate 命令(关键字)
查找符合条件的文档
最小mini系统里面是没有安装
find 命令
文件树中查找文件,并作出相应的处理
常用格式: find [路径] 动作限制类型 限制条件
重要:其中 -exec 参数后面跟的是 command 命令,它的终止是以 \;
例如:find /XXX/XXX -name *.log -exec rm {} \;
chmod 命令
改变文件或目录的权限
chmod u/g/o/a + r/w/x/S/- filename
chmod 777 filename
-c 当发生改变时,报告处理信息
-R 处理指定目录以及其子目录下所有文件
chown 命令
定文件的拥有者改为指定的用户或组
user 新的文件拥有者的使用者ID
group 新的文件拥有者的使用者组(group)
-R 处理指定目录以及其子目录下的所有文件
tar 命令
用于备份文件
本身不具有压缩功能,只具有打包功能
压缩及解压是调用其它的功能来完成
-c 建立新的压缩文件
-f 指定压缩文件
-x 从压缩包中抽取文件
-z 支持gzip压缩
-j 支持bzip2压缩
-v 显示操作过程
--exclude 排除文件(不能排除目录)
date 命令
显示或设定系统的日期与时间
cal 命令
用户显示日历
grep 命令
文本搜索命令,全局正则表达式搜索,查找文件里符合条件的字符串
ps 命令
显示当前进程 (process) 的状态
-aux
kill 命令
指定的信息送至程序
用于删除执行中的程序或工作
vi与vim命令
vim可以视为vi的高级版本,vim可以用颜色或者底线等方式显示一些特殊的信息
三种模式
命令模式(Command mode),输入模式(Insert mode)和末行命令模式(Last line mode)
命令模式
启动 vi/vim,自动进入了命令模式
命令 | 功能 |
---|---|
i | 切换到输入模式,以输入字符 |
x | 删除当前光标所在处的字符 |
shift + : | 切换到末行命令模式,以在最底一行输入命令 |
进入文件后(命令行模式下)
常用:
移动光标的方法 | 作用 |
---|---|
h 或 向左箭头键(←) | 光标向左移动一个字符 |
j 或 向下箭头键(↓) | 光标向下移动一个字符 |
k 或 向上箭头键(↑) | 光标向上移动一个字符 |
l 或 向右箭头键(→) | 光标向右移动一个字符 |
0 或功能键[Home] | 这是数字『 0 』:移动到这一行的最前面字符处 (常用) |
$ 或功能键[End] | 移动到这一行的最后面字符处(常用) |
G | 移动到这个档案的最后一行(常用) |
gg | 移动到这个档案的第一行,相当于 1G 啊! (常用) |
:set nu | 显示数字行号 |
如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓" 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可 |
搜索替换 | |
---|---|
/word | 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用) |
?word | 向光标之上寻找一个字符串名称为 word 的字符串。 |
n | 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串! |
N | 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。 |
删除、复制与贴上 | |
---|---|
x, X | 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用) |
dd | 删除游标所在的那一整行(常用) |
ndd | n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用) |
d$ | 删除游标所在处,到该行的最后一个字符 |
d0 | 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符 |
dw | 删除一个单词 |
yy | 复制游标所在的那一行(常用) |
nyy | n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用) |
p, P | p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用) |
yw | 复制一个单词 |
u | 复原前一个动作。(常用) |
[Ctrl]+r | 重做上一个动作。(常用) |