Linux命令
文章目录
1_目录结构
在 L i n u x Linux Linux系统中,也是存在目录的概念的,但是 L i n u x Linux Linux的目录结构和 W i n d o w s Windows Windows的目录结构是存在比较多的差异的 。
在 W i n d o w s Windows Windows目录下,是一个一个的盘符(C盘、D盘、E盘),目录是归属于某一个盘符的。
L i n u x Linux Linux 系统中的目录有以下特点:
-
/
是所有目录的顶点 -
目录结构像一颗倒挂的树
L i n u x Linux Linux 和 W i n d o w s Windows Windows的目录结构对比:
L i n u x Linux Linux 的目录结构,如下:
根目录/ 下各个目录的作用及含义说明:
编号 | 目录 | 含义 |
---|---|---|
1 | /bin | 存放二进制可执行文件 |
2 | /boot | 存放系统引导时使用的各种文件 |
3 | /dev | 存放设备文件 |
4 | /etc | 存放系统配置文件★ |
5 | /home | 存放系统用户的文件(普通用户的存储信息位置)★ |
6 | /lib | 存放程序运行所需的共享库和内核模块 |
7 | /opt | 额外安装的可选应用程序包所放置的位置 |
8 | /root | 超级用户目录 |
9 | /sbin | 存放二进制可执行文件,只有root用户才能访问 |
10 | /tmp | 存放临时文件 |
11 | /usr | 存放系统应用程序★ |
12 | /var | 存放运行时需要改变数据的文件,例如日志文件★ |
2_常用命令
进入单用户方法
1、启动 L i n u x Linux Linux时,通过按上下键(其他键也可以)让 L i n u x Linux Linux引导启动停留内核选择阶段。
2、输入e
编辑上下切换。
命令格式
comment [-options] [parameter]
comment
命令本身。options
【可选非必填】控制命令的一些选项 行为细节parameter
【可选非必填】多用于指向命令的目标
ls命令
功能:列出文件夹信息
语法:ls [-l -h -a] [参数]
- 参数:被查看的文件夹,不提供参数,表示查看当前工作目录
-l
,以列表形式查看-h
,配合-l,以更加人性化的方式显示文件大小-a
,显示隐藏文件
ls
隐藏文件、文件夹
在
L
i
n
u
x
Linux
Linux中以.
开头的,均是隐藏的。
默认不显示出来,需要-a
选项才可查看到。
pwd命令
功能:展示当前工作目录
语法:pwd
pwd
cd命令
功能:切换工作目录
语法:cd [目标目录]
参数:目标目录,要切换去的地方,不提供默认切换到当前登录用户HOME目录
cd .. #切换到上级目录
HOME目录
每一个用户在 L i n u x Linux Linux系统中都有自己的专属工作目录,称之为HOME目录。
-
普通用户的HOME目录,默认在:
/home/用户名
-
root用户的HOME目录,在:
/root
S h e l l Shell Shell登陆终端后,默认的工作目录就是用户的HOME目录
相对路径、绝对路径
-
相对路径,非
/
开头的称之为相对路径相对路径表示以
当前目录
作为起点,去描述路径,如test/a.txt
,表示当前工作目录内的test
文件夹内的a.txt
文件 -
绝对路径,以
/
开头的称之为绝对路径绝对路径从
根
开始描述路径
特殊路径符
.
,表示当前,比如./a.txt
,表示当前文件夹内的a.txt
文件..
,表示上级目录,比如../
表示上级目录,../../
表示上级的上级目录~
,表示用户的HOME目录,比如cd ~
,即可切回用户HOME目录
mkdir命令
功能:创建文件夹
语法:mkdir [-p] 参数
- 参数:被创建文件夹的路径
- 选项:
-p
,可选,表示创建前置路径
mkdir -p /usr/xxxx/file
touch命令
功能:创建文件
语法:touch 参数
- 参数:被创建的文件路径
touch newFile
cat命令
功能:查看文件内容
语法:cat 参数
- 参数:被查看的文件路径
cat /etc/profile
more命令
功能:查看文件,可以支持翻页查看
语法:more 参数
- 参数:被查看的文件路径
- 在查看过程中:
空格
键翻页q
退出查看
more /etc/profile
cp命令
功能:复制文件、文件夹
语法:cp [-r] 参数1 参数2
- 参数1,被复制的
- 参数2,要复制去的地方
- 选项:
-r
,可选,复制文件夹使用表示递归
示例:
# 复制当前目录下a.txt为b.txt
cp a.txt b.txt
# 复制当前目录a.txt到test文件夹内
cp a.txt test/
# 复制text1(参数为路径)成为text2(参数为路径)
cp -r test1 test2
mv命令
功能:移动文件、文件夹位置
语法:mv 参数1 参数2
- 参数1:被移动的路径
- 参数2:要移动去的地方,如果路径二名字不是原文件名称会强制改名
mv 1.txt 2.txt
rm命令
功能:删除文件、文件夹
语法:rm [-r -f] 参数...参数
- 参数:支持多个,每一个表示被删除的,空格进行分隔
- 选项:
-r
,删除文件夹使用 - 选项:
-f
(force),强制删除,不会给出确认提示,一般root用户会用到 rm
命令支持通配符 *,用来做模糊匹配
rm -rf /*
rm命令很危险,一定要注意,特别是切换到root用户的时候。
rmdir命令
作用:删除空目录
语法:rmdir [-p] dirName
- 参数
-p
: 当子目录被删除后使父目录为空目录的话,则一并删除反之,如果父目录不为空,则不删除。
# 删除名为pik的空目录
rmdir pik
# 删除pik目录中名为test的子目录,若test目录删除后pik目录变为空目录,则也被删除
rmdir -p pik/test
which命令
功能:查看命令的程序本体文件路径
语法:which 参数
- 参数:被查看的命令
which find
find命令
功能:搜索文件
语法1按文件名搜索:find 路径 -name 参数
- 路径,搜索的起始路径
- 参数,搜索的关键字,支持通配符*, 比如:
*test
表示搜索任意以test
结尾的文件
find / -name *.txt
whereis命令
查找文件所在位置:
whereis mysql
grep命令
功能:通过关键字过滤文件行
语法:grep [-n] 关键字 文件路径
- 选项
-n
,可选,表示在结果中显示匹配的行的行号 - 参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用
""
将关键字包围起来 - 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口
ps -ef | grep *
参数文件路径,可以作为管道符的输入
wc命令
功能:统计文件的行数单词数量等
语法:wc [-c -m -l -w] 文件路径
- 选项,
-c
,统计bytes数量 - 选项,
-m
,统计字符数量 - 选项,
-l
,统计行数 - 选项,
-w
,统计单词数量 - 参数,文件路径,被统计的文件,可作为内容输入端口
wc -l /usr/bin/find
管道符|
写法:|
功能:将符号左边的结果,作为符号右边的输入
示例:
将cat a.txt
的结果,作为grep
命令的输入,用来过滤big
关键字
cat a.txt | grep big
可以支持嵌套(从左到右依次计算):
cat test1.txt | grep l | wc -l
echo命令
功能:输出内容
语法:echo 参数
- 参数:被输出的内容
- 带有空格或特殊符号建议使用双引号包围,不包围容易被识别为参数2
echo "hello world"
`反引号
功能:被两个反引号包围的内容,会作为命令执行
示例:
会输出当前工作目录
echo `pwd`
tail命令
功能:查看文件尾部内容
语法:tail [-f -n <数字>] 参数
- 参数:被查看的文件路径
-n
表示查看多少行默认不填为10行- 选项:
-f
,持续跟踪文件修改(常用于监测日志文件) - Ctrl + C 停止持续跟踪
tail -f -n 1 bin.log
head命令
功能:查看文件头部内容
语法:head [-n] 参数
- 参数:被查看的文件
- 选项:
-n
,查看的行数
head -n 10 1.txt
watch命令
功能:用于定期执行某个命令并实时显示其输出,常用于监控系统状态或查看命令结果的变化。
语法:watch [options] command
常用 options
:
-d
:高亮显示变化的部分。-n
:指定更新时间间隔(以秒为单位)。-t
:去掉标题。
# 定期查看系统负载
watch -n 1 uptime
# 高亮显示磁盘使用情况的变化
watch -d df -h
# 仅显示命令输出,不显示标题
watch -t free -h
重定向符
功能:将符号左边的结果,输出到右边指定的文件中去
>
,表示覆盖输出>>
,表示追加输出
echo "Hello, world">test.txt
echo "Hello, world">>test.txt
vi、vim 编辑器
vi 和 vim 为
L
i
n
u
x
Linux
Linux中的文本编辑器,vim
是vi
的加强版,不仅能编辑文本而且还具有 shell
程序编辑的功能,可以用不同颜色的字体来辨别语法的正确性,极大方便了程序设计和编辑性;
vim兼容了全部vi功能
vim filename #如果不存在会创建文件
三种操作模式 说明 | 三种操作模式 说明 |
---|---|
命令模式 | 可以移动光标、删除字符等操作,打开文件时即进入这个模式。 |
编辑模式 | 在此模式下可以输入字符,进行编辑等操作。 |
底行模式 | 可以输入命令对编辑的文件进行查找,保存,退出等操作。 |
三种模式的切换
命令模式快捷键
命令模式下所敲的按键编辑器都理解为命令,以命令驱动不同功能。
模式 | 命令 | 描述 |
---|---|---|
命令模式 | i | 在当前光标位置进入输入模式 |
命令模式 | a | 在当前光标位置之后进入输入模式 |
命令模式 | I | 在当前行的开头,进入输入模式 |
命令模式 | A | 在当前行的结尾,进入输入模式 |
命令模式 | o | 在当前光标下一行进入输入模式 |
命令模式 | O | 在当前光标上一行进入输入模式 |
输入模式 | esc | 任何情况下输入esc都能回到命令模式 |
命令模式 | 键盘上、键盘k | 向上移动光标 |
命令模式 | 键盘下、键盘j | 向下移动光标 |
命令模式 | 键盘左、键盘h | 向左移动光标 |
命令模式 | 键盘右、键盘l | 向后移动光标 |
命令模式 | e | 移动光标到当前行的开头 |
命令模式 | $ | 移动光标到当前行的结尾 |
命令模式 | pageup(PgUp) | 向上翻页 |
命令模式 | pagedown(PgDn) | 向下翻页 |
命令模式 | / | 进入搜索模式 |
命令模式 | n | 向下继续搜索 |
命令模式 | N | 向上继续搜索 |
命令模式 | dd | 删除光标所在行的内容 |
命令模式 | ndd | n是数字,表示删除当前光标向下n行 |
命令模式 | yy | 复制当前行 |
命令模式 | nyy | n是数字,复制当前行和下面的n行 |
命令模式 | p | 粘贴复制的内容 |
命令模式 | u | 撤销修改 |
命令模式 | ctrl + r | 反向撤销修改 |
命令模式 | gg | 跳到首行 |
命令模式 | G | 跳到行尾 |
命令模式 | dG | 从当前行开始,向下全部删除 |
命令模式 | dgg | 从当前行开始,向上全部删除 |
命令模式 | d$ | 从当前光标开始,删除到本行的结尾 |
命令模式 | d0 | 从当前光标开始,删除到本行的开头 |
编辑模式,插入模式。此模式下,可以对文件内容自由编辑。
底线命令快捷键
以:
开始,通常用于文件的保存退出
模式 | 命令 | 描述 |
---|---|---|
底线命令模式 | :wq | 保存并退出 |
底线命令模式 | :q | 仅退出 |
底线命令模式 | :q! | 强制退出 |
底线命令模式 | :w | 仅保存 |
底线命令模式 | :set nu | 显示行号 |
底线命令模式 | :set paste | 设置粘贴模式 |
命令以回车结束运行
sed命令
通常情况下调用sed
命令有两种格式,如下所示。
其中“参数”是指操作的目标文件,当存在多个操作对象时用,文件之间用逗号,
分隔;
而scriptfile
表示脚本文件,需要用-f
选项指定,表示通过指定的脚本文件来处理输入的目标文件。
-
sed [选项] '操作' 参数
-
sed [选项] -f scriptfile 参数
常见的sed命令选项包含以下几种:
-f
或-file
:表示用指定的脚本文件来处理输入的文件文件
-h
或--help
:显示帮助-n
、-quite
或silent
:表示仅表示处理后的结果-i
:直接编辑文本文件
操作
“操作”用于只当对文件操作的动作行为,也就是sed的命令。
通常情况下是采用[n1[n2]]
操作参数的格式。
n1、n2
是可选的,代表选择进行操作的行数,如操作需要在5~20行之间进行,则表示为“5,20动作行为”。常见的操作包括以下几种。
-
a
:增加,在当前行下面增加一行指定内容。 -
c
:替换,讲选定行替换为指定内容。 -
d
:删除,删除选定的行。 -
i
:插入,在选定行上面插入一行指定内容。 -
p
:打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容,如果又非打印字符,则以ASCLL码输出。
通常与
-n
选项一起使用。 -
s
:替换,替换指定字符 -
y
:字符转换
sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
命令的选项
我们学习的一系列 L i n u x Linux Linux 命令,它们所拥有的选项都是非常多的。
比如,简单的ls命令就有:-a -A -b -c -C -d -D -f -F -g -G -h -H -i -I -k -l -L -m -n -N -o -p -q -Q -r-R -s -S -t -T -u -U -v -w -x -X -1等选项,可以发现选项是极其多的。
这么多的命令记忆起来极其不便,可以通过:命令 --help
查看命令的帮助手册
查看命令的详细手册
可以通过:man 命令
查看某命令的详细手册
man ls
3_Linux常用操作
软件安装
C e n t O S CentOS CentOS系统使用:
yum [install remove search upadte] [-y]
软件名称
install
安装remove
卸载search
搜索list
搜索指定的安装包update
更新-y
,自动确认,无需手动确认安装或卸载过程
yum -y install wget
yum install gcc-c++
yum update
yum clean all
RPM: 全称为 R e d − H a t P a c k a g e M a n a g e r Red-Hat Package Manager Red−HatPackageManager,RPM软件包管理器,是红帽 L i n u x Linux Linux用于管理和安装软件的工具。
语法:rpm [options] [package-file]
。
选项:
-i
安装指定的 RPM 软件包-U
升级已安装的包或安装新包-e
卸载指定的软件包-q
查询软件包信息-qa
列出所有已安装的软件包-qi
查看指定软件包的详细信息-ql
列出指定软件包中包含的文件-qf
检查文件属于哪个软件包-V
验证已安装软件包的完整性-h
显示安装进度的哈希标记-v
显示详细信息--force
强制安装或卸载软件包,即使有文件冲突--nodeps
安装或卸载软件包时忽略依赖关系
# 安装软件包并显示进度
rpm -ivh package.rpm
# 升级软件包
rpm -Uvh package.rpm
# 卸载软件包
rpm -e package_name
# 查询所有已安装的软件包
rpm -qa | grep package_name
# 查看软件包信息
rpm -qi package_name
安装RPM包可以自动化安装配置 L i n u x Linux Linux软件,解决依赖问题;
U b u n t u Ubuntu Ubuntu系统使用
apt [install remove search] [-y]
软件名称install
安装remove
卸载search
搜索-y
,自动确认
apt install apt-get install # 安装软件包
apt remove apt-get remove # 移除软件包
apt purge apt-get purge #移除软件包及配置文件
apt update apt-get update # 刷新存储库索引
apt upgrade apt-get upgrade # 升级所有可升级的软件包
apt autoremove apt-get autoremove# 自动删除不需要的包
apt full-upgrade apt-get dist-upgrade# 在升级软件包时自动处理依赖关系
apt search apt-cache search # 搜索应用程序
apt show apt-cache show # 显示装细节
yum
和apt
均需要 root 权限,都要联网。
systemctl
功能:控制系统服务的启动关闭等
语法:systemctl start | stop | restart | disable | enable | status 服务名
start
,启动stop
,停止status
,查看状态disable
,关闭开机自启enable
,开启开机自启restart
,重启
systemctl stop firewalld # firewalld 防火墙服务 sshd,ssh服务
软链接
功能:创建文件、文件夹软链接(快捷方式),将文件文件夹链接到其他位置。
类似 W i n d o w s Windows Windows 快捷方式。
语法:ln -s 参数1 参数2
-s
选项:创建软链接,否则硬链接。- 参数1:被链接的文件夹或文件
- 参数2:要链接去的地方(快捷方式的名称和存放位置)
ln -s java-8-xxxxxxx jdk8
日期
语法:date [-d] [+格式化字符串]
-
-d
按照给定的字符串显示日期,一般用于日期计算 -
格式化字符串:通过特定的字符串标记,来控制显示的日期格式
%Y
年%y
年份后两位数字 (00…99)%m
月份 (01…12)%d
日 (01…31)%H
小时 (00…23)%M
分钟 (00…59)%S
秒 (00…60)%s
自 1970-01-01 00:00:00 UTC 到现在的秒数
示例:
按照2024-01-01的格式显示日期
date "+%Y-%m-%d"
按照202401-01 10:00:00的格式显示日期
date "+%Y-%m-%d %H:%M:%S"
-d
选项日期计算
计算格式 | 说明 |
---|---|
date -d "+1 day" +%Y%m%d | 显示后一天的日期 |
date -d "-1 day" +%Y%m%d | 显示前一天的日期 |
date -d "-1 month" +%Y%m%d | 显示上一月的日期 |
date -d "+1 month" +%Y%m%d | 显示下一月的日期 |
date -d "-1 year" +%Y%m%d | 显示前一年的日期 |
date -d "+1 year" +%Y%m%d | 显示下一年的日期 |
其中支持的时间标记为:
year
年month
月day
天hour
小时minute
分钟second
秒
可以和格式化字符串一起使用。
时区
修改时区为中国时区,东八区时间:
rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
将系统自带的localtime
删除,并将/usr/share/zoneinfo/Asia/Shanghai
文件链接为localtime
文件即可。
ntp
功能:同步时间
安装:yum install -y ntp
启动管理:systemctl start | stop | restart | status | disable | enable ntpd
手动校准时间
ntpdate -u ntp.aliyun.com
ip地址
格式:a.b.c.d
- abcd为0~255的数字
特殊IP:
- 127.0.0.1,表示本机
- 0.0.0.0
- 可以表示本机
- 也可以表示任意IP(看使用场景)
查看ip:
ifconfig
# lo本地回环网卡 virbr0 虚拟机网卡 enss33主网卡
如果无法使用 ifconfig,可以安装 yum -y install net-tools
。
主机名
功能: L i n u x Linux Linux系统的名称
查看:hostname
设置:hostnamectl set-hostname 主机名
主机名映射:
w
i
n
d
o
w
s
windows
windows:C:\Windows\System32\drivers\etc\hosts
。
l
i
n
u
x
linux
linux:/etc/hosts
。
配置VMware固定IP
-
修改VMware网络
-
设置 L i n u x Linux Linux内部固定IP
修改文件:
/etc/sysconfig/network-scripts/ifcfg-ens33
示例文件内容:
TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static"# 改为static,固定IP DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="1b0011cb-0d2e-4eaa-8a11-af7d50ebc876" DEVICE="ens33" ONBOOT="yes" IPADDR="192.168.88.131"# IP地址,自己设置,要匹配网络范围 NETMASK="255.255.255.0"# 子网掩码,固定写法255.255.255.0 GATEWAY="192.168.88.2"# 网关,要和VMware中配置的一致 DNS1="192.168.88.2"# DNS1服务器,和网关一致即可
-
重新启动
systemctl restart network
为什么需要固定IP?
- 当前我们虚拟机的 L i n u x Linux Linux操作系统,其IP地址是通过 D H C P DHCP DHCP服务获取的。
- 动态获取IP地址,即每次重启设备后都会获取一次,可能导致IP地址频繁变更。
- 办公电脑IP地址变化无所谓,但是我们要远程连接到 L i n u x Linux Linux系统,如果IP地址经常变化我们就要频繁修改适配很麻烦。
ps命令
功能:查看进程信息
语法:ps -ef
,查看全部进程信息,可以搭配grep
做过滤:ps -ef | grep xxx
。
ps -ef | grep redis
kill命令
语法:kill [-9] pid
选项:
-9
,表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制。pid
:进程id。
kill -9 1
nmap命令
可以通过 L i n u x Linux Linux命令去查看端口的占用情况
- 使用
nmap
命令,安装:
yum -y install namp
语法:namp 被查看的IP地址
namp 127.0.0.1
netstat命令
功能:查看端口占用
用法:netstat -anp | grep xxx
netstat -anp | grep 80
ping命令
检查指定网络服务是否联通
语法:ping [-c num] 参数
选项:
-c
,检查的次数,不使用-c
选项将无限次数持续检查。- 参数:ip或主机名,被检查的服务器的IP地址或主机名地址
ping www.baidu.com
wget命令
非交互式文件下载器,可以在命令行内下载网络文件。
语法:wget [-b] url
。
- 选项:
-b
可选,后台下载,会写到当前工作目录的wget-log
文件 - 参数:
url
,下载链接
可以用 tail -f wget-log
监控后台下载。
wget https://download.mengyun.link/cute/CuteCloudSetup1.3.8.exe
curl命令
可以发送http网络请求,可用于下载文件,获取信息(在命令行中会获取 HTML 源码)。
语法: curl [-O] url
- 选项
-O
用于下载文件,当url
是下载链接时,可以用此选项保存文件。 - 参数:
url
,要发起请求的网络地址
# 获取主机公网ip地址
curl cip.cc
top命令
功能:查看主机运行状态,查看cpu,内存使用情况类似于 W i n d o w s Windows Windows任务管理器
语法:top
,查看基础信息
可用选项:
选项 | 功能 |
---|---|
-p | 只显示某个进程的信息 |
-d | 设置刷新时间,默认是5s |
-c | 显示产生进程的完整命令,默认是进程名 |
-n | 指定刷新次数,比如top -n 3 ,刷新输出3次后退出 |
-b | 以非交互全屏模式运行,以批次的方式执行top, 一般配合-n指定输出几次统计信息,将输出重定向到指定文件, 比如 top -b -n 3 >/tmp/top.tmp |
-1 | 不显示任何闲置(idle)或无用(zombie)的进程 |
-u | 查找特定用户启动的进程 |
交互式模式中,可用快捷键:
按键 | 功能 |
---|---|
h 键 | 按下h键,会显示帮助画面 |
c 键 | 按下c键,会显示产生进程的完整命令,等同于-c 参数,再次按下c键,变为默认显示 |
f 键 | 按下f键,可以选择需要展示的项目 |
M 键 | 按下M键,根据驻留内存大小(RES)排序 |
P 键 | 按下P键,根据CPU使用百分比大小进行排序 |
T 键 | 按下T键,根据时间/累计时间进行排序 |
E 键 | 按下E键,切换顶部内存显示单位 |
e 键 | 按下e键,切换进程内存显示单位 |
l 键 | 按下l 键,切换显示平均负载和启动时间信息。 |
i 键 | 按下i 键,不显示闲置或无用的进程,等同于-i参数,再次按下,变为默认显示 |
t 键 | 按下t 键,切换显示CPU状态信息 |
m 键 | 按下m 键,切换显示内存信息 |
# 查看进程的线程执行情况
top -p pid -H
df命令
查看磁盘使用情况。
语法:df [-h]
选项:-h
,以更加人性化的单位显示
df -h
iostat命令
查看 C P U CPU CPU、磁盘的相关信息
语法:iostat [-x] [num1] [num2]
- 选项:
-x
,显示更多信息 num1
:数字,刷新间隔,num2
:数字刷新几次
iostat -x 3 2
sar命令
查看网络统计
语法:sar -n DEV num1 num2
选项:
-n
,查看网路,DEV表示查看网络接口num1
刷新间隔(不填就查看一次)num2
刷新几次(不填无限次数)。
sar -n DEV 3 2
环境变量
- 临时设置:
export 变量名=变量值
- 永久设置:
- 针对用户,设置用户HOME目录内:
.bashrc
文件 - 针对全局,设置
/etc/profile
- 针对用户,设置用户HOME目录内:
export JAVA_HOME="7788"
echo ${JAVA_HOME}
全局设置
vim ./bashrc #当前用户
vim /etc/profile #所有用户
source /etc/profile # 立即生效
PATH变量
记录了执行程序的搜索路径
可以将自定义路径加入PATH内,实现自定义命令在任意地方均可执行的效果
export PATH=$PATH:/root/myenv
$符号
可以取出指定的环境变量的值
语法:$变量名
示例:
echo $PATH
,输出PATH环境变量的值
echo ${PATH}ABC
,输出PATH环境变量的值以及ABC
如果变量名和其它内容混淆在一起,可以使用${}
压缩解压
在
L
i
n
u
x
Linux
Linux中常见的格式为.tar
和.gz
(减少体积)。
完整语法:tar [-c -v -x -f -z -C] 参数1 参数2.....n
。
-c
代表的是create
,创建压缩文件用于压缩。-v
代表的是verbose
,显示进度。-x
解压模式,x代表的是extract
,实现从包文件中还原文件(拆包)。-f
代表的是file
,要创建的文件或是要解压的文件,所有选项中必须放最后一个。-z
表示使用gzip,可以不写,不使用就是普通的tarball模式 如果有一般第一个。- gzip可以对文件压缩或者解压
-C
选择要解压的目的地,用于解压模式,单独使用。
压缩
tar -zcvf 压缩包 被压缩1...被压缩2...被压缩N
。
tar -zcvf test.tar a.txt b.txt c.txt
zip [-r] 参数1 参数2 参数N
-r
,被压缩的包含文件夹时,使用此选项 与rm
、cp
等命令的-r
效果一致
示例:
# 将 a.txt b.txt c.txt 压缩到test.zip文件内
zip test.zip a.txt b.txt c.txt
# 将test、ceshi两个文件夹和a.txt压缩到test.zip文件内
zip -r test.zip test ceshi a.txt
解压
tar -zxvf 被解压的文件 -C 要解压去的地方
tar -zxvf test.tar -C /home/
unzip [-d] 参数
-d
指定解压文件去的位置- 参数,被解压的压缩包文件
# 将test.zip解压到当前目录
unzip test.zip
# 解压到指定文件夹内
unzip test.zip -d /home
su命令
切换用户,root转到普通用户不需要密码。
语法:su [-] [用户]
-
表示切换后加载环境变量,建议带上- 用户可以省略,省略默认切换到root
- 临时切换到root用户,输入
exit
退出
su
exit
sudo命令
- 可以让一条普通命令带有root权限,语法:
sudo 其他命令
- 需要以root用户执行
visudo
命令增加配置方可让普通用户有sudo
命令的执行权限
比如:
shenyang ALL=(ALL) NOPASSWD: ALL
在visudo
内配置如上内容,可以让shenyang
用户,无需密码直接使用sudo
sudo rm -rf /*
Linux权限
L i n u x Linux Linux中的权限分为三种 :读( r )、写(w)、执行(x)
L i n u x Linux Linux文件权限从左到右分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)
只有文件的所有者和超级用户可以修改文件或目录的权限
要执行 S h e l l Shell Shell脚本需要有对此脚本文件的执行权限 (x),如果没有则不能执行
L i n u x Linux Linux系统中权限描述如下:
解析当前文件的权限情况:
chmod命令
修改文件、文件夹权限
语法:chmod [-R] 权限(u,g,o) 参数
-
权限,要设置的权限,比如755,表示:
rwxr-xr-x
0
:无任何权限,即---
1
:仅有x权限,即--X
2
:仅有w权限,即-w-
3
:有w和x权限,即-wx
4
:仅有r权限,即r--
5
:有r和x权限,即r-X
6
:有r和w权限,即rw-
7
:有全部权限,即rwx
-
参数,被修改的文件、文件夹
-
选项
-R
,设置文件夹和其内部全部内容一样生效
chmod u=rwx,g=rx,o=x hello.txt # o表示orther用户权限;
chown命令
修改文件、文件夹所属用户、组
语法:chown [-R] [用户][:][用户组] 文件或文件夹
选项:
-R
,对文件夹内的全部内容应用同样的规则。- 用户 修改所属用户
- 用户组 修改所属用户组
:
分隔用户和用户组。
# 将hello.txt所属用户修改为root
chown root hello.txt
# 将hello.txt所属用户组修改为group
chown :group hello.txt
# 将hello.txt所属用户修改为root,用户组修改为group
chown root:group hello.txt
# 将文件夹test的所属用户修改为rooo=t并对文件夹内全部内容应用同样规则
chown -R root test
用户组管理
需 root 用户执行:
-
创建用户组,语法:
groupadd 用户组名
。 -
删除用户组,语法:
groupdel 用户组名
groupadd test
groupdel test
用户管理
-
创建用户
语法 :
useradd [ -g 指定的用户组 -d 指定的路径 ] 用户名
;-g
指定用户的组,不指定-g
,会自动创建同名的组并加入,如果已经存在同名的组必须加-g
;-d
指定用户HOME的路径,如果不指定,HOME默认在:/home/用户名;
-
删除用户
语法:
userdel [-r] 用户名
;-r
表示删除用户的HOME路径,如果不使用-r
则删除用户时HOME目录会留下来;
-
查看用所属组
语法:
id [用户名]
, 如不指定用户名则查看自身; -
修改用户所属组
语法:
usermod -aG 用户组 用户名
,将指定用户加入指定用户组;
useradd duration
userdel -r duration
gentent命令
-
getent group
,查看系统全部的用户组 -
getent passwd
,查看系统全部的用户
getent group
getent passwd
env命令
查看系统全部的环境变量
语法:env
env
内核升级
内核升级主要是看网上教程基本都是如下操作流程:
# 导入elrepo gpg key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 安装elrepo YUM源仓库
yum -y install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
# 安装kernel-ml版本,ml为长期稳定版本,lt为长期维护版本
yum --enablerepo="elrepo-kernel" -y install kernel-ml.x86_64
# 设置grub2默认引导为0
grub2-set-default 0
# 重新生成grub2引导文件
grub2-mkconfig -o /boot/grub2/grub.cfg
# 更新后,需要重启,使用升级的内核生效。
reboot
# 重启后,需要验证内核是否为更新对应的版本
uname -r
然后我自己尝试一直失败,查看可用的内核版本只有一个7.x
,而我自己是要安装5.x
的。
yum --disablerepo="*" --enablerepo="elrepo" list available
去查看官网:https://elrepo.org/wiki/doku.php,好像这种方式现在没有 C e n t O S 7 CentOS7 CentOS7的支持了。
直接wget
下载了,别的也搞不明白,去官网挑选可用的版本安装即可:https://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/。
# 安装kernel-ml版本,ml为长期稳定版本,lt为长期维护版本
wget https://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-ml-5.18.10-1.el7.elrepo.x86_64.rpm
rpm -ih kernel-ml-5.18.10-1.el7.elrepo.x86_64.rpm
# 设置grub2默认引导为0
grub2-set-default 0
# 重新生成grub2引导文件
grub2-mkconfig -o /boot/grub2/grub.cfg
# 更新后,需要重启,使用升级的内核生效。
reboot
# 重启后,需要验证内核是否为更新对应的版本
uname -r
windows通信Linux
相关命令
# 查看Linux的ip地址:
ifconfig
# centos7的命令
ip addr
# 查看ens33这个网卡的ip信息
ip addr show ens33
VM虚拟网卡介绍
W i n d o w s Windows Windows 主机与虚拟机 L i n u x Linux Linux 系统为什么可以直接连通?为什么?
因为 W i n d o w s Windows Windows 主机与虚拟机 L i n u x Linux Linux 系统使用同一个网卡 VMNet8,所以 W i n d o w s Windows Windows主机与 L i n u x Linux Linux系统是在同一个局域网内,所以可以直接通信。
只要成功安装了Vmware虚拟机就会默认生成的2个网卡(VMnet1和VMnet8)
命令 | 连接模式功能说明 |
---|---|
VMNet1网卡 | host-only 仅主机模式介绍:即虚拟机只能与主机
w
i
n
d
o
w
s
windows
windows 内部通信,无法对外网进行访问 |
VMNet8网卡 | NAT网络模式介绍:提供了网络地址转换功能,可以使虚拟机使用真实机的物理网卡的ip与真实网络通信。即虚拟机中的
l
i
n
u
x
linux
linux系统可以共享
w
i
n
d
o
w
s
windows
windows主机的ip连接外网。使用这种网络模式下
w
i
n
d
o
w
s
windows
windows主机与
l
i
n
u
x
linux
linux系统组成小局域网,不仅可以互相通信,虚拟机也可访问外网。虚拟电脑中的
l
i
n
u
x
linux
linux使用的 ens33 网卡就是使用这个VMNet8网卡。 |
原文地址:https://blog.csdn.net/m0_62943934/article/details/143416863
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!