Linux目录结构
Linux的目录结构和Windows不一样,它没有盼盘符的概念,它只有一个根目录/
,所有的文件和文件夹都在根目录/
下面。
虚拟机设置
时间同步: 把虚拟机系统时间和宿主系统时间同步
克隆:克隆是把系统完整的拷贝了一份,可以通过副本原因到原系统
优点:在没有原系统的情况下,也可以运行副本系统
缺点:占用空间比较大
快照:只是把原系统的当前状态备份下来,可以在以后的某一个时间还原到备份时的状态
优点:占用空间小
缺点:在没有原系统的情况下,不能还原系统
Linux用户管理
用户管理
操作用户的命令必须在超级管理员的权限下才能操作
su root //切换到管理员用户,需要输入管理员密码
useradd 用户名 //创建用户
passwd 用户名 //设置用户密码
usermod -l 新用户名 原用户名 //修改用户名
userdel -f -r 用户名 //删除用户
cat /etc/passwd //查看所有用户信息
usermod -d /home/新用户目录 -m -u 用户uid -l 新用户名 用户名; //修改用户主目录和用户名
可能存在的问题
如果使用su切换过用户,那么该用户将会被某一个进程占用。需要退出用户才能做修改和删除
ctrl+d
退出当前用户即可解决
只有root用户才能对其他用户进行修改和删除操作。否则没有权限
su root
切换到root用户即可解决
用户组管理
cat /etc/group //查看所有的用户组
groupadd 组名 //创建用户组
groupmod -n 新组名 原组名 //修改用户组名
groupdel 组名 //删除用户组
groups 用户名 //查看用户所在的组
组内成员管理
gpasswd -a 用户名 组名 //将用户添加到用户组
gpasswd -d 用户名 组名 //从用户组中删除用户
grep 组名 /etc/group //查看组内用户
Linux系统管理
设置时间
设置系统时间
date //显示当前时间
date -d "yyyy-MM-dd HH:mm:ss" //显示指定的时间
date -s "yyyy-MM-dd HH:mm:ss" //设置时间,需要管理权限
时间同步
由于硬件的原因,机器或多或少的与标准时间对不上,一个月的误差几秒到几分钟不等。对于服务器来说时间不准,会有很多麻烦。例如,支付的时候,无法下单,游戏无法登录等。
ntpdate time.nist.gov //与时间服务器同步
设置时区
//查看所有可用时区
timedatectl list-timezones
//设置时区为Aisa/Shanghai
timedatectl set-timezone Asia/Shanghai
//打开ntp同步协议
timedatectl set-ntp true
//手动设置时间(需要关闭时间同步)
timedatectl set-time "yyyy-MM-dd HH:mm:ss"
切换用户
logname //显示当前登录的用户
who -H //显示所有登录的用户
su 用户名 //切换用户
id //显示当前用户的信息
sudo //以管理员权限运行其他命令
进程管理
top //实时监控系统的进程状态(类似Windows系统的任务管理器)
//按q退出
ps //显示当前运行的进程信息
ps -A //显示系统中所有进程信息
ps -ef //显示系统中所有的进程信息(完整信息)
ps -u 用户名 //显示指定用户的进程信息
kill 进程pid //杀死指定的进程
kill -9 进程pid //强制杀死指定的进程
killall -u 用户名 //杀死用户的所有进程
关机和重启
shutdown //默认1分钟之后关机(不同版本会有差异)
shutdown -h now //立即关机
shutdown –h 20:25 //系统会在今天20:25关机
shutdown +1 "警告信息" //1分钟之后关机,并显示警告信息
shutdown -r +1 "警告信息" //1分钟后关机并重启,显示警告信息
shutdown -c //取消关机
reboot //重启
目录管理
查看目录
ls //显示所有文件或目录(不包含隐藏文件)
ls -l //显示所有文件或者目录的详细信息(不包括隐藏文件)
ls -al //显示所有文件或目录的详细信息(包括隐藏文件)
注意:带"."的表示隐藏文件,带"d"表示目录; 带"-"表示文件
切换目录
cd //切换目录
新建目录
mkdir [目录] //创建文件夹
mkdir -p [目录] //创建多级文件夹
rmdir [目录] //删除文件夹(只能删除空的文件夹)
rmdir -p [目录] //级联删除目录(文件夹必须都是空的)
删除目录
rm -f [文件] //删除文件,-f表示强制删除不会出现提示
rm -r -f [目录] //删除文件夹,-r表示删除文件夹,-f表示强制删除
复制文件/目录
cp [源文件] [目标目录] //把源目录复制到目标目录
cp [源文件] [目标文件] //把源文件的内容复制到目标文件
cp -r [源目录] [目标目录]
目标目录存在:源目录复制到目标目录
目标目录不存在:自动创建目标目录,再把源目录中所有的内容复制到目标目录
移动文件/目录
mv [源文件] [目标目录] //把文件移动到目录
注意:目标目录一定要存在,否则表示修改文件名
mv [源文件] [目标文件] //修改文件名称
mv [源目录] [目标目录] //移动文件夹
目标目录存在:把源目录移动到目标目录
目标目录不存在:表示修改目录名称
文件的属性
使用ls -l
命令查看文件详细信息时,可以看到文件的属性。
所属组修改
chgrp [用户组] [文件目录] //修改文件所属的用户组
所属用户修改
chown [用户] [文件或目录] //修改文件的所属用户
chown [用户]:[用户组] [文件或目录] //修改属主或者属组
chown -R [用户]:[用户组] [目录] //修改目录及其所有内容的用户和用户组
权限修改
chmod -R 数字权限 文件或目录
r=4,w=2,x=1
rwx=4+2+1=7(可读可写可执行)
rw=4+2=6
r=4
chmod -R 符号权限 文件或目录
u=rwx //用户权限
g=rwx //用户组权限
o=rx //其他用户权限
文件管理
创建文件
touch 文件名 //创建文件
touch 文件名{1..10}.txt //创建带编号的多个文件
stat 文件名 //查看文件的时间属性
编辑文件
vi和vim是命令版的文件编辑器,功能类似于Windows的记事本,可以对文件进行创建、编辑、保存等操作。这些都是通过命令来完成的。
vi/vim的三种模式:
命令模式:通过快捷键达到快速输入的目的
编辑模式:对文件进行编辑
末行模式:对文件进行退出、保存等操作
模式切换
按"i"键: 进入编辑模式
按"esc"键: 回到命令模式
按":"键:进入末行模式
按两次"esc": 回到命令模式
命令模式
dd 快速删除一行
gg 回到顶行
GG 回到末行
yy 拷贝一行
3yy 拷贝当前行后的3行
大P 当前光标后粘贴
小p 当前光标钱粘贴
o 在下一行编辑
行末模式
:wq 保存并退出
:wq! 强制保存并退出
:q 正常退出
:q! 忽略所有更改,并强制退出
:/text 查找文件中的内容,text是要查找的关键词
查看文件
cat -n 文件 //查看文件内容(-n表示带行号)
less -N 文件名 //分屏显示文件内容(-N表示带行号)
head -20 文件名 //查看文件的前20行部分
tail -10 文件名 //查看文件的后10上部分
grep [选项] 关键词 文件名 //根据关键词搜索文本内容
[-n] 显示行号
[-i] 搜索是忽略大小写
//搜索所有时区中"Shanghai"的时区
timedatectl list-timezones | grep "Shanghai"
vim定位到指定的行
vim 文件名 +行号 //vim定位到文件的指定行
vim异常处理
//如果一个文件正则使用vim编辑,但是没有保存,异常退出了,系统会自动生成一个副本文件
//需要删除副本文件(.xxx.txt.swp),才能正常编辑
输出字符串
echo 字符串 //直接输出字符串到命令行
echo 字符串>文件 //将字符串输出到文件(覆盖原文件)
echo 字符串>>文件 //将字符串输出到文件(不覆盖原文件)
软连接
ln -s 目录文件路径 快捷路径
搜索文件
//语法:
find 目录 条件
find . -name "*.txt" //搜索当前目录及其子目录下的所有.txt文件
find . -ctime -20 //搜索最近20天的文件
find . -size 0 //搜索长度等于0的文件
压缩解压
gzip压缩文件
gzip 文件 //压缩文件
gunzip 文件 //解压文件
tar打包压缩
tar 命令能够将用户所指定的文件或目录打包成一个文件,但不做压缩。一般Linux上常用的压缩方式是选用tar将许多文件打包成一个tar文件,再调用gzip压缩命令压缩成xxx.tar.gz
(或称为xxx.tgz
)的文件。
tar [必要参数] <文件或目录列表>
-c: 创建一个新tar文件
-v: 显示运行过程的信息
-f: 指定文件名
-z: 调用gzip压缩命令进行压缩
-t: 列出文件中的内容
-x: 解开tar文件
-C: 指定解压路径
打压缩包
#打包当前目录下所有文件
tar -cvf aaa.tar ./*
#打包并压缩当前目录下所有文件
tar -zcvf aaa.tar.gz ./*
解压缩包
# 将tar包中的文件提取到当前目录
tar -xvf aaa.tar
tar -xvf aaa.tar -C 指定解压目录
# 将压缩包解压到指定目录
tar -zxvf aaa.tar.gz -C 解压目录
查看压缩包
# 仅查看压缩包中的文件
tar -ztvf aaa.tar.gz
zip打包压缩
打zip压缩包
zip -q -r 压缩文件名 文件/文件夹
解压zip压缩包
unzip -l 压缩文件 //查看压缩文件内容(不解压)
unzip -d 指定输出目录 压缩文件 //解压文件到指定目录
网络管理
配置ip地址
ifconfig //显示激活的网卡信息
ifconfig ens37 down //关闭ens37网卡
ifconfig ens37 up //启动ens37网卡
ifconfig ens37 192.168.31.99 //配置ens37网卡ip地址
ipconfig ens37 192.168.31.100 netmask 255.255.255.0 //配置ip地址和子网掩码
查看网络状态
ping 192.168.83.100 //测试网络是否连通
netstat //显示网络状态
netstat -i //显示网卡列表
安装程序
yum基本使用
yum是一个软件包管理器,它可以帮助我们做一些下载、安装、卸载、更新软件包等操作。
yum -y install tree //安装tree工具(在命令行显示目录结构的程序)
yum remove tree //移除tree工具
yum list tomcat //列出所有tomcat软件包
yum源修改
yum源指的是互联网的软件包的服务器,CentOS默认的Yum源服务器默认是国外的,访问速度比较慢。我们可以自己配置国内的yum源。
CentOS默认的yum源配置文件在/etc/yum.repos.d/CentOS-Base.repo
路径下,我们可以找到这个文件改掉就可以了。
#安装下载工具
yum -y install wget
#进入yum源所在的文件夹
cd /etc/yum.repos.d
#备份yum源(以免搞坏了,再改回来就行)
mv CentOS-Base.repo CentOS-Base.repo.back
#下载阿里的yum源
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
linux安装JDK
卸载jdk
#查询已安装的JDK包
rpm -qa | grep jdk
# 卸载jdk1.7的所有依赖
sudo yum -y remove java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_6
# 卸载jdk1.8的所有依赖
sudo yum -y remove java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_6
安装jdk
下载jdk并上传至Linux系统的/usr/java
目录
1.到Oracle官网下载`jdk-8u271-linux-x64.tar.gz`安装包
2.将jdk-8u271-linux-x64.tar.gz安装包上传到Linux系统中/usr/java目录下
需要使用ftp上传工具,也可以使用finalshell直接拖拽
备注:拖拽的时候,用户必须是root,不是权限root,用户名也必须是root才能拖拽进去,否则会失败。
解压安装包
tar -zxvf jdk-8u271-linux-x64.tar.gz
配置JAVA_HOME环境变量
#打开配置文件
vim /etc/profile
#:i 进入编辑模式,新增如下配置
export JAVA_HOME=/usr/java/jdk1.8.0_271
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#:wq! 保存并退出
#最后执行文件,配置生效
source /etc/profile