CentOS使用
CentOS文件和目录介绍
使用SecureCRT
SecureCRT介绍
每次在操作linux时都需要打开CentOS,这比较麻烦,使用SecureCRT可以直接在window系统中操作CentOS
注意:在使用CRT时虚拟机需要开机
使用CRT查看linux目录
Linux基本命令
账号管理相关
-
创建用户: useradd (选项) 用户名 //(选项)用括号表明 可以省略不写
-
用户口令: passwd (选项) 用户名 //设置密码 ,需先进入root权限用户
-
修改用户: usermod 选项 用户名 // 在操作时可能会因为当前用户正在(登录)使用而删除失败,此时点x关闭重新连接一下本机登录进去进入root就可以了。(删除用户时也一样)
-
删除用户: userdel (选项) 用户名
用户组
当对同种类型的用户进行批量修改时,可以把用户放在同一组中
管理用户组内成员
前面分别介绍了对用户和用户组进行操作,此处介绍如何将用户放入组中
语法:gpasswd (可选项)组名
练习:
添加进组之后,可以使用grep ‘组名’ /etc/group 查看
日期管理
- date [参数选项]
系统设置命令
-
id //查看当前用户的详细信息,比如:当前用户的id,群组id,以及所属组。
-
sudo //可以提高普通用户的权限做某事。
-
top //实时监控进程的状态,相当于windows中的任务管理器。 按q键结束
-
ps //和top命令类似,都是获取进程状态信息,但是ps只能获取当前系统正在运行的进程信息。
-
kill //杀死进程,相当于windows中的结束进程, eg kill 1234 就是杀死进程pid为1234的进程
另外 kill -编号 pid 指的是使用某种方式(编号所代值的)杀死进程 最常用的:kill -9 pid 指的是强制杀死pid进程。 -
shutdown 关机命令
最常用的命令有以下几个:
-
reboot 重启命令 // 一般直接使用 reboot,不加其他参数
-
who命令:当多个用户在操作同一个服务器时,可以使用who 显示当前登录系统的用户
Linux目录管理
文件属性介绍
- ls命令 //ls -al 时最常用的
对于第一列(权限)的解释如下:
文件权限属主属组
chgrp命令更改文件所在的用户组 eg:chgrp root aaa //将aaa的所属组改为root
chown命令更改文件所在的所有者 eg:chown root aaa //将aaa的所有者改为root
eg:chown root:root aaa //将aaa的所有者和所属组都改为root
eg :chown -R root:root aaa //将aaa文件夹里所有的属主和属组改为root
chmod命令 修改(第一列内容)权限,作用:修改属主,属组,以及其他用户权限
有两种修改方式: 数字方式和符号方式
1.数字方式:
例如 :chmod -R 770 aaa //R表示将文件夹和文件夹里边的内容一起设置.整句话的意思是把aaa文件夹里边的内容全部设置为自己所有者可读可写可执行,用户组可读可写可执行,其他的用户不可读不可写不可执行。
2.符号方式
注:u=user意为用户自己,g=group 意为用户组,o=other 意为其他用户,a=all意为全部用户。
eg1: chmod -R u=rwx,g=rwx,o=r a.txt //意思是把a.txt设置为自己所有者可读可写可执行,用户组可读可写可执行,其他的用户只可读。
eg2: chmod -R a=rwx a.txt //意为把a.txt设置为全部用户可读可写可执行。
eg3: chmod -R o-rwx a.txt //意为把a.txt的其他用户的权限设置为不可读不可写不可知性 (-是去除权限的意思)
- pwd //查看当前所在的目录
- cd [相对路径或绝对路径] // 切换目录
- mkdir[-p] 文件夹名称 //创建文件夹 其中*-p*用于创建多级文件夹
- rmdir[-p] 文件夹名称 //用于删除空的文件夹,使用-p可以删除多级文件夹 ,eg:rmdir -p aa/bb 是指先删除bb再删除aa。
- rm [选项] 文件/目录 //删除文件或者目录 ,最常用的删除命令: rm -r 文件/目录
- cp // cp[选项] 数据源 目的地 用于文件复制
eg: cp aa/a.txt bb //将aa文件夹中的a.txt拷贝到bb
cp -r aa/ cc* //将aa文件夹中的所有内容拷贝到cc
- mv命令
语法:mv[选项] 数据源 目的地 //当 数据源==目的地 时执行的是改名操作, 数据源!=目的地时执行剪切操作
Linux文件管理
创建和编译文件
touch命令 用于创建文件
语法: touch [参数选项] 文件名 //如果文件存在,则修改时间属性,不存在则创建
练习:
vi/vim编辑器
vi:老式的文字处理器,功能较为齐全。
vim:从vi发展出来的文本编译器,功能丰富,被程序员广泛使用。
vi/vim的三种模式:
打开和新建文件语法: vim 文件名
注:如果文件存在,则直接打开。如果不存在,则会打开一个临时文件,在保存退出后,就会新建一个文件。
在末行模式,使用 :wq命令即可正常保存并退出 ;命令 :q 直接退出
文件查看
cat -n 文件名 //查看文件,并显示行号
注:大文件阅读完之后,可以按q退出。
head命令与tail命令是相反的 ,用法类似。
tail如果不加任何参数,默认会展示最后10行 。 tail -3 a.txt //展示a.txt文件的最后10行
tail -c 50 a.txt //展示a.txt文件的最后50个字符
grep练习:
文本管理
echo命令
语法: echo 字符串 //展示文本
echo 字符串 > 文件名 //将字符串写到文件中(会覆盖文件中的内容)
echo 字符串 >> 文件名 //将字符串写到文件中(不会覆盖文件中的内容)
awk命令
AWK是一种处理文本文件的语言,是一个强大的文本分析工具。
对于以上前两个需求,练习如下:
对于后两个需求:
需求5: 按空格进行分割,并将第一段内容转换成大写显示。
此处会涉及awk的函数如下
练习如下:
需求6:按空格进行分割,并计算所有行的第四列的总和
软连接
在linux中文件的文件名和文件的数据是分开存放的
语法: ln -s 目标文件路径 快捷方式路径
举例:将位于 aa/bb/cc目录下的a.txt文件的快捷方式命名为b.txt放在桌面上
find命令 用于查找
语法:find[参数选项] <指定目录> <指定条件><指定内容> //查找指定目录下的文件
举例:
压缩命令
gzip命令
语法: gzip[参数选项] [文件]
tar命令
zip命令
常用语法: zip -q -r 压缩文件名 文件/文件夹 //表示将后边的文件/文件夹进行压缩,压缩出来的名字就叫做 压缩文件名。
unzip命令
常用语法: unzip -l 压缩文件名 //查看这个压缩文件中有多少内容
unzip -d 指定文件夹 压缩文件 //解压
网络与磁盘管理
磁盘管理命令
ifconfig命令 与windows中的ipconfig类似
语法:ifconfig[参数选项] //用于显示或配置网络设备的命令
常用命令:(此处拿第二块网卡 ens37 举例)
ping命令 与windows中的ping一样
语法: ping [参数选项] //检测是否与主机连通
-c<完成次数> // 设置ping的次数
eg1: ping www.baidu.com 想要停止需按Ctrl+C
eg2: ping -c 2 www.baidu.com //ping两次
netstat命令
语法: netstat [参数选项] //显示网络状态
参数选项:
-a 显示所有连线中的Socket
-i 显示网卡列表
lsblk命令 可以理解为list block英文缩写
语法:lsblk [参数选项] //列出硬盘的使用情况 (从硬盘的使用情况展示)
参数选项:
-f 显示系统信息
df命令
语法: df [参数选项] //显示目前在linux系统中,硬盘的使用情况(从文件系统层的角度展示)
参数选项:
–total 显示所有的信息
-h,换算成KB,MB,GB等形式进行展示(方便阅读)
mount命令
语法: mount [参数选项] 目录 //用于 挂载 linux系统以外的设备
挂载 解释:在windows中插入U盘即可直接使用,这是一个自动的过程。但在linux中不可以,需要手动创建一个文件夹,将U盘和文件夹关联起来,当想要访问U盘时通过新建的文件夹就可以访问,这个新建的文件夹就叫做挂载点,整个过程成为挂载。如下图所示:
下载安装命令
yum
在linux中,如果想要查找,安装, 下载或者卸载软件,需要通过yum操作
yum默认实在外网下载资源,如果想配置国内镜像,执行以下步骤:
shell入门
shell 相当于windows中的cmd,Linux中默认时shell是bash,shell作用如下图:
编写第一个shell
- 创建一个以**.sh**结尾的文件 touch a.sh //此处a为文件名
- 书写内容 vim a.sh
内容如下:
第一行: #! /bin/bash
第二行: 随意写 - 执行: ./a.sh 或者 bash a.sh //此处a为文件名
注释
- 单行注释
语法:# 注释内容 - 多行注释
语法::<<! 注释内容! 或 :<<字符 注释内容 字符
变量
-
定义变量
①普通变量
如果将数字赋值给变量默认使用方式一,其他默认使用方式三。练习:
$ vim a.sh
#! /bin/bash
# 方式一:
num=10
echo $num //输出 10
# 方式二:
a='$num'
echo $a //输出 $num
#方式三:
b="$num"
echo $b //输出 10
②命令方式
c=`date`
echo $c //输出2022年 02月 25日 星期五 11:20:34 CST
d=$(date)
echo $d //输出2022年 02月 25日 星期五 11:20:34 CST
- 使用变量
练习:
d=$(date)
echo $d
result="现在的时间是${d}" //此处使用的第三种方式
echo "${result}" //此处使用的第四种方式
//输出结果: 现在的时间是2022年 02月 25日 星期五 11:30:34 CST
- 只读变量
语法: readonly 变量名 //表示这个变量只可读 ,对已经定义好的只读变量进行赋值时会报错 - 删除变量
语法: unset 变量名 //表示将这个变量进行删除,已经删除的变量在进行使用时将无法显示
举例:
d=$(date)
echo $d //此处正常输出日期
unset d
echo $d //此处无法正常输出日期,结果什么都不显示
数组
- 定义数组
语法:数组名=(值1 值2 … 值n) arr=(1 2 3 4 5) - 给数组元素赋值
和java一样: arr[0]=1 - 获取元素
语法:${数组名[下标]} ${a[0]} - 获取长度
语法:${#数组名[]} ${#arr[]}
${#数组名[@]} ${#arr[@]}
练习:
arr=(1 2 5 3 4)
arr[0]=9
echo ${arr[0]} //输入9
echo ${#arr[*]} //输入5
算术运算符
练习:
#整数相加
num1=`expr 2 + 2`
echo "num1=$num1" //输出num1=4
#整数相减
num2=`expr 2 - 2`
echo "num2=$num2" //输出num2=0
#整数相乘
num3=`expr 2 \* 2`
echo "num3=$num3" //输出num3=4
#变量相加
a=10
b=20
num4=`expr $a + $b`
echo "num4=$num4" //输出num4=30
#赋值
c=30
num5="${c}"
echo "num5=$num5" //输出num5=50
#自增
e=1
((e++))
echo "e=$e" //输出e=2
字符串运算符
注意:在方括号[]的前后都有空格
关系运算符
布尔运算
逻辑运算
判断选择循环
if判断语句
选择语句
for循环
while循环
shell函数
- 无参无返回值
- 有参无返回值
- 有参有返回值