虚拟机及Linux系统
虚拟机
链接: https://pan.baidu.com/s/1Hc3yK1oVUY3m3N6ZDgZE3A
提取码:3456
Linux系统
链接:https://mirrors.aliyun.com/centos-stream/9-stream/BaseOS/x86_64/iso/CentOS-Stream-9-latest-x86_64-dvd1.iso?spm=a2c6h.25603864.0.0.51f5408c4xVEne
MobaXterm
链接:https://pan.baidu.com/s/1hAanZF57v13aqisl0IzodA
提取码:vo2f
安装Linux系统
新建虚拟机
该界面选择CentOS 8,其余界面一律下一步。
系统内操作
将带有红色感叹号的图标一一点击进入并点击完成。
创建root用户,界面如下;
点击完成。并等待安装。
Linux常用的小技巧
Ctrl Shift + :放大终端窗口。
Tab:命令补全/文件名补全。
Ctrl C/c:命令执行中断。
Ctrl D/d:退出,用于取代exit.
Ctrl L/l: 清除上方显示的内容,用于取代clear。
linux常用内置命令
[root@K ~]# command [-options] parameter1 parameter2
command:命令。 -options:选项。 parameter1 :参数(1)。parameter2:参数(2)。
ifconfig ------查看活动网络接口
-a:显示所有接口的详细信息。
ifconfig ens32 down------禁用网卡
ifconfig ens32 up-------启用网卡
ifconfig ens32 192.168.1.12 netmask 255.255.255.0 broadcast 192.168.1.255---------为网卡分配IP地址、网络掩码和广播
ping---------测试网络连接。
su--------切换用户。
sudo------以管理员权限执行命令。
ls ----查看当前目录下的文件
-l:人性化显示当前目录下所有文件的类型,归属权,文件大小,创建日期,文件名。
-a:显示所有文件(包括隐藏文件,(以.开头的文件))。
pwd-----显示当前目录的绝对路径
cd ------改变当前目录
cd :返回家目录。
cd .:切换到当前目录。
cd …:返回上一级目录。
cd +绝对路径:切换到绝对路径目录下。
mkdir ------创建目录
mkdir -p 2 3 4 5:创建平级目录2 ,3,4, 5。
mkdir -p 2/3/4/5:创建父子关系目录2 ,3,4,5。
mkdir -m 711 test1:创建一个可自主设定权限的 目录test1。
rmdir--------删除空的目录
-p:连同上层一起删除。
date -----显示日期与时间
cal---------显示日历
bc---------简单的计算器
scale=3:以小数点后三位为输出格式
+:加法
+:减法
/:除法
*:乘法
^:指数
%:余数
command --help --------查看该命令的使用方法。
man command----------查看该命令的使用方法。
sync-------将数据同步写入硬盘(最好在root用户下使用)。
shutdown [-krhc] [时间] [警告信息]--------关机。
-r:重新启动计算机。
-h:系统服务结束后关机。
-c:取消关机。
-k:并不会关机,吓唬人。
时间:一般默认在一分钟之后关机。
20:25/表示在20:25关机。
+10:表示在现在时间的十分钟之后关机。
now:立刻关机。
reboot--------重启。
halt,poweroff----------系统停止,系统关机。
cp---------复制。
cp 源文件 目标文件
rm----------删除文件或目录。
-f :不会出现警告信息。
-r:递归删除。
-i:交互模式。
mv----------移动文件或目录,或重命名。
-f:强制移动(覆盖)。
-i:交互提醒。
-u:文件较新才会更新。
touch--------修改文件时间/创建新 文件。
ttree------树状显示文件关系。
grep--------查找关键字文件内容。
echo--------输出。
>,>>----------覆盖,追加
格式:echo 要输出的字符 >/>> 文件名
|----------管道(前一个命令的结果作用于后一个命令。)
格式:命令1|命令2
useradd 用户名--------新增用户。
-m:自动创建用户的家目录。
-g:指定用户所在的组,否则会建立一个同名的组。
passwd 用户名---------设置用户密码。
userdel 用户名--------删除用户。
-r:自动删除家目录。
groupadd 组名-------添加组。
groupdel 组名---------删除组。
cat /etc/group--------确认组信息。
chgrp 组名 文件/目录名--------修改文件/目录的所属组。
id 用户名-----------查看用户UID和GID信息。
who---------查看当前所有登录的用户列表。
whoami-------查看当前登录用户的账户名。
ps aux-----------查看进程的详细状况。
-a:显示终端上所有进程,包括其他用户的进程。
-u:显示进程的详细状态。
-x:显示没有控制终端的进程。
top---------动态显示运行中的进程并排序
kill [-9] 进程代号---------终止指定代号的进程,-9表示强行终止。
tar----------打包/解包/压缩/解压缩。gzip(.gz),bzip2(.bz2)。
格式:tar -cvf 打包文件.tar 被打包文件 /路径…-------------打包,tar -xvf 打包文件.tar ------解包,1 tar -zcvf 打包文件.tar.gz 被压缩的文件 /路径… ** 2** tar -jcvf 打包文件.tar.bz2 被压缩的文件 /路径…-------压缩文件,1 tar -zxvf 打包文件.tar.gz 2 tar -jxvf 打包文件.tar.bz2 --------解压缩文件,tar -zxvf 打包文件.tar.gz -C 目标路径 ------解压缩到指定路径
-c:生成档案文件,创建打包文件。
-x:解开档案文件。
-v:列出归档详细过程,显示进度。
-f:指定档案文件名称,f后面必须是.tar文件,所以必须放到最后。
sudo apt install 软件包------------安装软件。
sudo apt remove 软件名------------卸载软件。
sudo apt upgrade------------更新已安装的包
文件内容查看
cat------由第一行开始显示文件内容。
tac-------从文件的最后一行开始显示。
nl-------显示的时候同时输出行号。
more-------一页一页的显示文件内容。
less--------与more类似但是它可以往前翻页。
head-------只看前面几行。
tail ---------只看后面几行。
od--------以二进制的方式读取文件内容。
Liunx文件属性
文件类型
-:文件。
d:目录。
I:链接文件。
b:可提供存储的周边设备。
c:串行端口设备。
权限
r:可读,值为4。
w:可写,值为2。
x:可执行,值为1。
chgrp-------修改文件所属用户组。
- R:进行递归修改,(该文件下所有的目录及文件皆修改为相同用户组。)
chown-------修改文件拥有者。
-R:进行递归修改。
chmod--------修改文件权限。
1.
-R:j进行递归修改。
chmod -R xyz 文件名
xyz:数字类型的权限属性。
2.
SSH远程连接其他Liunx系统
ssh 用户名@IP地址---------用于远程操作该系统。
scp 文件名 用户名@IP地址:文件放置的目录---------用于远程传输文件。
shell命令
脚本以#!/bin/bash开头(指定解析器)
执行脚本的方式:1 ----sh +脚本的相对路径,2 -----sh+脚本的绝对路径,3 ----bash+脚本的相对路径,4 ------bash+脚本的绝对路径。5 ----在脚本的路径前加.或source [需要赋予脚本文件执行权限]
变量
定义变量变量名=变量值**=号前后没有空格**
撤销变量 unset 变量名
设置只读变量 readonly变量,不能unset
变量定义规则
1 变量可由字母,数字,下划线组成。但不能以数字开头。环境变量建议用大写字母。
2 =号两边不能有空格
3 在bash中,变量默认为字符串形式不能参与计算。
4变量值如果有空格需要用双引号或单引号括起来
特殊变量
$#------获取所有输入参数个数,常用于循环,判断参数的个数是否正确以及加强脚本健壮性。
**$ * -------代表命令行中所有的参数, **$ *把所有的参数看成一个整体。
$@------代表命令行中所有的参数,不过 $@把每个参数区别对待。
$?--------最后一次命令的返回状态,如果为0则表示上一次命令正确,如果非0则表示上一次命令执行错误。
运算符
基本语法
** $((运算式))或 $[运算式]**
条件判断
基本语法
1 test condition
2 [condition] (注意condition前后要有空格)
注意:调教非空即为ture,[atguigu]返回ture,[ ]返回false。
** 常用判断条件**
1两个整数之间比较
-eq 等于(equal) -ne 不等于(not equal) -lt 小于(less than) -le 小于等于(less equal) -gt 大于(greater than)-ge 大于等于(greater equal)
如果是两个字符串之间进行比较用=判断相等,用!=判断不相等
**&&**逻辑与
**||**逻辑或
流程控制
if判断
单分支
if [条件判断式];then
程序
fi
或者
if [条件判断式]
then
程序
fi
多分支
if[条件判断式]
then
程序
elif [条件判断式]
then
程序
else
程序
fi
case语句
1基本语法
case $变量名 in
"值1")
如果变量的值等于值1,则执行程序1
;;
"值2")
如果变量值等于2,则执行程序2
;;
……省略其他分支……
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
注意事项:
1 case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。
2 双分号“;;”表示命令序列结束,相当于Java中的break。
3 最后的“*)”表示默认模式,相当于Java中的default。
for循环
基本语法1
for ((初始值;循环控制条件;变量变化))
do
程序
done
基本语法2
for 变量 in 值1 值2 值3...
do
程序
done
while循环
基本语法
while [条件判断式]
do
程序
done
可用let进行代码替换
例:sum2=$[ $sum2 +$a]------let sum2+=a
read读取控制台输入
1 基本语法
read(选项) (参数)
选项:
-p:指定读取值时的提示符,
-t:指定读取值时等待的时间(秒),如果-t不加表示一直等待。
参数
变量:指定读取值的变量名
特殊字符
^:匹配一行的开头
$:匹配一行的结束
.:匹配一个任意的字符
*: 不单独使用,它和上一个字符连用,表示匹配上一个字符0次或多次,
** ^$:匹配空行
[ ]:表示匹配某个范围内的一个字符,
[6,8]:表示匹配6或者8
[0-9]:匹配一个0-9的数字
[0-9]:匹配任意长度的数字字符串
[a-z]:匹配一个a-z之间的字符
[a-z]:匹配任意长度的字母字符串
[a-c,e-f]:匹配a-c或者e-f之间的任意字符
****:表示转义并不会单独使用,匹配 $,^时才会使用