开源,稳定(连续一年以上不用关机),漏洞少,免费试用,自由传播
1970年贝尔实验室开发出unit,1980年linus开发出linux
linux其实是一个内核,版本有redhat(redhet和centos),ubuntu(图形化界面做的最好),suse,aliyu linux,……。
桥接网络就是虚拟机和主机在同一网段中,即ip地址的前三位是一样的,会造成两个问题
网络转换模式使虚拟机中的linux与主机不在一个网段中,所以避免了桥接模式出现的两个问题,通过增加两个虚拟网卡来实现主机与虚拟机的通信vmnet8虚拟网卡一定与虚拟机中的ip在同一个网段。
使得虚拟机和当前主机在同一个网络中,不与主机所在的网络公用一个网络,不具备上网功能
分区 | 文件系统 | 大小 |
---|---|---|
/boot (存放启动文件) | ext4(存放大小不限) | 2048mb |
swap(如果系统内存不够用了,可以将这部分分区作为内存) | swap | 2048mb |
/(根路径) | ext4 | 剩余的16g |
使用xftp连接linux时,ftp是不加密的,sftp是加密的
一切皆文件
/bin 存放最经常使用的命令
/user/bin
/user/local/bin
/sbin 存放系统管理员能够使用的指令
/user/sbin
/user/local/sbin
【注意】以上六个目录在linux的任何位置都可以访问因为这六个路径都被配置到了环境变量中 echo $PATH查看
/home 存放普通用户的主目录,在linux中每个用户都有自己的目录,一般目录名是以账号名命名的
/root 该目录为系统管理员
/lib 几乎所有的程序都需要用到动态链接库
/lost+found 一般为空,非法关机(拔电源,直接关闭虚拟机)时,回存放文件
/etc 所有的系统管理所需要的配置文件和子目录,例如安装了mysql,jdk等有些文件就会默认安装在etc下
/usr 非常重要的文件夹,用户的很多应用程序和文件都放在这个目录下,类似windows下的program files目录
/boot 启动linux时的核心文件,包括连接文件和镜像(不要用)
/proc 虚拟目录,系统内存的镜像,可以直接访问这个目录来获取系统信息(不要用)
/srv service的缩写,存放一些服务启动之后需要提供的数据(不要用)
/sys linux2.6内核下新出现的文件系统sysfs(不要用)
/tmp 存放临时文件
/dev 设备管理器,所有的硬件以文件的形式存储
/media(centos6) 系统会自动识别一些设备,例如u盘,linux会把识别到的设备放在这个目录下
/run 进程产生的临时文件,虚拟机加载光盘印象在/run/media/root目录下
/mnt 临时挂在别的文件系统,我们可以将外部存储放在这个目录下,就可以看到内容了,和root差不多
/opt(使用最多的目录) 安装软件的目录
/usr/local 也是安装软件的目录,不同的是存放编译源码方式安装的软件
/var 存放不断扩充着的东西,包括各种日志文件
一般模式
负责查看和基础的修剪
dd 删除光标当前行
dnd 删除n行
u 撤销
x 删除相当于delete
X 删除相当于 backspace
yy 复制光标当前行
p 粘贴
dw 删除一个词
yw 复制一个词
shift+g 移动到文档结尾处
n+shift+g 移动到某一行
shift+4 移动到行头 (因为正则表达式以^(6)开头,$(4)结尾)
shift+6 移动到行尾
编辑模式
i 当前光标前进行插入
a当前光标后进行插入
o 当前光标行的下一行
dd 删除整行
s 删除当前字符,并进入编辑模式
S 删除整行,并进入编辑模式
R 光标之后的全都进入替换模式
命令模式
可以进行存盘,退出,显示行号,搜索,批量替换等操作
:w 保存
:q 退出
:! 强制执行
:%s/旧字符串/新字符串/g 批量替换
/ 查找字符串(高亮一直存在) n查找下一个,N查找上一个
:noh 去掉高亮
:set nu 显示行号
:set nonu 不显示行号
su - [root] 切换用户root
pwd 查看当前所在的目录(重要)
echo $PATH 输出环境变量
man [date] 查看date指令如何使用(显示部分,使用空格翻页)
[date] --help 查看date指令如何使用(显示全部)
date中的指令有好多
cal显示日历的日期命令
cd ..
cd / 绝对命令
cd,cd ~ 返回家目录
cd /etc/sysconfig 从根目录下开始找,通过绝对路径
cd ./sysconfig 从当前路径下开始找,通过相对路径
ll查看当前目录下所有内容
文件目录管理
ls 显示目录中的文件
-a 显示所有文件,包括隐藏的文件
-l列出详细列表
ls -l 可以简化为ll
ls -a -l 可以简化为ls -al 查询所有文件,包括隐藏文件的所有列表信息
grep 在linux中是管道,可以理解为模糊查询
ll | grep cfg
一般情况下不显示隐藏文件
-rw-------. 1 root root 1972 10月 7 12:31 anaconda-ks.cfg
-rw-r--r--. 1 root root 2020 10月 7 12:40 initial-setup-ks.cfg
drwxr-xr-x. 2 root root 4096 10月 7 13:13 公共
drwxr-xr-x. 2 root root 4096 10月 7 13:13 模板
drwxr-xr-x. 2 root root 4096 10月 7 13:13 视频
drwxr-xr-x. 2 root root 4096 10月 7 13:13 图片
drwxr-xr-x. 2 root root 4096 10月 7 13:13 文档
drwxr-xr-x. 2 root root 4096 10月 7 13:13 下载
drwxr-xr-x. 2 root root 4096 10月 7 13:13 音乐
drwxr-xr-x. 3 root root 4096 10月 7 13:18 桌面
以上-rw-------每一位代表不同的含义
第0位 - 代表文件类型,-代表普通文件,d代表目录
第1,2,3位代表对当前目录或文件所属的权限 r读 w写 x执行
第4,5,6位代表文件所属用户所在组的其他用户对该文件的权限
第7,8,9代表文件所属用户所在组以外的用户对该文件的权限
mkdir 创建文件夹
-p 可以创建多级目录
touch 新建一个文件
创建文件还可以通过 vi/vim 目前不存在的文件名 直接创建文件
rmdir 删除一个空目录
rm 移除文件或目录
-rvf 递归删除所有目录内容,提示
-rf 递归删除所有目录内容,不提示
cp 拷贝
-r 递归复制
-v 查看提示
mv 移动文件和重命名
mv 旧文件名 新文件名
mv 要移动的文件 移动到哪里
cat 查看轻量级文件
cat 文件名
cat 文件1 文件2 连续查看两个文件
cat 文件1 文件2>文件3 将文件1和文件2合并到文件3
more 查看较长的文件 空格键翻页 enter向下一行 q离开
less 查看文件,和more类似,功能比more多
pageup向上翻页
pagedown向下翻页
/ 向下搜索
? 向上搜索
tail 从尾部开始查看, 比较适合查看日志
-f跟随查看,就是光标一直在,除非退出,否则会一直查看
-n200 显示的行数
history 查看历史命令
echo 输出环境变量
在shell脚本中充当sysout.out.println();
find 查找文件,提供模糊搜索及条件搜索,查询速度慢
locate 查找文件,速度快,从内存中查询,只能查出上次关机前创建的文件,因为本次开机创建的文件还没有记录至内存,需要更新数据库才可以,更新数据库的命令是updatedb
updatedb 更新数据库,缓存,可以与locate配合使用
软连接——快捷方式
创建 ln -s 源文件或目录名 软连接名
查询 ls -l就可以查看列表属性 前十个字母的第一位位l
压缩:
tar -zcvf XXX.tar.gz n1.txt 压缩文件
-c 创建一个新归档
-v 显示详细信息
-f 指定压缩后的文件名
-z 通过gzip过滤文档
解压:
tar -zxvf XXX.tar.gz
-x 从归档中解出文件
-v 显示详细信息
压缩:
zip mypackage.zip t1.txt t2.txt
zip -r pack.zip pack/*(递归压缩)
解压
upzip mupackage.zip
磁盘分区:常见的两种磁盘分区类型
mbr和gpt
mbr
只支持4个主分区
gpt
无限主分区
lsblk 查看所有设备挂载情况
sda代表磁盘
reboot 重启
添加硬盘需要在虚拟机中添加,然后重启
分区命令:
fdisk /dev/sdb
开始对sdb进行分区
m 显示命令列表
p显示磁盘
n新增分区
d删除分区
w写入并退出分区
文件类型新学了一种b代表磁盘
l 软连接
- 普通文件
d 文件夹
格式化磁盘
分区命令:mkfs -t ext4 /dev/sdb1
ext4为文件类型
挂载:添加的硬盘或分区与某一个文件加或目录进行关联,因为新分的分区现在用不了,只有和磁盘中的某一个目录联系起来才可以使用
mount 设备名称 挂载目录 例:mount /dev/sdb1 /newdisk
取消挂载
umount 设备名称或者目录 例如 umount /dev/sdb1 或者 umount /newdisk
永久挂载 通过修改/etc/fstdb实现挂载 文件末尾添加
磁盘 挂载点 文件系统
/dev/sdb1 /dev/newdisk ext4 defaults 0 0
然后执行mount -a 即刻生效永久挂载
df -h 硬盘整体情况查询
du -h 目录
-a含文件
-s指定目录占用大小汇总
-c列出明细的同时,增加汇总值
--max-depth=n 子目录的深度为n
例如:du -ach --max-depth=1 /opt 查看opt目录下子目录的情况,子目录深度是1
网络配置类
ifconfig
查看网络配置
进程
ps
[root@blp ~]# ps
PID TTY TIME CMD
3228 pts/1 00:00:00 bash
3753 pts/1 00:00:00 ps
bash :终端
ps命令
-a显示当前终端所有进程信息
-u以用户的格式显示进程信息
-x显示后台进程运行的参数
ps -aux 查看用户格式的进程信息
ps -ef 查看进程号等信息
kill pid 杀死进程
kill -9 pid 强制杀死进程 例如:杀死终端进程时需要强制
killall 进程名字 通过进程名字杀死进程(不使用)
service 服务
systemctl 服务名 start
systemctl list-unitsystem-files 查看所有的服务方式1
systemctl --type service 方式2 显示的信息列表不同
q退出
防火墙服务如果不关闭,则主机无法访问linux上的mysql,radis。
systemctl disable service_name 不自启动
systemctl enable service_name 自启动
查看系统的网络情况
netstat 查看系统的网络情况
-an 按一定顺序排序
-p 显示哪个进程在调用
vmstat 1 5
另外,vmstat
命令后可带两个数字,第一个数字表示每多少秒打印一次结果,第二个数字表示总共打印多少次结果;如果只有第一个数字,则会不停地打印结果,直到你终止该命令。
top
命令的结果有很多信息,但我们主要用它来监控进程所占的系统资源。top命令的结果每隔3秒变1次,它的特点是把占用系统资源(CPU、内存、磁盘I/O等)最高的进程放到最前面。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 41060 3576 2396 S 0.0 0.4 0:00.89 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
这里面我们主要关注RES(所占内存大小)、%CPU、%MEM(占用内存的百分比)、COMMAND这4个字段。
另外,如果需要一次性打印系统资源的使用情况,可以使用top - bn1
。
为了检查内存是否够用,除了vmstat
外,我们还可以使用更直接有效的free
命令:free -h
。
# free -h total used free shared buff/cache availableMem: 992M 141M 462M 516K 388M 714MSwap: 1.0G 0B 1.0G
查看系统的登录日志
last | head
添加用户:useradd 新用户名
设置密码:passwd 用户名
用户是否存在: id 用户名
切换用户: su - 用户名
查看当前用户/登录用户 : whoami/who am i
删除用户:userdel username(不完全)
还要删除home下的用户
etc/passwd下的用户
etc/group下的用户
/var/spool/mail下的邮箱文件
完全删除用户:userdel -rf username
添加用户组
新增:groupadd 组名
删除组:groupdel 组名
修改用户的组: usermod -g 用户组 用户名
增加用户时直接加上组 : useradd -g 用户组 用户名
用户的配置文件在 etc/passwd文件中每行的含义:用户名:口令……
口令的配置文件位置:/etc/shadow文件中
查看组的命令在:/etc/group文件中
每个文件或文件夹的前十位分别代表:
0:文件类型
123:属主权限
456:属组权限
789:其他用户权限
文件中的读,写,执行操作:
【r】 :可读
【w】:可写,只有文件所在文件夹有可写功能才可以删除,否则不行
【x】:操作可被系统执行
文件夹中的读,写,执行操作
【r】 :可以查看文件夹中的内容
【w】:可以修改目录内,目录内创建,删除,重命名目录
【x】:可以进入该目录
‘+’,’-’,’='的方式变更
u代表所有者,g代表所属组,o代表其他用户 a代表所有人(u,g,o的组合)
chmod u=rwx ,g=rx ,o=r 文件目录名
chmod o+w 文件目录名
chmod a-x 文件目录名
chown 待所有者 文件名
-r 递归
chgrp 待改的组 文件名
rpm 通过安装包安装程序,yum在线下载
查询已安装的rpm列表:rpm -qa|grep
rpm -ivh rpm包名
-i 安装 install
-v查看信息
-h查看进度
卸载
rpm -e rpm软件包
yum list|grep xx软件列表
yum install xxx 下载安装
安装jdk
将文件解压缩到opt文件夹下
配置环境变量的配置文件在/etc/profile
JAVA_HOME=/opt/jdk1.8.0_152
PATH=/opt/jdk1.8.0_152/bin:$PATH 将/opt/jdk1.8.0_152/bin的路径赋值给PATH 也可写为:$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH 对外引用,能够在外面进行访问
使环境变量立即生效
第一种:source /etc/profile
第二种:重启系统
通过 echo $PATH查看是否有jdk
直接解压tomcat就可以完成安装
安装mysql
首先卸载mysql centos 7中mysql叫mariadb,
rpm -e --nodeps mariadb 卸载已安装的mariadb数据库,因为有个别的文件依赖这个db,所以使用 --nodeps
查看mysql的版本:
mysqladmin --version
通过rpm -qa | grep -i mysql -i表示忽略大小写
下载mysql可以通过
wget http://repo.mysql.com/ mysql-community-release-el7.rpm
rpm -ivh mysql-community-release-el7.rpm
启动服务
有一部分:service mysql start
systemctl start mysqld.service
设置密码
mysqladmin -u root password ‘123’
查看mysql安装位置
ps -ef | grep mysql
查询mysql的字符集
show variables like ‘%character%’
【补充 20220222】
查看进程
ps -ef | grep 进程名/进程id
jps
查看端口
netstat -tpnl | grep 端口号